Informationen zur Instanzflexibilität für VMs, die im Bulk erstellt wurden

Wenn Sie mit der Compute Engine virtuelle Maschinen (VMs) im Bulk in einer Region erstellen und Ihre Anwendung nicht auf einen einzelnen Maschinentyp beschränkt ist, können Sie die Erfolgsrate der Bereitstellung der erforderlichen Anzahl von VMs erhöhen, indem Sie die Instanzflexibilität konfigurieren. Mit der Instanzflexibilität können Sie einen oder mehrere Maschinentypen angeben, die für Ihre Arbeitslast geeignet sind. Compute Engine stellt dann VMs mit einem oder mehreren dieser Maschinentypen bereit, je nach Kapazität und Kontingentverfügbarkeit. Mit einer einzelnen Bulk-Einfügeanfrage können VMs mit mehreren verschiedenen Maschinentypen erstellt werden.

Mit der Instanzflexibilität können Sie die Ressourcenverfügbarkeit bei Nachfragespitzen maximieren, das Preis-Leistungs-Verhältnis verbessern und die neueste Hardware sicher einführen. Weitere Informationen finden Sie unter Compute Bereitstellung optimieren.

In diesem Dokument wird beschrieben, wie die Instanzflexibilität für VMs funktioniert, die im Bulk erstellt wurden, einschließlich Überschreibungen von Instanzattributen für die Mindest-CPU-Plattform und Laufwerke sowie Einschränkungen. Weitere Informationen zum Konfigurieren der Instanzflexibilität finden Sie unter VMs im Bulk mit Instanzflexibilität erstellen.

Instanzflexibilität verwenden

Wenn Sie die Instanzflexibilität konfigurieren möchten, listen Sie geeignete Maschinentypen auf, indem Sie eine oder mehrere Instanzauswahlen in Ihrer regionalen Bulk-Einfügeanfrage definieren. In einer REST-Anfrage fügen Sie beispielsweise das Objekt instanceFlexibilityPolicy ein, in dem Sie ein oder mehrere Objekte vom Typ instanceSelections definieren, die jeweils eine Liste von Maschinentypen enthalten.

Sie können auch Maschinentypen angeben, die auf verschiedenen CPU-Plattformen ausgeführt werden, unterschiedliche Architekturen (z. B. x86 und Arm) haben oder unterschiedliche Laufwerksanforderungen haben. Wenn Sie Maschinentypen mit unterschiedlichen Hardwareanforderungen verwenden möchten, überschreiben Sie mit einer Instanzauswahl die entsprechenden Attribute aus den Instanzattributen der Anfrage (instanceProperties). Weitere Informationen finden Sie unter Überschreibungen von Instanzattributen in Instanzauswahlen.

Wenn Compute Engine die Anfrage erhält, werden zuerst die Maschinentypen und ihre zonale Kompatibilität validiert. Ungültige Einträge werden dabei ausgeschlossen. Wenn mindestens eine gültige Konfiguration vorhanden ist, wird der Vorgang fortgesetzt.

Compute Engine versucht dann, VMs basierend auf verfügbarer Hardware, Kontingenten und Reservierungen bereitzustellen. Wenn Sie Ränge für Ihre Instanzauswahlen konfigurieren, werden Auswahlen mit einem niedrigeren Rang priorisiert. Innerhalb jedes Rangs berücksichtigt Compute Engine nicht verwendete Reservierungen und Empfehlungen für Spot-VM, um Maschinentypen mit einer geringeren Wahrscheinlichkeit für ein vorzeitiges Beenden auszuwählen.

Überschreibungen von Instanzattributen in Instanzauswahlen

Wenn Sie eine Instanzauswahl treffen, können Sie zusätzliche Instanzattribute wie die Mindest-CPU-Plattform (minCpuPlatform) und Laufwerke (disks) angeben, um die in den Instanzattributen der Anfrage (instanceProperties) definierten Attribute zu überschreiben oder zu ergänzen. Wenn Compute Engine einen Maschinentyp aus einer Instanzauswahl auswählt, um VMs zu erstellen, werden die Instanzattribute verwendet, die Sie in dieser Auswahl angeben. Wenn Sie keine Überschreibungen für eine Instanzauswahl angeben, verwendet Compute Engine die entsprechenden Attribute aus instanceProperties für VMs, die aus dieser Auswahl erstellt werden.

Das Überschreiben von Instanzattributen auf der Ebene der Instanzauswahl bietet mehr Kontrolle und Flexibilität, wenn Sie in einer einzelnen Bulk-Einfügeanfrage unterschiedliche Hardwarekonfigurationen verwenden.

Überschreibungen der Mindest-CPU-Plattform

Sie können eine Mindest-CPU-Plattform (minCpuPlatform) für VMs angeben, die von Compute Engine aus den Maschinentypen in einer Instanzauswahl erstellt werden. Mit dieser Überschreibung können Sie verschiedene Maschinentypen kombinieren und Mindest-CPU-Plattformen selektiv anwenden. Jeder Maschinentyp in einer Instanzauswahl muss die effektive Mindest-CPU-Plattform unterstützen, unabhängig davon, ob sie in der Auswahl angegeben oder von instanceProperties übernommen wurde.

Alternativ können Sie das Feld minCpuPlatform auf AUTOMATIC setzen. Diese Einstellung überschreibt den Wert minCpuPlatform in instanceProperties und ermöglicht es Compute Engine, eine beliebige kompatible CPU-Plattform für die Maschinentypen in der Instanzauswahl zu verwenden.

Wenn Sie Maschinentypen kombinieren möchten, bei denen nur eine Serie eine bestimmte CPU-Plattform unterstützt, platzieren Sie sie in separaten Instanzauswahlen. N4-Maschinentypen unterstützen beispielsweise die Intel Emerald Rapids-Plattform, während N2-Maschinentypen mit weniger als 96 vCPUs Intel Ice Lake und Intel Cascade Lake unterstützen. Wenn Sie N4 und N2 in einer Bulk-Einfügeanfrage kombinieren und N2 auf Intel Ice Lake ausführen möchten, konfigurieren Sie zwei Instanzauswahlen so:

  • N2-Auswahl:Setzen Sie das Feld minCpuPlatform auf Intel Ice Lake.
  • N4-Auswahl:Lassen Sie das Feld minCpuPlatform leer oder setzen Sie es auf AUTOMATIC.

Sie können beiden Maschinentypen die gleiche Priorität zuweisen, indem Sie beiden Instanzauswahlen denselben Rang zuweisen.

Überschreibungen von Laufwerken

Sie können in einer Instanzauswahl eine benutzerdefinierte Laufwerkskonfiguration angeben, um das in instanceProperties angegebene Bootlaufwerk oder zusätzliche Laufwerke zu überschreiben oder zusätzliche Laufwerke anzuhängen. Mit dieser Überschreibung können Sie Maschinentypen kombinieren, die unterschiedliche Architekturen haben oder unterschiedliche Laufwerkstypen unterstützen. Außerdem können Sie die Boot-Images oder Laufwerke angeben, die für jeden Maschinentyp erforderlich sind.

Sie können beispielsweise separate Instanzauswahlen verwenden, um Laufwerke für unterschiedliche Anforderungen zu überschreiben:

  • Unterschiedliche Architekturen:Sie können C4- (x86-Architektur) und C4A- (Arm-Architektur) Maschinentypen kombinieren. Da für x86- und Arm-Maschinentypen unterschiedliche Boot-Images erforderlich sind, können Sie das Bootlaufwerk überschreiben, um ein kompatibles Image für jede Architektur anzugeben.
  • Unterschiedliche Laufwerkstypen:Sie können N2- und N4-Maschinentypen kombinieren. Da N2 nur nichtflüchtigen Speicher für Bootlaufwerke und N4 nur Google Cloud Hyperdisk unterstützt, können Sie die Laufwerkskonfiguration überschreiben, um einen unterstützten Laufwerkstyp für jede Maschinenserie anzugeben.

In beiden Fällen können Sie beiden Maschinentypen die gleiche Priorität zuweisen, indem Sie den Instanzauswahlen denselben Rang zuweisen.

Wenn ein Laufwerk in einer Instanzauswahl einen deviceName hat, der mit einem Laufwerk in instanceProperties übereinstimmt, überschreibt Compute Engine die Konfiguration dieses Laufwerks. Wenn der deviceName mit keinem Laufwerk in instanceProperties übereinstimmt, wird er von Compute Engine als zusätzliches Laufwerk angehängt. Sie müssen darauf achten, dass die effektive Laufwerkskonfiguration mit allen Maschinentypen in der Instanzauswahl kompatibel ist.

Das folgende Diagramm zeigt, wie Compute Engine Laufwerkskonfigurationen aus instanceProperties und einer Instanzauswahl zusammenführt:

Diagramm, das zeigt, dass Laufwerke in einer Instanzauswahl Laufwerke mit übereinstimmenden Gerätenamen in Instanzeigenschaften überschreiben und als zusätzliche Laufwerke angehängt werden, wenn die Gerätenamen nicht übereinstimmen.

Eine Anleitung zum Angeben von Überschreibungen für die Mindest-CPU-Plattform und Laufwerke beim Erstellen von VMs im Bulk finden Sie unter VMs mit mehreren Maschinentypen, Mindest-CPU Plattform und Laufwerksüberschreibungen erstellen.

Weitere Informationen zu den Einschränkungen bei der Verwendung von Überschreibungen für die Instanzauswahl finden Sie im Abschnitt Einschränkungen in diesem Dokument.

Beispiel: Überschreibungen für Mindest-CPU-Plattform und Laufwerke

Sie können Überschreibungen in einer Richtlinie für die Instanzflexibilität verwenden, um VMs in Maschinenserien bereitzustellen, die unterschiedliche CPU-Plattformen, Boot-Images oder Laufwerkstypen erfordern.

Stellen Sie sich eine Bulk-Einfügeanfrage mit der folgenden instanceProperties-Basiskonfiguration vor, die ein standardmäßiges pd-balanced-Bootlaufwerk definiert:

"instanceProperties": {
  "disks": [
    {
      "autoDelete": true,
      "deviceName": "boot-disk",
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/debian-cloud/global/images/family/debian-12",
        "diskSizeGb": "10",
        "diskType": "pd-balanced"
      }
    }
  ],
  "networkInterfaces": [{}]
}

Die folgende instanceFlexibilityPolicy-Konfiguration in derselben Anfrage überschreibt die instanceProperties-Basiskonfiguration, indem sie die Mindest-CPU-Plattform und Laufwerkskonfigurationen für drei Instanzauswahlen angibt:

"instanceFlexibilityPolicy": {
  "instanceSelections": {
    "first-preference": {
      "rank": 1,
      "machineTypes": ["n4-standard-4"],
      "disks": [
        {
          "autoDelete": true,
          "deviceName": "boot-disk",
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/debian-cloud/global/images/family/debian-12",
            "diskSizeGb": "10",
            "diskType": "hyperdisk-balanced"
          }
        }
      ]
    },
    "second-preference": {
      "rank": 2,
      "machineTypes": ["c4a-standard-4"],
      "disks": [
        {
          "autoDelete": true,
          "deviceName": "boot-disk",
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/debian-cloud/global/images/family/debian-12-arm64",
            "diskSizeGb": "10",
            "diskType": "hyperdisk-balanced"
          }
        },
        {
          "autoDelete": true,
          "deviceName": "data-disk",
          "boot": false,
          "initializeParams": {
            "diskSizeGb": "100",
            "diskType": "hyperdisk-balanced"
          }
        }
      ]
    },
    "third-preference": {
      "rank": 3,
      "machineTypes": ["n2-standard-4"],
      "minCpuPlatform": "Intel Ice Lake",
      "disks": [
        {
          "autoDelete": true,
          "deviceName": "boot-disk",
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/debian-cloud/global/images/family/debian-12",
            "diskSizeGb": "10",
            "diskType": "pd-ssd"
          }
        }
      ]
    }
  }
}

In diesem Beispiel wendet Compute Engine die folgenden Überschreibungen an, je nachdem, welche Instanzauswahl zum Erstellen von VMs verwendet wird:

  • Erste Präferenz (first-preference) : Für n4-standard-4-VMs überschreibt die Auswahl boot-disk, um anstelle des pd-balanced-Basislaufwerks ein hyperdisk-balanced-Laufwerk zu verwenden.
  • Zweite Präferenz (second-preference) : Für c4a-standard-4-VMs (Arm) überschreibt die Auswahl boot-disk, um ein Arm-kompatibles Boot-Image (debian-12-arm64) auf einem hyperdisk-balanced-Laufwerk zu verwenden, und hängt ein zusätzliches 100 GB großes hyperdisk-balanced-Laufwerk mit dem Namen data-disk an.
  • Dritte Präferenz (third-preference) : Für n2-standard-4-VMs wird mit der Auswahl minCpuPlatform auf Intel Ice Lake gesetzt und boot-disk überschrieben, um ein pd-ssd-Laufwerk zu verwenden.

Zonenauswahl bei definierter Zielverteilungsform

Wenn Sie die Instanzflexibilität mit einer regionalen bulkInsert-Anfrage verwenden, können Sie eine Zielverteilungsform angeben, um zu steuern, wie VMs auf Zonen in der Region verteilt werden. Compute Engine wählt Zonen für die Bereitstellung von VMs basierend auf dieser Form aus:

  • ANY_SINGLE_ZONE: Compute Engine wählt eine einzelne Zone aus, die die größte Kapazität für Maschinentypen mit einer höheren Präferenz hat.
  • BALANCED: Compute Engine verteilt VMs so gleichmäßig wie möglich auf Zonen mit verfügbaren Ressourcen. Innerhalb jeder Zone priorisiert Compute Engine Maschinentypen mit einer höheren Präferenz.
  • ANY: Compute Engine wählt Zonen mit verfügbaren Ressourcen aus. Wenn Ränge konfiguriert sind, priorisiert Compute Engine Zonen, um VMs mit Maschinentypen mit einer höheren Präferenz bereitzustellen.

Weitere Informationen finden Sie unter VMs im Bulk in einer Region erstellen.

Mindestanzahl an VMs und Instanzflexibilität

Wenn Sie in der bulkInsert-Anfrage einen Wert für die erforderliche Mindestanzahl an VMs (minCount) definieren, versucht die API, mindestens so viele VMs zu erstellen. Wenn Compute Engine die erforderliche Mindestanzahl an VMs (minCount) nicht bereitstellen kann, schlägt der gesamte Vorgang fehl und Compute Engine erstellt keine VMs. Wenn Sie minCount mit der Instanzflexibilität verwenden, priorisiert Compute Engine die Bereitstellung von VMs basierend auf der Verfügbarkeit und nicht auf dem Rang:

  • Compute Engine priorisiert die Bereitstellung der maximalen Anzahl von VMs bis zu count, auch wenn dies bedeutet, dass Maschinen mit geringerer Präferenz verwendet werden. Wenn Ihre Anfrage beispielsweise mindestens eine erforderliche VM (minCount=1) und maximal 10 VMs (count=10) angibt und Compute Engine entweder eine VM mit höherer Präferenz oder sechs VMs mit geringerer Präferenz bereitstellen kann, stellt Compute Engine die sechs VMs mit geringerer Präferenz bereit.
  • Wenn Compute Engine mit unterschiedlichen Instanzauswahlen dieselbe maximale Anzahl von VMs bis zu count bereitstellen kann, wird die Auswahl mit höherer Präferenz priorisiert. Wenn Ihre Anfrage beispielsweise mindestens eine erforderliche VM (minCount=1) und maximal 10 VMs (count=10) angibt und Compute Engine sechs VMs mit einer Instanzauswahl mit höherer oder geringerer Präferenz bereitstellen kann, stellt Compute Engine die sechs VMs aus der Auswahl mit höherer Präferenz bereit.

Weitere Informationen finden Sie unter minCount Attribut in bulkInsert.

Bulk-Einfügung – Validierung und Fehlerszenarien

Compute Engine führt eine erste Validierung der Maschinentypen und ihrer zonalen Kompatibilität durch. Ungültige Einträge werden dabei ausgeschlossen. Wenn nach dieser ersten Prüfung mindestens eine gültige Konfiguration vorhanden ist, fährt Compute Engine mit der VM-Erstellung fort.

Einige Validierungen Ihrer Konfiguration können jedoch erst erfolgen, nachdem Compute Engine die Zonen und Maschinentypen für die Bereitstellung basierend auf Ihrer Richtlinie für die Instanzflexibilität und der verfügbaren Kapazität ausgewählt hat. Wenn in dieser späteren Validierungsphase festgestellt wird, dass die für die Bereitstellung ausgewählte Kombination aus Maschinentyp und Zone ungültig ist, schlägt die gesamte Bulk-Einfügeanfrage mit Validierungsfehlern fehl. Dieser Fehler kann auch auftreten, wenn andere Konfigurationen in der instanceFlexibilityPolicy ursprünglich gültig waren.

Beschränkungen

Bei der Verwendung der Instanzflexibilität für die Bulk-Erstellung von VMs gelten die folgenden Einschränkungen:

  • Sie können die Instanzflexibilität nur für regionale bulkInsert-Anfragen angeben. Sie kann nicht mit zonalen Anfragen verwendet werden.
  • Die Instanzflexibilität unterstützt keine Flex-Start-VMs und vorausschauenden Reservierungen.
  • Sie können die Instanzflexibilität nicht mit AI Hypercomputer-Funktionen oder mit A3 Ultra-, A4- und neueren GPUs verwenden.
  • Sie können maximal 10 verschiedene Maschinentypen in maximal 10 verschiedenen Instanzauswahlen angeben.
  • Wenn Sie minCpuPlatform oder disks in einer Instanzauswahl überschreiben, gelten außerdem die folgenden Einschränkungen:

Nächste Schritte