Fehlerbehebung

Auf dieser Seite finden Sie Schritte zur Fehlerbehebung bei einigen häufigen Problemen und Fehlern.

FAILED-Instanz

Der Status FAILED bedeutet, dass die Instanzdaten verloren gegangen sind und die Instanz gelöscht werden muss.

Parallelstore-Instanzen im Status FAILED werden weiterhin in Rechnung gestellt, bis sie gelöscht werden.

Eine Anleitung zum Abrufen des Status einer Instanz finden Sie unter Instanzen verwalten: Instanz abrufen.

Informationen zum Löschen einer Instanz finden Sie unter Instanzen verwalten: Instanz löschen.

Zeitüberschreitungen bei dfuse- oder Netzwerktests

Wenn beim Bereitstellen Ihrer Parallelstore-Instanz der Befehl dfuse -m eine Zeitüberschreitung verursacht oder Netzwerktestbefehle wie self_test oder daos health net-test eine Zeitüberschreitung verursachen, hat der DAOS-Agent möglicherweise bei der Einrichtung die falsche Netzwerkschnittstelle ausgewählt.

Führen Sie zum Prüfen des DAOS-Agents Folgendes aus:

self_test --use-daos-agent-env -r 1

Wenn der Test ein Verbindungsproblem meldet, müssen Sie möglicherweise Netzwerkschnittstellen ausschließen, die die IP-Adressen in der Liste access_points nicht erreichen können.

  1. Führen Sie ifconfig aus, um die verfügbaren Netzwerkschnittstellen aufzulisten. Eine Beispielausgabe kann mehrere Netzwerkschnittstellen wie eth0, docker0, ens8 und lo enthalten.

  2. Beenden Sie den daos_agent.

  3. Bearbeiten Sie /etc/daos/daos_agent.yml, um die unerwünschten Netzwerkschnittstellen auszuschließen. Entfernen Sie die Kommentarzeichen in der Zeile exclude_fabric_ifaces und aktualisieren Sie die Werte. Die von Ihnen angegebenen Einträge sind spezifisch für Ihre Situation. Beispiel:

    exclude_fabric_ifaces: ["docker0", "ens8", "lo"]
    
  4. Starten Sie den daos_agent neu.

ENOSPC, wenn in der Instanz ungenutzte Kapazität vorhanden ist

Wenn für Ihre Instanz ein minimaler oder (standardmäßig) ausgewogener Striped Storage verwendet wird, können ENOSPC-Fehler auftreten, auch wenn die vorhandenen Dateien nicht die gesamte Kapazität der Instanz nutzen. Das ist wahrscheinlich beim Schreiben großer Dateien der Fall, die in der Regel größer als 8 GiB sind, oder beim Importieren solcher Dateien aus Cloud Storage.

Verwenden Sie das maximale Dateistreifen, um die Wahrscheinlichkeit dieser Fehler zu verringern.

Fehlerbehebung bei der Google Kubernetes Engine

Im folgenden Abschnitt werden einige häufige Probleme und Schritte zur Behebung aufgeführt.

Transport endpoint is not connected in Arbeitslast-Pods

Dieser Fehler ist auf eine dünne Beendigung zurückzuführen. In den meisten Fällen wurde dfuse aufgrund von zu wenig Arbeitsspeicher beendet. Verwenden Sie die Pod-Anmerkungen gke-parallelstore/[cpu-limit|memory-limit], um dem Parallelstore-Sidecar-Container mehr Ressourcen zuzuweisen. Sie können gke-parallelstore/memory-limit: "0" festlegen, um die Speicherbeschränkung für den Sidecar zu entfernen, wenn Sie nicht wissen, wie viel Arbeitsspeicher Sie ihm zuweisen möchten. Hinweis: Dies funktioniert nur mit Standardclustern. Bei Autopilot-Clustern können Sie den Wert 0 nicht verwenden, um die Ressourcenlimits und ‑anfragen des Sidecar-Containers zurückzusetzen. Sie müssen für den Sidecar-Container explizit ein größeres Ressourcenlimit festlegen.

Nachdem Sie die Anmerkungen geändert haben, müssen Sie den Arbeitslast-Pod neu starten. Wenn Sie einer laufenden Arbeitslast Anmerkungen hinzufügen, wird die Ressourcenzuweisung nicht dynamisch geändert.

Pod-Ereigniswarnungen

Wenn Ihre Arbeitslast-Pods nicht gestartet werden können, prüfen Sie die Pod-Ereignisse:

kubectl describe pod POD_NAME -n NAMESPACE

Die folgenden Lösungen gelten für häufige Fehler.

Probleme beim Aktivieren von CSI-Treibern

Häufige Fehler bei der Aktivierung von CSI-Treibern:

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

Diese Warnungen geben an, dass der CSI-Treiber nicht aktiviert oder nicht ausgeführt wird.

Wenn Ihr Cluster gerade skaliert, aktualisiert oder umgestellt wurde, ist diese Warnung normal und sollte nur vorübergehend auftreten. Es dauert einige Minuten, bis die CSI-Treiber-Pods nach Cluster-Vorgängen funktionsfähig sind.

Andernfalls prüfen Sie, ob der CSI-Treiber in Ihrem Cluster aktiviert ist. Weitere Informationen finden Sie unter CSI-Treiber aktivieren. Wenn CSI aktiviert ist, wird auf jedem Knoten ein Pod mit dem Namen parallelstore-csi-node-id angezeigt, der aktiv ist.

Fehler bei MountVolume.SetUp

Fehlercode Pod-Ereigniswarnung Lösung
ResourceExhausted
  • MountVolume.SetUp failed for volume "volume" : rpc error: code = ResourceExhausted desc = the sidecar container failed with error: signal: killed
  • MountVolume.SetUp failed for volume "volume" : rpc error: code = ResourceExhausted desc = the sidecar container terminated due to OOMKilled, exit code: 137
Der dfuse-Prozess wurde beendet. Das wird in der Regel durch OOM verursacht. Sie können das Arbeitsspeicherlimit des Sidecar-Containers mithilfe der Anmerkung gke-parallelstore/memory-limit erhöhen.

Wenn Sie sich nicht sicher sind, wie viel Arbeitsspeicher Sie dem Parallelstore-Sidecar zuweisen möchten, empfehlen wir, gke-parallelstore/memory-limit: "0" festzulegen, um die von Parallelstore auferlegte Speicherbeschränkung aufzuheben.

Abgebrochen
  • MountVolume.SetUp failed for volume "volume" : rpc error: code = Aborted desc = NodePublishVolume request is aborted due to rate limit
  • MountVolume.SetUp failed for volume "volume" : rpc error: code = Aborted desc = An operation with the given volume key key already exists
Der Vorgang zum Bereitstellen des Volumes wurde aufgrund einer Ratenbeschränkung oder vorhandener Vorgänge abgebrochen. Diese Warnung ist normal und sollte nur vorübergehend angezeigt werden.
InvalidArgument MountVolume.SetUp failed for volume "volume" : rpc error: code = InvalidArgument desc = Wenn Sie in der StorageClass oder im Persistent Volume ungültige Argumente angegeben haben, werden im Fehlerprotokoll die Felder mit den ungültigen Argumenten angezeigt. Aktivieren Sie für die dynamische Bereitstellung die Option Speicherklasse. Aktivieren Sie für die statische Bereitstellung die Option Persistent Volume.
FailedPrecondition MountVolume.SetUp failed for volume "volume" : rpc error: code = FailedPrecondition desc = can not find the sidecar container in Pod spec Der Parallelstore-Sidecar-Container wurde nicht bereitgestellt. Prüfen Sie, ob die Pod-Anmerkung gke-parallelstore/volumes: "true" richtig festgelegt ist.

Fehlerbehebung bei VPC-Netzwerken

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 für Ihr Nutzerkonto nicht die IAM-Berechtigung servicenetworking.services.addPeering haben.

Eine Anleitung zum Hinzufügen einer der folgenden Rollen zu Ihrem Konto finden Sie unter Zugriffssteuerung mit IAM:

  • roles/compute.networkAdmin oder
  • roles/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 in diesem Netzwerk mit anderen IP-Bereichen erstellt haben. Es gibt zwei mögliche Lösungen:

Ersetzen Sie die vorhandenen IP-Bereiche:

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

Sie können den neuen IP-Bereich auch der vorhandenen Verbindung hinzufügen:

  1. 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())"
    )
    
  2. Fügen Sie dann dem Peering den neuen Bereich hinzu:

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

IP-Adressbereich aufgebraucht

Problem: Die Instanzerstellung schlägt mit dem Fehler „Bereich erschöpft“ fehl:

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

Lösung: Folgen Sie der VPC-Anleitung, um den IP-Bereich entweder neu zu erstellen oder den vorhandenen IP-Bereich zu erweitern.

Wenn Sie eine Parallelstore-Instanz neu erstellen, müssen Sie den IP-Bereich neu erstellen, anstatt ihn zu erweitern.