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

Eine TPU-VM enthält ein 100-GB-Bootlaufwerk. In einigen Szenarien benötigt Ihre TPU-VM zusätzlichen Speicher für Training oder Vorverarbeitung. Sie können einen nichtflüchtigen Speicher hinzufügen um die lokale Laufwerkskapazität zu erhöhen.

Übersicht

Ein nichtflüchtiger Speicher, der an eine TPU mit einem einzelnen Gerät (v2-8, v3-8, v4-8 usw.) angehängt ist, kann konfiguriert als read-write oder read-only. Wenn Sie einen nichtflüchtigen Speicher an eine TPU-VM, die Teil eines TPU-Pod ist, wird das Laufwerk an jede TPU-VM angehängt, Pod. Um zu verhindern, dass zwei oder mehr TPU-VMs aus einem Pod auf einen nichtflüchtigen Speicher schreiben alle nichtflüchtigen Speicher, die an eine TPU-VM in einem Pod angehängt sind, als read-only. read-only-Laufwerke eignen sich zum Speichern eines Datasets für die Verarbeitung auf einem TPU-Pod.

Nachdem Sie einen nichtflüchtigen Speicher erstellt und an Ihre TPU-VM angehängt haben, müssen Sie die persistente Festplatte, die angibt, wo im Dateisystem sie auf die zugegriffen werden kann. Weitere Informationen finden Sie unter Laufwerk bereitstellen.

Vorbereitung

Sie müssen ein Google Cloud-Konto und ein Projekt eingerichtet haben, um die mit den folgenden Verfahren. Wenn Sie noch kein Cloud TPU-Projekt eingerichtet haben, Folgen Sie der Anleitung unter Cloud TPU-Umgebung einrichten. bevor Sie fortfahren.

Allgemeine Schritte

So richten Sie eine persistente Festplatte ein:

  1. Nichtflüchtigen Speicher erstellen
  2. Nichtflüchtigen Speicher an eine TPU-VM anhängen
  3. Nichtflüchtigen Speicher bereitstellen
  4. TPU-VM und nichtflüchtige Speicherressourcen bereinigen

TPU-VM und Persistent Disk einrichten

Sie können beim Erstellen der TPU-VM einen nichtflüchtigen Speicher an eine TPU-VM anhängen. Sie können einen nichtflüchtigen Speicher an eine vorhandene TPU-VM anhängen.

Persistent Disk erstellen

Verwenden Sie den folgenden Befehl, um einen nichtflüchtigen Speicher zu erstellen:

  $ 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 dem die persistente Festplatte erstellt werden soll. Dies muss dieselbe Zone sein, in der die TPU erstellt wurde.
type
Die Laufwerkstyp, der hinzugefügt werden soll. Unterstützte Typen sind: pd-standard, pd-ssd oder pd-balanced.

Nichtflüchtigen Speicher anhängen

Sie können einen nichtflüchtigen Speicher an Ihre TPU-VM anhängen, wenn Sie die TPU-VM erstellen oder eine hinzufügen, nachdem die TPU-VM erstellt wurde.

Nichtflüchtigen Speicher beim Erstellen einer TPU-VM anhängen

Verwenden Sie das Flag --data-disk, um beim Erstellen einer TPU-VM einen nichtflüchtigen Speicher anzuhängen. Wenn Sie einen TPU-Pod erstellen, müssen Sie mode=read-only angeben. Wenn Sie Erstellen eines einzelnen TPU-Geräts können Sie mode=read-only oder mode=read-write angeben. Mit dem folgenden Befehl wird eine einzelne TPU erstellt und der Persistent Disk-Modus auf read-write:

  $ gcloud compute tpus tpu-vm create tpu-name \
    --project project-id \
    --zone=zone \
    --accelerator-type=v3-8 \
    --version=tpu-vm-image \
    --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 dem Sie Ihre Cloud TPU erstellen.
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
version
Die TPU-VM-Image für Ihr Framework.
data-disk
Der Name und der Lese-/Schreibmodus des nichtflüchtigen Speichers, an den angehängt werden soll der TPU-VM.

Nichtflüchtigen Speicher an eine vorhandene TPU-VM anhängen

Verwenden Sie den Befehl gcloud alpha compute tpus tpu-vm attach-disk, um ein Persistent Disk zu einer vorhandenen TPU-VM. Weitere Informationen finden Sie in der gcloud. in der Dokumentation.

  $ gcloud alpha 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 dem 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 entweder read-only oder read-write.

Wenn Sie den nichtflüchtigen Speicher beim Löschen der TPU-VM löschen möchten, müssen Sie um den Status für das automatische Löschen der persistenten Festplatte mit folgendem Befehl festzulegen:

$ gcloud 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 die Shell-Eingabeaufforderung Ihre Nutzer-ID gefolgt von einem generierten VM-Instanznamen (z. B. pjohnston@t1v-n-...$). Ersetzen Sie vm-instance durch den generierter VM-Instanzname
zone
Die Zone in dem sich die persistente Festplatte befindet.
auto-delete
Den nichtflüchtigen Speicher automatisch löschen, wenn die TPU-Ressourcen gelöscht.
disk-name
Ein Name Ihres nichtflüchtigen Speichers.

Wenn Ihre VM aus irgendeinem Grund heruntergefahren wird, wird möglicherweise die Verbindung zum nichtflüchtigen Speicher getrennt. Unter Automatische Bereitstellung beim Systemneustart konfigurieren finden Sie weitere Informationen dazu, Nichtflüchtiger Speicher, der beim VM-Neustart automatisch bereitgestellt wird.

Weitere Informationen zum automatischen Löschen eines nichtflüchtigen Speichers finden Sie unter Ändern Sie eine persistente Festplatte.

Nichtflüchtigen Speicher bereitstellen

Wenn Sie von einer TPU-VM aus auf einen nichtflüchtigen Speicher zugreifen möchten, müssen Sie das Laufwerk bereitstellen. Gibt einen Speicherort im TPU-VM-Dateisystem an, an dem sich der nichtflüchtige Speicher befindet auf die zugegriffen werden kann.

  1. Stellen Sie über SSH eine Verbindung zu Ihrer TPU-VM her:

    $ gcloud compute tpus tpu-vm ssh tpu-name --zone zone
    

    Wenn Sie mit einem TPU-Pod arbeiten, gibt es für jede TPU im Pod eine einzige TPU-VM. Der vorherige Befehl funktioniert sowohl für TPU-Geräte als auch für TPU-Pods. Wenn Sie Dieser Befehl verbindet Sie mithilfe von TPU-Pods mit der ersten TPU im Pod. Worker 0 genannt).

  2. Listen Sie auf der TPU-VM die an die TPU-VM angehängten Laufwerke auf:

    (vm)$ sudo lsblk
    

    Die Ausgabe des Befehls lsblk sollte so aussehen:

    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
    

    In diesem Beispiel ist sda das Bootlaufwerk und sdb der Name der neuen eine angehängte Persistent Disk. Der Name der angehängten persistenten Festplatte hängt von wie viele nichtflüchtige Speicher an die VM angehängt sind.

    Wenn Sie einen TPU-Pod verwenden, müssen Sie den nichtflüchtigen Speicher auf allen TPUs bereitstellen VMs in Ihrem Pod Der Name des nichtflüchtigen Speichers sollte für alle TPU-VMs aber nicht garantiert. Wenn Sie z. B. trennen und dann Persistent Disk wieder anhängen, wird der Gerätename erhöht, von sdb bis sdc.

  3. Wenn der Speicher nicht formatiert wurde, formatieren Sie jetzt die angehängte persistente Festplatte:

    (vm)$ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
    
  4. Erstellen Sie ein Verzeichnis, um den nichtflüchtigen Speicher bereitzustellen:

    Wenn Sie ein TPU-Gerät verwenden, führen Sie den folgenden Befehl aus, um ein Verzeichnis zu erstellen um den nichtflüchtigen Speicher bereitzustellen:

    (vm)$ sudo mkdir -p /mnt/disks/persist
    

    Wenn Sie einen TPU-Pod verwenden, führen Sie den folgenden Befehl außerhalb der TPU-VM aus. Dadurch wird das Verzeichnis auf allen TPU-VMs im Pod erstellt.

    (vm)$ gcloud compute tpus tpu-vm ssh $TPU_NAME --worker=all --command="sudo mkdir -p /mnt/disks/persist"
    
  5. Stellen Sie den nichtflüchtigen Speicher bereit:

    Wenn Sie ein TPU-Gerät verwenden, führen Sie den folgenden Befehl aus, um den nichtflüchtigen Speicher bereitzustellen auf Ihrer TPU-VM.

    (vm)$ sudo mount -o discard,defaults /dev/sdb /mnt/disks/persist

    Wenn Sie einen TPU-Pod verwenden, führen Sie den folgenden Befehl außerhalb Ihres TPU-VM Der nichtflüchtige Speicher wird auf allen TPU-VMs in Ihrem Pod bereitgestellt.

    (vm)$ gcloud compute tpus tpu-vm ssh $TPU_NAME --worker=all --command="sudo mount -o discard,defaults /dev/sdb /mnt/disks/persist"

Bereinigen

Löschen Sie Ihre TPU-Ressourcen, wenn Sie sie nicht mehr benötigen.

  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 TPU-VM-Ressourcen anzeigen, die durch dieses Verfahren erstellt wurden.

    $ gcloud compute tpus tpu-vm list --zone=zone
    
  4. Überprüfen Sie, ob die persistente Festplatte automatisch gelöscht wurde, als die Die TPU-VM wurde gelöscht, indem alle Laufwerke in der Zone aufgelistet wurden, in der Sie sie erstellt haben den nichtflüchtigen Speicher:

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

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

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