Risoluzione dei problemi e problemi noti

Questa pagina include i passaggi per la risoluzione dei problemi relativi ad alcuni errori e problemi comuni.

Problemi noti

  • Quando non si verificano operazioni di I/O sul file system, i grafici del rendimento mostrano il messaggio "Nessun dato disponibile per l'intervallo di tempo selezionato". Questo perché le metriche del rendimento vengono generate solo quando sono presenti operazioni di I/O. Per saperne di più sulle metriche, consulta Monitorare istanze e operazioni.
  • Le seguenti funzionalità di Lustre non sono supportate:
    • Compressione dei dati lato client
    • Memorizzazione nella cache persistente dei client
  • Alcuni comandi di Lustre non sono supportati.
  • Esistono alcune eccezioni alla conformità POSIX.
  • Managed Lustre non può essere montato su VM schermate. Il tentativo di caricare il modulo kernel Lustre in un ambiente Avvio protetto non riesce e viene visualizzato l'errore: ERROR: could not insert 'lustre': Required key not available.

Problemi relativi alle operazioni sulle istanze

Le seguenti sezioni descrivono i problemi relativi alle operazioni sulle istanze.

Impossibile mettere in coda l'operazione

Se visualizzi un errore simile a uno dei seguenti quando tenti di avviare un'operazione:

ERROR: (gcloud.lustre.instances.import-data) ABORTED: unable to queue the operation
ERROR: (gcloud.lustre.instances.export-data) ABORTED: unable to queue the operation
ERROR: (gcloud.lustre.instances.update) ABORTED: unable to queue the operation

Questo errore si verifica quando tenti di avviare un'operazione mentre un'altra operazione dello stesso tipo è già in corso sulla stessa istanza.

  • Importazione/esportazione: Managed Lustre supporta una sola operazione di trasferimento attiva per istanza alla volta. La messa in coda non è supportata per le operazioni di trasferimento.
  • Aggiornamento dell'istanza: Managed Lustre consente un aggiornamento attivo per istanza alla volta e consente di mettere in coda un'operazione di aggiornamento aggiuntiva.

Per risolvere il problema, attendi il completamento dell'operazione corrente prima di avviarne una nuova.

Problemi di Compute Engine

Se riscontri problemi durante il montaggio di un file system Managed Lustre su un'istanza Compute Engine, segui questi passaggi per diagnosticare il problema.

Verificare che l'istanza Managed Lustre sia raggiungibile

Innanzitutto, assicurati che l'istanza Managed Lustre sia raggiungibile dalla tua istanza Compute Engine:

sudo lctl ping IP_ADDRESS@tcp

Per ottenere il valore di IP_ADDRESS, consulta Recuperare un'istanza.

Un ping riuscito restituisce una risposta simile alla seguente:

12345-0@lo
12345-10.115.0.3@tcp

Un ping non riuscito restituisce quanto segue:

failed to ping 10.115.0.3@tcp: Input/output error

Se il ping non va a buon fine:

  • Assicurati che l'istanza Managed Lustre e l'istanza Compute Engine si trovino nella stessa rete VPC. Confronta l'output dei seguenti comandi:

    gcloud compute instances describe VM_NAME \
      --zone=VM_ZONE \
      --format='get(networkInterfaces[0].network)'
    
    gcloud lustre instances describe INSTANCE_NAME \
      --location=ZONE --format='get(network)'
    

    L'output è simile al seguente:

    https://www.googleapis.com/compute/v1/projects/my-project/global/networks/my-network
    projects/my-project/global/networks/my-network
    

    L'output del comando gcloud compute instances describe è preceduto da https://www.googleapis.com/compute/v1/; tutto ciò che segue questa stringa deve corrispondere all'output del comando gcloud lustre instances describe.

  • Esamina le regole firewall e le configurazioni di routing della rete VPC per assicurarti che consentano il traffico tra l'istanza Compute Engine e l'istanza Managed Lustre.

Controllare la porta di accettazione LNet

Le istanze Managed Lustre possono essere configurate per supportare i client GKE specificando il flag --gke-support-enabled al momento della creazione.

Se il supporto di GKE è stato abilitato, devi configurare LNet su tutte le istanze Compute Engine in modo che utilizzino accept_port 6988. Consulta Configurare LNet per le istanze.gke-support-enabled

Per determinare se l'istanza è stata configurata per supportare i client GKE, esegui il seguente comando:

gcloud lustre instances describe INSTANCE_NAME \
  --location=LOCATION | grep gkeSupportEnabled

Se il comando restituisce gkeSupportEnabled: true, devi configurare LNet.

Mancata corrispondenza della versione kernel di Ubuntu con il client Lustre

Per le istanze Compute Engine che eseguono Ubuntu, la versione kernel di Ubuntu deve corrispondere alla versione specifica dei pacchetti client Lustre. Se gli strumenti client Lustre non funzionano, controlla se l'istanza Compute Engine è stata sottoposta all'upgrade automatico a un kernel più recente.

Per controllare la versione kernel:

uname -r

La risposta è simile alla seguente:

6.8.0-1029-gcp

Per controllare la versione del pacchetto client Lustre:

dpkg -l | grep -i lustre

La risposta è simile alla seguente:

ii  lustre-client-modules-6.8.0-1029-gcp 2.14.0-ddn198-1  amd64  Lustre Linux kernel module (kernel 6.8.0-1029-gcp)
ii  lustre-client-utils                  2.14.0-ddn198-1  amd64  Userspace utilities for the Lustre filesystem (client)

Se esiste una mancata corrispondenza tra la versione kernel elencata da entrambi i comandi, devi reinstallare i pacchetti client Lustre.

Controllare dmesg per gli errori di Lustre

Molti avvisi ed errori di Lustre vengono registrati nel buffer circolare del kernel Linux. Il comando dmesg stampa il buffer circolare del kernel.

Per cercare messaggi specifici di Lustre, utilizza grep insieme a dmesg:

dmesg | grep -i lustre

In alternativa, per cercare errori più generali che potrebbero essere correlati:

dmesg | grep -i error

Informazioni da includere in una richiesta di assistenza

Se non riesci a risolvere l'errore di montaggio, raccogli le informazioni di diagnostica prima di creare una richiesta di assistenza.

Esegui sosreport: questa utility raccoglie i log di sistema e le informazioni di configurazione e genera un file tarball compresso:

sudo sosreport

Allega l'archivio sosreport e qualsiasi output pertinente di dmesg alla tua richiesta di assistenza.

Problemi di GKE

Prima di seguire i passaggi per la risoluzione dei problemi in questa sezione, consulta le limitazioni quando ti connetti a Managed Lustre da GKE.

Capacità minima dell'istanza aggiornata

La capacità minima per le istanze Managed Lustre è stata aggiornata a 9000 GiB. Per creare istanze da 9000 GiB utilizzando il driver Managed Lustre CSI, esegui l'upgrade della versione del cluster a 1.34.0-gke.2285000 o versioni successive.

Livello di prestazioni errato per le istanze Lustre di cui è stato eseguito il provisioning dinamico

Quando esegui il provisioning dinamico di un'istanza Lustre, la creazione dell'istanza non riesce e viene visualizzato un errore InvalidArgument per PerUnitStorageThroughput, indipendentemente dal valore perUnitStorageThroughput specificato nella richiesta API. Questo problema riguarda le versioni di GKE 1.33 precedenti alla 1.33.4-gke.1036000.

Soluzione temporanea:

Esegui l'upgrade del cluster GKE alla versione 1.33.4-gke.1036000 o versioni successive. Se utilizzi il canale stabile, una versione più recente potrebbe non essere ancora disponibile. In questo caso, puoi selezionare manualmente una versione dai canali Regolare o Rapido che includa la correzione.

Porte di comunicazione di Managed Lustre

Il driver Managed Lustre CSI utilizza porte diverse per la comunicazione con le istanze Managed Lustre, a seconda della versione del cluster GKE e delle configurazioni Managed Lustre esistenti.

  • Porta predefinita (988): per i nuovi cluster GKE che eseguono la versione 1.33.2-gke.4780000 o versioni successive, il driver utilizza la porta 988 per la comunicazione Lustre per impostazione predefinita.

  • Porta legacy (6988): il driver utilizza la porta 6988 nei seguenti scenari:

    • Versioni precedenti di GKE: se il cluster GKE esegue una versione precedente alla 1.33.2-gke.4780000, è necessario il flag --enable-legacy-lustre-port quando abiliti il driver CSI. L'abilitazione di questo flag risolve un conflitto di porte con gke-metadata-server sui nodi GKE.
    • Istanze Managed Lustre esistenti con supporto GKE: se ti connetti a un'istanza Managed Lustre esistente creata con il flag --gke-support-enabled, devi includere --enable-legacy-lustre-port quando abiliti il driver CSI, indipendentemente dalla versione del cluster. Senza questo flag, il cluster GKE non riuscirà a montare l'istanza Lustre esistente.

    Per saperne di più sull'abilitazione del driver CSI con la porta legacy, consulta Porte di comunicazione Lustre.

Query sui log

Per controllare i log, esegui la seguente query in Esplora log.

Per restituire i log del server dei nodi del driver Managed Lustre CSI:

resource.type="k8s_container"
resource.labels.pod_name=~"lustre-csi-node*"

Risolvere i problemi relativi al provisioning dei volumi

Se PersistentVolumeClaim (PVC) rimane nello stato Pending e non viene creato alcun PersistentVolume (PV) dopo 20-30 minuti, potrebbe essersi verificato un errore.

  1. Controlla gli eventi PVC:

    kubectl describe pvc PVC_NAME
    
  2. Se l'errore indica problemi di configurazione o argomenti non validi, verifica i parametri StorageClass.

  3. Ricrea la PVC.

  4. Se il problema permane, contatta l'assistenza clienti Google Cloud.

Risolvere i problemi relativi al montaggio dei volumi

Dopo che il pod è stato pianificato su un nodo, il volume viene montato. Se l'operazione non riesce, controlla gli eventi del pod e i log kubelet.

kubectl describe pod POD_NAME

Problemi di abilitazione del driver CSI

Sintomo:

MountVolume.MountDevice failed for volume "yyy" : kubernetes.io/csi: attacher.MountDevice failed to create newCsiDriverClient: driver name lustre.csi.storage.gke.io not found in the list of registered CSI drivers

o

MountVolume.SetUp failed for volume "yyy" : kubernetes.io/csi: mounter.SetUpAt failed to get CSI client: driver name lustre.csi.storage.gke.io not found in the list of registered CSI drivers

Causa: il driver CSI non è abilitato o non è ancora in esecuzione.

Risoluzione:

  1. Verifica che il driver CSI sia abilitato.
  2. Se il cluster è stato scalato o sottoposto all'upgrade di recente, attendi qualche minuto prima che il driver diventi operativo.
  3. Se l'errore persiste, controlla i log lustre-csi-node per "Operation not permitted". Questo indica che la versione del nodo è troppo vecchia per supportare Managed Lustre. Per risolvere il problema, esegui l'upgrade del pool di nodi alla versione 1.33.2-gke.1111000 o versioni successive.
  4. Se i log mostrano "LNET_PORT mismatch", esegui l'upgrade del pool di nodi per assicurarti che siano installati moduli kernel Lustre compatibili.

Il punto di montaggio esiste già

Sintomo:

MountVolume.MountDevice failed for volume "yyy" : rpc error: code = AlreadyExists
desc = A mountpoint with the same lustre filesystem name "yyy" already exists on
node "yyy". Please mount different lustre filesystems

Causa: il montaggio di più volumi da istanze Managed Lustre diverse con lo stesso nome di file system su un singolo nodo non è supportato.

Risoluzione: utilizza un nome di file system univoco per ogni istanza Managed Lustre.

Montaggio non riuscito: nessun file o directory corrispondente

Sintomo:

MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: No such file or directory

Causa: il nome del file system specificato non è corretto o non esiste.

Risoluzione: verifica che fs_name nella configurazione StorageClass o PV corrisponda all'istanza Managed Lustre.

Montaggio non riuscito: errore ingresso/uscita

Sintomo:

MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: Input/output error

Causa: il cluster non può connettersi all'istanza Managed Lustre.

Risoluzione:

  1. Verifica l'indirizzo IP dell'istanza Managed Lustre.
  2. Assicurati che il cluster GKE e l'istanza Managed Lustre si trovino nella stessa rete VPC o che siano in peering corretto.

Errori interni

Sintomo: rpc error: code = Internal desc = ...

Risoluzione: se l'errore persiste, contatta l'assistenza clienti Google Cloud.

Risolvere i problemi relativi allo smontaggio dei volumi

Sintomo:

UnmountVolume.TearDown failed for volume "yyy" : rpc error: code = Internal desc = ...

Risoluzione:

  1. Forza l'eliminazione del pod:

    kubectl delete pod POD_NAME --force
    
  2. Se il problema permane, contatta l'assistenza clienti Google Cloud.

Risolvere i problemi relativi all'eliminazione dei volumi

Se il PV rimane nello stato "Released" per un periodo prolungato (ad esempio, più di un'ora) dopo l'eliminazione della PVC, contatta l'assistenza clienti Google Cloud.

Risolvere i problemi relativi all'espansione dei volumi

PVC bloccata in ExternalExpanding

Sintomo: lo stato della PVC non cambia in Resizing e gli eventi mostrano ExternalExpanding.

Causa: il campo allowVolumeExpansion potrebbe essere mancante o impostato su false.

Risoluzione: assicurati che StorageClass abbia allowVolumeExpansion: true.

kubectl get storageclass STORAGE_CLASS_NAME -o yaml

Espansione non riuscita: argomento non valido

Sintomo: VolumeResizeFailed: rpc error: code = InvalidArgument ...

Causa: la dimensione richiesta non è valida (ad esempio, non è un multiplo della dimensione del passo o è al di fuori dei limiti).

Risoluzione: Controlla gli intervalli di capacità validi e aggiorna la PVC con una dimensione valida.

Espansione non riuscita: errore interno

Sintomo: VolumeResizeFailed ... rpc error: code = Internal

Risoluzione: riprova a espandere riapplicando la PVC. Se l'operazione non riesce ripetutamente, contatta l'assistenza clienti Google Cloud.

Scadenza superata

Sintomo: VolumeResizeFailed con DEADLINE_EXCEEDED.

Causa: l'operazione sta richiedendo più tempo del previsto, ma potrebbe essere ancora in corso.

Risoluzione: attendi il completamento dell'operazione. Il ridimensionatore riproverà automaticamente. Se rimane bloccato per un periodo prolungato (ad esempio, > 90 minuti), contatta l'assistenza.

Quota superata

Sintomo: l'espansione non riesce a causa dei limiti di quota.

Risoluzione: Richiedi un aumento della quota o un aumento di capacità inferiore.

Problemi relativi alla rete VPC

Le seguenti sezioni descrivono i problemi comuni relativi alla rete VPC.

Impossibile accedere a Managed Lustre da un progetto in peering

Per accedere all'istanza Managed Lustre da una VM in una rete VPC in peering, devi utilizzare Network Connectivity Center (NCC). NCC ti consente di connettere più reti VPC e reti on-premise a un hub centrale, fornendo connettività tra di esse.

Per istruzioni su come configurare NCC, consulta la documentazione di Network Connectivity Center.

Il montaggio di Lustre su una VM con più NIC non riesce

Quando una VM ha più controller di interfaccia di rete (NIC) e l'istanza Managed Lustre si trova su una rete VPC connessa a una NIC secondaria (ad esempio, eth1), il montaggio dell'istanza potrebbe non riuscire. Per risolvere il problema, segui le istruzioni per il montaggio utilizzando una NIC secondaria.

Impossibile connettersi dall'intervallo di subnet 172.17.0.0/16

I client Compute Engine e GKE con un indirizzo IP nell'intervallo di subnet 172.17.0.0/16 non possono montare le istanze Managed Lustre.

Autorizzazione negata per aggiungere il peering per il servizio servicenetworking.googleapis.com

ERROR: (gcloud.services.vpc-peerings.connect) User [$(USER)] does not have
permission to access services instance [servicenetworking.googleapis.com]
(or it may not exist): Permission denied to add peering for service
'servicenetworking.googleapis.com'.

Questo errore significa che non hai l'autorizzazione IAM servicenetworking.services.addPeering sul tuo account utente.

Consulta Controllo dell'accesso con IAM per istruzioni su come aggiungere uno dei seguenti ruoli al tuo account:

  • roles/compute.networkAdmin o
  • roles/servicenetworking.networksAdmin

Impossibile modificare gli intervalli allocati in CreateConnection

ERROR: (gcloud.services.vpc-peerings.connect) The operation
"operations/[operation_id]" resulted in a failure "Cannot modify allocated
ranges in CreateConnection. Please use UpdateConnection."

Questo errore viene restituito quando hai già creato un peering VPC su questa rete con intervalli IP diversi. Esistono due possibili soluzioni:

Sostituisci gli intervalli IP esistenti:

gcloud services vpc-peerings update \
  --network=NETWORK_NAME \
  --ranges=IP_RANGE_NAME \
  --service=servicenetworking.googleapis.com \
  --force

In alternativa, aggiungi il nuovo intervallo IP alla connessione esistente:

  1. Recupera l'elenco degli intervalli IP esistenti per il peering:

    EXISTING_RANGES="$(
      gcloud services vpc-peerings list \
        --network=NETWORK_NAME \
        --service=servicenetworking.googleapis.com \
        --format="value(reservedPeeringRanges.list())" \
        --flatten=reservedPeeringRanges
    )
    
  2. Quindi, aggiungi il nuovo intervallo al peering:

    gcloud services vpc-peerings update \
      --network=NETWORK_NAME \
      --ranges="${EXISTING_RANGES}",IP_RANGE_NAME \
      --service=servicenetworking.googleapis.com
    

Intervallo di indirizzi IP esaurito

Se la creazione dell'istanza non riesce e viene visualizzato un errore di intervallo di indirizzi IP esaurito:

ERROR: (gcloud.alpha.Google Cloud Managed Lustre.instances.create) FAILED_PRECONDITION: Invalid
resource state for "NETWORK_RANGES_NOT_AVAILABLE": IP address range exhausted

Segui la guida VPC per modificare la connessione privata esistente e aggiungere intervalli di indirizzi IP.

Ti consigliamo una lunghezza del prefisso di almeno /20 (4096 indirizzi).