Risolvere i problemi

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

Questa pagina mostra i passaggi per la risoluzione dei problemi, utili in caso di problemi nell'utilizzo di Filestore.

Prestazioni lente

  1. Assicurati di utilizzare il tipo di macchina consigliato per la VM client.
  2. Se la VM client esegue Linux, verifica di utilizzare le opzioni di montaggio predefinite.

  3. Assicurati che la VM client si trovi nella stessa area geografica dell'istanza di Filestore. Il montaggio tra regioni diverse non solo riduce le prestazioni, ma comporta anche un costo di rete.

  4. Assicurati che la tua istanza di Filestore non abbia raggiunto o abbia raggiunto la capacità massima. Quando la capacità è quasi piena, l'eventuale spazio rimanente è molto frammentato, il che rallenta le operazioni di lettura e scrittura. La quantità di spazio libero necessario per evitare questo scenario dipende dal caso. Ti consigliamo di configurare avvisi di spazio sul disco in esaurimento.

  5. Testa le prestazioni dell'istanza di Filestore utilizzando lo strumento fio.

    Se i risultati del test mostrano un rendimento anomalo, contatta il tuo account rappresentativo. Se i risultati del test mostrano un rendimento simile o superiore al previsto, vai alla sezione successiva.

Casi d'uso che causano prestazioni lente

Di seguito sono riportati alcuni casi d'uso e scenari che causano un rendimento scarso:

Carichi di lavoro con volumi elevati di file di piccole dimensioni

Le condivisioni file di Filestore utilizzano l'opzione di esportazione sync per la sicurezza dei dati e la conformità del protocollo NFS. Per la maggior parte delle operazioni di modifica dei dati, l'istanza di Filestore attende che i dati vengano impegnati nello spazio di archiviazione prima di rispondere alle richieste dalla VM client. Quando in un'operazione sono coinvolti molti file, il client esegue una lunga serie di operazioni sincrone e la latenza cumulativa viene sommata.

Un esempio di questo scenario si verifica quando si estrae un archivio nella condivisione file, ad esempio nel caso di file tar. TAR esegue molte operazioni sincrone in una serie quando estrae un archivio contenente molti file. Di conseguenza, le prestazioni si riducono.

Se stai cercando di copiare molti file di piccole dimensioni in una condivisione file, prova a caricare in contemporanea la creazione con uno strumento come gsutil:

mkdir -p /mnt/nfs/many_files_rsync/
time gsutil -m -q rsync -rp many_files /mnt/nfs/many_files_rsync/

Copia di dati tra Cloud Storage e Filestore

Latenza durante il montaggio e lo smontaggio di una condivisione file

Quando installi una condivisione file utilizzando le opzioni di montaggio predefinite, il comando di montaggio tenta di rilevare il metodo di trasporto supportato dall'istanza di Filestore, che introduce una latenza di tre secondi.

Il daemon mountd prova prima a utilizzare UDP, che Filestore non supporta. Una volta scaduto il tentativo iniziale, torna a TCP. Per ignorare questo processo di rilevamento ed eliminare la latenza aggiunta, puoi specificare l'opzione di montaggio tcp, ad esempio:

sudo mount -o tcp 10.0.0.2:/vol1 /mnt/nfs

Questa opzione di montaggio è particolarmente importante se vuoi eseguire il montaggio automatico con autofs.

Filestore non risponde

L'istanza Filestore non risponde alle richieste ping o traceroute

Le istanze Filestore non rispondono alle richieste ping o traceroute perché Filestore non consente ICMP.

Per verificare la connettività a un'istanza Filestore, puoi eseguire showmount dal client:

sudo showmount -e filestore-ip

L'istanza di Filestore risponde con il proprio file system esportato, ad esempio:

Export list for 10.139.19.98:
/vol1 192.168.0.0/16,172.16.0.0/12,10.0.0.0/8

Puoi anche verificare se il client può raggiungere le informazioni RPC di Filestore eseguendo queste operazioni:

sudo rpcinfo -p <filestore-ip>

La risposta appare come segue:

program vers proto   port  service
 100000    4   tcp    111  portmapper
 100000    3   tcp    111  portmapper
 100000    2   tcp    111  portmapper
 100000    4   udp    111  portmapper
 100000    3   udp    111  portmapper
 100000    2   udp    111  portmapper
 100024    1   udp   2046  status
 100024    1   tcp   2046  status
 100003    3   tcp   2049  nfs
 100227    3   tcp   2049
 100021    1   udp   4045  nlockmgr
 100021    3   udp   4045  nlockmgr
 100021    4   udp   4045  nlockmgr
 100021    1   tcp   4045  nlockmgr
 100021    3   tcp   4045  nlockmgr
 100021    4   tcp   4045  nlockmgr
 100005    3   udp   2050  mountd
 100005    3   tcp   2050  mountd

Manutenzione pianificata

Di tanto in tanto, Filestore non risponde per alcuni minuti e poi diventa di nuovo reattivo a causa di un evento di manutenzione pianificato. Per lo SLA (accordo sul livello del servizio) di Filestore, consulta la pagina SLA.

Filestore non supporta i periodi di manutenzione definiti dal cliente. Il programma dei periodi di manutenzione per Filestore non è inoltre disponibile per i clienti.

L'istanza è stata eliminata mentre era ancora montata al client

Se un'operazione su un file o un comando unix come df, ls o qualsiasi operazione di lettura/scrittura smette di rispondere, è probabile che l'istanza di Filestore sia stata eliminata mentre era ancora montata sul client.

Verifica che l'istanza esista ancora:

    gcloud filestore instances list

Se l'istanza non è più elencata, puoi recuperare il controllo creando una nuova istanza con lo stesso indirizzo IP e lo stesso nome di condivisione file dell'istanza che è stata eliminata. Una volta creata l'istanza, l'operazione non risponde con un errore. Se non hai bisogno dell'istanza Filestore, puoi smontare la condivisione file ed eliminarla.

Per evitare che questo problema si verifichi in futuro, assicurati di smontare l'istanza di Filestore prima di eliminarla.

L'istanza mostra lo stato REPAIRING

L'istanza di Filestore è in stato non integro a causa di cause interne che esulano dal controllo dell'utente e vengono automaticamente riparate. L'istanza non è disponibile durante questo periodo e non sono necessari ulteriori interventi da parte tua.

Problemi di capacità

"Nessuno spazio rimanente sul dispositivo"

Controlla se l'istanza Filestore ha un numero sufficiente di inodi eseguendo il comando seguente sulla VM client:

df -i

Il comando restituisce un testo simile al seguente:

Filesystem           Inodes        IUsed      IFree         IUse%  Mounted on
10.0.0.2:/vol1    134217728        13         134217715     1%     /mnt/test

Ogni file archiviato nella condivisione file consuma un solo inodo. Se IUse% raggiunge il 100%, non puoi archiviare altri file nella condivisione file anche se non hai raggiunto la capacità massima allocata. Il numero di inodi scala con la capacità. Se vuoi aggiungere altri inodi, devi aggiungere più capacità.

Le istanze di livello Enterprise e High Scale SSD hanno un utilizzo massimo della capacità di circa l'89% della capacità di cui è stato eseguito il provisioning. La capacità rimanente è prenotata per operazioni interne e risorse. Per maggiori dettagli, consulta i problemi noti.

I comandi "df" e "du" riportano quantità diverse di spazio su disco libero

Quando un file aperto da un processo in esecuzione viene eliminato, lo spazio su disco utilizzato dal file non viene liberato fino alla chiusura del file. Il comando df tiene conto dello spazio utilizzato dai file aperti eliminati, al contrario del comando du. Questa differenza di calcolo è il motivo per cui il comando du spesso mostra più spazio libero rispetto a df.

Per visualizzare i file eliminati ancora aperti da un processo in esecuzione, esegui:

lsof | grep deleted

Impossibile creare un'istanza

PERMISSION DENIED durante la creazione di un'istanza Filestore

  1. Verifica se l'API Filestore è abilitata:

    gcloud services enable file.googleapis.com
    
  2. A ogni istanza di Filestore deve essere associato un intervallo di indirizzi IP che non si sovrapponga a un altro intervallo in uso. Per un elenco dettagliato delle restrizioni, consulta la sezione Configurare un intervallo di indirizzi IP riservati.

  3. Verifica di avere il ruolo roles/file.editor. Per i dettagli, consulta Ruoli e autorizzazioni IAM.

  4. Se continui a riscontrare l'errore, è possibile che l'account di servizio di Filestore abbia rimosso il ruolo file.serviceAgent. Per verificare se si tratta di questo problema, esegui:

    gcloud projects get-iam-policy project-id-or-number  \
        --flatten="bindings[].members" \
        --format='table(bindings.role)' \
        --filter="bindings.members:service-project-number@cloud-filer.iam.gserviceaccount.com"
    

    dove:

    • project-id-or-number è l'ID o il numero del tuo progetto Google Cloud.
    • project-number è il numero del tuo progetto Google Cloud.

    Il comando dovrebbe restituire un risultato simile al seguente:

    ROLE
    roles/file.serviceAgent
    

    Se roles/file.serviceAgent non è presente nell'elenco, puoi ripristinarlo eseguendo questo comando:

    gcloud projects add-iam-policy-binding project-id-or-number  \
        --member serviceAccount:service-project-number@cloud-filer.iam.gserviceaccount.com  \
        --role roles/file.serviceAgent
    

Errore di System limit for internal resources has been reached durante la creazione di un'istanza

Questo errore è causato dal fatto che Filestore ha raggiunto una quota di rete interna. Per ogni rete VPC su cui crei un'istanza di Filestore, Filestore deve creare una rete interna che esegua il peering con quella rete. Queste reti interne vengono preservate anche quando vengono eliminate le istanze Filestore e le reti VPC associate.

Quando il numero di reti interne raggiunge 49 per un progetto, Filestore non è più in grado di creare nuove reti interne, il che ti impedisce di creare istanze Filestore su nuove reti VPC. Se provi a farlo, verrà restituito uno dei seguenti errori:

System limit for internal resources has been reached. Please request to adjust limit here: https://forms.gle/PFPJ2QD4KnCHzYEx9

Puoi cancellare le reti interne disattivando e riattivando l'API Filestore.

gcloud services disable file.googleapis.com

gcloud services enable file.googleapis.com

Se non puoi disabilitare l'API perché hai istanze Filestore che non puoi eliminare o non vuoi perdere la quota che ti è stata concessa tramite richieste di aumento della quota, puoi compilare il seguente modulo per modificare i limiti di rete:

https://forms.gle/PFPJ2QD4KnCHzYEx9

Se devi eliminare e creare regolarmente reti VPC e istanze Filestore, esistono due modi per evitare di esaurire la quota di rete:

  • Quando crei una rete VPC, utilizza lo stesso nome di una rete precedente che è stata utilizzata per la creazione dell'istanza Filestore.

  • Scorri un pool di non più di 49 reti VPC anziché eliminarle e poi ricrearle.

Impossibile montare la condivisione file

La mia VM o il mio pod GKE non può accedere a Filestore

Verifica che l'istanza di Filestore sia raggiungibile (ping e traceroute non sono supportate) eseguendo:

sudo showmount -e <filestore-ip>

Il comando dovrebbe rispondere con un elenco di file system esportati. Quindi, controlla se il client può raggiungere le informazioni RPC di Filestore eseguendo:

sudo rpcinfo -p <filestore-ip>

Se l'istanza di Filestore non è raggiungibile, le cause più comuni includono le impostazioni di rete configurate in modo errato o le impostazioni ACL oppure stai tentando di montare l'istanza sbagliata.

  1. Controlla se il controllo dell'accesso basato su IP è abilitato e se l'indirizzo IP del client è limitato. Puoi trovare i dettagli qui.
  2. Verifica le impostazioni del firewall per assicurarti che le porte richieste siano aperte. Per maggiori dettagli, consulta la pagina sulla configurazione delle regole firewall.
  3. Se stai tentando di accedere a Filestore da un cluster GKE e visualizzi l'errore mount.nfs: access denied by server while mounting ..., consulta Impossibile accedere alla condivisione file dai cluster GKE.

Autorizzazione negata per il tentativo di montare una condivisione file

Conferma se sono presenti Opzioni di esportazione NFS per l'istanza:

gcloud filestore instances describe instance-id \
    --zone=zone

dove:

  • instance-id è l'ID istanza di Filestore.
  • zone è la zona in cui si trova l'istanza di Filestore.

Il comando restituisce un testo simile al seguente:

createTime: '2019-10-11T17:28:23.340943077Z'
fileShares:
- capacityGb: '1024'
  name: vol1
  nfsExportOptions:
  - accessMode: READ_WRITE
    ipRanges:
    - 128.0.0.0/29
    squashMode: NO_ROOT_SQUASH
name: projects/yourproject/locations/us-central1-c/instances/nfs-server
networks:
- ipAddresses:
  - 10.0.0.2
  modes:
  - MODE_IPV4
  network: default
  reservedIpRange: 10.0.0.0/29
state: READY
tier: BASIC_HDD

Se nfsExportOptions è presente nell'elenco, controlla se l'indirizzo IP del tuo client è compreso in uno degli intervalli riportati in ipRanges per l'elemento accessMode previsto. In caso contrario, devi modificare le opzioni di esportazione di NFS.

Impossibile montare una condivisione file su App Engine

Filestore non supporta App Engine.

Impossibile montare una condivisione file da un cluster GKE

Non è possibile montare direttamente le condivisioni file di Filestore ai cluster GKE. Devi invece configurare un volume permanente e una PVC.

Impossibile accedere alla condivisione file dai cluster GKE

Per scoprire di più sulla risoluzione dei problemi relativi a Kubernetes o Google Kubernetes Engine, puoi anche consultare la guida alla risoluzione dei problemi di Kubernetes e la guida alla risoluzione dei problemi di GKE.

Errore: output: mount.nfs: accesso negato dal server durante il montaggio di x.x.x.x:/nome-condivisione-file

Assicurati che i valori di PV spec.nfs.path e spec.nfs.server corrispondano rispettivamente al nome della condivisione file e all'indirizzo IP dell'istanza Filestore.

Esempio:

Se la condivisione file è denominata vol1 e l'indirizzo IP dell'istanza di Filestore è 10.0.0.2, il PV spec.nfs.path e spec.nfs.server devono corrispondere a questi valori:

apiVersion: v1
kind: PersistentVolume
metadata:
 name: fileserver
spec:
 capacity:
   storage: 2T
 accessModes:
 - ReadWriteMany
 nfs:
   path: /vol1
   server: 10.0.0.2

Impossibile disabilitare l'API Filestore

Assicurati di eliminare tutte le risorse correlate a Filestore, ad esempio istanze di Filestore e backup. Non puoi disabilitare l'API Filestore durante il deployment delle istanze Filestore.

Errore: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges.

Per una determinata connessione privata, se esaurisci lo spazio di indirizzi IP allocati, Google Cloud restituisce questo errore: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges..

Per informazioni dettagliate su come risolvere questo problema, vedi Esaurimento dell'intervallo di indirizzi IP.