Laufwerke trennen und neu anhängen

In diesem Dokument wird beschrieben, wie Sie Bootlaufwerke und Nicht-Bootlaufwerke an Compute Engine-Bare-Metal-Instanzen und virtuelle Maschinen (VM)-Instanzen anhängen und wieder anhängen.

Wenn Sie das Bootlaufwerk einer Instanz trennen, können Sie die folgenden Aufgaben ausführen, ohne die Instanz neu erstellen zu müssen:

  • Bootlaufwerk für eine Instanz durch ein anderes Laufwerk ersetzen
  • Bootlaufwerk einer Instanz reparieren, indem Sie es vorübergehend an eine andere Instanz anhängen

Wenn Sie ein Nicht-Bootlaufwerk von einer Instanz trennen und an eine andere anhängen, können Sie die Daten auf dem Laufwerk von der zweiten Instanz aus verwenden, ohne die Daten auf ein neues Laufwerk kopieren zu müssen.

Hinweis

Erforderliche Berechtigungen für diese Aufgabe

Zum Ausführen dieser Aufgabe benötigen Sie die folgende Berechtigung:

  • compute.instances.detachDisk für die Instanz
  • compute.instances.attachDisk für die Instanz

Bootlaufwerk zwischen Instanzen verschieben

Bevor Sie ein Bootlaufwerk zwischen Instanzen verschieben, die unterschiedliche Maschinenserien verwenden, prüfen Sie, ob die Bootlaufwerkarchitektur beider Instanzen übereinstimmt. Sie können beispielsweise kein Bootlaufwerk von einer C4A-Instanz an eine C4-Instanz anhängen, da C4A und C4 Arm- bzw. x86-Architekturen verwenden. Die Architektur einer Maschinenserie finden Sie in der Zeile Architektur in der Tabelle Vergleich der Maschinenserien.

Weitere Faktoren, die beim Verschieben eines Bootlaufwerks zwischen Maschinenserien zu berücksichtigen sind, finden Sie unter Arbeitslast auf eine neue Compute-Instanz verschieben.

Beschränkungen

  • Die Architektur des Bootlaufwerks muss mit der Architektur der Instanz übereinstimmen. Sie können beispielsweise kein Bootlaufwerk, das x86 verwendet, an eine Arm-Instanz anhängen.
  • Sie können ein Bootlaufwerk nur an eine beendete VM-Instanz anhängen bzw. von dieser trennen.
  • Sie können nur ein Bootlaufwerk pro VM-Instanz anhängen.
  • Wenn Sie die gcloud CLI oder REST verwenden, können Sie nur vorhandene Bootlaufwerke an eine VM-Instanz anhängen.
  • Sie können ein lokales SSD-Laufwerk nicht von einer Instanz trennen. Sie können lokale SSD-Laufwerke nur beim Erstellen der Instanz an eine Instanz anhängen.

Bootlaufwerk trennen

Bevor Sie das Bootlaufwerk von der Instanz trennen, müssen Sie die Instanz beenden. Sie müssen die Bereitstellung des Laufwerks nicht aufheben.

Console

  1. Gehen Sie zur Seite der VM-Instanzen.

    Zu „VM-Instanzen“

  2. Wenn Sie dazu aufgefordert werden, wählen Sie Ihr Projekt aus und klicken auf Weiter.
  3. Klicken Sie auf die Instanz, von der Sie das Bootlaufwerk trennen möchten.
  4. Klicken Sie auf Beenden , um die VM zu beenden. Wenn Beenden nicht angezeigt wird, klicken Sie auf Weitere Aktionen > Beenden.
  5. Klicken Sie auf Bearbeiten.
  6. Klicken Sie im Abschnitt Bootlaufwerk auf Bootlaufwerk trennen.
  7. Klicken Sie auf Speichern.

gcloud

Verwenden Sie den gcloud compute instances detach-disk-Befehl, um das Bootlaufwerk von der Instanz zu trennen:

gcloud compute instances detach-disk INSTANCE_NAME \
    --disk=DISK_NAME

Dabei gilt:

  • INSTANCE_NAME: der Name der Instanz.
  • DISK_NAME: der Name des Laufwerks, das getrennt werden soll. Der Name des Laufwerks ist normalerweise mit dem Namen der Instanz identisch.

REST

Erstellen Sie eine POST-Anfrage, um das Laufwerk zu trennen:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/detachDisk?deviceName=DISK_NAME

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID.
  • INSTANCE_NAME: der Name der Instanz.
  • ZONE: die Zone, in der sich die Instanzen befinden.
  • DISK_NAME: der Name des Laufwerks, das getrennt werden soll. Der Name des Laufwerks ist normalerweise mit dem Namen der Instanz identisch.

Bootlaufwerk wieder anhängen

Jedes Laufwerk kann wieder als Bootlaufwerk an eine Instanz angehängt werden, wenn noch kein anderes Bootlaufwerk an die Instanz angehängt ist und sich das Bootlaufwerk in derselben Zone wie die VM-Instanz befindet. Wenn Sie ein Bootlaufwerk anpassen, müssen Sie überprüfen, ob es nach dem Anhängen ordnungsgemäß gestartet wird.

Sowohl das vorhandene Laufwerk als auch das neue Laufwerk müssen entweder UEFI-kompatibel sein oder nicht. Verwenden Sie zum Erstellen eines UEFI-kompatiblen Laufwerks den Befehl gcloud compute disk create, wobei das Flag --guest-os-features auf UEFI_COMPATIBLE gesetzt ist.

Console

  1. Gehen Sie zur Seite der VM-Instanzen.

    Zu „VM-Instanzen“

  2. Wenn Sie dazu aufgefordert werden, wählen Sie Ihr Projekt aus und klicken auf Weiter.
  3. Klicken Sie auf die Instanz, an die Sie das Bootlaufwerk anhängen möchten.
  4. Wenn die VM ausgeführt wird, klicken Sie auf Beenden stop, um die VM zu beenden. Wenn Beenden nicht angezeigt wird, klicken Sie auf  Weitere Aktionen >  Beenden.
  5. Klicken Sie auf Bearbeiten.
  6. Gehen Sie zum Abschnitt Bootlaufwerk.
  7. Klicken Sie auf Zeile hinzufügen.
  8. Wählen Sie im Drop-down-Menü ein Bootlaufwerk aus.
  9. Klicken Sie auf Speichern.

gcloud

Verwenden Sie den Befehl gcloud compute instances attach-disk, um ein Bootlaufwerk an eine VM-Instanz neu anzuhängen oder wieder anzuhängen. Fügen Sie das Flag --boot ein, um anzugeben, dass das Laufwerk als Bootlaufwerk für die Instanz verwendet wird. Wenn dieses Flag nicht vorhanden ist, wird das Laufwerk als Nicht-Boot-Datenlaufwerk angehängt.

gcloud compute instances attach-disk INSTANCE_NAME \
    --disk=DISK_NAME \
    --boot

Dabei gilt:

  • INSTANCE_NAME: der Name der Instanz.
  • DISK_NAME: der Name des Laufwerks, das angehängt werden soll. Der Name des Laufwerks kann mit dem Namen der Instanz identisch sein.

REST

Erstellen Sie eine POST-Anfrage, um das Laufwerk anzuhängen. Verwenden Sie den optionalen Parameter "boot": true, um anzugeben, dass dieses Laufwerk das Bootlaufwerk ist. Wenn dieser Parameter nicht vorhanden ist, wird das Laufwerk als Nicht-Boot-Datenlaufwerk angehängt.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk
{
 "boot": true,
 "source": "zones/ZONE/disks/DISK_NAME"
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID.
  • INSTANCE_NAME: der Name der Instanz, an die Sie den neuen nichtflüchtigen Speicher anhängen.
  • ZONE: die Zone, in der sich Ihre Instanz und das neue Laufwerk befinden.
  • DISK_NAME: durch den Namen des neuen Laufwerks.

Starten Sie die Instanz neu, nachdem Sie das Laufwerk an die VM-Instanz angehängt haben.

Bootlaufwerk für eine Instanz aktualisieren

Sie können die Google Cloud console nur zum Aktualisieren des Bootlaufwerks für eine VM in einem Schritt verwenden. Insbesondere können Sie in einem Schritt ein vorhandenes Bootlaufwerk trennen und ein neues Bootlaufwerk anhängen.

Dieses Feature ist nicht über die gcloud CLI oder REST verfügbar.

  1. Öffnen Sie die Seite "VM-Instanzen".

    Zu „VM-Instanzen“

  2. Wenn Sie dazu aufgefordert werden, wählen Sie Ihr Projekt aus und klicken auf Weiter.
  3. Klicken Sie auf die Instanz, an die Sie das Bootlaufwerk anhängen möchten.
  4. Wenn die VM ausgeführt wird, klicken Sie auf Beenden um die VM zu beenden. Wenn Beenden nicht angezeigt wird, klicken Sie auf Weitere Aktionen > Beenden.
  5. Klicken Sie oben auf der Seite auf Bearbeiten.
  6. Klicken Sie im Abschnitt Bootlaufwerk auf „Bootlaufwerk trennen“.
  7. Klicken Sie auf Zeile hinzufügen.
  8. Wählen Sie im Drop-down-Menü ein Bootlaufwerk aus.
  9. Klicken Sie auf Speichern.

Die Google Cloud console fährt mit dem Trennen des vorhandenen Bootlaufwerks fort und hängt das angegebene neue Bootlaufwerk an. Wenn der Vorgang abgeschlossen ist, starten Sie die VM-Instanz neu.

Nicht-Bootlaufwerk an eine Instanz anhängen

Eine detaillierte Anleitung zum Anhängen eines neuen oder vorhandenen Nicht-Bootlaufwerks an eine ausgeführte Instanz finden Sie unter Laufwerk zu Instanz hinzufügen.

Nicht-Bootlaufwerk von einer Instanz trennen

Sie müssen eine Instanz nicht beenden, um ein Nicht-Bootlaufwerk zu trennen. Sie können diese Vorgänge ausführen, während die Instanz ausgeführt wird.

Console

  1. Gehen Sie zur Seite der VM-Instanzen.

    Zu „VM-Instanzen“

  2. Klicken Sie auf die Instanz, von der Sie das Laufwerk trennen möchten.
  3. Klicken Sie auf „Bearbeiten“ Edit.
  4. Suchen Sie im Abschnitt Zusätzliche Laufwerke das Laufwerk, das Sie trennen möchten und klicken Sie auf close Laufwerk entfernen.
  5. Klicken Sie auf Speichern.

gcloud

Führen Sie den Befehl gcloud compute instances detach-disk aus:

 gcloud compute instances detach-disk INSTANCE_NAME \
   DISK_OR_DEVICE_NAME --disk-scope DISK_SCOPE

Dabei gilt:

  • INSTANCE_NAME: der Name der Instanz.
  • DISK_OR_DEVICE_NAME: der Name des Laufwerks oder der Gerätename, der beim Erstellen des Laufwerks angegeben wurde. Der Gerätename ist der Name, den das Betriebssystem zur Identifizierung des Laufwerks verwendet. Wenn Sie einen Gerätenamen für das Laufwerk angegeben haben, müssen Sie ihn mit dem Flag --device-name angeben.

    • Wenn Sie den Laufwerksnamen angeben möchten, verwenden Sie --disk=DISK_NAME, wobei DISK_NAME der Name des Laufwerks ist, z. B. my-data-disk.
    • Wenn Sie den Gerätenamen angeben möchten, verwenden Sie --device-name=DEVICE_NAME, wobei DEVICE_NAME der von Ihnen für das Laufwerk angegebene Gerätename ist.

      Führen Sie den gcloud compute instances describe Befehl aus, um den Gerätenamen des Laufwerks zu ermitteln. Wenn Sie beispielsweise eine Liste der angehängten Laufwerke der Instanz im JSON-Format ausgeben möchten, führen Sie gcloud compute instances describe INSTANCE_NAME --format="json(disks)" aus.

  • DISK_SCOPE: der Bereich des Laufwerks. Geben Sie für ein zonales Laufwerk zonal an. Geben Sie für ein regionales Laufwerk regional an.

REST

Erstellen Sie eine POST-Anfrage an die instances.detachDisk-Methode.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/detachDisk?deviceName=DEVICE_NAME

Dabei gilt:

  • PROJECT_ID: die Projekt-ID.
  • INSTANCE_NAME: der Name der Instanz.
  • ZONE: die Zone, in der sich Ihre Instanz befindet.
  • DEVICE_NAME: der Gerätename des Laufwerks. Wenn Sie den Gerätenamen des Laufwerks ermitteln möchten, senden Sie eine GET Anfrage an die instances Ressource, um die angehängten Laufwerke und Gerätenamen aufzurufen.

Nächste Schritte