Nichtflüchtigen Speicher zu einer TPU-VM hinzufügen

In diesem Dokument wird beschrieben, wie Sie einen nichtflüchtigen Speicher einrichten und an eine TPU-VM anhängen.

Überblick

Eine TPU-VM enthält ein 100-GB-Bootlaufwerk. Für einige Datasets benötigen Sie möglicherweise mehr lokalen Speicher für das Training oder die Vorverarbeitung. Zum Trainieren dieser Modelle können Sie einen nichtflüchtigen Speicher hinzufügen, um die Kapazität des lokalen Laufwerks zu erweitern.

Vorbereitung

Sie müssen ein GCP-Konto und ein Projekt eingerichtet haben, bevor Sie die folgenden Verfahren verwenden. Wenn Sie noch kein Cloud TPU-Projekt eingerichtet haben, folgen Sie der Anleitung unter Konto und Cloud TPU-Projekt einrichten, bevor Sie fortfahren.

Allgemeine Schritte

Dies sind die allgemeinen Schritte zum Einrichten eines nichtflüchtigen Speichers mit einer TPU-VM:

  1. Nichtflüchtigen Speicher erstellen
  2. TPU-VM mit nichtflüchtigem Speicher starten
  3. SSH-Verbindung zur TPU-VM herstellen
  4. Angehängte Laufwerke auflisten
  5. Den angehängten nichtflüchtigen Speicher formatieren
  6. Verzeichnis zum Bereitstellen des nichtflüchtigen Speichers erstellen
  7. Nichtflüchtigen Speicher bereitstellen
  8. Berechtigungen für nichtflüchtigen Speicher festlegen
  9. TPU-VM-Ressourcen und nichtflüchtige Speicherressourcen bereinigen

TPU-VM und nichtflüchtigen Speicher einrichten

  1. Erstellen Sie in einer Cloud Shell einen nichtflüchtigen Speicher:

    $ gcloud compute disks create disk-name \
    --size disk-size  \
    --zone zone \
    --type pd-balanced
    

    Beschreibung der Befehls-Flags

    disk-name
    Ein Name Ihrer Wahl für den nichtflüchtigen Speicher.
    disk-size
    : Die Größe des nichtflüchtigen Speichers in GB.
    zone
    Die Zone, in der der nichtflüchtige Speicher erstellt werden soll. Dies muss dieselbe Zone sein, die zum Erstellen der TPU verwendet wurde.
    type
    Der hinzuzufügende Laufwerkstyp. Unterstützte Typen sind: "pd-standard", "pd-ssd" und "pd-balancing".
  2. Starten Sie eine TPU-VM mit dem nichtflüchtigen Speicher angehängt:

    $ gcloud alpha compute tpus tpu-vm create tpu-name \
    --project project-id \
    --zone=zone \
    --accelerator-type=v3-8 \
    --version=v2-alpha \
    --data-disk source=projects/project-id/zones/zone/disks/disk-name,mode=read-write
    

    Beschreibung der Befehls-Flags

    tpu-name
    Der Name, den Sie für die TPU-Ressourcen ausgewählt haben.
    project
    ist Ihre
    Projekt-ID.
    zone
    Die Zone, in der Sie die Cloud TPU erstellen möchten.
    accelerator-type
    Der Typ der zu erstellenden Cloud TPU.
    version
    Die Version der Cloud TPU-Laufzeit.
    data-disk
    Der Name und der Lese-/Schreibmodus des nichtflüchtigen Speichers, der an die TPU-VM angehängt werden soll.
  3. Stellen Sie eine SSH-Verbindung zur TPU-VM her:

    $ gcloud alpha compute tpus tpu-vm ssh tpu-name --zone zone
    
  4. Listen Sie auf der TPU-VM die an die TPU-VM angehängten Laufwerke auf:

    (vm)$ sudo lsblk
    
    NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    loop0     7:0    0  55.5M  1 loop /snap/core18/1997
    loop1     7:1    0  67.6M  1 loop /snap/lxd/20326
    loop2     7:2    0  32.3M  1 loop /snap/snapd/11588
    loop3     7:3    0  32.1M  1 loop /snap/snapd/11841
    loop4     7:4    0  55.4M  1 loop /snap/core18/2066
    sda       8:0    0   300G  0 disk
    ├─sda1    8:1    0 299.9G  0 part /
    ├─sda14   8:14   0     4M  0 part
    └─sda15   8:15   0   106M  0 part /boot/efi
    sdb       8:16   0    10G  0 disk    # persistent disk
    

    sda ist das Bootlaufwerk für die VM. Der Name des angehängten nichtflüchtigen Speichers hängt davon ab, wie viele nichtflüchtige Speicher an die VM angehängt sind.

  5. Formatieren Sie den angehängten nichtflüchtigen Speicher:

    (vm)$ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
    
  6. Erstellen Sie ein Verzeichnis zum Bereitstellen des nichtflüchtigen Speichers:

    (vm)$ sudo mkdir -p /mnt/disks/persist
    
  7. Stellen Sie den nichtflüchtigen Speicher bereit:

    (vm)$ sudo mount -o discard,defaults /dev/sdb /mnt/disks/persist
  8. Legen Sie die Berechtigungen für den nichtflüchtigen Speicher fest:

    (vm)$ sudo chmod a+w /mnt/disks/persist
    
  9. Wenn Sie den nichtflüchtigen Speicher beim Löschen der TPU-VM löschen möchten, müssen Sie den Status des nichtflüchtigen Speichers für das automatische Löschen mit folgendem Befehl festlegen:

    $ gcloud alpha compute instances set-disk-auto-delete vm-instance \
     --zone=zone \
     --auto-delete \
     --disk=disk-name
    

    Beschreibung der Befehls-Flags

    vm-instance
    Nachdem Sie eine SSH-Verbindung zur TPU-VM hergestellt haben, ändert sich Ihre Shell-Eingabeaufforderung und enthält Ihre Nutzer-ID gefolgt von einem generierten VM-Instanznamen (z. B. pjohnston@t1v-n-...$). Ersetzen Sie vm-instance durch den generierten VM-Instanznamen,
    zone
    Die Zone, in der sich der nichtflüchtige Speicher befindet.
    auto-delete
    Den nichtflüchtigen Speicher automatisch löschen, wenn die TPU-Ressourcen gelöscht werden.
    disk-name
    Ein Name Ihres nichtflüchtigen Speichers.

    Wenn der nichtflüchtige Speicher nicht automatisch gelöscht werden soll, überspringen Sie diesen Befehl. Sie können den nichtflüchtigen Speicher jederzeit mit dem unter Bereinigen angezeigten Befehl entfernen.

Wenn Ihre VM aus irgendeinem Grund heruntergefahren wird, wird möglicherweise der nichtflüchtige Speicher getrennt. Unter Automatische Bereitstellung beim Systemneustart konfigurieren erfahren Sie, wie Ihr nichtflüchtiger Speicher beim VM-Neustart automatisch bereitgestellt werden kann. Weitere Informationen zur Verwaltung von nichtflüchtigen Speichern finden Sie im Dokument zu nichtflüchtigen Speichern.

Bereinigen

  1. Trennen Sie die Verbindung zur Compute Engine-Instanz, sofern noch nicht geschehen:

    (vm)$ exit
    

    Die Eingabeaufforderung sollte nun username@projectname lauten und angeben, dass Sie sich in Cloud Shell befinden.

  2. Löschen Sie Ihre Cloud TPU- und Compute Engine-Ressourcen.

    $ gcloud alpha compute tpus tpu-vm delete tpu-name \
     --zone=zone
    
  3. Prüfen Sie, ob die Ressourcen gelöscht wurden. Führen Sie dazu gcloud list aus. Der Löschvorgang kann einige Minuten dauern. Die Ausgabe von gcloud list sollte keine der von diesem Verfahren erstellten TPU-VM-Ressourcen anzeigen.

    TPU-VM

    $ gcloud alpha compute tpus tpu-vm list --zone=zone
    

    TPU-Knoten

    $ gcloud compute tpus execution-groups list --zone zone
    
  4. Prüfen Sie, ob der nichtflüchtige Speicher beim Löschen der TPU-VM automatisch gelöscht wurde. Listen Sie dazu alle Laufwerke in der Zone auf, in der Sie den nichtflüchtigen Speicher erstellt haben:

    $ gcloud compute disks list --filter="zone:( us-central1-b )"
    

    Wenn der nichtflüchtige Speicher beim Löschen der TPU-VM nicht gelöscht wurde, löschen Sie ihn mit den folgenden Befehlen:

    $ gcloud compute disks delete disk-name \
    --zone zone