Langlebigen Blockspeicher an eine TPU-VM anhängen
Eine TPU-VM enthält ein 100 GiB großes Bootlaufwerk. In einigen Fällen benötigt Ihre TPU-VM möglicherweise zusätzlichen Speicherplatz für das Training oder die Vorverarbeitung. Sie können ein Google Cloud Hyperdisk- oder Persistent Disk-Volume (PD) hinzufügen, um die Kapazität Ihres lokalen Laufwerks zu erweitern.
Für 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 Persistent Disk. Weitere Informationen zu Blockspeicheroptionen in Compute Engine finden Sie unter Laufwerkstyp auswählen.
TPU-Unterstützung für Hyperdisk und Persistent Disk
In der folgenden Tabelle sehen Sie die unterstützten Laufwerkstypen für jede TPU-Version:
TPU-Version | Unterstützte Laufwerkstypen | Maximale Anzahl an PDs pro VM (einschließlich des Bootlaufwerks) |
---|---|---|
v6e | Hyperdisk Balanced Hyperdisk ML |
PDs werden von v6e nicht unterstützt |
v5p | Abgestimmter nichtflüchtiger Speicher | 128 |
v5e | Abgestimmter nichtflüchtiger Speicher | 128 |
v4 | Abgestimmter nichtflüchtiger Speicher | 128 |
v3 | Abgestimmter nichtflüchtiger Speicher | 128 |
v2 | Abgestimmter nichtflüchtiger Speicher | 128 |
Zugriffsmodi
Sie können ein Laufwerk, das an eine TPU angehängt ist, im „Single-Writer“- oder schreibgeschützten Modus konfigurieren, wie in der folgenden Tabelle dargestellt:
Zugriffsmodus | Beschreibung | Wert in der Compute Engine API | Wert in der Cloud TPU API | Unterstützte Laufwerkstypen |
---|---|---|---|---|
Single-Writer-Modus | Dies ist der Standardzugriffsmodus. Das Laufwerk kann jederzeit an maximal eine Instanz angehängt werden. Die Instanz hat Lese-/Schreibzugriff auf das Laufwerk. | READ_WRITE_SINGLE |
read-write |
|
Schreibgeschützter Modus | Ermöglicht das gleichzeitige Anhängen an mehrere Instanzen im schreibgeschützten Modus. 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 Single-Host-TPU (z. B. v6e-8, v5p-8 oder v5litepod-8) angehängt ist, im „Single-Writer“- oder schreibgeschützten Modus konfigurieren.
Wenn Sie ein Laufwerk an eine Multi-Host-TPU anhängen, wird es an jede VM in dieser TPU angehängt. Damit nicht zwei oder mehr TPU-VMs gleichzeitig auf ein Laufwerk schreiben, müssen Sie alle Laufwerke, die an eine TPU mit mehreren Hosts angehängt sind, als schreibgeschützt konfigurieren. Schreibgeschützte Laufwerke sind nützlich, um ein Dataset für die Verarbeitung auf einem TPU-Slice zu speichern.
Vorbereitung
Sie müssen ein Konto in Google Cloud 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 ein Laufwerk zu erstellen:
$ gcloud compute disks create DISK_NAME \ --size DISK_SIZE \ --zone ZONE \ --type DISK_TYPE
Beschreibungen der Befehls-Flags
DISK_NAME
- Der 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 GiB 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 optional das Flag --access-mode
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 schreibgeschützter Zugriff von mehreren Instanzen.
Weitere Informationen zum Erstellen von Laufwerken finden Sie unter Neues Hyperdisk-Volume erstellen und Neues Persistent Disk-Volume erstellen.
Laufwerk anhängen
Sie können ein Laufwerks-Volume an Ihre TPU-VM anhängen, wenn Sie die TPU-VM erstellen. Alternativ können Sie es nach der Erstellung der TPU-VM anhängen.
Laufwerk beim Erstellen einer TPU-VM anhängen
Verwenden Sie das Flag --data-disk
, um beim Erstellen einer TPU-VM ein Laufwerks-Volume anzuhängen.
Wenn Sie eine TPU mit mehreren Hosts erstellen, müssen Sie mode=read-only
angeben (nur Hyperdisk ML und abgestimmter nichtflüchtiger Speicher). Wenn Sie eine TPU mit einem einzelnen Host erstellen, können Sie mode=read-only
(nur Hyperdisk ML und abgestimmter nichtflüchtiger Speicher) oder mode=read-write
angeben. Weitere Informationen finden Sie unter Zugriffsmodi.
Das folgende Beispiel zeigt, wie Sie beim Erstellen einer TPU-VM mit in die Warteschlange gestellten Ressourcen ein Laufwerks-Volume 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
Beschreibungen der Befehls-Flags
QR_NAME
- Der Name der Anfrage für die in die Warteschlange gestellte Ressource.
TPU_NAME
- Der Name der neuen TPU.
PROJECT_ID
- Die ID des Projekts in Google Cloud , in dem die TPU erstellt werden soll.
ZONE
- Der Name der Zone, in der die Cloud TPU erstellt werden soll.
ACCELERATOR_TYPE
- Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
TPU_SOFTWARE_VERSION
- Die TPU-Softwareversion.
DISK_NAME
- Der Name des Laufwerks, das an die TPU-VM angehängt werden soll.
MODE
- Der Modus des Laufwerks. Der Modus muss einer der folgenden Werte sein:
read-only
oderread-write
. 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
Beschreibungen der Befehls-Flags
TPU_NAME
- Der Name der neuen TPU.
PROJECT_ID
- Die ID des Projekts in Google Cloud , in dem die TPU erstellt werden soll.
ZONE
- Der Name der Zone, in der die Cloud TPU erstellt werden soll.
ACCELERATOR_TYPE
- Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
TPU_SOFTWARE_VERSION
- Die TPU-Softwareversion.
DISK_NAME
- Der Name des Laufwerks, das an die TPU-VM angehängt werden soll.
MODE
- Der Modus des Laufwerks. Der Modus muss einer der folgenden Werte sein:
read-only
oderread-write
. 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
Beschreibungen 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 einer der folgenden Werte sein:
read-only
oderread-write
. Wenn keine Angabe erfolgt, ist der Standardmodusread-write
. Dies muss dem Zugriffsmodus des Laufwerks entsprechen.
Wenn Ihre VM aus irgendeinem Grund heruntergefahren wird, müssen Sie das Laufwerk möglicherweise erneut bereitstellen, nachdem Sie die VM neu gestartet haben. Informationen dazu, wie Sie festlegen, dass Ihr Laufwerk beim VM-Neustart automatisch bereitgestellt wird, finden Sie unter Automatische Bereitstellung beim Systemneustart konfigurieren.
Weitere Informationen zum automatischen Löschen eines Laufwerks finden Sie unter Hyperdisk ändern und Persistent Disk ä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-Bootlaufwerks finden Sie im Dokumentationsabschnitt Nicht-Bootlaufwerk auf einer Linux-VM formatieren und bereitstellen.
Stellen Sie eine SSH-Verbindung zu Ihrer TPU-VM her.
$ gcloud compute tpus tpu-vm ssh TPU_NAME --zone ZONE
Wenn Sie eine TPU mit mehreren Hosts verwenden, werden Sie mit diesem Befehl mit der ersten TPU im TPU-Slice (auch als Worker 0 bezeichnet) verbunden.
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 angehängten 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 einbinden. Der Name des Laufwerks sollte für alle TPU-VMs gleich sein, dies ist jedoch nicht sichergestellt. Wenn Sie das Laufwerk beispielsweise trennen und dann wieder anhängen, erhält der Gerätename eine höhere Zahl und ändert sich von
sdb
zusdc
.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, in dem das Laufwerk auf der TPU bereitgestellt werden soll.
Wenn Sie eine TPU mit einem einzelnen Host verwenden, führen Sie den folgenden Befehl auf Ihrer TPU aus, um ein Verzeichnis zum Einbinden 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 Multi-Host-TPU 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-Slice erstellt.
(vm)$ gcloud compute tpus tpu-vm ssh TPU_NAME --worker=all --command="sudo mkdir -p /mnt/disks/MOUNT_DIR"
Hängen Sie das Laufwerk mit dem
mount
-Tool an Ihre TPU an.Wenn Sie eine TPU mit einem einzelnen Host verwenden, führen Sie den folgenden Befehl aus, um das Laufwerk auf Ihrer TPU-VM bereitzustellen:
(vm)$ sudo mount -o discard,defaults /dev/sdb /mnt/disks/MOUNT_DIR
Wenn Sie eine Multi-Host-TPU verwenden, führen Sie den folgenden Befehl außerhalb Ihrer TPU-VM aus. Dadurch wird das Laufwerk auf allen TPU-VMs in Ihrem TPU-Slice 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
Beschreibungen 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 das Laufwerk beim Löschen der TPU-VM nicht gelöscht wurde, löschen Sie es mit dem folgenden Befehl:
$ gcloud compute disks delete DISK_NAME \ --zone ZONE