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

In diesem Dokument wird beschrieben, wie Sie einen nichtflüchtigen Speicher (PD) in einer TPU-VM einrichten und anhängen.

Übersicht

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.

Sie können Ihrer TPU-VM einen nichtflüchtigen Speicher hinzufügen, wenn Sie die TPU-VM erstellen, oder einen Speicher nach der Erstellung der TPU-VM hinzufügen.

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. Eine TPU-VM mit einem nichtflüchtigen Speicher starten oder einer vorhandenen TPU-VM einen nichtflüchtigen Speicher hinzufügen
  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 angehängten nichtflüchtigen Speicher oder fügen Sie einer vorhandenen TPU-VM einen nichtflüchtigen Speicher hinzu.

    $ gcloud compute tpus tpu-vm create tpu-name \
    --project project-id \
    --zone=zone \
    --accelerator-type=v3-8 \
    --version=Cloud TPU software version \
    --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
    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 Cloud TPU-Softwareversion für Ihr Framework.
    data-disk
    Der Name und der Lese-/Schreibmodus des nichtflüchtigen Speichers, der an die TPU-VM angehängt werden soll.
    1. Verwenden Sie den folgenden Befehl, um einer vorhandenen TPU-VM einen nichtflüchtigen Speicher hinzuzufügen. Weitere Informationen und Beispiele finden Sie in der Dokumentation zu gcloud.

      $ gcloud compute tpus tpu-vm attach-disk tpu-name \
       --zone=zone \
       --disk=disk-name \
       --mode=disk-mode
      

      Beschreibung der Befehls-Flags

      tpu-name
      Der Name der TPU-Ressourcen.

      zone
      Die Zone, in der sich die Cloud TPU befindet.

      disk-name
      Der Name des nichtflüchtigen Speichers, der an die TPU-VM angehängt werden soll.

      mode
      Der Modus des Laufwerks. Der Modus muss read-only oder read-write sein.

  3. Stellen Sie eine SSH-Verbindung zur TPU-VM her:

    $ gcloud 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 finden Sie unter Nichtflüchtigen Speicher ändern.

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 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 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