Montare i bucket Cloud Storage utilizzando Cloud Storage FUSE

Opzioni di montaggio

Questa pagina descrive diversi modi per montare i bucket Cloud Storage sul file system locale utilizzando Cloud Storage FUSE.

Prima di iniziare

Per montare e accedere ai bucket, devi prima completare le seguenti attività.

Ottenere i ruoli richiesti per montare e accedere a un bucket

Per montare, accedere ed eseguire operazioni di lettura e scrittura in un bucket, chiedi al proprietario del bucket di concederti il ruolo Utente oggetto archiviazione (roles/storage.objectUser) nel bucket.

Questo ruolo predefinito contiene le autorizzazioni necessarie per leggere da un bucket montato e scrivere in un bucket montato. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

  • storage.objects.create
  • storage.objects.delete
  • storage.objects.get
  • storage.objects.list
  • storage.objects.update

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Per istruzioni su come concedere i ruoli ai bucket, consulta Utilizzare IAM con i bucket.

Installa Cloud Storage FUSE

Se non lo hai ancora fatto, installa Cloud Storage FUSE.

Autenticare le richieste di Cloud Storage FUSE

Per autenticare le richieste FUSE di Cloud Storage a Cloud Storage, devi configurare le credenziali predefinite dell'applicazione. Per impostazione predefinita, Cloud Storage FUSE carica automaticamente le Credenziali predefinite dell'applicazione esistenti senza alcuna ulteriore configurazione.

Per utilizzare Google Cloud CLI per configurare le Credenziali predefinite dell'applicazione, completa i seguenti passaggi:

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

Quando crei una macchina virtuale (VM) Compute Engine, il relativo account di servizio può essere utilizzato anche per autenticare l'accesso a Cloud Storage FUSE.

Montare un secchio

Per montare i bucket nel file system locale, utilizza il seguente comando:

gcsfuse GLOBAL_OPTIONS BUCKET_NAME MOUNT_POINT

Dove:

  • GLOBAL_OPTIONS sono le opzioni che puoi includere per controllare la configurazione del montaggio. Per ulteriori informazioni sulle opzioni e su come utilizzarle, consulta Opzioni della CLI di Cloud Storage FUSE.

  • BUCKET_NAME è il nome del bucket da montare. Ad esempio, my-bucket. Se vuoi eseguire il montaggio dinamico, escludi il nome di un bucket dal comando.

  • MOUNT_POINT è la directory locale in cui viene montato il bucket. Ad esempio, /path/to/mount/point.

Dopo l'uscita di Cloud Storage FUSE, puoi accedere ai bucket montati eseguendo ls sul punto di montaggio del bucket. Se preferisci che Cloud Storage FUSE rimanga in primo piano (ad esempio per il logging di debug), puoi eseguire il comando gcsfuse con il flag --foreground.

Esempi di montaggio

Questa sezione descrive diversi comandi di esempio per il montaggio dei bucket.

Montaggio statico

Il montaggio statico si riferisce al montaggio di un bucket specifico. Ad esempio, per montare un secchio denominato my-bucket nella directory /path/to/mount/point, esegui i comandi seguenti:

mkdir /path/to/mount/point
gcsfuse my-bucket /path/to/mount/point

Montaggio dinamico

Con il montaggio dinamico si intende il montaggio di tutti i bucket a cui un utente ha accesso come sottodirectory.

Quando esegui il montaggio dinamico, escludi i nomi dei bucket dal comando. Ad esempio, supponiamo che tu abbia accesso ai bucket denominati my-bucket-1, my-bucket-2 e my-bucket-3. Per montare tutti i bucket nella directory /path/to/mount/point, esegui i seguenti comandi:

mkdir /path/to/mount/point
gcsfuse /path/to/mount/point

Puoi quindi accedere ai bucket come sottodirectory:

ls /path/to/mount/point/my-bucket-1/
ls /path/to/mount/point/my-bucket-2/
ls /path/to/mount/point/my-bucket-3/

I bucket montati dinamicamente non possono essere elencati dal punto di montaggio principale. ma il nome del bucket deve essere specificato nell'ambito dell'operazione di elenco.

Montaggio di un bucket in sola lettura

Per montare un bucket come di sola lettura, passa l'opzione -o ro al comando gcsfuse. Ad esempio, per montare un bucket denominato my-bucket come sola lettura nella directory /path/to/mount/point, esegui il seguente comando:

gcsfuse -o ro my-bucket  /path/to/mount/point

Montare una directory all'interno di un bucket

Per impostazione predefinita, Cloud Storage FUSE monta i bucket nella loro interezza, inclusi tutti i contenuti e le strutture di directory del bucket. Per montare una directory specifica all'interno di un bucket, passa l'opzione --only-dir al comando gcsfuse. Ad esempio, per montare la directory my-bucket/a/b nella directory /path/to/mount/point, esegui il seguente comando:

gcsfuse --only-dir a/b my-bucket /path/to/mount/point

Esegui il montaggio utilizzando il comando mount di Linux

L'installazione di Cloud Storage FUSE include un helper compreso dal comando mount di Linux, che ti consente di utilizzare il comando mount per montare i bucket. Il comando mount deve essere eseguito da root se utilizzi Linux. Ad esempio, il seguente comando monta un bucket denominato my-bucket nel percorso /path/to/mount/point:

sudo mount -t gcsfuse -o rw,user my-bucket /path/to/mount/point

Quando esegui il montaggio utilizzando il comando mount di Linux, le opzioni dell'interfaccia a riga di comando di Cloud Storage FUSE possono essere passate come argomento al flag -o, ma i trattini (-) al loro interno devono essere sostituiti con i trattini bassi (_). Ad esempio, implicit_dirs anziché implicit-dirs.

sudo mount -t gcsfuse -o implicit_dirs my-bucket /path/to/mount/point

Montaggio permanente

L'installazione di Cloud Storage FUSE include un programma di utilità installato nel sistema nel percorso /sbin/mount.gcsfuse. Questo helper ti consente di creare punti di montaggio utilizzando il file /etc/fstab, in modo da poter mantenere i mount.

Ad esempio, se aggiunta al file /etc/fstab, la riga seguente definisce un punto di montaggio per un bucket denominato my-bucket nel percorso /mount/point:

my-bucket /mount/point gcsfuse rw,noauto,user

Dove:

  • L'opzione rw specifica che il punto di montaggio venga creato con autorizzazioni di lettura e scrittura.

  • L'opzione noauto specifica che il file system non deve essere montato al momento del boot.

  • L'opzione user consente a chiunque di creare il punto di montaggio specificato nel /etc/fstab file. Dopo aver aggiunto la riga di esempio al file /etc/fstab, puoi eseguire mount /mount/point come utente non root.

Se vuoi montare il bucket automaticamente all'avvio, potresti dover includere l'opzione x-systemd.requires=network-online.target o l'opzione _netdev nella voce /etc/fstab, per assicurarti che Cloud Storage FUSE aspetti che il sistema di rete sia pronto prima del montaggio. Ad esempio:

my-bucket /mount/point gcsfuse rw,x-systemd.requires=network-online.target,user

Puoi montare automaticamente un bucket come utente non root specifico includendo le opzioni uid, gid o entrambe nella voce /etc/fstab. Ad esempio:

my-bucket /mount/point gcsfuse rw,_netdev,allow_other,uid=1001,gid=1001

Come per il comando mount di Linux, i flag utilizzati per il montaggio nel file /etc/fstab devono utilizzare i trattini bassi (_) anziché i trattini (-). Ad esempio, implicit_dirs anziché implicit-dirs.

Montare un bucket con cartelle

Puoi montare bucket con più tipi di cartelle.

Montare un bucket con cartelle gestite

Per montare un bucket incluse le relative cartelle gestite, includi l'opzione --implicit-dirs nel comando.

Ad esempio, per montare un bucket denominato my-bucket e le relative cartelle gestite nella directory /path/to/mount/point, esegui i seguenti comandi:

gcsfuse --implicit-dirs my-bucket /path/to/mount/point

Quando monti un bucket con cartelle gestite, tieni presente le seguenti limitazioni e considerazioni:

  • Le cartelle gestite vuote non vengono visualizzate nei bucket montati.

  • Non puoi impostare o gestire le autorizzazioni IAM in una cartella gestita utilizzando Cloud Storage FUSE. Per impostare o gestire le autorizzazioni IAM in una cartella gestita, consulta Utilizzare IAM con le cartelle gestite.

  • Puoi copiare e spostare una cartella gestita in un bucket montato utilizzando i comandi cp e mv. Quando copi o sposti una cartella gestita, i criteri IAM della cartella gestita originale non vengono mantenuti nella nuova cartella gestita. Devi impostare nuovi criteri IAM nella nuova cartella gestita.

Montare un bucket con cartelle definite in modo implicito

Puoi montare le cartelle definite in modo implicito utilizzando il flag --implicit-dirs nel comando Cloud Storage FUSE. Le cartelle definite in modo implicito sono quelle che non vengono create esplicitamente come oggetti in Cloud Storage. Il flag --implicit-dirs consente di visualizzare le cartelle durante il montaggio di un bucket.

Ad esempio, per montare un bucket denominato my-bucket nella directory /path/to/mount/point con cartelle definite in modo implicito, esegui il seguente comando:

gcsfuse --implicit-dirs my-bucket /path/to/mount/point

Montare un bucket con spazio dei nomi gerarchico abilitato con cartelle

Puoi montare un bucket con lo spazio dei nomi gerarchico attivo, incluse le relative cartelle. Quando monti un bucket con un ambito a livello gerarchico, non è necessario specificare il flag --implicit-dirs affinché le cartelle vengano visualizzate nel bucket montato.

Ad esempio, per montare un bucket denominato my-bucket con cartelle nella directory /path/to/mount/point, esegui il seguente comando:

gcsfuse my-bucket /path/to/mount/point

Controllare le autorizzazioni di accesso al punto di montaggio

Per impostazione predefinita, Cloud Storage FUSE crea punti di montaggio dei bucket con autorizzazioni che consentono solo all'utente che esegue l'invocazione di accedere ai contenuti dei bucket montati. Si tratta di una misura di sicurezza implementata nel kernel FUSE.

Per montare un bucket e consentire ad altri di accedere al punto di montaggio del bucket, puoi eseguire il comando mount come root con l'opzione -o allow_other:

mount -t gcsfuse -o allow_other my-bucket /path/to/mount/point

Se vuoi evitare di montare il bucket come utente root, devi aggiungere user_allow_other al file /etc/fuse.conf per consentire ad altri utenti di accedere al punto di montaggio del bucket.

Smontare un bucket

Per smontare un bucket, utilizza lo strumento fusermount:

fusermount -u /path/to/mount/point

Passaggi successivi