Auf dieser Seite finden Sie Schritte zur Fehlerbehebung für einige häufige Probleme und Fehler.
- Bekannte Probleme
- Probleme mit Instanzvorgängen
- Compute Engine-Probleme
- GKE-Probleme
- Probleme mit VPC-Netzwerken
Bekannte Probleme
- Wenn keine Ein-/Ausgabe im Dateisystem erfolgt, wird in den Leistungsdiagrammen die Meldung „Für den ausgewählten Zeitraum sind keine Daten verfügbar“ angezeigt. Das liegt daran, dass Leistungsstatistiken nur generiert werden, wenn E/A-Vorgänge stattfinden. Weitere Informationen zu Messwerten finden Sie unter Instanzen und Vorgänge überwachen.
- Die folgenden Lustre-Funktionen werden nicht unterstützt:
- Clientseitige Datenkompression
- Nichtflüchtiges Client-Caching
- Einige Lustre-Befehle werden nicht unterstützt.
- Es gibt einige Ausnahmen von der POSIX-Konformität.
Probleme mit Instanzvorgängen
In den folgenden Abschnitten werden Probleme im Zusammenhang mit Instanzvorgängen beschrieben.
Vorgang kann nicht in die Warteschlange gestellt werden
Wenn beim Starten eines Vorgangs ein Fehler ähnlich den folgenden angezeigt wird:
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
Dieser Fehler tritt auf, wenn Sie versuchen, einen Vorgang zu starten, während bereits ein anderer Vorgang desselben Typs auf derselben Instanz ausgeführt wird.
- Import/Export:Managed Lustre unterstützt jeweils nur einen aktiven Übertragungsvorgang pro Instanz. Die Warteschlange wird für Übertragungsvorgänge nicht unterstützt.
- Instanzaktualisierung:Mit Managed Lustre ist jeweils nur eine aktive Aktualisierung pro Instanz zulässig. Es kann jedoch ein zusätzlicher Aktualisierungsvorgang in die Warteschlange gestellt werden.
Warten Sie, bis der aktuelle Vorgang abgeschlossen ist, bevor Sie einen neuen starten.
Compute Engine-Probleme
Wenn beim Einbinden eines Managed Lustre-Dateisystems in eine Compute Engine-Instanz Probleme auftreten, führen Sie die folgenden Schritte aus, um das Problem zu diagnostizieren.
Prüfen, ob die Managed Lustre-Instanz erreichbar ist
Prüfen Sie zuerst, ob Ihre Managed Lustre-Instanz von Ihrer Compute Engine-Instanz aus erreichbar ist:
sudo lctl ping IP_ADDRESS@tcp
Informationen zum Abrufen des Werts von IP_ADDRESS finden Sie unter Instanz abrufen.
Bei einem erfolgreichen Ping wird eine Antwort ähnlich der folgenden zurückgegeben:
12345-0@lo
12345-10.115.0.3@tcp
Bei einem fehlgeschlagenen Ping wird Folgendes zurückgegeben:
failed to ping 10.115.0.3@tcp: Input/output error
Wenn der Ping-Befehl fehlschlägt:
Achten Sie darauf, dass sich Ihre verwaltete Lustre-Instanz und Ihre Compute Engine-Instanz im selben VPC-Netzwerk befinden. Vergleichen Sie die Ausgabe der folgenden Befehle:
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)'Die Ausgabe sieht so aus:
https://www.googleapis.com/compute/v1/projects/my-project/global/networks/my-network projects/my-project/global/networks/my-networkDie Ausgabe des
gcloud compute instances describe-Befehls beginnt mithttps://www.googleapis.com/compute/v1/. Alles, was auf diesen String folgt, muss mit der Ausgabe desgcloud lustre instances describe-Befehls übereinstimmen.Prüfen Sie die Firewallregeln und Routingkonfigurationen Ihres VPC-Netzwerk, um sicherzustellen, dass Traffic zwischen Ihrer Compute Engine-Instanz und der Managed Lustre-Instanz zugelassen wird.
LNet-Akzeptanzport prüfen
Verwaltete Lustre-Instanzen können so konfiguriert werden, dass sie GKE-Clients unterstützen. Geben Sie dazu beim Erstellen das Flag --gke-support-enabled an.
Wenn die GKE-Unterstützung aktiviert wurde, müssen Sie LNet auf allen Compute Engine-Instanzen für die Verwendung von accept_port 6988 konfigurieren. Weitere Informationen finden Sie unter LNet für gke-support-enabled-Instanzen konfigurieren.
Führen Sie den folgenden Befehl aus, um festzustellen, ob die Instanz für die Unterstützung von GKE-Clients konfiguriert wurde:
gcloud lustre instances describe INSTANCE_NAME \
--location=LOCATION | grep gkeSupportEnabled
Wenn der Befehl gkeSupportEnabled: true zurückgibt, müssen Sie LNet konfigurieren.
Fehlende Übereinstimmung zwischen Ubuntu-Kernelversion und Lustre-Client
Bei Compute Engine-Instanzen, auf denen Ubuntu ausgeführt wird, muss die Ubuntu-Kernelversion mit der jeweiligen Version der Lustre-Clientpakete übereinstimmen. Wenn Ihre Lustre-Client-Tools fehlschlagen, prüfen Sie, ob Ihre Compute Engine-Instanz automatisch auf einen neueren Kernel aktualisiert wurde.
So prüfen Sie Ihre Kernelversion:
uname -r
Die Antwort sieht in etwa so aus:
6.8.0-1029-gcp
So prüfen Sie die Version Ihres Lustre-Clientpakets:
dpkg -l | grep -i lustre
Die Antwort sieht in etwa so aus:
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)
Wenn die Kernelversionen, die von beiden Befehlen aufgeführt werden, nicht übereinstimmen, müssen Sie die Lustre-Clientpakete neu installieren.
dmesg auf Lustre-Fehler prüfen
Viele Lustre-Warnungen und ‑Fehler werden im Linux-Kernel-Ringpuffer protokolliert. Mit dem Befehl dmesg wird der Kernel-Ringpuffer ausgegeben.
Wenn Sie nach Lustre-spezifischen Nachrichten suchen möchten, verwenden Sie grep in Verbindung mit dmesg:
dmesg | grep -i lustre
Oder suchen Sie nach allgemeineren Fehlern, die möglicherweise damit zusammenhängen:
dmesg | grep -i error
Informationen, die in einer Supportanfrage enthalten sein sollten
Wenn Sie den Mount-Fehler nicht beheben können, sammeln Sie Diagnoseinformationen, bevor Sie eine Supportanfrage erstellen.
sosreport ausführen:Dieses Dienstprogramm erfasst Systemlogs und Konfigurationsinformationen und generiert ein komprimiertes Tarball:
sudo sosreport
Hängen Sie das sosreport-Archiv und alle relevanten Ausgaben von dmesg an Ihre Supportanfrage an.
GKE-Probleme
Bevor Sie die Schritte zur Fehlerbehebung in diesem Abschnitt ausführen, lesen Sie die Einschränkungen beim Herstellen einer Verbindung zu Managed Lustre über GKE.
Aktualisierte Mindestkapazität für Instanzen
Die Mindestkapazität für verwaltete Lustre-Instanzen wurde auf 9.000 GiB aktualisiert. Wenn Sie 9.000 GiB-Instanzen über den verwalteten Lustre-CSI-Treiber erstellen möchten, aktualisieren Sie Ihre Clusterversion auf 1.34.0-gke.2285000 oder höher.
Falsche Leistungsstufe für dynamisch bereitgestellte Lustre-Instanzen
Wenn Sie eine Lustre-Instanz dynamisch bereitstellen, schlägt die Instanzerstellung mit einem InvalidArgument-Fehler für „PerUnitStorageThroughput“ fehl, unabhängig vom in der API-Anfrage angegebenen „PerUnitStorageThroughput“-Wert. Dies betrifft GKE 1.33-Versionen vor 1.33.4-gke.1036000.
Workaround:
Führen Sie ein Upgrade des GKE-Cluster auf Version 1.33.4-gke.1036000 oder höher durch. Wenn Sie den Stable Channel verwenden, ist möglicherweise noch keine neuere Version verfügbar. In diesem Fall können Sie manuell eine Version aus den Kanälen „Regelmäßig“ oder „Schnell“ auswählen, die den Fix enthält.
Kommunikationsports für Managed Lustre
Der Managed Lustre-CSI-Treiber verwendet je nach GKE-Clusterversion und vorhandenen Managed Lustre-Konfigurationen unterschiedliche Ports für die Kommunikation mit Managed Lustre-Instanzen.
Standardport (988): Bei neuen GKE-Clustern mit Version
1.33.2-gke.4780000oder höher verwendet der Treiber standardmäßig Port988für die Lustre-Kommunikation.Legacy-Port (6988): Der Treiber verwendet Port
6988in den folgenden Szenarien:- Frühere GKE-Versionen:Wenn auf Ihrem GKE-Cluster eine Version vor
1.33.2-gke.4780000ausgeführt wird, ist das Flag--enable-legacy-lustre-porterforderlich, wenn Sie den CSI-Treiber aktivieren. Wenn Sie dieses Flag aktivieren, wird ein Portkonflikt mit demgke-metadata-serverauf GKE-Knoten umgangen. - Vorhandene Managed Lustre-Instanzen mit GKE-Unterstützung:Wenn Sie eine Verbindung zu einer vorhandenen Managed Lustre-Instanz herstellen, die mit dem Flag
--gke-support-enablederstellt wurde, müssen Sie--enable-legacy-lustre-porteinfügen, wenn Sie den CSI-Treiber aktivieren, unabhängig von Ihrer Clusterversion. Ohne dieses Flag kann Ihr GKE-Cluster die vorhandene Lustre-Instanz nicht einbinden.
Weitere Informationen zum Aktivieren des CSI-Treibers mit dem Legacy-Port finden Sie unter Lustre-Kommunikationsports.
- Frühere GKE-Versionen:Wenn auf Ihrem GKE-Cluster eine Version vor
Logabfragen
Führen Sie die folgende Abfrage im Log-Explorer aus, um die Logs zu prüfen.
So geben Sie die Knotenserverprotokolle des verwalteten Lustre-CSI-Treibers zurück:
resource.type="k8s_container"
resource.labels.pod_name=~"lustre-csi-node*"
Fehlerbehebung bei der Bereitstellung von Volumes
Wenn der PersistentVolumeClaim (PVC) im Status Pending bleibt und nach 20 bis 30 Minuten kein PersistentVolume (PV) erstellt wird, ist möglicherweise ein Fehler aufgetreten.
PVC-Ereignisse prüfen:
kubectl describe pvc PVC_NAMEWenn der Fehler auf Konfigurationsprobleme oder ungültige Argumente hinweist, prüfen Sie die StorageClass-Parameter.
Erstellen Sie das PVC neu.
Sollte das Problem weiterhin bestehen, wenden Sie sich an Cloud Customer Care.
Fehlerbehebung bei der Volume-Bereitstellung
Nachdem der Pod für einen Knoten geplant wurde, wird das Volume bereitgestellt. Wenn dies fehlschlägt, prüfen Sie die Pod-Ereignisse und Kubelet-Logs.
kubectl describe pod POD_NAME
Probleme bei der Aktivierung von CSI-Treibern
Symptom:
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
oder
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
Ursache:Der CSI-Treiber ist nicht aktiviert oder wird noch nicht ausgeführt.
Lösung:
- Prüfen Sie, ob der CSI-Treiber aktiviert ist.
- Wenn der Cluster vor Kurzem skaliert oder aktualisiert wurde, warten Sie einige Minuten, bis der Treiber funktioniert.
- Wenn der Fehler weiterhin auftritt, suchen Sie in den
lustre-csi-node-Logs nach „Operation not permitted“ (Vorgang nicht zulässig). Dies weist darauf hin, dass die Knotenversion zu alt ist, um Managed Lustre zu unterstützen. Aktualisieren Sie Ihren Knotenpool auf Version1.33.2-gke.1111000oder höher, um dieses Problem zu beheben. - Wenn in den Logs „LNET_PORT mismatch“ angezeigt wird, führen Sie ein Upgrade Ihres Knotenpools durch, um sicherzustellen, dass kompatible Lustre-Kernelmodule installiert sind.
Mountpoint ist bereits vorhanden
Symptom:
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
Ursache:Das Einbinden mehrerer Volumes aus verschiedenen Managed Lustre-Instanzen mit demselben Dateisystemnamen auf einem einzelnen Knoten wird nicht unterstützt.
Lösung:Verwenden Sie für jede Managed Lustre-Instanz einen eindeutigen Dateisystemnamen.
Mounting failed: No such file or directory (Mounting fehlgeschlagen: Datei oder Verzeichnis nicht vorhanden)
Symptom:
MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: No such file or directory
Ursache:Der angegebene Dateisystemname ist falsch oder nicht vorhanden.
Lösung:Prüfen Sie, ob fs_name in Ihrer StorageClass- oder PV-Konfiguration mit der Managed Lustre-Instanz übereinstimmt.
Bereitstellung fehlgeschlagen: Fehler bei Eingabe/Ausgabe
Symptom:
MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: Input/output error
Ursache:Der Cluster kann keine Verbindung zur verwalteten Lustre-Instanz herstellen.
Lösung:
- Prüfen Sie die IP-Adresse der verwalteten Lustre-Instanz.
- Achten Sie darauf, dass sich der GKE-Cluster und die verwaltete Lustre-Instanz im selben VPC-Netzwerk befinden oder richtig per Peering verbunden sind.
Interne Fehler
Symptom: rpc error: code = Internal desc = ...
Lösung:Wenn der Fehler weiterhin auftritt, wenden Sie sich an Cloud Customer Care.
Fehlerbehebung beim Trennen von Volumes
Symptom:
UnmountVolume.TearDown failed for volume "yyy" : rpc error: code = Internal desc = ...
Lösung:
Erzwingen Sie das Löschen des Pods:
kubectl delete pod POD_NAME --forceSollte das Problem weiterhin bestehen, wenden Sie sich an Cloud Customer Care.
Fehlerbehebung beim Löschen von Volumes
Wenn die PV nach dem Löschen des PVC über einen längeren Zeitraum (z.B. mehr als eine Stunde) im Status „Freigegeben“ bleibt, wenden Sie sich an Cloud Customer Care.
Fehlerbehebung bei der Volume-Erweiterung
PVC bleibt in ExternalExpanding hängen
Problem:Der PVC-Status ändert sich nicht in Resizing und in den Ereignissen wird ExternalExpanding angezeigt.
Ursache:Das Feld allowVolumeExpansion fehlt möglicherweise oder ist auf false gesetzt.
Lösung:Achten Sie darauf, dass StorageClass allowVolumeExpansion: true hat.
kubectl get storageclass STORAGE_CLASS_NAME -o yaml
Erweiterung fehlgeschlagen: Ungültiges Argument
Symptom: VolumeResizeFailed: rpc error: code = InvalidArgument ...
Ursache:Die angeforderte Größe ist ungültig, z.B. kein Vielfaches der Schrittgröße oder außerhalb der Grenzwerte.
Auflösung:Prüfen Sie die gültigen Kapazitätsbereiche und aktualisieren Sie den PVC mit einer gültigen Größe.
Erweiterung fehlgeschlagen: Interner Fehler
Symptom: VolumeResizeFailed ... rpc error: code = Internal
Lösung:Wiederholen Sie die Erweiterung, indem Sie den PVC noch einmal anwenden. Wenn die Synchronisierung wiederholt fehlschlägt, wenden Sie sich an Cloud Customer Care.
Frist überschritten
Symptom:VolumeResizeFailed mit DEADLINE_EXCEEDED.
Ursache:Der Vorgang dauert länger als erwartet, wird aber möglicherweise noch ausgeführt.
Lösung:Warten Sie, bis der Vorgang abgeschlossen ist. Der Resizer versucht es automatisch noch einmal. Wenn die Verarbeitung über einen längeren Zeitraum nicht abgeschlossen werden kann (z.B. > 90 Minuten) dauert, wenden Sie sich an den Support.
Kontingent überschritten
Symptom:Die Erweiterung schlägt aufgrund von Kontingentlimits fehl.
Lösung: Fordern Sie eine Kontingenterhöhung oder eine geringere Kapazitätserhöhung an.
Probleme mit VPC-Netzwerk
In den folgenden Abschnitten werden häufige Probleme mit VPC-Netzwerk beschrieben.
Kein Zugriff auf Managed Lustre über ein Peering-Projekt
Wenn Sie von einer VM in einem verbundenen VPC-Netzwerk aus auf Ihre Managed Lustre-Instanz zugreifen möchten, müssen Sie Network Connectivity Center (NCC) verwenden. Mit NCC können Sie mehrere VPC-Netzwerke und lokale Netzwerke mit einem zentralen Hub verbinden, um eine Verbindung zwischen ihnen herzustellen.
Eine Anleitung zum Einrichten von NCC finden Sie in der Network Connectivity Center-Dokumentation.
Bereitstellung von Lustre auf einer VM mit mehreren NICs schlägt fehl
Wenn eine VM mehrere Netzwerkschnittstellen-Controller (NICs) hat und sich die verwaltete Lustre-Instanz in einem VPC-Netzwerk befindet, das mit einer sekundären NIC verbunden ist (z.B. eth1) kann das Bereitstellen der Instanz fehlschlagen. Folgen Sie der Anleitung zum Einbinden mit einer sekundären NIC, um dieses Problem zu beheben.
Verbindung aus dem Subnetzbereich 172.17.0.0/16 nicht möglich
Compute Engine- und GKE-Clients mit einer IP-Adresse im Subnetzbereich 172.17.0.0/16 können keine Managed Lustre-Instanzen einbinden.
Berechtigung zum Hinzufügen von Peering für Dienst servicenetworking.googleapis.com verweigert
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'.
Dieser Fehler bedeutet, dass Sie in Ihrem Nutzerkonto nicht über die IAM-Berechtigung servicenetworking.services.addPeering verfügen.
Unter Zugriffssteuerung mit IAM finden Sie eine Anleitung zum Hinzufügen einer der folgenden Rollen zu Ihrem Konto:
roles/compute.networkAdminoderroles/servicenetworking.networksAdmin
Die zugewiesenen Bereiche können in CreateConnection nicht geändert werden
ERROR: (gcloud.services.vpc-peerings.connect) The operation
"operations/[operation_id]" resulted in a failure "Cannot modify allocated
ranges in CreateConnection. Please use UpdateConnection."
Dieser Fehler wird zurückgegeben, wenn Sie bereits ein VPC-Peering für dieses Netzwerk mit anderen IP-Bereichen erstellt haben. Es gibt zwei mögliche Lösungen:
Vorhandene IP-Bereiche ersetzen:
gcloud services vpc-peerings update \
--network=NETWORK_NAME \
--ranges=IP_RANGE_NAME \
--service=servicenetworking.googleapis.com \
--force
Oder fügen Sie den neuen IP-Bereich der vorhandenen Verbindung hinzu:
Rufen Sie die Liste der vorhandenen IP-Bereiche für das Peering ab:
EXISTING_RANGES="$( gcloud services vpc-peerings list \ --network=NETWORK_NAME \ --service=servicenetworking.googleapis.com \ --format="value(reservedPeeringRanges.list())" \ --flatten=reservedPeeringRanges )Fügen Sie dann den neuen Bereich dem Peering hinzu:
gcloud services vpc-peerings update \ --network=NETWORK_NAME \ --ranges="${EXISTING_RANGES}",IP_RANGE_NAME \ --service=servicenetworking.googleapis.com
IP-Adressbereich aufgebraucht
Wenn die Instanzerstellung mit dem Fehler „Bereich erschöpft“ fehlschlägt:
ERROR: (gcloud.alpha.Google Cloud Managed Lustre.instances.create) FAILED_PRECONDITION: Invalid
resource state for "NETWORK_RANGES_NOT_AVAILABLE": IP address range exhausted
Folgen Sie der VPC-Anleitung, um die vorhandene private Verbindung zu ändern und IP-Adressbereiche hinzuzufügen.
Wir empfehlen eine Präfixlänge von mindestens /20 (1.024 Adressen).