Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Laufwerke und Dateisystem – Übersicht

Diese Seite bietet eine Übersicht über das Container-Optimized OS aus dem Google-Dateisystem und beschreibt, wie Laufwerke bereitgestellt und formatiert werden.

Dateisystem

Das Dateisystemlayout für das Container-Optimized OS-Knoten-Image wurde optimiert, um die Knotensicherheit zu verbessern. Der Boot-Speicherplatz ist in drei Arten von Partitionen aufgeteilt:

  • Root-Partition, die schreibgeschützt bereitgestellt wird
  • Zustandsorientierte Partitionen, die bearbeitbar und zustandsorientiert sind
  • Zustandslose Partitionen, die zwar bearbeitbar sind, deren Inhalte jedoch bei einem Neustart nicht erhalten bleiben

Wenn Sie Container-Optimized OS nutzen, beachten Sie die Partitionierung, falls Sie eigene Services ausführen, die bestimmte "Erwartungen" an das Dateisystemlayout außerhalb von Containern haben.

Das Root-Dateisystem wird zur Sicherung der Systemintegrität schreibgeschützt bereitgestellt. Die Basisverzeichnisse und /mnt/stateful_partition sind jedoch persistent und beschreibbar.

Mit dem Container-Optimized OS-Dateisystem arbeiten

Im Folgenden finden Sie eine Liste der Pfade im Dateisystem des Container-Optimized OS-Knoten-Images sowie deren Attribute und empfohlene Verwendung:

Pfad Attribute Zweck
/
  • Schreibgeschützt
  • Ausführbar
Das Root-Dateisystem wird zur Wahrung der Integrität schreibgeschützt zur Verfügung gestellt. Der Kernel überprüft die Integrität des Root-Dateisystems beim Starten und verweigert den Start, wenn Fehler vorliegen.
/home
/var
  • Bearbeitbar
  • Nicht ausführbar
  • Zustandsorientiert
Diese Pfade dienen zum Speichern von Daten, die für die Lebensdauer des Startdatenträgers bestehen bleiben. Sie werden über /mnt/stateful_partition bereitgestellt.
/var/lib/google
/var/lib/docker
/var/lib/toolbox
  • Bearbeitbar
  • Ausführbar
  • Zustandsorientiert
Diese Pfade gehören zu Arbeitsverzeichnissen für Compute Engine-Pakete (z. B. den Account-Manager-Dienst), Docker bzw. Toolbox.
/var/lib/cloud
  • Bearbeitbar
  • Ausführbar
  • Zustandslos
  • tmpfs
Dieser Pfad ist das Arbeitsverzeichnis des Pakets cloud-init.
/etc
  • Bearbeitbar
  • Nicht ausführbar
  • Zustandslos
  • tmpfs
Enthält normalerweise Ihre Konfiguration. Beispiel: über cloud-init definierte Services vom Typ systemd. Es empfiehlt sich, den gewünschten Status Ihrer Instanzen in cloud-init zu erfassen, da cloud-init zur Anwendung kommt, wenn eine Instanz neu erstellt und wenn eine Instanz neu gestartet wird.
/tmp
  • Bearbeitbar
  • Nicht ausführbar
  • Zustandslos
  • tmpfs
Wird normalerweise als temporärer Speicherbereich verwendet und sollte nicht zum Speichern von nichtflüchtigen Daten verwendet werden.
/mnt/disks
  • Bearbeitbar
  • Ausführbar
  • Zustandslos
  • tmpfs
Sie können nichtflüchtige Speicher in Verzeichnissen unter /mnt/disks bereitstellen.

Laufwerke bereitstellen und formatieren

Wenn das Container-Optimized OS von Google verwendet wird, können Sie nichtflüchtigen Speicher hinzufügen oder eine Instanz mit lokalen SSDs erstellen. Folgen Sie je nach Anwendungsfall der Anleitung Nichtflüchtigen Speicher formatieren und bereitstellen oder Lokales SSD-Gerät formatieren und bereitstellen.

Zum Bereitstellen der Laufwerke erstellen Sie ein Unterverzeichnis unter dem Verzeichnis /mnt/disks. Da /etc/ unter Google Container-Optimized OS zustandslos ist, können Sie /etc/fstab nicht verwenden, um die Laufwerke beim Booten automatisch mithilfe von fsck (Dateisystemkonsistenzprüfung) zu überprüfen und bereitzustellen. Sie können dies jedoch erreichen, indem Sie diese Vorgänge vom Abschnitt bootcmd Ihrer cloud-configausführen. Im folgenden Beispiel wird das Laufwerk DEVICE_ID unter /mnt/disks bereitgestellt.

Erstellen Sie zuerst eine Skriptdatei mit dem Namen FILENAME und folgendem Inhalt:

#cloud-config

bootcmd:
- fsck.ext4 -tvy /dev/DEVICE_ID
- mkdir -p /mnt/disks/MNT_DIR
- mount -t ext4 -O ... /dev/DEVICE_ID /mnt/disks/MNT_DIR

Dabei gilt:

  • DEVICE_ID: Die Geräte-ID des Laufwerks, das Sie formatieren und bereitstellen möchten.
  • MNT_DIR: das Verzeichnis, in dem das Laufwerk bereitgestellt werden soll.

In der Linux-Dokumentation finden Sie alle Optionen, die von den Befehlen fsck.ext4 und mount unterstützt werden.

Im letzten Schritt aktualisieren Sie die VM-Metadaten, um das Skript FILENAME einzuschließen.

Mit dem Flag --metadata-from-file können Sie VM-Metadaten aktualisieren:

So erstellen Sie eine VM:

gcloud compute instances create INSTANCE_NAME \
    --metadata-from-file user-data=FILENAME

Bei einer vorhandenen Instanz

gcloud compute instances add-metadata INSTANCE_NAME 
--metadata-from-file user-data=FILENAME

Dabei gilt:

  • INSTANCE_NAME ist der Name Ihrer VM-Instanz.
  • FILENAMEcode: Der Name der Metadatendatei.