Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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

Eine TPU-VM enthält ein 100-GB-Bootlaufwerk. In einigen Szenarien benötigen Sie möglicherweise mehr lokalen Speicher für das Training oder die Vorverarbeitung. Sie können einen nichtflüchtigen Speicher hinzufügen, um die lokale Laufwerkskapazität zu erweitern.

Übersicht

Ein nichtflüchtiger Speicher, der an eine TPU mit einem einzelnen Gerät angehängt ist (v2-8, v3-8, v4-8 usw.), kann als read-write oder read-only konfiguriert werden. Wenn Sie einen nichtflüchtigen Speicher an eine TPU-VM anhängen, die Teil eines TPU-Pods ist, wird das Laufwerk an jede TPU-VM in diesem Pod angehängt. Wenn Sie verhindern möchten, dass zwei oder mehr TPU-VMs auf einem Pod gleichzeitig in einen nichtflüchtigen Speicher schreiben, müssen alle nichtflüchtigen Speicher, die an eine TPU-VM in einem Pod angehängt sind, als read-only konfiguriert sein. read-only-Laufwerke sind nützlich, um ein Dataset für die Verarbeitung auf einem TPU-Pod zu speichern.

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

Vorbereitung

Sie müssen ein Google Cloud-Konto und -Projekt einrichten, bevor Sie die folgenden Verfahren verwenden können. 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

Allgemeine Schritte zum Einrichten eines nichtflüchtigen Speichers:

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

TPU-VM und nichtflüchtigen Speicher einrichten

Sie können einen nichtflüchtigen Speicher an eine TPU-VM anhängen, wenn Sie die TPU-VM erstellen. Sie können auch einen nichtflüchtigen Speicher an eine vorhandene TPU-VM anhängen.

Nichtflüchtigen Speicher 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 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-bald“.

Nichtflüchtigen Speicher hinzufügen

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

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 ein einzelnes TPU-Gerät erstellen, können Sie mode=read-only oder mode=read-write angeben. Mit dem folgenden Befehl wird eine einzelne TPU erstellt und der Modus für nichtflüchtigen Speicher auf read-write gesetzt:

  $ 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 Ihre Cloud TPU erstellt werden soll.
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.

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

Verwenden Sie den Befehl gcloud alpha compute tpus tpu-vm attach-disk, um einen nichtflüchtigen Speicher an eine vorhandene TPU-VM anzuhängen. Weitere Informationen und Beispiele finden Sie in der Dokumentation zu gcloud.

  $ 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 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“ lauten.

Wenn Sie den nichtflüchtigen Speicher beim Löschen der TPU-VM löschen möchten, müssen Sie den Status der automatischen Löschung des nichtflüchtigen Speichers mit dem folgenden Befehl festlegen:

$ 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 Ihre Shell-Eingabeaufforderung mit Ihrer User-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
Der nichtflüchtige Speicher wird automatisch gelöscht, wenn die TPU-Ressourcen gelöscht werden.
disk-name
Ein Name Ihres nichtflüchtigen Speichers.

Wenn Ihre VM aus irgendeinem Grund heruntergefahren wird, wird möglicherweise der nichtflüchtige Speicher getrennt. Unter Automatische Bereitstellung beim Systemneustart konfigurieren wird beschrieben, wie der nichtflüchtige Speicher beim Neustart der VM automatisch bereitgestellt wird. Weitere Informationen finden Sie unter Nichtflüchtigen Speicher ändern.

Nichtflüchtigen Speicher bereitstellen

Für den Zugriff auf einen nichtflüchtigen Speicher von einer TPU-VM aus müssen Sie das Laufwerk bereitstellen. Gibt einen Speicherort im TPU-VM-Dateisystem an, auf den der nichtflüchtige Speicher 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
    

    Bei der Arbeit mit einem TPU-Pod gibt es eine TPU-VM für jede TPU im Pod. Der vorherige Befehl funktioniert sowohl für TPU-Geräte als auch für TPU-Pods. Wenn Sie TPU-Pods verwenden, verbinden Sie mit diesem Befehl die erste TPU im Pod (auch als Worker 0 bezeichnet).

  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 in etwa 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 ist der nichtflüchtige Speicher. Der Name des angehängten nichtflüchtigen Speichers hängt davon ab, 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 TPU-VMs in Ihrem Pod bereitstellen. Der Name des nichtflüchtigen Speichers sollte für alle TPU-VMs identisch sein, wird aber nicht garantiert. Wenn Sie beispielsweise den nichtflüchtigen Speicher trennen und wieder anhängen, erhöht sich der Gerätename und ändert sich von sdb in sdc usw.

  3. Wenn das Laufwerk nicht formatiert ist, formatieren Sie den angehängten nichtflüchtigen Speicher jetzt:

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

    Wenn Sie ein TPU-Gerät verwenden, erstellen Sie mit dem folgenden Befehl ein Verzeichnis zum Bereitstellen des nichtflüchtigen Speichers:

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

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

    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 auf Ihrer TPU-VM bereitzustellen.

    (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 Ihrer TPU-VM aus. 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 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