Fehlerbehebung

Auf dieser Seite werden Schritte zur Fehlerbehebung beschrieben, die bei Problemen mit Filestore hilfreich sein können.

Beeinträchtigte Leistung

  1. Prüfen Sie, ob Sie den empfohlenen Maschinentyp für die Client-VM verwenden.
  2. Wenn auf Ihrer Client-VM Linux ausgeführt wird, prüfen Sie, ob die Standardoptionen für die Bereitstellung angewendet werden.

  3. Prüfen Sie, ob sich die Client-VM in derselben Region wie die Filestore-Instanz befindet. Durch eine regionsübergreifende Bereitstellung sinkt nicht nur die Leistung, sondern es entstehen auch Netzwerkkosten.

  4. Testen Sie die Leistung Ihrer Filestore-Instanz mit dem fio-Tool.

    Wenn die Testergebnisse eine ungewöhnlich niedrige Leistung ergeben, wenden Sie sich an Ihren Kundenbetreuer. Wenn die Testergebnisse eine ähnliche oder bessere Leistung als erwartet dokumentieren, fahren Sie mit dem nächsten Abschnitt fort.

Anwendungsfälle mit Leistungseinbußen

Die folgenden Anwendungsfälle und Szenarien können zu Leistungseinbußen führen:

Arbeitslasten mit einer großen Anzahl kleiner Dateien

Filestore-Dateifreigaben nutzen die Exportoption sync für die Gewährleistung der Datensicherheit und der Compliance mit dem NFS-Protokoll. Das bedeutet, dass die Filestore-Instanz bei den meisten Datenänderungen auf das Commit für den Speicher wartet, bevor die Anfragen der Client-VM verarbeitet werden. Bei vielen Dateien in einem Vorgang verarbeitet der Client die entsprechenden Vorgänge alle synchron, sodass sich die kumulative Latenz erhöht.

Ein Beispiel hierfür ist das Extrahieren eines Archivs für die Dateifreigabe, etwa von TAR-Dateien. TAR führt beim Extrahieren eines Archivs mit vielen Dateien eine große Anzahl synchroner Vorgänge aus. Infolgedessen wird die Leistung erheblich reduziert.

Wenn Sie eine große Anzahl kleiner Dateien in eine Dateifreigabe kopieren möchten, sollten Sie die Dateierstellung mit einem Tool wie gsutil parallel ausführen:

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

Daten zwischen Cloud Storage und Filestore kopieren

Das Kopieren von Daten aus Cloud Storage in eine Filestore-Instanz mit gsutil wird derzeit sehr langsam ausgeführt. Es gibt dazu bisher keine bekannte Abhilfe.

Filestore reagiert nicht

Planmäßige Wartung

Wenn Filestore einige Minuten erst nicht reagiert und dann wieder reagiert, ist dies möglicherweise auf ein geplantes Wartungsereignis zurückzuführen. Informationen zum SLA von Filestore finden Sie auf der SLA-Seite.

Filestore unterstützt keine vom Kunden definierten Wartungsfenster. Der Zeitplan für Wartungsfenster von Filestore ist ebenfalls nicht für Kunden einsehbar.

Instanz wurde gelöscht, während sie auf dem Client bereitgestellt wurde

Wenn ein Dateivorgang oder ein Unix-Befehl wie df, ls oder ein Lese-/Schreibvorgang nicht mehr reagiert, wurde die Filestore-Instanz wahrscheinlich gelöscht, während sie auf dem Client bereitgestellt wurde.

Prüfen Sie deshalb, ob die Instanz noch vorhanden ist:

    gcloud filestore instances list

Wenn die Instanz nicht mehr aufgeführt wird, können Sie den Vorgang wiederherstellen. Dazu erstellen Sie eine neue Instanz mit der gleichen IP-Adresse und mit dem gleichen Dateifreigabenamen wie die gelöschte Instanz. Wenn die Instanz erstellt ist, wird der nicht reagierende Vorgang mit einem Fehler beendet. Sie können die Dateifreigabe zurücknehmen und die Filestore-Instanz löschen, wenn sie nicht benötigt wird.

Damit dieser Fehler in Zukunft nicht mehr auftritt, heben Sie die Bereitstellung der Filestore-Instanz zuerst auf, bevor Sie sie löschen.

"Kein Speicherplatz mehr auf dem Gerät"

  1. Prüfen Sie mit dem folgenden Befehl auf der Client-VM, ob die Filestore-Instanz ausreichend Inodes hat:

    df -i
    

    Der Befehl gibt in etwa Folgendes zurück:

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

    Jede auf der Dateifreigabe gespeicherte Datei verbraucht einen Inode. Wenn IUse% auf 100 % steht, sind keine kostenlosen inodes vorhanden und Sie können keine weiteren Dateien in der Dateifreigabe speichern, auch wenn Sie die maximal zugewiesene Kapazität nicht erreicht haben. Die Anzahl der Inodes wird mit der Kapazität skaliert. Wenn Sie weitere Inodes hinzufügen möchten, müssen Sie die Kapazität erhöhen.

  2. Wenn noch Inodes vorhanden sind, haben Sie möglicherweise die maximale Anzahl an Einträgen (von Dateien oder von Unterverzeichnissen) für ein Verzeichnis erreicht. Die maximale Anzahl der Einträge in einem Verzeichnis hängt von der Länge des Namens dieser Einträge ab. Das Erreichen dieses Limits wird jedoch als Wahrscheinlichkeit und nicht als feste Grenze behandelt. Sie müssen hierfür die Dateihierarchie tiefer strukturieren und Ihre Einträge in Unterverzeichnisse aufteilen.

Instanz konnte nicht erstellt werden

Fehler PERMISSION DENIED beim Erstellen einer Filestore-Instanz

  1. Prüfen Sie, ob die Filestore API aktiviert ist:

    gcloud services enable file.googleapis.com

  2. Prüfen Sie, ob Sie die Rolle roles/file.editor haben. Weitere Informationen finden Sie unter IAM-Rollen und -Berechtigungen.

  3. Wenn der Fehler weiterhin auftritt, wurde möglicherweise die Rolle file.serviceAgent vom Filestore-Dienstkonto entfernt. Dies können Sie mit folgendem Befehl prüfen:

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

    Dabei gilt:

    • project-name ist der Name Ihres Google Cloud-Projekts.
    • project-id ist die ID-Nummer Ihres Google Cloud-Projekts.

    Die Ausgabe sollte in etwa so aussehen:

    ROLE
    roles/file.serviceAgent
    

    Wenn roles/file.serviceAgent nicht aufgeführt ist, können Sie die Rolle durch folgende Eingabe wiederherstellen:

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

    Dabei ist project-id die ID-Nummer Ihres Google Cloud-Projekts.

Beim Erstellen einer Instanz wird Fehlercode 13 ausgegeben

Das Auftreten von Fehlercode 13 bei der Instanzerstellung kann verschiedene Ursachen haben. Der häufigste Grund ist, dass Filestore ein internes Netzwerkkontingent erreicht hat.

Für jedes VPC-Netzwerk, für das Sie eine Filestore-Instanz erstellen, muss Filestore ein internes Netzwerk anlegen, das per Peering mit diesem VPC-Netzwerk verbunden ist. Diese internen Netzwerke bleiben erhalten, auch wenn die zugehörigen Filestore-Instanzen und VPC-Netzwerke gelöscht werden.

Wenn die Anzahl interner Netzwerke für ein Projekt 50 erreicht, können von Filestore keine neuen internen Netzwerke mehr erstellt werden. Damit wird verhindert, dass Filestore-Instanzen in neuen VPC-Netzwerken angelegt werden. Bei einem entsprechenden Versuch wird ein Fehler ausgegeben.

Error code 13, message: an internal error has occurred

Die einzige Möglichkeit zum Löschen der internen Netzwerke besteht darin, die Filestore API zu deaktivieren und anschließend wieder zu aktivieren:

gcloud services disable file.googleapis.com

gcloud services enable file.googleapis.com

Wenn dies nicht möglich ist, weil Sie die Filestore-Instanzen benötigen und deshalb nicht löschen können, wenden Sie sich an Ihren Kundenbetreuer, damit die Peering-Netzwerke manuell gelöscht werden.

Wenn Sie VPC-Netzwerke und Filestore-Instanzen regelmäßig löschen und erstellen müssen, gibt es zwei Möglichkeiten, das Überschreiten Ihres Netzwerkkontingents zu vermeiden:

  1. Sie verwenden beim Erstellen eines VPC-Netzwerks den gleichen Namen wie für ein vorheriges Netzwerk, das für die Erstellung der Filestore-Instanz genutzt wurde.

  2. Sie nutzen im Turnus die VPC-Netzwerke in einem Pool von maximal 50 VPC-Netzwerken, anstatt sie zu löschen und neu zu erstellen.

Dateifreigabe kann nicht bereitgestellt werden

Berechtigung beim Bereitstellen einer Dateifreigabe wurde verweigert

Prüfen Sie, ob für die Instanz NFS-Exportoptionen aufgeführt sind:

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

Dabei gilt:

  • instance-id ist die Instanz-ID der Filestore-Instanz.
  • zone ist die Zone, in der sich die Filestore-Instanz befindet.

Der Befehl gibt in etwa Folgendes zurück:

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

Wenn nfsExportOptions aufgeführt ist, prüfen Sie, ob die IP-Adresse Ihres Clients innerhalb einem der unter ipRanges aufgeführten Bereiche für den erwarteten accessMode liegt. Ist dies nicht der Fall, müssen Sie die NFS-Exportoptionen bearbeiten. Eine Anleitung dazu finden Sie unter Instanzen bearbeiten.

Eine Dateifreigabe kann nicht in App Engine bereitgestellt werden

Filestore unterstützt App Engine nicht.