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

Wenn Sie mit Compute Engine VMs in einer Region im Bulk erstellen und Ihre Anwendung nicht auf einen einzelnen Maschinentyp beschränkt ist, können Sie die Erfolgsrate der Bereitstellung der erforderlichen Anzahl von VMs durch Konfiguration der Instanzflexibilität erhöhen. 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 dieser Maschinentypen bereit, je nach Verfügbarkeit von Kapazität und Kontingent.

Die Flexibilität von Instanzen hilft Ihnen, die Ressourcenverfügbarkeit bei Nachfragespitzen zu maximieren, das Preis-Leistungs-Verhältnis zu verbessern und die neueste Hardware sicher einzuführen. Weitere Informationen finden Sie unter Bereitstellung von Rechenressourcen optimieren.

In diesem Dokument wird beschrieben, wie die Instanzflexibilität für VMs funktioniert, die im Bulk erstellt werden. Dazu gehören Überschreibungen von Instanzeigenschaften 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 nutzen

Um die Instanzflexibilität zu konfigurieren, listen Sie geeignete Maschinentypen auf, indem Sie eine oder mehrere Instanzauswahlen in Ihrer regionalen Bulk-Insert-Anfrage definieren. In einer REST-Anfrage fügen Sie beispielsweise das instanceFlexibilityPolicy-Objekt ein, in dem Sie ein oder mehrere instanceSelections-Objekte 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) oder unterschiedliche Anforderungen an den Speicherplatz haben. Wenn Sie Maschinentypen mit unterschiedlichen Hardwareanforderungen verwenden möchten, können Sie mit einer Instanzauswahl die entsprechenden Attribute aus den Instanzattributen der Anfrage (instanceProperties) überschreiben. Weitere Informationen finden Sie unter Instanzattributüberschreibungen in Instanzauswahlen.

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

Compute Engine versucht dann, VMs basierend auf verfügbarer Hardware, Kontingent 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 ungenutzte Reservierungen und Spot-VM-Empfehlungen, 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 Instanzeigenschaften wie die Mindest-CPU-Plattform (minCpuPlatform) und die Laufwerke (disks) angeben, um die Eigenschaften zu überschreiben oder zu ergänzen, die Sie in den Instanzeigenschaften der Anfrage (instanceProperties) definieren. Wenn Compute Engine einen Maschinentyp aus einer Instanzauswahl auswählt, um VMs zu erstellen, werden die Instanzeigenschaften verwendet, die Sie in dieser Auswahl angeben. Wenn Sie keine Überschreibungen für eine Instanzauswahl angeben, verwendet Compute Engine die entsprechenden Eigenschaften aus instanceProperties für VMs, die aus dieser Auswahl erstellt werden.

Wenn Sie Instanzeigenschaften auf der Ebene der Instanzauswahl überschreiben, haben Sie mehr Kontrolle und Flexibilität, wenn Sie verschiedene Hardwarekonfigurationen in einer einzelnen Bulk-Insert-Anfrage 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 CPU-Mindestplattform 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 festlegen. Diese Einstellung überschreibt den minCpuPlatform-Wert 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 mischen 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-Instanzen in einer Bulk-Insert-Anfrage kombinieren und N2-Instanzen auf Intel Ice Lake ausgeführt werden sollen, 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 legen Sie es auf AUTOMATIC fest.

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

Laufwerksüberschreibungen

Sie können in einer Instanzauswahl eine benutzerdefinierte Laufwerkskonfiguration angeben, um das Bootlaufwerk oder zusätzliche Laufwerke zu überschreiben, die in instanceProperties angegeben sind, oder um zusätzliche Laufwerke anzuhängen. Mit dieser Überschreibung können Sie Maschinentypen mit unterschiedlichen Architekturen oder Unterstützung für unterschiedliche Festplattentypen kombinieren. Außerdem können Sie die für jeden Maschinentyp erforderlichen Boot-Images oder ‑Laufwerke angeben.

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

  • Verschiedene Architekturen:Sie können C4- (x86-Architektur) und C4A-Maschinentypen (Arm-Architektur) kombinieren. Da für x86- und ARM-Maschinentypen unterschiedliche Boot-Images erforderlich sind, können Sie das Bootlaufwerk überschreiben, um für jede Architektur ein kompatibles Image anzugeben.
  • Verschiedene Laufwerkstypen:Sie können N2- und N4-Maschinentypen kombinieren. Da N2 nur Persistent Disk für Bootlaufwerke und N4 nur Google Cloud Hyperdisk unterstützt, können Sie die Laufwerkskonfiguration überschreiben, um für jede Maschinenserie einen unterstützten Laufwerkstyp 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 deviceName mit keinem Laufwerk in instanceProperties übereinstimmt, wird es von Compute Engine als zusätzliches Laufwerk angehängt. Die effektive Laufwerkskonfiguration muss mit allen Maschinentypen in der Instanzauswahl kompatibel sein.

Das folgende Diagramm zeigt, wie Compute Engine Festplattenkonfigurationen 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 kleinstmöglichen CPU-Plattformen und Laufwerksüberschreibungen beim Erstellen von VMs im Bulk finden Sie unter VMs mit mehreren Maschinentypen, kleinstmöglichen CPU-Plattformen und Laufwerksüberschreibungen erstellen.

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

Beispiel: Mindest-CPU-Plattform und Laufwerküberschreibungen

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

Stellen Sie sich eine Bulk-Insert-Anfrage 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 kleinstmögliche CPU-Plattform und die Laufwerkkonfigurationen 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 Priorität (first-preference): Bei n4-standard-4-VMs wird durch die Auswahl boot-disk überschrieben, sodass anstelle des Basis-pd-balanced-Laufwerks ein hyperdisk-balanced-Laufwerk verwendet wird.
  • Zweite Einstellung (second-preference): Bei c4a-standard-4-VMs (Arm) wird boot-disk überschrieben, um ein Arm-kompatibles Boot-Image (debian-12-arm64) auf einem hyperdisk-balanced-Laufwerk zu verwenden. Außerdem wird ein zusätzliches 100 GB großes hyperdisk-balanced-Laufwerk mit dem Namen data-disk angehängt.
  • Dritte Einstellung (third-preference): Bei n2-standard-4-VMs wird durch die Auswahl minCpuPlatform auf Intel Ice Lake festgelegt 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 mit der größten Kapazität für Maschinentypen mit höherer Priorität aus.
  • BALANCED: Compute Engine verteilt VMs so gleichmäßig wie möglich auf Zonen mit verfügbaren Ressourcen. In jeder Zone werden Maschinentypen mit einer höheren Priorität bevorzugt.
  • 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 Priorität bereitzustellen.

Weitere Informationen finden Sie unter Mehrere VMs in einer Region erstellen.

Minimale VM-Bereitstellung und Instanzflexibilität

Wenn Sie in der bulkInsert-Anfrage einen Wert für die Mindestanzahl der erforderlichen VMs (minCount) definieren, versucht die API, mindestens so viele VMs zu erstellen. Wenn Compute Engine die erforderliche Mindestanzahl von VMs (minCount) nicht bereitstellen kann, schlägt der gesamte Vorgang fehl und Compute Engine erstellt keine VMs. Wenn Sie minCount mit 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 Priorität verwendet werden. Wenn in Ihrer Anfrage beispielsweise mindestens eine erforderliche VM (minCount=1) und maximal 10 VMs (count=10) angegeben sind und Compute Engine Kapazität hat, um entweder eine VM mit höherer Priorität oder sechs VMs mit niedrigerer Priorität bereitzustellen, werden die sechs VMs mit niedrigerer Priorität bereitgestellt.
  • Wenn Compute Engine mit verschiedenen Instanzauswahlen bis zu count VMs bereitstellen kann, wird die Auswahl mit der höheren Priorität bevorzugt. Wenn in Ihrer Anfrage beispielsweise mindestens eine erforderliche VM (minCount=1) und maximal 10 VMs (count=10) angegeben sind und Compute Engine sechs VMs mit einer Instanzauswahl mit höherer oder niedrigerer Priorität bereitstellen kann, werden die sechs VMs mit der Auswahl mit höherer Priorität bereitgestellt.

Weitere Informationen finden Sie unter minCount-Property in bulkInsert.

Szenarien für die Bulk-Insert-Validierung und Fehler

Compute Engine führt eine erste Validierung von Maschinentypen und ihrer zonalen Kompatibilität durch und schließt alle ungültigen Einträge aus. Wenn nach dieser ersten Prüfung mindestens eine gültige Konfiguration verbleibt, wird die VM von Compute Engine erstellt.

Einige Validierungen Ihrer Konfiguration können jedoch erst erfolgen, nachdem Compute Engine die Zonen und Maschinentypen für die Bereitstellung basierend auf Ihrer Richtlinie zur 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-Insert-Anfrage mit Validierungsfehlern fehl. Dieser Fehler kann auch dann auftreten, wenn andere Konfigurationen in instanceFlexibilityPolicy anfangs gültig waren.

Beschränkungen

Bei der Verwendung von 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 für zonale Anfragen verwendet werden.
  • Die Instanzflexibilität unterstützt keine Flex-Start-VMs und zukünftigen 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 für maximal 10 verschiedene Instanzauswahlen angeben.
  • Wenn Sie minCpuPlatform oder disks bei der Auswahl einer Instanz überschreiben, gelten auch die folgenden Einschränkungen:

Nächste Schritte