Montaggio delle condivisioni file sui client Compute Engine

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questa pagina mostra come montare una condivisione file di Filestore su un'istanza di macchina virtuale (VM) Compute Engine che si trova nello stesso progetto Google Cloud e nella rete VPC. Per informazioni su come montare le condivisioni file sui client in una rete remota, consulta Montare le condivisioni file su client remoti. Se stai invece cercando di accedere alle istanze Filestore da cluster Google Kubernetes Engine, consulta Accesso alle condivisioni file da cluster Google Kubernetes Engine.

Prima di iniziare

Assicurati che il firewall di rete sia configurato correttamente per l'utilizzo con Filestore. Per ulteriori dettagli, consulta la pagina Configurazione delle regole firewall.

Montaggio di una condivisione file su un'istanza VM di Compute Engine

Utilizza una delle seguenti procedure per montare una condivisione file di Filestore su una VM Compute Engine. Per ottenere prestazioni ottimali, ti consigliamo di montare su una VM n1-standard-8 o superiore.

Linux: montaggio

Per montare manualmente una condivisione file su una VM client Linux:

  1. In Google Cloud Console, vai alla pagina Istanze VM.

    Vai alla pagina Istanze VM

  2. Individua la VM Linux che vuoi utilizzare come client, quindi fai clic su SSH per aprire un terminale su quella VM.

  3. Facoltativo: monta una condivisione file su una VM client con più interfaccia di rete tramite una rete secondaria.

    Dettagli (fai clic per espandere)

    Se vuoi montare la condivisione file tramite una rete secondaria, ossia un'interfaccia diversa da nic0, devi modificare il criterio di routing della VM client. Esegui:

    sudo ip route \
        add filestore-reserved-address-range \
        via default-gateway-of-nic-to-filestore
    

    dove:

    • filestore-reserved-address-range è l'intervallo di indirizzi prenotato per essere utilizzato dall'istanza di Filestore.
    • default-gateway-of-nic-to-filestore è l'indirizzo IP del gateway predefinito della NIC connessa alla rete VPC condivisa con l'istanza Filestore.

    Per ulteriori informazioni sull'utilizzo di istanze Compute Engine con più schede NIC, consulta Configurazione del routing dei criteri.

  4. Installa NFS:

    Debian/Ubuntu

    Utilizza i comandi seguenti per installare NFS su Debian o Ubuntu.

    sudo apt-get -y update &&
    sudo apt-get install nfs-common

    RHEL/CentOS

    Utilizza i comandi seguenti per installare NFS su Red Hat Enterprise Linux o CentOS.

    sudo yum update &&
    sudo yum install nfs-utils

    SUSE

    Utilizza i comandi seguenti per installare NFS su SUSE.

    sudo zypper update &&
    sudo zypper -n install nfs-client
  5. Crea una directory locale per la mappatura alla condivisione file di Filestore:

    sudo mkdir -p mount-point-directory
    

    dove mount-point-directory è la directory da creare, ad esempio /mnt/filedir.

  6. Monta la condivisione file dall'istanza di Filestore eseguendo il comando mount. Puoi utilizzare qualsiasi opzione di montaggio NFS. Per un rendimento ottimale, consigliamo di utilizzare le seguenti opzioni mount NFS.

    Opzione Descrizione
    hard Il client NFS riprova le richieste NFS a tempo indeterminato. Per ridurre la possibilità di interruzioni I/O al riavvio dell'istanza Filestore, ti consigliamo di utilizzare l'opzione di montaggio hard per i client Linux e Windows.
    timeo=600 Il client NFS attende 600 secondi (60 secondi) prima di ritentare una richiesta NFS.
    retrans=3 Il client NFS tenta le richieste NFS tre volte prima di intraprendere ulteriori azioni di recupero.
    rsize=1048576 Il client NFS può ricevere un massimo di 1.048.576 byte dal server NFS per ogni richiesta READ.
    wsize=1048576 Il client NFS può ricevere un massimo di 1.048.576 byte dal server NFS per ogni richiesta WRITE.
    resvport Il client NFS utilizza una porta di origine con privilegi quando comunica con il server NFS per questo punto di montaggio.
    async Il client NFS ritarda l'invio delle scritture dell'applicazione al server NFS finché non vengono soddisfatte determinate condizioni.
    Attenzione: l'uso dell'opzione sync riduce notevolmente le prestazioni.
    • Per ridurre la latenza di montaggio, specifica l'opzione -o tcp.
    • Se stai montando un'istanza di livello SSD Enterprise o High Scale su una VM client che esegue un kernel Linux versione 5.3 o successiva, valuta la possibilità di specificare l'opzione di montaggio nconnect per migliorare le prestazioni NFS. Consigliamo di specificare fino a 7 connessioni per il livello SSD con scalabilità elevata e fino a 2 connessioni per il livello Enterprise. In generale, maggiore è la capacità di condivisione file e minore è il numero di VM client connesse, maggiori sono le prestazioni ottenute specificando connessioni aggiuntive con nconnect.

    Esegui il comando mount:

    sudo mount -o rw,intr ip-address:/file-share mount-point-directory
    

    dove:

    • ip-address è l'indirizzo IP per l'istanza Filestore.
    • file-share è il nome della condivisione file sull'istanza.
    • mount-point-directory è il percorso su cui vuoi mappare la condivisione file di Filestore.

    Puoi ottenere l'indirizzo IP e il nome della condivisione file di un'istanza da una qualsiasi delle seguenti origini:

    Ad esempio, data un'istanza Filestore con indirizzo IP 10.0.1.2 e condivisione file denominata share1, il comando seguente monta la condivisione file nella directory del punto di montaggio locale /mnt/render:

    sudo mount 10.0.1.2:/share1 /mnt/render
    
  7. (Facoltativo) Esegui chmod per impostare le autorizzazioni nella directory di montaggio in modo che altri utenti oltre a quelli radice possano scrivervi. Per impostare le autorizzazioni della directory, esegui questo comando:

    sudo chmod permissions mount-point-directory
    

    dove:

    • permissions è l'insieme di autorizzazioni da concedere. Ad esempio, chmod go+rw rende la directory leggibile e scrivibile dai membri del gruppo che possiede la directory e tutti gli altri utenti. Per ulteriori informazioni sull'impostazione delle autorizzazioni, consulta la pagina sulla configurazione dell'accesso per una condivisione file.
    • mount-point-directory è il percorso della directory in cui è montata la condivisione file di Filestore.
  8. Facoltativo: verifica che la condivisione file di Filestore sia montata:

    df -h --type=nfs
    

    L'output deve contenere una voce simile alla seguente:

    Filesystem        Size    Used  Avail  Use%  Mounted on
    10.0.1.2:/share1  1018G   76M   966G   1%    /mnt/render
    10.0.2.2:/vol3    1018G   76M   966G   1%    /mnt/filestore3
  9. Se devi utilizzare il blocco file NFS, potresti dover impostare le porte utilizzate dai daemon statd e nlockmgr e configurare le regole firewall per aprire tali porte.

Linux: /etc/fstab

Puoi fare in modo che le condivisioni file vengano montate automaticamente sulle VM client durante l'avvio modificando il file /etc/fstab del client:

  1. In Google Cloud Console, vai alla pagina Istanze VM.

    Vai alla pagina Istanze VM

  2. Individua la VM Linux che vuoi utilizzare come client, quindi fai clic su SSH per aprire un terminale su quella VM.

  3. Facoltativo: montaggio di una condivisione file su una VM client con più interfacce di rete tramite una rete secondaria.

    Dettagli (fai clic per espandere)

    Se vuoi montare la condivisione file tramite una rete secondaria, ossia un'interfaccia diversa da nic0, devi modificare il criterio di routing della VM client:

    • In /etc/default/instance_configs.cfg, imposta il flag setup per NetworkInterfaces su false:
      [NetworkInterfaces]
      dhclient_script = /sbin/google-dhclient-script
      dhcp_command =
      ip_forwarding = true
         setup = false
      
    • In /etc/network/interfaces, aggiungi le seguenti righe:

      auto eth1
      iface eth1 inet dhcp
          up ip route add filestore-reserved-address-range via default-gateway-of-nic-to-filestore
      

    dove:

    • filestore-reserved-address-range è l'intervallo di indirizzi prenotato per essere utilizzato dall'istanza di Filestore.
    • default-gateway-of-nic-to-filestore è l'indirizzo IP del gateway predefinito della NIC connessa alla rete VPC condivisa con l'istanza Filestore.

    Per ulteriori informazioni sull'utilizzo di istanze Compute Engine con più schede NIC, consulta Configurazione del routing dei criteri.

  4. Installa NFS:

    Debian/Ubuntu

    Utilizza i comandi seguenti per installare NFS su Debian o Ubuntu.

    sudo apt-get -y update &&
    sudo apt-get install nfs-common

    RHEL/CentOS

    Utilizza i comandi seguenti per installare NFS su Red Hat Enterprise Linux o CentOS.

    sudo yum update &&
    sudo yum install nfs-utils

    SUSE

    Utilizza i comandi seguenti per installare NFS su SUSE.

    sudo zypper update &&
    sudo zypper -n install nfs-client
  5. Crea una directory locale per la mappatura alla condivisione file di Filestore:

    sudo mkdir -p mount-point-directory
    

    dove mount-point-directory è la directory da creare, ad esempio /mnt/filedir.

  6. Apri il file /etc/fstab:

    sudo vim /etc/fstab
    
  7. Aggiungi la seguente riga nel file /etc/fstab:

    ip-address:/file-share mount-point-directory nfs options,_netdev 0 0
    

    dove:

    • ip-address è l'indirizzo IP dell'istanza Filestore.
    • file-share è il nome della condivisione file nell'istanza.
    • mount-point-directory è il percorso su cui vuoi mappare la condivisione file di Filestore.
    • options sono le opzioni di montaggio NFS. Ti consigliamo di mantenere le opzioni di montaggio NFS predefinite, con le seguenti eccezioni:
      • Per il montaggio automatico, ti consigliamo di specificare -o tcp per ridurre la latenza durante il montaggio o lo smontaggio.
      • Se stai montando un'istanza di livello SSD ad alta scalabilità su una VM client che esegue un kernel Linux versione 5.3 o successiva, valuta la possibilità di specificare l'opzione di montaggio nconnect per migliorare le prestazioni NFS. Consigliamo di specificare fino a 7 connessioni per il livello SSD con scalabilità elevata e fino a 2 connessioni per il livello Enterprise. In generale, maggiore è la capacità di condivisione file e minore è il numero di VM client connesse, maggiori saranno le prestazioni per quanto riguarda le connessioni aggiuntive con nconnect.

    Esempio: la seguente riga in /etc/fstab monta la condivisione file vol1 dell'istanza di Filestore con indirizzo IP 10.0.0.2 nella directory dei punti di montaggio /mnt con le opzioni di montaggio predefinite:

    10.0.0.2:/vol1 /mnt nfs defaults,_netdev 0 0
    
  8. Monta tutto in /etc/fstab:

    sudo mount -a
    

    Ora la condivisione file viene montata automaticamente a ogni avvio della VM client.

Linux: autofs

Puoi configurare autofs in modo che monta automaticamente una condivisione file solo quando vi si accede e conservala smontata quando non viene utilizzata. Rispetto al fatto che la condivisione di un file sia montata in modo statico in /etc/fstab, questo metodo contribuisce a preservare le risorse VM del client nelle situazioni in cui il client deve mappare più punti di montaggio.

Installa NFS e autofs sulla VM client

  1. In Google Cloud Console, vai alla pagina Istanze VM.

    Vai alla pagina Istanze VM

  2. Individua la VM Linux che vuoi utilizzare come client, quindi fai clic su SSH per aprire un terminale su quella VM.

  3. Facoltativo: monta una condivisione file su una VM client con più interfaccia di rete tramite una rete secondaria.

    Dettagli (fai clic per espandere)

    Se vuoi montare la condivisione file tramite una rete secondaria, ossia un'interfaccia diversa da nic0, devi modificare il criterio di routing della VM client:

    • In /etc/default/instance_configs.cfg, imposta il flag setup per NetworkInterfaces su false:
      [NetworkInterfaces]
      dhclient_script = /sbin/google-dhclient-script
      dhcp_command =
      ip_forwarding = true
         setup = false
      
    • In /etc/network/interfaces, aggiungi le seguenti righe:

      auto eth1
      iface eth1 inet dhcp
          up ip route add filestore-reserved-address-range via default-gateway-of-nic-to-filestore
      

    dove:

    • filestore-reserved-address-range è l'intervallo di indirizzi riservato utilizzato dall'istanza di Filestore.
    • default-gateway-of-nic-to-filestore è l'indirizzo IP gateway predefinito della scheda NIC connessa alla rete VPC condivisa con l'istanza Filestore.

    Per ulteriori informazioni sull'utilizzo di istanze Compute Engine con più schede NIC, consulta Configurazione del routing dei criteri.

  4. Installa NFS eseguendo i comandi seguenti:

    Debian/Ubuntu

    Utilizza i comandi seguenti per installare NFS su Debian o Ubuntu.

    sudo apt-get -y update &&
    sudo apt-get install nfs-common

    RHEL/CentOS

    Utilizza i comandi seguenti per installare NFS su Red Hat Enterprise Linux o CentOS.

    sudo yum update &&
    sudo yum install nfs-utils

    SUSE

    Utilizza i comandi seguenti per installare NFS su SUSE.

    sudo zypper update &&
    sudo zypper -n install nfs-client
  5. Nella finestra del terminale della VM client, installa autofs:

    Debian/Ubuntu

    sudo apt-get install autofs
    

    RHEL/CentOS

    sudo yum install autofs
    

    SUSE

    sudo zypper -n install autofs
    

Configura autofs per montare dinamicamente la condivisione file alla VM client

  1. Abilita autofs:

    sudo systemctl enable --now autofs
    
  2. Crea una directory locale per la mappatura alla condivisione file di Filestore:

    sudo mkdir -p mount-point-directory
    

    dove mount-point-directory è la directory da creare. Non deve contenere sottodirectory. In questa guida utilizziamo /nfs come directory dei punti di montaggio.

  3. Apri il file /etc/auto.master:

    sudo vim /etc/auto.master
    
  4. Aggiungi la seguente riga nel file /etc/auto.master:

    /nfs /etc/auto.nfs --timeout seconds
    

    dove seconds è la durata in secondi prima del timeout di montaggio. Il valore predefinito è 300. Se imposti questo valore su 0, il supporto per lo smontaggio verrà eseguito entro il giorno autofs.

  5. Crea un file denominato /etc/auto.nfs:

    sudo vim /etc/auto.nfs
    
  6. Aggiungi la seguente riga nel file /etc/auto.nfs:

    mount-point-subdir options ip-address:/file-share
    

    dove:

    • mount-point-subdir è la sottodirectory in /nfs a cui vuoi mappare la condivisione file di Filestore. Questa sottodirectory viene generata in modo dinamico e non deve esistere nella VM client.
    • options sono le opzioni di montaggio NFS. Ti consigliamo di mantenere le opzioni di montaggio NFS predefinite, con le seguenti eccezioni:
      • Per il montaggio automatico, ti consigliamo di specificare -o tcp per ridurre la latenza durante il montaggio o lo smontaggio.
      • Se stai montando un'istanza di livello SSD ad alta scalabilità su una VM client che esegue un kernel Linux versione 5.3 o successiva, valuta la possibilità di specificare l'opzione di montaggio nconnect per migliorare le prestazioni NFS. Consigliamo di specificare fino a 7 connessioni per il livello SSD con scalabilità elevata e fino a 2 connessioni per il livello Enterprise. In generale, maggiore è la capacità di condivisione file e minore è il numero di VM client connesse, maggiori saranno le prestazioni per quanto riguarda le connessioni aggiuntive con nconnect.
      • ip-address è l'indirizzo IP per l'istanza Filestore.
      • file-share è il nome della condivisione file sull'istanza.

    Esempio: la seguente riga in /etc/auto.nfs monta la condivisione file vol1 dell'istanza di Filestore con indirizzo IP 10.0.0.2 nella sottocartella generata dinamicamente file-shares con accesso read/write concesso:

    file-shares -rw 10.0.0.2:/vol1
    

Test della configurazione

  1. Se la condivisione file è montata, devi smontarla:

    sudo umount mount-point-directory
    

    dove mount-point-directory è il percorso a cui è mappata la condivisione file di Filestore.

    Se è presente una voce /etc/fstab che monta la condivisione file all'avvio di sistema, assicurati di rimuoverla.

  2. Ricarica autofs:

    sudo service autofs reload
    
  3. Verifica che la configurazione funzioni:

    ls mount-point-directory/mount-point-subdir
    

    dove:

    • mount-point-directory è la directory dei punti di montaggio indicata nel file /etc/auto.master.
    • mount-point-subdir è la sottodirectory del punto di montaggio indicata nel file /etc/auto.nfs.

    Dal nostro esempio, il comando sarebbe:

    ls /nfs/file-shares
    

    Se il montaggio automatico è configurato correttamente, il sistema monta prima la condivisione file, quindi restituisce i risultati del comando ls. La condivisione file viene smontata automaticamente dopo un periodo di inattività, definita nel valore timeout specificato nel file /etc/auto.master.

Windows

Connettiti alla VM Windows

  1. In Google Cloud Console, vai alla pagina Istanze VM.

    Vai alla pagina Istanze VM

  2. Individua la VM Windows che vuoi utilizzare come client, quindi fai clic su RDP per aprire una connessione desktop remota alla VM. Per ulteriori informazioni, consulta la pagina Connessione alle istanze Windows.

Installa NFS sulla VM Windows

  1. Sulla VM Windows, apri PowerShell come amministratore.
  2. In PowerShell, installa il client NFS:

    Install-WindowsFeature -Name NFS-Client
    
  3. Riavvia l'istanza VM Windows come richiesto, quindi apri una nuova connessione desktop remoto.

Configura lo User-ID utilizzato dal client NFS

  1. In PowerShell, esegui i comandi seguenti per creare due nuove voci di registro, AnonymousUid e AnonymousGid:

    New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" `
        -Name "AnonymousUid" -Value "0" -PropertyType DWORD
    
    New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" `
        -Name "AnonymousGid" -Value "0" -PropertyType DWORD
    
  2. Riavvia il servizio client NFS:

    nfsadmin client stop
    
    nfsadmin client start
    

Mappa la condivisione file alla VM Windows

  1. Esci da PowerShell:

    exit
    
  2. Facoltativo: monta una condivisione file su una VM client con più interfaccia di rete tramite una rete secondaria.

    Dettagli (fai clic per espandere)

    Se vuoi montare la condivisione file tramite una rete secondaria, ossia un'interfaccia diversa da nic0, devi modificare il criterio di routing della VM client. Esegui:

    route -p ^
        add filestore-reserved-address-range ^
        mask address-range-subnet-mask ^
        default-gateway-of-nic-to-filestore
    

    dove:

    • filestore-reserved-address-range è l'intervallo di indirizzi prenotato per essere utilizzato dall'istanza di Filestore.
    • address-range-subnet-mask è la maschera di subnet di filestore-reserved-address-range. Ad esempio, in un intervallo di indirizzi riservati di /29 viene utilizzata la subnet mask 255.255.255.248.
    • default-gateway-of-nic-to-filestore è l'indirizzo IP del gateway predefinito della NIC connessa alla rete VPC condivisa con l'istanza Filestore.

    Esempio:

    route -p add 10.65.21.176 mask 255.255.255.248 10.128.0.1
    

    Per ulteriori informazioni sull'utilizzo di istanze Compute Engine con più schede NIC, consulta Configurazione del routing dei criteri.

  3. Da Command Prompt, mappa la condivisione file a una lettera di unità:

    mount -o mtype=hard filestore-ip:/file-share-name drive-letter:
    

    dove:

    • filestore-ip è l'indirizzo IP dell'istanza Filestore.
    • file-share-name è il nome della condivisione file nell'istanza di Filestore.
    • drive-letter è la lettera dell'unità che vuoi assegnare per la mappatura.

    Esempio

    Il seguente comando mappa la condivisione di file vol1 sull'istanza di Filestore con l'indirizzo IP 10.0.0.2 per generare z: sulla VM Windows client:

    mount -o mtype=hard 10.0.0.2:/vol1 z:
    
  4. Facoltativo: per utilizzare il blocco file NFS, verifica quanto segue:

    1. Assicurati che le regole del firewall siano configurate per tutte le porte NFS richieste, tra cui statd e nlockmgr.

    2. Assicurati che il client NFS di Windows sia configurato con porte riservate utilizzando un comando simile al seguente in PowerShell:

      nfsadmin client config protocol=tcp UseReservedPorts=yes
      nfsadmin client stop
      nfsadmin client start
      

Creazione e montaggio di sottodirectory nella condivisione file

Dopo aver montato la condivisione file su una VM client, puoi creare sottodirectory nella condivisione file, che i client possono montare direttamente, invece di montare l'intera condivisione file:

  1. Per creare una sottodirectory nella condivisione di file montata, esegui:

    sudo mkdir -p mount-point-directory/file-share-sub-dir
    

    dove:

    • mount-point-directory è il percorso a cui mappa la condivisione file.
    • file-share-sub-dir è il percorso della sottodirectory nella condivisione file che vuoi creare.

    Questo comando crea la sottodirectory sia nella VM client che nella condivisione file. Ad esempio, se hai montato la condivisione file 10.0.0.2:/vol1 nella directory /mnt sulla VM client, il comando sudo mkdir -p /mnt/nfs crea 10.0.0.2:/vol1/nfs nella condivisione file e /mnt/nfs sulla VM client.

  2. Facoltativo: se vuoi montare la sottodirectory condivisione file sulla directory sulla VM client in cui è montata la condivisione file, devi prima smontare la condivisione file:

    sudo umount mount-point-directory
    

    dove mount-point-directory è la directory a cui è mappata la condivisione file.

  3. Monta la sottodirectory:

    sudo mount ip-address:/file-share/file-share-sub-dir mount-point-directory
    

    dove:

    • ip-address è l'indirizzo IP per l'istanza Filestore.
    • file-share è il nome della condivisione file sull'istanza.
    • file-share-sub-dir è il percorso della sottodirectory nella condivisione file da montare.
    • mount-point-directory è il percorso su cui vuoi mappare la condivisione file di Filestore.

    Esempio: nel seguente comando:

    sudo mount 10.0.0.2:/vol1/nfs /mnt/nfs
    
    • 10.0.0.2 è l'indirizzo IP dell'istanza Filestore.
    • vol1 è il nome della condivisione file.
    • nfs è una sottodirectory di condivisione file.
    • /mnt/nfs è la directory sulla VM client a cui è mappata la sottodirectory nfs di condivisione file.

Passaggi successivi