Zustandsorientierte nichtflüchtige Speicher in MIGs konfigurieren

Wenn Sie nichtflüchtige Speicher zustandsorientiert konfigurieren, profitieren Sie von automatischen Reparaturen und automatischen Updates der VM-Instanzen, wobei der Status der Laufwerke beibehalten wird.

Sie können jedes in der Instanzvorlage definierte Laufwerk so konfigurieren, dass es für alle Instanzen in einer verwalteten Instanzgruppe (Managed Instance Group, MIG) zustandsorientiert ist. Dazu fügen Sie den Gerätenamen des jeweiligen Laufwerks in die zustandsorientierte Richtlinie der MIG ein.

Sie können zustandsorientierte nichtflüchtige Speicher auch für Instanzen in einer verwalteten Instanzgruppe konfigurieren, indem Sie instanzspezifische Konfigurationen festlegen. Diese Laufwerke müssen nicht in der Instanzvorlage definiert sein.

Hinweis

Beschränkungen

Für zustandsorientierte MIGs gelten die folgenden Einschränkungen:

  • Autoscaling kann nicht mit zustandsorientierten MIGs verwendet werden.
  • Wenn Sie automatische Rolling Updates verwenden möchten, müssen Sie die Ersetzungsmethode auf RECREATE setzen.
  • Wenn Sie eine Instanz dauerhaft löschen (entweder manuell oder durch Verringern der Größe), behält die MIG die zustandsorientierten Metadaten der Instanz nicht bei.
  • Bei zustandsorientierten regionalen MIGs müssen Sie die proaktive Umverteilung deaktivieren. Setzen Sie dafür den Typ für die Umverteilung auf NONE. Damit wird verhindert, dass zustandsorientierte Instanzen durch die automatische zonenübergreifende Umverteilung gelöscht werden.

Wann sollten zustandsorientierte nichtflüchtige Speicher verwendet werden?

Verwenden Sie zustandsorientierte nichtflüchtige Speicher, um die automatische Reparatur und automatische Aktualisierungen von VMs zu nutzen und gleichzeitig die Daten auf den Laufwerken beizubehalten. Weitere Informationen finden Sie in den Anwendungsfällen für zustandsorientierte MIGs.

Wenn Sie zustandsorientierte Laufwerke konfigurieren, bleiben diese bei automatischen Reparaturen, Aktualisierungen und Neuerstellungen von VM-Instanzen erhalten. Das bedeutet jedoch auch, dass zustandsorientierte Laufwerke nicht aus dem ursprünglichen Image neu erstellt oder auf ein neues Image aktualisiert werden können.

Daher empfiehlt es sich, Bootlaufwerke zustandslos zu lassen.

Wenn das Bootlaufwerk zustandslos bleibt, hat das folgende Vorteile:

  • Sie können ein beschädigtes Bootlaufwerk reparieren. Dazu erstellen Sie es aus seinem ursprünglichen Image neu. Bei der automatischen Reparatur erfolgen solche Reparaturen automatisch.
  • Sie können ein Bootlaufwerk auf das neueste Image mit neuen Versionen und Sicherheitspatches aktualisieren.

Weitere Informationen finden Sie in den Abschnitten dazu, wie sich die automatische Reparatur und Aktualisierungen auf den beibehaltenen Status auswirken.

Zustandsorientierte nichtflüchtige Speicher für alle VMs in einer MIG konfigurieren

Zum Konfigurieren eines in der Instanzvorlage definierten Laufwerks als zustandsorientiert fügen Sie dessen Gerätenamen in die zustandsorientierte Richtlinie der MIG ein. Die MIG behandelt Laufwerke mit diesem Gerätenamen bei allen vorhandenen und zukünftigen VM-Instanzen als zustandsorientiert.

Verwenden Sie das gcloud-Tool oder die Compute Engine API für Folgendes:

  • Zustandsorientierte Laufwerke beim Erstellen der MIG konfigurieren
  • Zustandsorientierte Konfiguration für Laufwerke in einer vorhandenen MIG festlegen oder aktualisieren
  • Zustandsorientierte Laufwerke aus einer MIG entfernen

Zustandsorientierte Laufwerke beim Erstellen der MIG konfigurieren

gcloud

Geben Sie mit dem Befehl gcloud compute instance-groups managed create und dem Flag --stateful-disk an, welche Laufwerke aus einer Instanzvorlage beim Erstellen der MIG zustandsorientiert sein sollen:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template INSTANCE_TEMPLATE \
    --size SIZE \
    --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]

Dabei gilt:

  • INSTANCE_GROUP_NAME: Name der verwalteten Instanzgruppe, die erstellt werden soll.
  • INSTANCE_TEMPLATE: Name der Instanzvorlage, die beim Erstellen von Instanzen verwendet werden soll.
  • SIZE: anfängliche Anzahl von VMs, die Sie in dieser Gruppe benötigen.
  • DEVICE_NAME: Gerätename eines Laufwerks, das in der Instanzvorlage angegeben ist.
  • DELETE_RULE: Wert, der vorgibt, was mit einem zustandsorientierten Laufwerk geschehen soll, wenn eine VM gelöscht wird. Folgende Optionen sind verfügbar:

    • never: (Standardeinstellung) Das Laufwerk wird beim Löschen der zugehörigen VM nie gelöscht, sondern stattdessen getrennt.
    • on-permanent-instance-deletion: Das Laufwerk wird gelöscht, wenn die zugehörige VM-Instanz dauerhaft aus der Instanzgruppe gelöscht wird, beispielsweise beim manuellen Löschen der verwalteten Instanz oder Verringern der Gruppengröße.

    Unabhängig vom Wert der Löschregel bleiben zustandsorientierte Laufwerke bei automatischen Reparaturen, Aktualisierungen und Neuerstellungen von VMs immer erhalten.

Beispiel

Sie möchten eine Datenbank mit 12 Shards mit jeweils einem zustandslosen Bootlaufwerk, in dem das Betriebssystem und die Datenbank-Binärprogramme enthalten sind, und jedes mit einem zustandsorientierten Datenlaufwerk bereitstellen. Gehen Sie dazu so vor:

  1. Erstellen Sie eine Instanzvorlage mit einem zustandslosen Bootlaufwerk anhand des Images img-example-db-v01, das ein vorinstalliertes Betriebssystem und eine Datenbank enthält, und mit einem zustandsorientierten Datenlaufwerk:

    gcloud compute instance-templates create example-database-template-v01 \
        --image img-example-db-v01 \
        --create-disk device-name=data-disk,mode=rw,image=empty10GBext4
    

    Durch das Flag --create-disk führt die MIG folgende Schritte aus:

    1. Erstellen eines neuen 10-GB-Laufwerks für jede VM-Instanz aus einem leeren ext4-Image, das bereits vorbereitet wurde
    2. Anhängen des Laufwerks mithilfe des Gerätenamens data-disk an die zugehörige VM im Lese-/Schreibmodus
  2. Erstellen Sie eine MIG aus der Instanzvorlage und definieren Sie das Datenlaufwerk als zustandsorientiert:

    gcloud compute instance-groups managed create example-database-group \
      --template example-database-template-v01 \
      --base-instance-name shard \
      --size 12 \
      --stateful-disk device-name=data-disk,auto-delete=on-permanent-instance-deletion
    

    Der Gerätename data-disk wird aus der Instanzvorlage übernommen. Das Datenlaufwerk ist so konfiguriert, dass es zusammen mit der VM-Instanz gelöscht wird, wenn diese dauerhaft gelöscht wird (entweder durch manuelles Löschen der Instanz oder durch manuelles Verringern der Gruppengröße). Das Datenlaufwerk bleibt bei automatischen Reparaturen, Aktualisierungen und Neuerstellungen der VM erhalten.

  3. Prüfen Sie, ob das Datenlaufwerk in der zustandsorientierten Richtlinie konfiguriert ist:

    gcloud compute instance-groups managed describe example-database-group
    
    
    baseInstanceName: shard
    ...
    name: example-database-group
    ...
    statefulPolicy:
      preservedState:
        disks:
          data-disk:
            autoDelete: ON_PERMANENT_INSTANCE_DELETION
    ...
    

    Sie sehen, dass die zustandsorientierte Richtlinie Laufwerke mit dem Gerätenamen data-disk als zustandsorientiert deklariert, mit einer Regel zum Löschen solcher Laufwerke, wenn VMs dauerhaft gelöscht werden.

API

Wenn Sie festlegen möchten, welche Laufwerke aus der Instanzvorlage beim Erstellen von MIGs zustandsorientiert sein sollen, fügen Sie diese im Anfragetext der Methode instanceGroupManagers.insert in das Feld statefulPolicy ein:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers

{
  "name": "NAME",
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/TEMPLATE"
    }
  ],
  "targetSize": SIZE,
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" },
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }
      }
    }
  }
}

Ersetzen Sie Folgendes:

  • PROJECT: Projekt-ID für die Anfrage.
  • ZONE: Die Zone, in der sich die MIG befindet (gilt für eine zonale MIG).
    • Ersetzen Sie bei einer regionalen MIG zones/ZONE durch regions/REGION und geben Sie die Region der MIG an.
  • NAME: Name der MIG, die erstellt werden soll.
  • TEMPLATE: Name der Instanzvorlage, die beim Erstellen von Instanzen verwendet werden soll.
  • SIZE: anfängliche Anzahl von Instanzen, die Sie in dieser Gruppe benötigen.
  • DEVICE_NAME: Gerätename eines Laufwerks, das in der Instanzvorlage angegeben ist.
  • DELETE_RULE: Wert, der vorgibt, was mit dem zustandsorientierten Laufwerk beim Löschen der VM-Instanz geschieht. Folgende Optionen sind verfügbar:

    • never: (Standardeinstellung) Das Laufwerk wird beim Löschen der zugehörigen VM nie gelöscht, sondern stattdessen getrennt.
    • on_permanent_instance_deletion: Das zustandsorientierte Laufwerk wird gelöscht, wenn die zugehörige VM-Instanz dauerhaft aus der Instanzgruppe gelöscht wird, beispielsweise beim manuellen Löschen der verwalteten Instanz oder Verringern der Gruppengröße.

Beispiel

Sie möchten eine Datenbank mit 12 Shards mit jeweils einem zustandslosen Bootlaufwerk, in dem das Betriebssystem und die Datenbank-Binärprogramme enthalten sind, und jedes mit einem zustandsorientierten Datenlaufwerk bereitstellen. Gehen Sie dazu so vor:

  1. Erstellen Sie mit der Methode instanceTemplates.insert eine Instanzvorlage mit einem zustandslosen Bootlaufwerk anhand des Images img-example-db-v01, das ein vorinstalliertes Betriebssystem und eine Datenbank enthält, und mit einem zustandsorientierten Datenlaufwerk:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates
    
    {
      "name": "example-database-template-v01",
      "properties": {
        "machineType":"e2-standard-2",
        "disks": [
          {
            "boot": true,
            "deviceName": "boot-disk",
            "initializeParams": {
              "sourceImage": "projects/example-project/global/images/mg-example-db-v01"
            }
          },
          {
            "deviceName": "data-disk",
            "mode": "READ_WRITE",
            "initializeParams": {
              "sourceImage": "projects/example-project/global/images/empty10GBext4"
            }
          }
        ],
        "networkInterfaces": [
          {
            "network": "global/networks/default"
          }
        ]
      }
    }
    

    Das Datenlaufwerk in der Instanzvorlage hat den Gerätenamen data-disk und ist so konfiguriert, dass es aus einem bereits vorbereiteten leeren ext4-Image erstellt und im Lese-/Schreibmodus angehängt wird.

  2. Verwenden Sie die Methode instanceGroupManagers.insert, um eine MIG aus der Instanzvorlage zu erstellen und das Datenlaufwerk als zustandsorientiert zu definieren:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers
    
    {
      "name": "example-database-group",
      "baseInstanceName": "shard",
      "versions": [
        {
          "instanceTemplate": "global/instanceTemplates/example-database-template-v01"
        }
      ],
      "targetSize": 12,
      "statefulPolicy": {
        "preservedState": {
          "disks": {
            "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
          }
        }
      }
    }
    

    Die MIG erstellt zwölf Instanzen mit jeweils einem Laufwerk mit den folgenden Attributen:

    • Dem Gerätenamen data-disk, der aus der Instanzvorlage übernommen wird.
    • Einer Löschregel zum Löschen des Datenlaufwerks, wenn die VM gelöscht wird (entweder durch manuelles Löschen der Instanz oder durch manuelles Verringern der Gruppengröße).
    • Einem Eintrag im beibehaltenen Status aus der Richtlinie (preservedStateFromPolicy) jeder verwalteten Instanz, damit das Datenlaufwerk bei automatischen Reparaturen, Aktualisierungen und Neuerstellungen von Instanzen erhalten bleibt.
  3. Prüfen Sie mit der Methode instanceGroupManagers.get, ob das Datenlaufwerk in der zustandsorientierten Richtlinie der neuen Ressource instanceGroupManagers konfiguriert ist:

    GET https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group
    
    
    {
      "name": "example-database-group",
      "baseInstanceName": "shard",
      ...
      "statefulPolicy": {
        "preservedState": {
          "disks": {
            "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
          }
        }
      }
      ...
    }
    

    Sie sehen, dass die zustandsorientierte Richtlinie Laufwerke mit dem Gerätenamen data-disk als zustandsorientiert deklariert, mit der Regel zum Löschen solcher Laufwerke, wenn Instanzen dauerhaft gelöscht werden.

Zustandsorientierte Konfiguration für Laufwerke in einer vorhandenen MIG festlegen und aktualisieren

Wenn Sie eine zustandsorientierte Anwendung auf einer zustandslosen MIG (einer MIG ohne zustandsorientierte Konfiguration) ausführen, können Sie vorhandene in der Instanzvorlage definierte Laufwerke als zustandsorientiert für alle Instanzen in dieser MIG konfigurieren. Damit lassen sich die Laufwerke bei Neuerstellungen, automatischen Reparaturen und Aktualisierungen von Instanzen und optional bei Löschvorgängen erhalten.

Sie können folgende Vorgänge ausführen:

  • Hinzufügen von in der Instanzvorlage definierten Laufwerken zur zustandsorientierten Richtlinie einer vorhandenen MIG, um die Laufwerke als zustandsorientiert zu deklarieren. Dadurch werden Laufwerke mit dem angegebenen Gerätenamen als zustandsorientiert für alle vorhandenen und zukünftigen Instanzen in der MIG gekennzeichnet.
  • Aktualisieren der zustandsorientierten Richtlinie, um die zustandsorientierte Konfiguration für Laufwerke zu ändern.

Die MIG wendet die aktualisierte Konfiguration in der zustandsorientierten Richtlinie automatisch und asynchron auf alle Instanzen an. Aktualisierungen von Laufwerkskonfigurationen in einer zustandsorientierten Richtlinie wirken sich nicht störend auf laufende VMs aus. Weitere Informationen finden Sie unter Aktualisierungen der zustandsorientierten Richtlinie anwenden.

Bei einer regionalen MIG müssen Sie die proaktive zonenübergreifende Umverteilung von Instanzen deaktivieren, bevor Sie zustandsorientierte Laufwerke konfigurieren können. Weitere Informationen finden Sie unter Funktionsweise regionaler Gruppen im beibehaltenen Status.

gcloud

Verwenden Sie ein oder mehrere --stateful-disk-Flags mit dem Befehl gcloud compute instance-groups managed update, um anzugeben, welche Laufwerke aus der Instanzvorlage zustandsorientiert sein sollen, oder um die Konfiguration von zustandsorientierten Laufwerken für eine vorhandene MIG zu aktualisieren:

gcloud compute instance-groups managed update NAME \
  --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]

Dabei gilt:

  • NAME: Name der verwalteten Instanzgruppe, die aktualisiert werden soll.
  • DEVICE_NAME: Gerätename eines Laufwerks, das in der Instanzvorlage angegeben ist.
  • DELETE_RULE: Wert, der vorgibt, was mit dem zustandsorientierten Laufwerk beim Löschen einer VM-Instanz geschehen soll. Folgende Optionen sind verfügbar:

    • never: (Standardeinstellung) Das Laufwerk wird beim Löschen der zugehörigen Instanz nie gelöscht, sondern stattdessen getrennt.
    • on-permanent-instance-deletion: Das zustandsorientierte Laufwerk wird gelöscht, wenn die zugehörige Instanz dauerhaft aus der Instanzgruppe gelöscht wird, beispielsweise beim manuellen Löschen der verwalteten Instanz oder Verringern der Gruppengröße.

Wenn ein angegebener Gerätename bereits in der zustandsorientierten Richtlinie konfiguriert ist, aktualisiert der Befehl die Konfiguration.

Beispiel

Sie führen eine Datenbank mit mehreren Shards auf einer MIG mit dem Namen example-database- group aus. Jede VM in der MIG speichert ein Shard auf einem zusätzlichen Laufwerk mit dem Gerätenamen data-disk, der durch die Instanzvorlage definiert ist. Die MIG hat keine zustandsorientierte Konfiguration und Sie möchten, dass die Datenlaufwerke bei der Neuerstellung, der automatischen Reparatur und bei Aktualisierungen von Instanzen erhalten bleiben. Außerdem möchten Sie verhindern, dass die Datenlaufwerke beim Löschen einer VM gelöscht werden.

  1. Aktualisieren Sie die MIG mit dem folgenden Befehl so, dass das Datenlaufwerk als zustandsorientiert definiert wird:

    gcloud compute instance-groups managed update example-database-group \
      --stateful-disk device-name=data-disk,auto-delete=never
    

    Daraufhin wendet die MIG die aktualisierte Konfiguration der zustandsorientierten Richtlinie automatisch und asynchron auf die Datenlaufwerke für alle Instanzen an. Die Datenlaufwerke bleiben jetzt bei automatischen Reparaturen, Aktualisierungen und Neuerstellungen von Instanzen erhalten und werden beim Löschen von Instanzen getrennt, da die Regel auto-delete auf never festgelegt ist.

  2. Prüfen Sie mit dem Befehl gcloud compute instance-groups managed describe example-database-group, ob das Datenlaufwerk in der zustandsorientierten Richtlinie konfiguriert ist.

API

Mit der Methode instanceGroupManagers.patch können Sie die Laufwerke in der zustandsorientierten Richtlinie der MIG konfigurieren, um anzugeben, welche Laufwerke aus der Instanzvorlage zustandsorientiert sein sollen, oder um die Konfiguration von zustandsorientierten Laufwerken für eine vorhandene MIG zu aktualisieren:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/NAME

{
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" },
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }
      }
    }
  }
}

Ersetzen Sie Folgendes:

  • PROJECT: Projekt-ID für die Anfrage.
  • ZONE: Die Zone, in der sich die MIG befindet (gilt für eine zonale MIG).
    • Ersetzen Sie bei einer regionalen MIG zones/ZONE durch regions/REGION und geben Sie die Region der MIG an.
  • NAME: Name der MIG, die aktualisiert werden soll.
  • DEVICE_NAME: Gerätename eines in der Instanzvorlage angegebenen Laufwerks, für das Sie die zustandsorientierte Konfiguration aktualisieren möchten.
  • DELETE_RULE: Wert, der vorgibt, was mit dem zustandsorientierten Laufwerk beim Löschen einer VM-Instanz geschehen soll. Folgende Optionen sind verfügbar:

    • never: (Standardeinstellung) Das Laufwerk wird beim Löschen der zugehörigen Instanz nie gelöscht, sondern stattdessen getrennt.
    • on-permanent-instance-deletion: Das zustandsorientierte Laufwerk wird gelöscht, wenn die zugehörige Instanz dauerhaft aus der Instanzgruppe gelöscht wird, beispielsweise beim manuellen Löschen der Instanz oder Verringern der Gruppengröße.

Wenn der angegebene Gerätename bereits in der zustandsorientierten Richtlinie konfiguriert ist, aktualisiert die Methode patch die Konfiguration.

Beispiel

Sie führen eine Datenbank mit mehreren Shards auf einer MIG mit dem Namen example-database- group aus. Jede VM in der MIG speichert ein Shard auf einem zusätzlichen Laufwerk mit dem Gerätenamen data-disk, der durch die Instanzvorlage definiert ist. Die MIG hat keine zustandsorientierte Konfiguration und Sie möchten, dass die Datenlaufwerke bei der Neuerstellung, der automatischen Reparatur und bei Aktualisierungen von Instanzen erhalten bleiben. Außerdem möchten Sie verhindern, dass die Datenlaufwerke beim Löschen einer VM gelöscht werden.

  1. Patchen Sie die MIG, um das Datenlaufwerk als zustandsorientiert zu definieren:

    PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group
    
    {
      "statefulPolicy": {
        "preservedState": {
          "disks": {
            "data-disk": {"autoDelete": "NEVER" }
          }
        }
      }
    }
    

    Die MIG wendet diese zustandsorientierte Konfiguration automatisch und asynchron auf die Datenlaufwerke für alle Instanzen an. Die Datenlaufwerke bleiben bei der automatischen Reparatur, bei Aktualisierungen und bei der Neuerstellung der Instanz erhalten. Die Datenlaufwerke werden beim Löschen der Instanz getrennt, da die Regel autoDelete auf NEVER festgelegt ist.

  2. Prüfen Sie, ob das Datenlaufwerk in der zustandsorientierten Richtlinie konfiguriert ist. Rufen Sie dazu die Ressource instanceGroupManagers auf, die von der Methode instanceGroupManagers.get zurückgegeben wird.

Zuvor zustandsorientierte nichtflüchtige Speicher als zustandslos deklarieren

Möglicherweise müssen Sie ein zustandsorientiertes Laufwerk so konfigurieren, dass es wie ein zustandsloses Laufwerk behandelt wird. Beispiel:

  • Sie haben die Architektur Ihrer Anwendung geändert, um den Status aus dem Laufwerk zu verschieben.
  • Sie haben das Laufwerk versehentlich als zustandsorientiert konfiguriert und möchten es zurücksetzen.

Wenn Sie alle Laufwerke mit einem bestimmten Gerätenamen als zustandslos deklarieren möchten, entfernen Sie die Konfiguration des Laufwerks mit dem gcloud-Tool oder der Compute Engine API aus der zustandsorientierten Richtlinie.

Die MIG wendet die Änderung an der zustandsorientierten Richtlinie automatisch und asynchron auf alle Instanzen an. Aktualisierungen der Laufwerkskonfiguration in einer zustandsorientierten Richtlinie wirken sich nicht störend auf laufende VM-Instanzen aus.

Weitere Informationen finden Sie unter Aktualisierungen der zustandsorientierten Richtlinie anwenden.

gcloud

Wenn Sie angeben möchten, welche Laufwerke aus der zustandsorientierten Richtlinie einer MIG zustandslos gemacht werden sollen, verwenden Sie das Flag --remove-stateful-disks mit dem Befehl gcloud compute instance-groups managed update:

gcloud compute instance-groups managed update NAME \
  --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...]

Ersetzen Sie Folgendes:

  • NAME: Name der MIG, die aktualisiert werden soll.
  • DEVICE_NAME: Gerätename eines Laufwerks, das aus der zustandsorientierten Richtlinie entfernt und als zustandslos behandelt werden soll. Sie können einen oder mehrere Gerätenamen in der Liste angeben.

Beispiel

Sie führen eine Legacy-Anwendung mit mehreren Knoten auf einer MIG mit dem Namen example-legacy-group aus. Jede VM in der MIG speichert Anwendungsdaten auf einem Bootlaufwerk mit dem Gerätenamen boot-disk, den Sie in der zustandsorientierten Richtlinie der MIG als zustandsorientiert konfiguriert haben. Sie haben Anwendungsdaten auf ein zusätzliches Laufwerk verschoben und möchten nun das Bootlaufwerk zustandslos machen, um die Aktualisierung auf neue Images zu erleichtern.

Aktualisieren Sie die verwaltete Instanzgruppe, um die zustandsorientierte Konfiguration des Bootlaufwerks zu entfernen:

gcloud compute instance-groups managed update example-legacy-group \
  --remove-stateful-disks boot-disk

Die MIG entfernt die zustandsorientierte Konfiguration für den Gerätenamen boot-disk automatisch und asynchron für die Bootlaufwerke aller Instanzen in der Gruppe. Die Bootlaufwerke bleiben an den Instanzen angehängt, sind aber nicht mehr zustandsorientiert. Wenn Sie die Instanzen neu erstellen bzw. aktualisieren oder Instanzen automatisch repariert werden, erstellt die MIG die Bootlaufwerke aus dem in der Instanzvorlage angegebenen Image neu.

API

Wenn Sie angeben möchten, welche Laufwerke aus der zustandsorientierten Richtlinie einer MIG zustandslos gemacht werden sollen, entfernen Sie die Konfiguration jedes betroffenen Laufwerks aus der zustandsorientierten Richtlinie der MIG. Verwenden Sie dafür die Methode instanceGroupManagers.patch:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/NAME

{
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "DEVICE_NAME": null,
        ...
      }
    }
  }
}

Ersetzen Sie Folgendes:

  • PROJECT: Projekt-ID für die Anfrage.
  • ZONE: Die Zone, in der sich die MIG befindet (gilt für eine zonale MIG).
    • Ersetzen Sie bei einer regionalen MIG zones/ZONE durch regions/REGION und geben Sie die Region der MIG an.
  • NAME: Name der MIG, die aktualisiert werden soll.
  • DEVICE_NAME: Gerätename eines Laufwerks, das Sie aus der zustandsorientierten Richtlinie entfernen möchten. Wenn Sie den Wert null angeben, wird die zustandsorientierte Konfiguration für dieses Laufwerk entfernt. Sie können einen oder mehrere Gerätenamen zum Entfernen angeben.

Beispiel

Sie führen eine Legacy-Anwendung mit mehreren Knoten auf einer MIG mit dem Namen example-legacy-group aus. Jede VM in der MIG speichert Anwendungsdaten auf einem Bootlaufwerk mit dem Gerätenamen boot-disk, den Sie in der zustandsorientierten Richtlinie der MIG als zustandsorientiert konfiguriert haben. Sie haben Anwendungsdaten auf ein zusätzliches Laufwerk verschoben und möchten nun das Bootlaufwerk zustandslos machen, um die Aktualisierung auf neue Images zu erleichtern.

Patchen Sie die verwaltete Instanzgruppe, um die zustandsorientierte Konfiguration des Bootlaufwerks zu entfernen:

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group

{
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "boot-disk": null
      }
    }
  }
}

Die MIG entfernt die zustandsorientierte Konfiguration für den Gerätenamen boot-disk automatisch und asynchron für die Bootlaufwerke aller Instanzen in der Gruppe. Die Bootlaufwerke bleiben an den Instanzen angehängt, sind aber nicht mehr zustandsorientiert. Wenn Sie die Instanzen neu erstellen bzw. aktualisieren oder Instanzen automatisch repariert werden, erstellt die MIG die Bootlaufwerke aus dem in der Instanzvorlage angegebenen Image neu.

Zustandsorientierte nichtflüchtige Speicher aus einer MIG entfernen

Unter Umständen müssen Sie ein zustandsorientiertes Laufwerk vollständig aus Instanzen in einer MIG entfernen, beispielsweise wenn Sie die Architektur Ihrer Anwendung geändert und den Status aus diesem Laufwerk verschoben haben.

Da das Entfernen zustandsorientierter Laufwerke aus MIGs nicht zulässig ist, müssen Sie so vorgehen:

  1. Entfernen Sie die zustandsorientierte Konfiguration des Laufwerks aus der zustandsorientierten Richtlinie. Dadurch werden Laufwerke mit dem angegebenen Gerätenamen zustandslos.
  2. Trennen Sie die Laufwerke von den VMs, wenn Sie diese weiterhin behalten möchten.
  3. Stellen Sie eine neue Instanzvorlage bereit, in der das Laufwerk nicht mehr mit dem angegebenen Gerätenamen definiert wird.

Zustandsorientierte nichtflüchtige Speicher einzeln für eine VM in einer MIG konfigurieren

Wenn Sie zustandsorientierte nichtflüchtige Speicher für eine bestimmte VM in einer MIG konfigurieren möchten, fügen Sie den Gerätenamen des Laufwerks in die instanzspezifische Konfiguration dieser VM ein. Aktualisieren Sie die VM, um die Instanzkonfiguration anzuwenden und zu aktivieren.

Das Konfigurieren zustandsorientierter nichtflüchtiger Speicher für bestimmte VMs in einer MIG ist in folgenden Fällen nützlich:

  • Sie migrieren vorhandene Arbeitslasten (verschieben vorhandene Laufwerke) von eigenständigen VMs zu zustandsorientierten MIGs, um von der automatischen Reparatur und einfachen Aktualisierungen zu profitieren.
  • Sie stellen Datensicherungen von Laufwerken wieder her, die einzeln für VMs konfiguriert wurden.
  • Sie hängen zusätzliche zustandsorientierte Laufwerke vorübergehend an eine bestimmte VM an, um Daten zu testen, zu debuggen oder zu kopieren.

Vorhandene zustandsorientierte Laufwerke in neue VMs in einer MIG aufnehmen

Sie können vorhandene zustandsorientierte Laufwerke in neue Instanzen aufnehmen, die Sie manuell in einer MIG erstellen. Dies ist nützlich, wenn Sie eine zustandsorientierte Anwendung von vorhandenen eigenständigen VMs zu einer zustandsorientierten MIG migrieren. Beispiel:

  1. Erstellen einer Instanzvorlage mit einer gemeinsamen Konfiguration für alle VM-Instanzen.
  2. Trennen der Datenlaufwerke von den eigenständigen Instanzen und Löschen dieser Instanzen. Sie können auch Bootlaufwerke trennen, wenn diese einen Status enthalten, der beibehalten werden soll.
  3. Erstellen einer leeren MIG mit der zuvor erstellten Instanzvorlage.
  4. Erstellen Sie Instanzen in der MIG mit den entsprechenden Namen und zugehörigen Laufwerken aus dem vorherigen Schritt. Die MIG reagiert auf Ihre Anfrage mit den folgenden Aktionen:

    1. Erstellt eine VM aus der Instanzvorlage mit dem angegebenen Instanznamen.
      • Eine regionale MIG erstellt die VM in derselben Zone, in der sich das Laufwerk befindet. Wenn das Laufwerk regional ist, erstellt die regionale MIG die VM in einer der Replikatzonen des Laufwerks.
    2. Erstellt eine instanzspezifische Konfiguration mit der angegebenen zustandsorientierten Konfiguration für die Laufwerke.
    3. Hängt die Laufwerke an die neue Instanz an.

Fügen Sie vorhandene zustandsorientierte Laufwerke hinzu, wenn Sie mit dem gcloud-Tool oder der API bestimmte Instanzen in einer MIG manuell erstellen. Die Konfiguration wird von der MIG sofort bei der VM-Erstellung angewendet.

gcloud

Verwenden Sie den Befehl gcloud compute instance-groups managed create-instance mit einem oder mehreren --stateful-disk-Flags, um eine VM mit einem benutzerdefinierten Namen zu erstellen und ein oder mehrere vorhandene zustandsorientierte Laufwerke an diese VM anzuhängen.

gcloud compute instance-groups managed create-instance NAME \
  --instance VM_NAME \
  [--zone ZONE | --region REGION] \
  --stateful-disk device-name=DEVICE_NAME,source=DISK[,mode=MODE][,auto-delete=DELETE_RULE]

Dabei gilt:

  • NAME: Name der MIG, in der Sie eine Instanz erstellen müssen.
  • VM_NAME: Name der neuen Instanz, die erstellt werden soll.
  • ZONE: Zone, in der sich die MIG befindet (gilt für eine zonale MIG).
  • REGION: Region, in der sich die MIG befindet (gilt für eine regionale MIG).
  • DEVICE_NAME: Gerätename, der beim Anhängen des Laufwerks verwendet werden soll.
  • DISK: URI eines vorhandenen nichtflüchtigen Speichers, der unter dem angegebenen DEVICE_NAME im Format projects/project-id/zones/zone/disks/disk-name (zonales Laufwerk) oder projects/project-id/regions/region/disks/disk-name (regionales Laufwerk) angehängt werden soll.
  • MODE: Gibt den Modus des Laufwerks an. Unterstützte Optionen sind:
    • ro: Schreibgeschützt
    • rw: (Standardeinstellung) Lesen/Schreiben
  • DELETE_RULE: Ein Wert, der vorgibt, was mit einem zustandsorientierten Laufwerk beim Löschen einer VM-Instanz geschehen soll. Folgende Optionen sind verfügbar:

    • never: (Standardeinstellung) Das Laufwerk wird beim Löschen der zugehörigen Instanz nie gelöscht, sondern stattdessen getrennt.
    • on-permanent-instance-deletion: Das zustandsorientierte Laufwerk wird gelöscht, wenn die zugehörige Instanz dauerhaft aus der Instanzgruppe gelöscht wird, beispielsweise beim manuellen Löschen der Instanz oder Verringern der Gruppengröße.

    Unabhängig vom Wert der Löschregel bleiben zustandsorientierte Laufwerke bei automatischen Reparaturen, Aktualisierungen und Neuerstellungen von Instanzen immer erhalten.

Beispiel

Sie möchten die automatische Reparatur für einen Datenbankserver nutzen, der momentan auf einer eigenständigen VM mit dem Namen db-instance ausgeführt wird und Daten derzeit auf einem Laufwerk mit dem Namen db-data-disk-1 speichert.

Erstellen Sie eine zustandsorientierte MIG mit automatischer Reparatur. Erstellen Sie eine ähnliche VM in der MIG und hängen Sie das vorhandene Datenlaufwerk db-data-disk-1 als zustandsorientiertes Laufwerk an die neue Instanz an:

  1. Beenden Sie die VM db-instance während eines Wartungsfensters.
  2. Erstellen Sie mithilfe der Konfiguration db-instance eine Instanzvorlage mit dem Namen db-template.
  3. Trennen Sie db-data-disk-1 von db-instance und löschen Sie db-instance.
  4. Erstellen Sie aus db-template eine leere MIG mit dem Namen example-database-mig und konfigurieren Sie die automatische Reparatur.
  5. Erstellen Sie eine verwaltete Instanz mit dem ursprünglichen Namen db-instance und hängen Sie db-data-disk-1 als zustandsorientiertes Laufwerk an:

    gcloud compute instance-groups managed create-instance example-database-mig \
      --instance db-instance \
      --zone us-east1-c \
      --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/db-data-disk-1,auto-delete=never
    

    Der Befehl erstellt eine Instanz mit dem Namen db-instance in der MIG, erstellt eine entsprechende instanzspezifische Konfiguration mit dem zustandsorientierten Laufwerk db-data-disk-1 und hängt das Laufwerk an die neue VM an, wobei data-disk als Gerätename verwendet wird.

API

Verwenden Sie die Methode instanceGroupManagers.createInstances, um eine oder mehrere Instanzen in einer MIG zu erstellen, benutzerdefinierte VM-Namen festzulegen und ein oder mehrere vorhandene zustandsorientierte Laufwerke an diese Instanzen anzuhängen.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/createInstances

{
  "instances": [
    {
      "name": "VM_NAME",
      "preservedState" : {
        "disks": {
          "DEVICE_NAME" : {
            "source": "DISK",
            "mode": "MODE",
            "autoDelete": "DELETE_RULE"
          },
          ...
        }
      }
    },
    ...
  ]
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: Projekt-ID für die Anfrage.
  • ZONE: Die Zone, in der sich die MIG befindet (gilt für eine zonale MIG).
    • Ersetzen Sie bei einer regionalen MIG zones/ZONE durch regions/REGION und geben Sie die Region der MIG an.
  • NAME: Name der MIG, in der eine Instanz erstellt werden soll.
  • VM_NAME: Name der zu erstellenden Instanz.
  • DEVICE_NAME: Gerätename, der beim Anhängen des Laufwerks verwendet werden soll.
  • DISK: URI eines vorhandenen nichtflüchtigen Speichers, der unter dem angegebenen DEVICE_NAME im Format projects/project-id/zones/zone/disks/disk-name (zonales Laufwerk) oder projects/project-id/regions/region/disks/disk-name (regionales Laufwerk) angehängt werden soll.
  • MODE: Gibt den Modus des Laufwerks an. Unterstützte Optionen sind:
    • READ_ONLY: Schreibgeschützt
    • READ_WRITE: (Standardeinstellung) Lesen/Schreiben
  • DELETE_RULE: Wert, der vorgibt, was mit einem zustandsorientierten Laufwerk geschehen soll, wenn eine VM gelöscht wird. Folgende Optionen sind verfügbar:

    • never: (Standardeinstellung) Das Laufwerk wird beim Löschen der zugehörigen VM nie gelöscht, sondern stattdessen getrennt.
    • on-permanent-instance-deletion: Das zustandsorientierte Laufwerk wird gelöscht, wenn die zugehörige Instanz dauerhaft aus der Instanzgruppe gelöscht wird, beispielsweise beim manuellen Löschen der Instanz oder Verringern der Gruppengröße.

    Unabhängig vom Wert der Löschregel bleiben zustandsorientierte Laufwerke bei automatischen Reparaturen, Aktualisierungen und Neuerstellungen von Instanzen immer erhalten.

Beispiel

Sie möchten die automatische Reparatur für einen Datenbankserver nutzen, der momentan auf einer eigenständigen VM mit dem Namen db-instance ausgeführt wird und Daten derzeit auf einem Laufwerk mit dem Namen db-data-disk-1 speichert.

Erstellen Sie eine zustandsorientierte MIG mit automatischer Reparatur, erstellen Sie eine ähnliche Instanz in der MIG und hängen Sie das vorhandene Datenlaufwerk db-data-disk-1 als zustandsorientiertes Laufwerk an die neue VM an:

  1. Beenden Sie die VM db-instance während eines Wartungsfensters.
  2. Erstellen Sie mithilfe der Konfiguration db-instance eine Instanzvorlage mit dem Namen db-template.
  3. Trennen Sie db-data-disk-1 von db-instance und löschen Sie db-instance.
  4. Erstellen Sie aus db-template eine leere MIG mit dem Namen example-database-mig und konfigurieren Sie die automatische Reparatur.
  5. Erstellen Sie eine Instanz mit dem ursprünglichen Namen db-instance und hängen Sie db-data-disk-1 als zustandsorientiertes Laufwerk an:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/createInstances
    
    {
      "instances": [
        {
          "name": "db-instance",
          "preservedState" : {
            "disks": {
              "data-disk" : {
                "source": "projects/example-project/zones/us-east1-c/disks/db-data-disk-1",
                "mode": "READ_WRITE",
                "autoDelete": "never"
              }
            }
          }
        }
      ]
    }
    

    Die Methode erstellt eine Instanz mit dem Namen db-instance in der MIG, erstellt eine entsprechende instanzspezifische Konfiguration mit dem zustandsorientierten Laufwerk db-data-disk-1 und hängt das Laufwerk mit data-disk als Gerätenamen an die neue Instanz an.

Zustandsorientierte Laufwerke einzeln für VMs in einer MIG hinzufügen, deklarieren und ersetzen

Wenn Sie zustandsorientierte Laufwerke einzeln für eine verwaltete Instanz konfigurieren möchten, ergänzen oder aktualisieren Sie die Konfiguration eines zustandsorientierten Laufwerks in der zugehörigen instanzspezifischen Konfiguration. Aktualisieren Sie dann die Instanz, um die instanzspezifische Konfiguration auf die VM anzuwenden.

Die gezielte Konfiguration von zustandsorientierten Laufwerken ist für die folgenden Aufgaben nützlich:

  • Zustandsorientiertes Laufwerk außerhalb einer MIG in eine VM innerhalb dieser MIG aufnehmen
  • Ein zuvor zustandsloses Laufwerk für eine VM innerhalb einer MIG als zustandsorientiert deklarieren
  • Ein zustandsorientiertes Laufwerk durch ein anderes Laufwerk für eine VM innerhalb einer MIG ersetzen

Zustandsorientiertes Laufwerk außerhalb einer MIG in eine VM in dieser MIG aufnehmen Sie können ein beliebiges Laufwerk außerhalb einer MIG an eine verwaltete Instanz anhängen. Dazu fügen Sie der zugehörigen instanzspezifischen Konfiguration eine zustandsorientierte Konfiguration für das Laufwerk hinzu. Nachdem Sie die Konfiguration angewendet haben, hängt die MIG das Laufwerk automatisch an die Instanz an und behandelt es als zustandsorientiert.

Zuvor zustandslosen nichtflüchtigen Speicher als zustandsorientiert deklarieren. Sie können ein zuvor zustandsloses Laufwerk, das derzeit an eine VM angehängt ist, als zustandsorientiert deklarieren. Dazu fügen Sie der zugehörigen instanzspezifischen Konfiguration eine zustandsorientierte Konfiguration, die den Gerätenamen und den URI einschließt, für das Laufwerk hinzu. Nachdem Sie die Konfiguration angewendet haben, behält die MIG das Laufwerk als zustandsorientiert bei.

Zustandsorientiertes Laufwerk durch ein anderes Laufwerk ersetzen. Das Ersetzen eines zustandsorientierten Laufwerks durch ein anderes zustandsorientiertes Laufwerk kann beispielsweise nützlich sein, wenn Sie auf eine wiederhergestellte Datensicherung zugreifen müssen. Zum Austauschen von zustandsorientierten Laufwerken aktualisieren Sie den URI des betreffenden Laufwerks, behalten aber denselben Gerätenamen in der instanzspezifischen Konfiguration bei. Nachdem Sie die aktualisierte instanzspezifische Konfiguration angewendet haben, trennt die MIG das alte Laufwerk und hängt das neue Laufwerk mit demselben Gerätenamen an. Legen Sie beim Anwenden der Aktualisierung fest, ob die Instanz weiter ausgeführt, neu gestartet oder neu erstellt werden soll. Der Austausch eines Bootlaufwerks erfordert mindestens einen VM-Neustart.

gcloud

Wenn Sie zustandsorientierte Laufwerke für eine VM in einer MIG einzeln konfigurieren möchten, fügen Sie die zustandsorientierte Laufwerkskonfiguration in der zugehörigen instanzspezifischen Konfiguration hinzu oder aktualisieren Sie sie. Aktualisieren Sie dann die Instanz, um die neue Konfiguration anzuwenden.

Wenn noch keine instanzspezifische Konfiguration für die Instanz vorhanden ist, verwenden Sie den Befehl gcloud compute instance-groups managed instance-configs create mit einem oder mehreren --stateful-disk-Flags:

gcloud compute instance-groups managed instance-configs create NAME \
--instance VM_NAME \
--stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \
[--no-update-instance | --update-instance] \
[--instance-update-minimal-action MINIMAL_ACTION]

Wenn bereits eine instanzspezifische Konfiguration für die Instanz vorhanden ist, verwenden Sie den Befehl gcloud compute instance-groups managed instance-configs update mit einem oder mehreren --stateful-disk-Flags.

Das Flag --update-instance (Standardeinstellung) wendet die Änderungen sofort auf die Instanz an. Wenn Sie --no-update-instance verwenden, werden die Änderungen erst dann angewendet, wenn Sie die Instanz das nächste Mal neu erstellen oder aktualisieren.

gcloud compute instance-groups managed instance-configs update NAME \
--instance VM_NAME \
--stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \
[--no-update-instance | --update-instance] \
[--instance-update-minimal-action MINIMAL_ACTION]

Dabei gilt:

  • NAME: Name der verwalteten Instanzgruppe.
  • VM_NAME: Name der VM-Instanz, für die zustandsorientierte Laufwerke konfiguriert werden sollen.
  • DEVICE_NAME: Gerätename, der zum Anhängen des Laufwerks verwendet wird.
  • DISK: URI eines vorhandenen nichtflüchtigen Speichers, der unter dem angegebenen DEVICE_NAME im Format projects/project-id/zones/zone/disks/disk-name (zonales Laufwerk) oder projects/project-id/regions/region/disks/disk-name (regionales Laufwerk) angehängt werden soll.

    Das Unterflag source=DISK ist optional, wenn das Gerät bereits in der instanzbezogenen Konfiguration der Instanz definiert ist. Andernfalls ist es erforderlich.

    Ohne Angabe bleibt der derzeit konfigurierte Laufwerk-URI unverändert.

  • MODE: Gibt den Modus des Laufwerks an. Sie können mode nur angeben, wenn Sie auch source angeben. Unterstützte Optionen sind:

    • ro: Schreibgeschützt
    • rw: (Standardeinstellung) Lesen/Schreiben

    Wenn keine Angabe gemacht wird, wird der Standardwert für eine neue zustandsorientierte Laufwerkskonfiguration festgelegt. Der Wert bleibt in einer vorhandenen Konfiguration unverändert.

  • DELETE_RULE: Wert, der vorgibt, was mit einem zustandsorientierten Laufwerk geschehen soll, wenn eine VM gelöscht wird. Folgende Optionen sind verfügbar:

    • never: (Standardeinstellung) Das Laufwerk wird beim Löschen der zugehörigen Instanz nie gelöscht, sondern stattdessen getrennt.
    • on-permanent-instance-deletion: Das zustandsorientierte Laufwerk wird gelöscht, wenn die zugehörige Instanz dauerhaft aus der Instanzgruppe gelöscht wird, beispielsweise beim manuellen Löschen der Instanz oder Verringern der Gruppengröße.

    Wenn keine Angabe gemacht wird, wird der Standardwert für eine neue zustandsorientierte Laufwerkskonfiguration festgelegt. Der Wert bleibt in einer vorhandenen Konfiguration unverändert.

    Unabhängig vom Wert der Löschregel bleiben zustandsorientierte Laufwerke bei automatischen Reparaturen, Aktualisierungen und Neuerstellungen von Instanzen immer erhalten.

  • MINIMAL_ACTION: Beim Anwenden der aktualisierten instanzspezifischen Konfiguration auf die Instanz wird zumindest die angegebene Aktion ausgeführt. Muss zusammen mit dem Flag --update-instance verwendet werden. Der Wert muss einer der folgenden sein:

    • none: Keine Aktion.
    • refresh: Aktualisierungen, die ohne das Beenden der VM angewendet werden können, werden angewendet.
    • restart: Die VM wird beendet und dann wieder gestartet.
    • replace: Die VM wird neu erstellt.

    Wenn nichts angegeben ist, wird die Aktion verwendet, die für die Aktualisierung erforderlich ist und am wenigsten Störungen verursacht.

Beispiel

Die Daten auf einem derzeit angehängten zustandsorientierten Laufwerk mit dem Namen data-disk-1 wurden beschädigt und Sie möchten diese aus der letzten Datensicherung wiederherstellen. Sie haben ein Laufwerk mit dem Namen data-disk-2 aus einem Snapshot erstellt, um das beschädigte Laufwerk in der Instanz db-instance-1 zu ersetzen, das von einer zustandsorientierten MIG mit dem Namen example-database-mig verwaltet wird. Das ursprüngliche Laufwerk data-disk-1 wurde unter dem Gerätenamen data-disk mit einer Regel zum automatischen Löschen angehängt. Diese Regel gibt vor, dass das Laufwerk nie gelöscht wird.

Führen Sie den folgenden Befehl aus, um data-disk-1 durch data-disk-2 zu ersetzen:

gcloud compute instance-groups managed instance-configs update example-database-mig \
  --instance db-instance-1 \
  --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/data-disk-2 \
  --update-instance \
  --instance-update-minimal-action restart

Der Befehl führt folgende Schritte durch:

  1. Aktualisiert die instanzspezifische Konfiguration für db-instance-1:
    1. Aktualisiert die Quelle für das Laufwerk mit dem Gerätenamen data-disk aus data-disk-1 (letzte Konfiguration) auf data-disk-2 (neue Konfiguration).
    2. Behält die Regel zum automatischen Löschen bei, die vorgibt, dass das Laufwerk nie gelöscht wird. Dies liegt daran, dass der Parameter auto-delete im Flag --stateful-disk weggelassen wird und die Standardeinstellung für die Löschregel never ist.
  2. Wendet die aktualisierte instanzspezifische Konfiguration sofort auf die VM db-instance-1 an, da das Flag --update-instance enthalten ist. Die MIG trennt data-disk-1 und hängt data-disk-2 unter demselben Gerätenamen data-disk an.
  3. Da die Mindestaktion auf restart festgelegt ist, startet die MIG die Instanz db-instance-1 neu, um die VM zu aktualisieren. Dadurch kann die Datenbankanwendung das neue Laufwerk verwenden.

API

Wenn Sie zustandsorientierte Laufwerke einzeln für VMs in einer MIG konfigurieren möchten, ergänzen oder aktualisieren Sie die Konfiguration eines zustandsorientierten Laufwerks in der zugehörigen instanzspezifischen Konfiguration. Aktualisieren Sie dann die Instanzen, um die Konfiguration anzuwenden.

Wenn noch keine instanzspezifischen Konfigurationen für die angegebenen VMs vorhanden sind, verwenden Sie die Methode instanceGroupManagers.updatePerInstanceConfigs oder Methode regionInstanceGroupManagers.updatePerInstanceConfigs mit einer zustandsorientierten Konfiguration für ein oder mehrere Laufwerke:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/updatePerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "VM_NAME",
      "preservedState" : {
        "disks": {
          "DEVICE_NAME" : {
            "source": "DISK",
            "mode": "MODE",
            "autoDelete": "DELETE_RULE"
          },
          ...
        }
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

Wenn bereits instanzspezifische Konfigurationen für die angegebenen VMs vorhanden sind, verwenden Sie die Methode instanceGroupManagers.patchPerInstanceConfigs oder Methode regionInstanceGroupManagers.patchPerInstanceConfigs mit einer zustandsorientierten Konfiguration für ein oder mehrere Laufwerke:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "VM_NAME",
      "preservedState" : {
        "disks": {
          "DEVICE_NAME" : {
            "source": "DISK",
            "mode": "MODE",
            "autoDelete": "DELETE_RULE"
          },
          ...
        }
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

Dabei gilt:

  • PROJECT_ID: Projekt-ID für die Anfrage.
  • ZONE: Die Zone, in der sich die MIG befindet (gilt für eine zonale MIG).
    • Ersetzen Sie bei einer regionalen MIG zones/ZONE durch regions/REGION und geben Sie die Region der MIG an.
  • NAME: Name der MIG.
  • VM_NAME: Name der VM, für die zustandsorientierte Laufwerke konfiguriert werden sollen.
  • DEVICE_NAME: Gerätename, der zum Anhängen des Laufwerks verwendet wird.
  • DISK: URI eines vorhandenen nichtflüchtigen Speichers, der unter dem angegebenen DEVICE_NAME im Format projects/project-id/zones/zone/disks/disk-name (zonales Laufwerk) oder projects/project-id/regions/region/disks/disk-name (regionales Laufwerk) angehängt werden soll.

    Das Feld "source": "DISK" ist optional, wenn das Gerät bereits in der instanzbezogenen Konfiguration der Instanz definiert ist. Andernfalls ist es erforderlich.

    Wenn das Feld source nicht angegeben wird, bleibt der aktuell konfigurierte Laufwerk-URI unverändert.

  • MODE: (Optional) Gibt den Modus des Laufwerks an. mode kann nur angegeben werden, wenn source angegeben ist. Unterstützte Optionen sind:

    • READ_ONLY: Schreibgeschützt
    • READ_WRITE: (Standardeinstellung) Lesen/Schreiben

    Wenn keine Angabe gemacht wird, wird der Standardwert für eine neue zustandsorientierte Laufwerkskonfiguration festgelegt. Der Wert bleibt in einer vorhandenen Konfiguration unverändert.

  • DELETE_RULE: (Optional) Wert, der vorgibt, was mit einem zustandsorientierten Laufwerk geschehen soll, wenn eine VM gelöscht wird. Folgende Optionen sind verfügbar:

    • never: (Standardeinstellung) Das Laufwerk wird beim Löschen der zugehörigen Instanz nie gelöscht, sondern stattdessen getrennt.
    • on-permanent-instance-deletion: Das zustandsorientierte Laufwerk wird gelöscht, wenn die zugehörige Instanz dauerhaft aus der Instanzgruppe gelöscht wird, beispielsweise beim manuellen Löschen der Instanz oder Verringern der Gruppengröße.

    Wenn das Feld autoDelete nicht angegeben wird, wird der Standardwert für eine neue zustandsorientierte Laufwerkskonfiguration festgelegt. Der Wert bleibt in einer vorhandenen Konfiguration unverändert.

    Unabhängig vom Wert der Löschregel bleiben zustandsorientierte Laufwerke bei automatischen Reparaturen, Aktualisierungen und Neuerstellungen von Instanzen immer erhalten.

  • FINGERPRINT: (Optional) Der Fingerabdruck für die angegebene Konfiguration, falls dieser bereits vorhanden ist. Wird für optimistisches Sperren verwendet. Wenn Sie den letzten Fingerabdruck ansehen möchten, senden Sie eine get()-Anfrage zum Abrufen der Ressource.

Die Methoden updatePerInstanceConfigs und patchPerInstanceConfigs aktualisieren die angegebenen instanzspezifischen Konfigurationen, wenden die Konfigurationsaktualisierungen jedoch nicht auf die zugehörigen verwalteten VMs an. Die Änderungen werden auf eine Instanz angewendet, wenn die MIG angewiesen wird, die Instanz neu zu erstellen oder zu aktualisieren. Sie können die Instanz auch gezielt aktualisieren, um die Änderungen zu übernehmen.

Beispiel

Die Daten auf einem derzeit angehängten zustandsorientierten Laufwerk mit dem Namen data-disk-1 wurden beschädigt und Sie möchten diese aus der letzten Datensicherung wiederherstellen. Sie haben ein Laufwerk mit dem Namen data-disk-2 aus einem Snapshot erstellt, um das beschädigte Laufwerk in der Instanz db-instance-1 zu ersetzen, das von einer zustandsorientierten MIG mit dem Namen example-database-mig verwaltet wird. Das ursprüngliche Laufwerk data-disk-1 wurde unter dem Gerätenamen data-disk mit einer Regel zum automatischen Löschen angehängt. Diese Regel gibt vor, dass das Laufwerk nie gelöscht wird.

Rufen Sie die Methode patchPerInstanceConfigs auf, um die instanzspezifische Konfiguration für db-instance-1 mit dem neuen Laufwerk zu aktualisieren:

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "db-instance-1",
      "preservedState" : {
        "disks": {
          "data-disk" : {
            "source": "projects/example-project/zones/us-east1-c/disks/data-disk-2"
          }
        }
      }
    }
  ]
}

Mit der Methode wird die instanzspezifische Konfiguration für db-instance-1 gepatcht:

  1. Aktualisiert die source für ein Laufwerk mit dem Gerätenamen data-disk aus data-disk-1 (letzte Konfiguration) auf data-disk-2 (neue Konfiguration).
  2. Lässt die Parameter mode und autoDelete unverändert, da die Parameter in der Anfrage weggelassen werden.

Die Konfigurationsaktualisierung wurde noch nicht auf die VM db-instance-1 angewendet. Die MIG wendet die Konfigurationsaktualisierung an, wenn Sie die Instanz neu erstellen oder aktualisieren.

Rufen Sie die Methode instanceGroupManagers.applyUpdatesToInstances für die Instanz auf, um die aktualisierte instanzspezifische Konfiguration auf die VM db-instance-1 anzuwenden:

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/applyUpdatesToInstances
{
  "instances": ["/zones/us-east1-c/instances/db-instance-1"],
  "minimalAction": "RESTART"
}

Die Methode aktualisiert den beibehaltenen Status der verwalteten Instanz, trennt data-disk-1 und hängt data-disk-2 unter demselben Gerätenamen data-disk an. Da minimalAction auf RESTART gesetzt ist, startet die Methode die VM db-instance-1 neu. Dadurch kann die Datenbankanwendung das neue Laufwerk verwenden.

Zustandsorientiertes Laufwerk von einer einzelnen VM trennen oder für diese als zustandslos deklarieren

Möglicherweise müssen Sie ein zustandsorientiertes Laufwerk von einer einzelnen VM trennen oder für diese so konfigurieren, dass es wie ein zustandsloses Laufwerk behandelt wird. Beispiel:

  • Sie haben die Architektur Ihrer Anwendung geändert, um den Status aus dem Laufwerk zu verschieben.
  • Sie haben das Laufwerk versehentlich als zustandsorientiert konfiguriert und möchten es zurücksetzen.

Wenn Sie ein zustandsorientiertes Laufwerk von einer einzelnen VM trennen oder für diese zustandslos machen möchten, entfernen Sie die zustandsorientierte Konfiguration des Laufwerks aus der zugehörigen instanzspezifischen Konfiguration oder löschen Sie die gesamte instanzspezifische Konfiguration. Wenn Sie die Änderung anwenden, gilt Folgendes:

  • Wenn das Laufwerk nicht in der Instanzvorlage definiert ist, trennt die MIG das Laufwerk.
    • Die MIG löscht das Laufwerk nicht, wenn Sie seine Konfiguration aus der instanzspezifischen Konfiguration löschen, unabhängig von der Regel zum automatischen Löschen in der Konfiguration.
  • Wenn das Laufwerk durch die Instanzvorlage definiert wird, behandelt die MIG das Laufwerk als zustandslos. Dies bedeutet, dass die MIG das Laufwerk aus seiner Quelle in der Instanzvorlage bei nachfolgenden Neuerstellungs-, Aktualisierungs- oder automatischen Reparaturereignissen der Instanz neu erstellt.

Durch das Entfernen einer Laufwerkskonfiguration aus einer instanzspezifischen Konfiguration wird eine laufende VM-Instanz nur dann neu gestartet, wenn Sie dies explizit veranlassen.

Weitere Informationen finden Sie unter Aktualisierungen von instanzspezifischen Konfigurationen anwenden.

gcloud

Wenn Sie zustandsorientierte Laufwerke einzeln von einer VM trennen oder für diese als zustandslos deklarieren möchten, entfernen Sie die Konfiguration des zustandsorientierten Laufwerks aus der zugehörigen instanzspezifischen Konfiguration oder löschen Sie die gesamte instanzspezifische Konfiguration, wenn sie keinen anderen Status enthält. Aktualisieren Sie die Instanz, um die Konfiguration anzuwenden.

Verwenden Sie den Befehl gcloud compute instance-groups managed instance-configs update mit dem Flag --remove-stateful-disks, um die Konfiguration eines zustandsorientierten Laufwerks aus der zugehörigen instanzspezifischen Konfiguration zu entfernen. Das Flag --update-instance (Standardeinstellung) wendet die Änderungen sofort auf die Instanz an. Wenn Sie --no-update-instance verwenden, werden die Änderungen erst dann angewendet, wenn Sie die Instanz das nächste Mal neu erstellen oder aktualisieren.

gcloud compute instance-groups managed instance-configs update NAME \
  --instance VM_NAME \
  --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...] \
  [--no-update-instance | --update-instance] \
  [--instance-update-minimal-action MINIMAL_ACTION]

Dabei gilt:

  • NAME: Name der MIG.
  • VM_NAME: Name der VM, von der die zustandsorientierte Konfiguration entfernt werden soll.
  • DEVICE_NAME: Gerätename, der zum Anhängen des Laufwerks verwendet wird.
  • MINIMAL_ACTION: Beim Aktualisieren der VM mit ihrer instanzspezifischen Konfiguration wird zumindest die angegebene Aktion ausgeführt. Kann nur zusammen mit --update-instance verwendet werden. Der Wert muss einer der folgenden sein:

    • none: Keine Aktion.
    • refresh: Aktualisierungen, die ohne das Beenden der VM angewendet werden können, werden angewendet.
    • restart: Die VM wird beendet und dann wieder gestartet.
    • replace: Die VM wird neu erstellt.

    Wenn nichts angegeben ist, wird die Aktion verwendet, die für die Aktualisierung erforderlich ist und am wenigsten Störungen verursacht.

Beispiel

Sie führen eine Legacy-Anwendung auf einer MIG mit dem Namen example-legacy-group aus. Jede VM in der MIG speichert Anwendungsdaten auf einem Bootlaufwerk mit dem Gerätenamen boot-disk. Mithilfe von instanzspezifischen Konfigurationen haben Sie jedes Bootlaufwerk als zustandsorientiert konfiguriert. Jetzt haben Sie Anwendungsdaten auf ein zusätzliches Laufwerk verschoben und möchten das Bootlaufwerk für jede VM zustandslos machen, um die Aktualisierung auf neue Images zu erleichtern.

Führen Sie für jede Instanz, z. B. für node-1, den folgenden Befehl aus:

gcloud compute instance-groups managed instance-configs update example-legacy-group \
  --instance node-1 \
  --remove-stateful-disks boot-disk \
  --update-instance

Der Befehl führt folgende Schritte durch:

  1. Entfernt die Konfiguration für das Laufwerk mit dem Gerätenamen boot-disk aus der instanzspezifischen Konfiguration für node-1.
  2. Wendet die aktualisierte instanzspezifische Konfiguration sofort auf die VM node-1 an, da das Flag --update-instance enthalten ist. Die MIG entfernt das Bootlaufwerk aus der preservedStateFromConfig der verwalteten Instanz und behandelt das Bootlaufwerk als zustandslos. Dies bedeutet, dass die MIG das Laufwerk aus seinem Boot-Image in der Instanzvorlage bei nachfolgenden Neuerstellungs-, Aktualisierungs- oder automatischen Reparaturereignissen der Instanz neu erstellt.

API

Wenn Sie zustandsorientierte Laufwerke einzeln von einer VM trennen oder für diese als zustandslos deklarieren möchten, entfernen Sie die Konfiguration des zustandsorientierten Laufwerks aus der zugehörigen instanzspezifischen Konfiguration oder löschen Sie die gesamte instanzspezifische Konfiguration, wenn sie keinen anderen Status enthält. Aktualisieren Sie dann die Instanz, um die Konfiguration anzuwenden.

Wenn Sie eine zustandsorientierte Laufwerkskonfiguration aus der zugehörigen instanzspezifischen Konfiguration entfernen möchten, verwenden Sie die Methode instanceGroupManagers.patchPerInstanceConfigs oder Methode regionInstanceGroupManagers.patchPerInstanceConfigs:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "VM_NAME",
      "preservedState" : {
        "disks": {
          "DEVICE_NAME" : null
          },
          ...
        }
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

Dabei gilt:

  • PROJECT_ID: Projekt-ID für die Anfrage.
  • ZONE: Die Zone, in der sich die MIG befindet (gilt für eine zonale MIG).
    • Ersetzen Sie bei einer regionalen MIG zones/ZONE durch regions/REGION und geben Sie die Region der MIG an.
  • NAME: Name der MIG.
  • VM_NAME: Name der VM, von der die zustandsorientierte Konfiguration entfernt werden soll.
  • DEVICE_NAME: Gerätename, der zum Anhängen des Laufwerks verwendet wird.
  • FINGERPRINT: Fingerabdruck für die angegebene Konfiguration, falls dieser bereits vorhanden ist. Wird für optimistisches Sperren verwendet. Wenn Sie den letzten Fingerabdruck ansehen möchten, senden Sie eine get()-Anfrage zum Abrufen der Ressource.

Die Methode patchPerInstanceConfigs patcht die angegebenen instanzspezifischen Konfigurationen, wendet die Änderungen jedoch nicht auf die zugehörigen VMs an. Die Änderungen werden auf eine VM angewendet, wenn Sie die Instanz neu erstellen oder aktualisieren. Sie können die Änderungen manuell oder über automatisierte Rolling Updates anwenden.

Beispiel

Sie führen eine Legacy-Anwendung auf einer MIG mit dem Namen example-legacy-group aus. Jede VM in der MIG speichert Anwendungsdaten auf einem Bootlaufwerk mit dem Gerätenamen boot-disk. Sie haben das Bootlaufwerk bei der Migration der eigenständigen VMs zur MIG als zustandsorientiert in den instanzspezifischen Konfigurationen der MIG konfiguriert. Sie haben Anwendungsdaten auf ein zusätzliches Laufwerk verschoben und möchten nun das Bootlaufwerk für jede VM zustandslos machen, um die Aktualisierung auf neue Images zu erleichtern.

  1. Rufen Sie die Methode patchPerInstanceConfigs für die Instanzen, z. B. für node-1, mit einem null-Wert für das Bootlaufwerk auf:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/patchPerInstanceConfigs
    
    {
      "perInstanceConfigs": [
        {
          "name": "node-1",
          "preservedState" : {
            "disks": {
              "boot-disk" : null
            }
          }
        }
      ]
    }
    

    Die Methode entfernt die Konfiguration für das Laufwerk mit dem Gerätenamen boot- disk aus der instanzspezifischen Konfiguration für node-1. Die Konfigurationsaktualisierung wurde noch nicht auf die VM-Instanz node-1 angewendet. Sie wird bei der nächsten Neuerstellung oder Aktualisierung der Instanz angewendet.

  2. Rufen Sie die Methode instanceGroupManagers.applyUpdatesToInstances für die Instanz auf, um die aktualisierte instanzspezifische Konfiguration auf die VM-Instanz node-1 anzuwenden:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/applyUpdatesToInstances
    {
      "instances": ["/zones/us-east1-c/instances/node-1"]
    }
    

    Die MIG entfernt das Bootlaufwerk aus der preservedStateFromConfig für die Instanz node-1 und behandelt das Laufwerk als zustandslos. Dies bedeutet, dass die MIG das Laufwerk aus seinem Boot-Image in der Instanzvorlage bei nachfolgenden Neuerstellungs-, Aktualisierungs- oder automatischen Reparaturereignissen der Instanz neu erstellt.

Feedback

Wir möchten mehr über Ihre Anwendungsfälle und Herausforderungen erfahren und freuen uns über Feedback zu zustandsorientierten MIGs. Senden Sie Ihr Feedback unter mig-discuss@google.com an unser Team.

Nächste Schritte