Langlebigen Blockspeicher an eine TPU-VM anhängen
Eine TPU-VM enthält ein 100-GiB-Bootlaufwerk. In einigen Fällen benötigt Ihre TPU-VM möglicherweise zusätzlichen Speicher für das Training oder die Vorverarbeitung. Sie können ein Google Cloud Hyperdisk- oder Persistent Disk-Volume hinzufügen, um die Kapazität des lokalen Laufwerks zu erweitern.
Für die höchste Leistung und erweiterte Funktionen empfiehlt Google die Verwendung von Hyperdisk, sofern diese Option für Ihre TPU verfügbar ist. Verwenden Sie andernfalls die Option „Persistent Disk“. Weitere Informationen zu Blockspeicheroptionen in der Compute Engine finden Sie unter Datenträgertyp auswählen.
TPU-Unterstützung für Hyperdisk und Persistent Disk
In der folgenden Tabelle sind die unterstützten Laufwerkstypen für jede TPU-Version aufgeführt:
TPU-Version | Unterstützte Laufwerktypen |
---|---|
v6e | Hyperdisk Balanced Hyperdisk ML |
v5p | Abgestimmter nichtflüchtiger Speicher |
v5e | Abgestimmter nichtflüchtiger Speicher |
v4 | Abgestimmter nichtflüchtiger Speicher |
v3 | Abgestimmter nichtflüchtiger Speicher |
v2 | Abgestimmter nichtflüchtiger Speicher |
Zugriffsmodi
Sie können ein an eine TPU angeschlossenes Laufwerk im Modus „Einzelner Autor“ oder „Nur-Lese“ konfigurieren, wie in der folgenden Tabelle dargestellt:
Zugriffsmodus | Beschreibung | Wert in der Compute Engine API | Wert in der Cloud TPU API | Unterstützte Laufwerktypen |
---|---|---|---|---|
Modus für einzelne Autoren | Dies ist der Standardzugriffsmodus. Das Laufwerk kann jederzeit an maximal eine Instanz angehängt werden. Die Instanz hat Lese- und Schreibzugriff auf das Laufwerk. | READ_WRITE_SINGLE |
read-write |
|
Schreibgeschützt | Ermöglicht das gleichzeitige Anhängen an mehrere Instanzen im Lesemodus. Instanzen können in diesem Modus nicht auf das Laufwerk schreiben. Erforderlich für die schreibgeschützte Freigabe. | READ_ONLY_MANY |
read-only |
|
Sie können ein Laufwerk, das an eine TPU mit einem einzelnen Host (z. B. v6e-8, v5p-8 oder v5litepod-8) angehängt ist, im Modus „Einzelner Autor“ oder „Schreibgeschützt“ konfigurieren.
Wenn Sie ein Laufwerk an eine Multi-Host-TPU anhängen, wird es an jede VM in dieser TPU angehängt. Damit zwei oder mehr TPU-VMs nicht gleichzeitig auf ein Laufwerk schreiben, müssen Sie alle an eine TPU mit mehreren Hosts angehängten Laufwerke als schreibgeschützt konfigurieren. Lesezugriffslaufwerke eignen sich zum Speichern eines Datensatzes zur Verarbeitung auf einem TPU-Speicherbereich.
Vorbereitung
Sie müssen ein Google Cloud -Konto und ein Projekt eingerichtet haben, bevor Sie die folgenden Verfahren verwenden. Weitere Informationen finden Sie unter Cloud TPU-Umgebung einrichten.
Laufwerk erstellen
Verwenden Sie den folgenden Befehl, um einen Datenträger zu erstellen:
$ gcloud compute disks create DISK_NAME \ --size DISK_SIZE \ --zone ZONE \ --type DISK_TYPE
Beschreibung der Befehls-Flags
DISK_NAME
- Name des neuen Laufwerks.
DISK_SIZE
- Die Größe des neuen Laufwerks. Der Wert muss eine ganze Zahl sein, gefolgt von der Größeneinheit GiB für Gibibyte oder TiB für Tebibyte. Wenn keine Größeneinheit angegeben ist, wird von GB ausgegangen.
ZONE
- Der Name der Zone, in der das neue Laufwerk erstellt werden soll. Dies muss dieselbe Zone sein, die zum Erstellen der TPU verwendet wurde.
DISK_TYPE
- Der
Typ des Laufwerks. Verwenden Sie einen der folgenden Werte:
hyperdisk-balanced
,hyperdisk-ml
oderpd-balanced
.
Für Hyperdisk können Sie das Flag --access-mode
optional mit einem der folgenden Werte angeben:
READ_WRITE_SINGLE
: Lese-/Schreibzugriff von einer Instanz. Das ist die Standardeinstellung.READ_ONLY_MANY
: (Nur Hyperdisk ML) Gleichzeitiger Lesezugriff von mehreren Instanzen.
Weitere Informationen zum Erstellen von Laufwerken finden Sie unter Neues Hyperdisk-Volume erstellen und Neues Persistent Disk-Volume erstellen.
Laufwerk anschließen
Sie können Ihrer TPU-VM beim Erstellen ein Laufwerk-Volume zuweisen oder dies auch nach dem Erstellen tun.
Laufwerk beim Erstellen einer TPU-VM anhängen
Verwenden Sie das Flag --data-disk
, um beim Erstellen einer TPU-VM ein Laufwerk-Volume anzuhängen.
Wenn Sie eine TPU mit mehreren Hosts erstellen, müssen Sie mode=read-only
angeben (nur Hyperdisk ML und Balanced Persistent Disk). Wenn Sie eine TPU mit einem einzelnen Host erstellen, können Sie mode=read-only
(nur Hyperdisk ML und Balanced Persistent Disk) oder mode=read-write
angeben. Weitere Informationen finden Sie unter Zugriffsmodi.
Im folgenden Beispiel wird gezeigt, wie Sie beim Erstellen einer TPU-VM mit anstehenden Ressourcen ein Laufwerk anhängen:
$ gcloud compute tpus queued-resources create QR_NAME \ --node-id=TPU_NAME --project PROJECT_ID \ --zone=ZONE \ --accelerator-type=ACCELERATOR_TYPE \ --runtime-version=TPU_SOFTWARE_VERSION \ --data-disk source=projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME,mode=MODE
Beschreibung der Befehls-Flags
QR_NAME
- Der Name der anstehenden Ressourcenanfrage.
TPU_NAME
- Der Name der neuen TPU.
PROJECT_ID
- Die ID des Projekts Google Cloud , in dem die TPU erstellt werden soll.
ZONE
- Der Name der Zone, in der die Cloud TPU erstellt werden soll.
ACCELERATOR_TYPE
- Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
TPU_SOFTWARE_VERSION
- Die Version der TPU-Software.
DISK_NAME
- Der Name des Laufwerks, das an die TPU-VM angehängt werden soll.
MODE
- Der Modus des Laufwerks. Der Modus muss
read-only
oderread-write
sein. Wenn keine Angabe erfolgt, ist der Standardmodusread-write
. Weitere Informationen finden Sie unter Zugriffsmodus.
Sie können auch ein Laufwerk anhängen, wenn Sie eine TPU-VM mit dem Befehl gcloud compute tpus tpu-vm create
erstellen:
$ gcloud compute tpus tpu-vm create TPU_NAME \ --project PROJECT_ID \ --zone=ZONE \ --accelerator-type=ACCELERATOR_TYPE \ --version=TPU_SOFTWARE_VERSION \ --data-disk source=projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME,mode=MODE
Beschreibung der Befehls-Flags
TPU_NAME
- Der Name der neuen TPU.
PROJECT_ID
- Die ID des Projekts Google Cloud , in dem die TPU erstellt werden soll.
ZONE
- Der Name der Zone, in der die Cloud TPU erstellt werden soll.
ACCELERATOR_TYPE
- Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
TPU_SOFTWARE_VERSION
- Die Version der TPU-Software.
DISK_NAME
- Der Name des Laufwerks, das an die TPU-VM angehängt werden soll.
MODE
- Der Modus des Laufwerks. Der Modus muss
read-only
oderread-write
sein. Wenn keine Angabe erfolgt, ist der Standardmodusread-write
. Weitere Informationen finden Sie unter Zugriffsmodi.
Laufwerk an eine vorhandene TPU-VM anhängen
Verwenden Sie den Befehl gcloud alpha compute tpus tpu-vm
attach-disk
, um ein Laufwerk an eine vorhandene TPU-VM anzuhängen.
$ gcloud alpha compute tpus tpu-vm attach-disk TPU_NAME \ --zone=ZONE \ --disk=DISK_NAME \ --mode=MODE
Beschreibung der Befehls-Flags
TPU_NAME
- Der Name der TPU.
ZONE
- Die Zone, in der sich die Cloud TPU befindet.
DISK_NAME
- Der Name des Laufwerks, das an die TPU-VM angehängt werden soll.
MODE
- Der Modus des Laufwerks. Der Modus muss
read-only
oderread-write
sein. Wenn keine Angabe erfolgt, ist der Standardmodusread-write
. Dieser muss mit dem Zugriffsmodus des Laufwerks übereinstimmen.
Wenn Ihre VM aus irgendeinem Grund heruntergefahren wird, müssen Sie das Laufwerk möglicherweise nach dem Neustart der VM bereitstellen. Informationen zum automatischen Bereitstellen des Laufwerks beim Neustart der VM finden Sie unter Automatische Bereitstellung beim Systemneustart konfigurieren.
Weitere Informationen zum automatischen Löschen eines Laufwerks finden Sie unter Hyperdisk ändern und Nichtflüchtigen Speicher ändern.
Laufwerk formatieren und bereitstellen
Wenn Sie an Ihre TPU-VM ein neues, leeres Laufwerk angehängt haben, müssen Sie das Laufwerk formatieren und bereitstellen, bevor Sie es verwenden können. Wenn Sie ein Laufwerk angehängt haben, das bereits Daten enthält, müssen Sie es bereitstellen, bevor Sie es verwenden können.
Weitere Informationen zum Formatieren und Bereitstellen eines nicht bootfähigen Laufwerks finden Sie unter Nicht-Bootlaufwerk auf einer Linux-VM formatieren und bereitstellen.
Stellen Sie über SSH eine Verbindung zu Ihrer TPU-VM her:
$ gcloud compute tpus tpu-vm ssh TPU_NAME --zone ZONE
Wenn Sie eine TPU mit mehreren Hosts verwenden, stellt dieser Befehl eine Verbindung zum ersten TPU im TPU-Speicherbereich her (auch Worker 0 genannt).
Listen Sie auf der TPU-VM die an die TPU-VM angehängten Laufwerke auf:
(vm)$ sudo lsblk
Die Ausgabe des Befehls
lsblk
sieht in etwa so aus: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
In diesem Beispiel ist
sda
das Bootlaufwerk undsdb
der Name des neu angeschlossenen Laufwerks. Der Name des angehängten Laufwerks hängt davon ab, wie viele Laufwerke an die VM angehängt sind.Wenn Sie eine TPU mit mehreren Hosts verwenden, müssen Sie das Laufwerk auf allen TPU-VMs im TPU-Slice bereitstellen. Der Name des Laufwerks sollte für alle TPU-VMs gleich sein, dies ist jedoch nicht garantiert. Wenn Sie das Laufwerk beispielsweise trennen und wieder anschließen, wird der Gerätename inkrementiert und ändert sich von
sdb
insdc
.Wenn das Laufwerk noch nicht formatiert wurde, formatieren Sie es mit dem
mkfs
-Tool. Ersetzen Sie sdb, wenn Ihr Laufwerk einen anderen Gerätenamen hat. Ersetzen Sie ext4, wenn Sie ein anderes Dateisystem verwenden möchten.(vm)$ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
Erstellen Sie ein Verzeichnis, um das Laufwerk auf der TPU bereitzustellen.
Wenn Sie eine TPU mit einem einzelnen Host verwenden, führen Sie den folgenden Befehl auf der TPU aus, um ein Verzeichnis zum Bereitstellen des Laufwerks zu erstellen:
(vm)$ sudo mkdir -p /mnt/disks/MOUNT_DIR
Ersetzen Sie MOUNT_DIR durch das Verzeichnis, in dem Sie das Laufwerk bereitstellen möchten.
Wenn Sie eine TPU mit mehreren Hosts verwenden, führen Sie den folgenden Befehl außerhalb Ihrer TPU-VM aus. Mit diesem Befehl wird das Verzeichnis auf allen TPU-VMs im TPU-Speicherbereich erstellt.
(vm)$ gcloud compute tpus tpu-vm ssh TPU_NAME --worker=all --command="sudo mkdir -p /mnt/disks/MOUNT_DIR"
Verwenden Sie das
mount
-Tool, um das Laufwerk auf Ihrer TPU bereitzustellen.Wenn Sie eine TPU mit einem einzelnen Host verwenden, führen Sie den folgenden Befehl aus, um den Datenträger auf Ihrer TPU-VM bereitzustellen:
(vm)$ sudo mount -o discard,defaults /dev/sdb /mnt/disks/MOUNT_DIR
Wenn Sie eine TPU mit mehreren Hosts verwenden, führen Sie den folgenden Befehl außerhalb Ihrer TPU-VM aus. Das Laufwerk wird auf allen TPU-VMs in Ihrem TPU-Speicherbereich bereitgestellt.
(vm)$ gcloud compute tpus tpu-vm ssh TPU_NAME --worker=all --command="sudo mount -o discard,defaults /dev/sdb /mnt/disks/MOUNT_DIR"
Konfigurieren Sie Lese- und Schreibberechtigungen auf dem Laufwerk. Mit dem folgenden Befehl wird beispielsweise allen Nutzern Schreibzugriff auf das Laufwerk gewährt.
(vm)$ sudo chmod a+w /mnt/disks/MOUNT_DIR
Bereitstellung eines Laufwerks aufheben
Führen Sie den folgenden Befehl aus, um ein Laufwerk von Ihrer TPU-VM zu trennen:
$ gcloud alpha compute tpus tpu-vm detach-disk TPU_NAME \ --zone=ZONE \ --disk=DISK_NAME
Beschreibung der Befehls-Flags
TPU_NAME
- Der Name der TPU.
ZONE
- Die Zone, in der sich die Cloud TPU befindet.
DISK_NAME
- Der Name des Laufwerks, das von der TPU-VM getrennt werden soll.
Bereinigen
Löschen Sie Ihre Cloud TPU- und Compute Engine-Ressourcen, wenn Sie sie nicht mehr benötigen.
Trennen Sie die Verbindung zur Cloud TPU, sofern noch nicht geschehen:
(vm)$ exit
Die Eingabeaufforderung sollte nun
username@projectname
lauten und angeben, dass Sie sich in Cloud Shell befinden.Löschen Sie Ihre Cloud TPU.
$ gcloud compute tpus tpu-vm delete TPU_NAME \ --zone=ZONE
Prüfen Sie, ob die Cloud TPU gelöscht wurde. Der Löschvorgang kann einige Minuten dauern.
$ gcloud compute tpus tpu-vm list --zone=ZONE
Prüfen Sie, ob das Laufwerk beim Löschen der TPU-VM automatisch gelöscht wurde. Listen Sie dazu alle Laufwerke in der Zone auf, in der Sie das Laufwerk erstellt haben:
$ gcloud compute disks list --filter="zone:( ZONE )"
Wenn der Datenträger beim Löschen der TPU-VM nicht gelöscht wurde, verwenden Sie den folgenden Befehl, um ihn zu löschen:
$ gcloud compute disks delete DISK_NAME \ --zone ZONE