Laufwerke aus einem Speicherpool zu VMs hinzufügen


Sie können Laufwerke in einem Hyperdisk-Storage Pool erstellen und dann das Laufwerk an eine VM-Instanz anhängen oder Sie können Laufwerke im Speicherpool erstellen, wenn Sie eine VM erstellen.

Hinweise

  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. Go

      Wenn Sie die Go Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      Weitere Informationen unter Set up authentication for a local development environment.

      Java

      Wenn Sie die Java Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      Weitere Informationen unter Set up authentication for a local development environment.

      Node.js

      Wenn Sie die Node.js Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      Weitere Informationen unter Set up authentication for a local development environment.

      REST

      Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.

Erforderliche Rollen und Berechtigungen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Laufwerks mit Hyperdisk Balanced oder Hyperdisk Throughput in einem Speicherpool benötigen:

  • Compute-Instanzadministrator (Version 1) (roles/compute.instanceAdmin.v1)
  • Verbindung zu einer VM-Instanz herstellen, die als Dienstkonto ausgeführt werden kann: Dienstkontonutzer (v1) (roles/iam.serviceAccountUser-Rolle)

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Erstellen eines Laufwerks mit Hyperdisk Balanced oder Hyperdisk Throughput in einem Speicherpool erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um ein Hyperdisk Balanced- oder Hyperdisk Throughput-Laufwerk in einem Speicherpool zu erstellen:

  • So erstellen Sie Laufwerke in einem Speicherpool und hängen sie an eine VM-Instanz an:
    • compute.disks.create für das Projekt
    • compute.instances.attachDisk auf der VM
    • compute.disks.use für das Volume, das Sie an die VM anhängen möchten
    • compute.storagePools.use für den Speicherpool, in dem Sie Laufwerke erstellen
  • So formatieren Sie das angehängte Volume und stellen es bereit: compute.instances.setMetadata auf der VM

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Informationen zu den Berechtigungen, die zum Erstellen einer Instanz erforderlich sind, finden Sie unter Erforderliche Berechtigungen.

Beschränkungen

Beachten Sie die folgenden Einschränkungen zum Erstellen von Laufwerken in einem Hyperdisk Storage Pool:

  • Sie können nur Hyperdisk Throughput-Laufwerke in einem Hyperdisk Balanced Storage Pool und nur Hyperdisk Throughput-Laufwerke in einem Hyperdisk Throughput Storage Pool erstellen.
  • In einem Speicherpool können nur neue Laufwerke im selben Projekt und in derselben Zone erstellt werden.
  • Wenn Sie Bootlaufwerke in einem Speicherpool erstellen möchten, müssen Sie einen Hyperdisk Balanced Storage Pool verwenden.
  • Das Verschieben von Laufwerken in einen oder aus einem Speicherpool ist nicht zulässig. Wenn Sie ein Laufwerk in einen oder aus einem Speicherpool verschieben möchten, müssen Sie das Laufwerk aus einem Snapshot neu erstellen. Weitere Informationen finden Sie unter Laufwerkstyp ändern.
  • Sie können bis zu 1.000 Laufwerke in einem Speicherpool erstellen.
  • Speicherpools unterstützen keine regionalen Laufwerke.

Bereitstellungsoptionen

Je nach Bereitstellungstyp für den Hyperdisk Storage Pool können Sie festlegen, wie die Kapazität und Leistung der einzelnen Laufwerke bereitgestellt werden, die Sie im Speicherpool erstellen.

Laufwerkskapazität bereitstellen

Wenn Sie einen Storage Pool mit erweiterter Kapazität erstellen, können Sie die Thin Provisioning verwenden. Sie können Laufwerke im Speicherpool mit einer Gesamtgröße erstellen, die die bereitgestellte Kapazität des Pools überschreitet. Die verwendete Kapazität des Speicherpools wird durch die Gesamtzahl der verwendeten Daten und nicht durch den bereitgestellten Speicherplatz definiert. Sie können Laufwerke mit einer Gesamtkapazität von bis zu 500 % der bereitgestellten Kapazität eines Speicherpools mit erweiterter Kapazität bereitstellen.

Wenn Sie Laufwerke in einem Speicherpool mit Standardkapazität erstellen, erstellen Sie so viele Laufwerke, bis die Gesamtgröße aller Laufwerke im Speicherpool die bereitgestellte Kapazität des Speicherpools erreicht. Die Laufwerke in einem Speicherpool mit Standardkapazität verhalten sich ähnlich wie Nicht-Pool-Laufwerke, bei denen beim Erstellen der Laufwerke Kapazität verbraucht wird.

Bereitstellungsleistung

Wenn Sie einen Storage Pool mit erweiterter Leistung erstellen, können Sie die Thin Provisioning verwenden. Sie können Laufwerke im Speicherpool mit einer kumulativen Anzahl von IOPS und Durchsatz erstellen, die die bereitgestellte Leistung des Pools übersteigt. Die genutzte Leistung des Speicherpools wird durch die Gesamtleistung der Laufwerke bestimmt, nicht durch die für jedes Laufwerk bereitgestellte Leistung. Sie können Laufwerke mit einer Gesamtleistung von bis zu 500% der bereitgestellten Leistung eines Storage Pools mit erweiterter Leistung bereitstellen.

Wenn Sie Laufwerke in einem Speicherpool mit Standardleistung erstellen, müssen die IOPS oder der Durchsatz, die Sie für ein Laufwerk bereitstellen, kleiner als die verfügbaren IOPS oder der verfügbare Durchsatz im Hyperdisk Storage Pool sein. Die verfügbaren IOPS oder der verfügbare Durchsatz sind die bereitgestellte Menge für den Speicherpool abzüglich der verwendeten Menge für alle im Speicherpool erstellten Laufwerke.

Wenn eine der Bedingungen im vorherigen Abschnitt nicht erfüllt ist, schlägt die Anfrage zum Erstellen eines Laufwerks im Speicherpool fehl und das Laufwerk wird nicht erstellt.

Beispiel

Angenommen,Sie haben einen Hyperdisk Balanced Storage Pool mit 100.000 bereitgestellten IOPS.

Bei der Standardleistung gilt Folgendes:

  • Sie können bis zu 100.000 IOPS bereitstellen,wenn Sie Hyperdisk Balanced-Laufwerke im Speicherpool erstellen.
  • Ihnen werden die 100.000 IOPS der bereitgestellten Leistung des Hyperdisk Balanced-Speicherpools in Rechnung gestellt.
  • Wie Laufwerke, die außerhalb eines Speicherpools erstellt wurden,werden Hyperdisk Balanced-Laufwerke in Speicherpools mit Standardleistung automatisch mit bis zu 3.000 Baseline-IOPS und 140 MiB/s Baseline-Durchsatz bereitgestellt. Diese Basisleistung wird nicht auf die bereitgestellte Leistung für den Speicherpool angerechnet. Nur wenn Sie dem Speicherpool Laufwerke mit einer bereitgestellten Leistung hinzufügen, die über der Baseline liegt, wird dies auf die bereitgestellte Leistung für den Speicherpool angerechnet. Beispiele:

    • Ein Laufwerk mit 3.000 IOPS nutzt keine Pool-IOPS und der Pool hat noch 100.000 bereitgestellte IOPS für andere Laufwerke verfügbar.
    • Ein Laufwerk mit 13.000 IOPS belegt 10.000 Pool-IOPS. Im Pool sind noch 90.000 bereitgestellte IOPS verfügbar, die Sie anderen Laufwerken im Speicherpool zuweisen können.

Bei der erweiterten Leistungsbereitstellung gilt Folgendes:

  • Sie können beim Erstellen von Laufwerken im Speicherpool eine Hyperdisk-Gesamtleistung von bis zu 500.000 IOPS bereitstellen.
  • Ihnen werden 100.000 IOPS in Rechnung gestellt,die vom Speicherpool bereitgestellt werden.
  • Wenn Sie ein einzelnes Laufwerk (Disk1) mit 5.000 IOPS im Speicherpool erstellen, werden keine IOPS aus den bereitgestellten IOPS des Speicherpools verbraucht. Die Anzahl der IOPS, die Sie für neue Laufwerke bereitstellen können, die im Speicherpool erstellt wurden, beträgt jetzt 495.000.
  • Wenn Disk1 damit beginnt, Daten zu lesen und zu schreiben, und dabei in einer bestimmten Minute maximal 5.000 IOPS nutzt, werden 5.000 IOPS aus den bereitgestellten IOPS des Speicherpools verbraucht. Alle anderen Laufwerke, die Sie im selben Speicherpool erstellt haben, können in derselben Minute insgesamt maximal 95.000 IOPS nutzen, ohne dass es zu Konflikten kommt.

Laufwerke im Speicherpool erstellen

Sie können über die Google Cloud Console, die Google Cloud CLI oder REST einen Datenträger in einem Speicherpool erstellen.

Console

In der Google Cloud Console können Sie ein neues Laufwerk in einem Speicherpool entweder über die Seite Speicherpools oder die Seite Laufwerke erstellen.

Auf der Seite Speicherpools:

  1. Rufen Sie in der Google Cloud Console die Seite Speicherpools auf.

    Zur Seite „Speicherpools“

  2. Klicken Sie auf den Namen des Speicherpools, in dem Sie einen Datenträger erstellen möchten.

  3. Klicken Sie auf der Seite Speicherpool verwalten auf + Neuen Datenträger erstellen.

  4. Geben Sie im Bereich Neues Laufwerk hinzufügen einen Namen für das Laufwerk ein.

  5. Geben Sie alle Werte an oder ändern Sie sie, für die Sie nicht den Standardwert verwenden möchten.

  6. Klicken Sie auf Speichern, wenn Sie die Laufwerkseigenschaften festgelegt haben.

  7. Auf der Seite Speicherpool verwalten sollte das neue Laufwerk im Abschnitt Speicherpool-Laufwerke aufgeführt sein.

Auf der Seite Laufwerk erstellen:

  1. Rufen Sie in der Google Cloud Console die Seite Laufwerke > Laufwerk erstellen auf.

    Zur Seite "Laufwerk erstellen"

  2. Geben Sie einen Namen für das Laufwerk ein.

  3. Wählen Sie die Zone aus, die den Speicherpool enthält, in dem Sie das Laufwerk erstellen möchten.

  4. Wählen Sie als Laufwerktyp den Laufwerkstyp aus, der dem Hyperdisk Storage Pool entspricht, entweder Hyperdisk Throughput oder Hyperdisk Balanced.

  5. Ändern Sie die Werte in den Feldern Größe, Bereitgestellte IOPS und Bereitgestellter Durchsatz nach Bedarf.

  6. Wählen Sie im Bereich Speicherpool die Option Speicherpool aktivieren und dann den Namen des Speicherpools aus, in dem das Laufwerk erstellt werden soll. In der Liste werden nur Speicherpools angezeigt, die sich in der ausgewählten Zone befinden.

  7. Klicken Sie auf Erstellen, wenn Sie mit der Angabe der Laufwerkinformationen fertig sind.

gcloud

Verwenden Sie den Befehl gcloud compute disks create, um ein oder mehrere Laufwerke in einem Speicherpool zu erstellen.

gcloud compute disks create DISK_NAME \
    --zone=ZONE \
    --storage-pool=STORAGE_POOL_NAME \
    --size=SIZE \
    --type=DISK_TYPE \
    --provisioned-iops=PROVISIONED_IOPS \
    --provisioned-throughput=PROVISIONED_THROUGHPUT

Ersetzen Sie Folgendes:

  • DISK_NAME: Ein eindeutiger Name für das Laufwerk. Sie können eine Liste von Laufwerknamen angeben, die durch Leerzeichen getrennt sind, um mehrere Laufwerke mit denselben Attributen zu erstellen.
  • ZONE: die Zone, in der der Speicherpool erstellt wurde. Geben Sie diesen Wert im Regions-Zonen-Format an, z. B. us-central1-a.
  • STORAGE_POOL_NAME: der Name des Speicherpools, in dem das Laufwerk erstellt werden soll
  • SIZE: Optional: die bereitgestellte Kapazität des neuen Laufwerks. Der Wert muss eine ganze Zahl sein, gefolgt von der Größeneinheit GiB für Gibibyte oder TiB für Tebibyte. Wenn keine Größe angegeben ist, wird 100 GB als Standardwert verwendet.
  • DISK_TYPE: der zu erstellende Laufwerkstyp Dieser muss mit dem Typ des Hyperdisk Storage Pools übereinstimmen, entweder hyperdisk-balanced oder hyperdisk-throughput.
  • PROVISIONED_IOPS: Optional: die IOPS, die für das Laufwerk bereitgestellt werden sollen. Sie können dieses Flag nur mit Hyperdisk Balanced-Laufwerken verwenden.
  • PROVISIONED_THROUGHPUT: Optional: Der Durchsatz in Mebibyte (MB) pro Sekunde, der für das Laufwerk bereitgestellt werden soll.

REST

Wenn Sie ein oder mehrere Laufwerke in einem Speicherpool erstellen möchten, erstellen Sie eine POST mit der Methode disks.insert. Fügen Sie die Attribute name, sizeGb, type, storagePool, provisionedIops und provisionedThroughput hinzu. Wenn Sie das Laufwerk leer, unformatiert und ohne Bootfunktion erstellen möchten, geben Sie weder ein Quell-Image noch einen Quell-Snapshot an.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks

{
    "name": "DISK_NAME",
    "description": "DESCRIPTION",
    "type": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE",
    "sizeGb": "DISK_SIZE",
    "storagePool": "STORAGE_POOL_NAME",
    "provisionedIops": "IOPS_LIMIT",
    "provisionedThroughput": "THROUGHPUT_LIMIT",
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID
  • ZONE: die Zone, in der sich der Speicherpool befindet, z. B. us-central1-a Dies ist die Zone, in der das Laufwerk erstellt wird.
  • DISK_NAME: Ein eindeutiger Name für das Laufwerk.
  • DESCRIPTION: Optional: ist ein Textstring, der das Laufwerk beschreibt.
  • DISK_TYPE: der Laufwerkstyp, der mit dem Speicherpooltyp übereinstimmen muss. Verwenden Sie entweder hyperdisk-throughput oder hyperdisk-balanced.
  • DISK_SIZE: Optional: ist die Größe des neuen Laufwerks. Der Wert muss eine ganze Zahl sein, gefolgt von der Größeneinheit GiB für Gibibyte oder TiB für Tebibyte. Wenn keine Größe angegeben ist, wird 100 GB als Standardwert verwendet.
  • STORAGE_POOL_NAME: der Name des Speicherpools, in dem das Laufwerk erstellt werden soll.
  • IOPS_LIMIT: Optional: die IOPS, die für das Laufwerk bereitgestellt werden sollen. Sie können dieses Flag nur mit Hyperdisk Balanced-Laufwerken verwenden.
  • THROUGHPUT_LIMIT: Optional: Der Durchsatz in Mebibyte (MB) pro Sekunde, der für das Laufwerk bereitgestellt werden soll.

Go


// createDiskInStoragePool creates a new Hyperdisk in the specified storage pool.
func createDiskInStoragePool(w io.Writer, projectId, zone, diskName, storagePoolName, diskType string) error {
	// Example usage:
	//   projectID := "your_project_id"
	//   zone := "europe-central2-b"
	//   diskName := "your_disk_name"
	//   storagePoolName := "https://www.googleapis.com/compute/v1/projects/your_project_id/zones/europe-central2-b/storagePools/your_storage_pool"
	//   diskType := "zones/europe-central2-b/diskTypes/hyperdisk-balanced"

	ctx := context.Background()
	client, err := compute.NewDisksRESTClient(ctx)
	if err != nil {
		return fmt.Errorf("NewDisksRESTClient: %v", err)
	}
	defer client.Close()

	// Create the disk resource
	disk := &computepb.Disk{
		Name:                  proto.String(diskName),
		Type:                  proto.String(diskType),
		SizeGb:                proto.Int64(50),
		Zone:                  proto.String(zone),
		StoragePool:           proto.String(storagePoolName),
		ProvisionedIops:       proto.Int64(10000),
		ProvisionedThroughput: proto.Int64(1024),
	}

	// Create the insert disk request
	req := &computepb.InsertDiskRequest{
		Project:      projectId,
		Zone:         zone,
		DiskResource: disk,
	}

	// Send the insert disk request
	op, err := client.Insert(ctx, req)
	if err != nil {
		return fmt.Errorf("Insert disk request failed: %v", err)
	}

	// Wait for the insert disk operation to complete
	if err = op.Wait(ctx); err != nil {
		return fmt.Errorf("unable to wait for the operation: %w", err)
	}

	fmt.Fprintf(w, "Disk created in storage pool: %v\n", disk.Name)
	return nil
}

Java


import com.google.cloud.compute.v1.Disk;
import com.google.cloud.compute.v1.DisksClient;
import com.google.cloud.compute.v1.InsertDiskRequest;
import com.google.cloud.compute.v1.Operation;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

public class CreateDiskInStoragePool {
  public static void main(String[] args)
          throws IOException, ExecutionException, InterruptedException, TimeoutException {
    // TODO(developer): Replace these variables before running the sample.
    // Project ID or project number of the Google Cloud project you want to use.
    String projectId = "YOUR_PROJECT_ID";
    // Name of the zone in which you want to create the disk.
    String zone = "europe-central2-b";
    // Name of the disk you want to create.
    String diskName = "YOUR_DISK_NAME";
    // Link to the storagePool you want to use. Use format :
    // https://www.googleapis.com/compute/v1/projects/%s/zones/%s/storagePools/%s"
    String storagePoolName = "YOUR_STORAGE_POOL_LINK";
    // The type of disk you want to create. This value uses the following format:
    // "zones/{zone}/diskTypes/(hyperdisk-balanced|hyperdisk-throughput)".
    // For example: "zones/us-west3-b/diskTypes/hyperdisk-balanced"
    String diskType = String.format("zones/%s/diskTypes/hyperdisk-balanced", zone);
    // Size of the new disk in gigabytes.
    long diskSizeGb = 10;
    // Optional: the IOPS to provision for the disk.
    // You can use this flag only with Hyperdisk Balanced disks.
    long provisionedIops = 3000;
    // Optional: the throughput in mebibyte (MB) per second to provision for the disk.
    long provisionedThroughput = 140;

    createDiskInStoragePool(projectId, zone, diskName, storagePoolName, diskType,
            diskSizeGb, provisionedIops, provisionedThroughput);
  }

  // Creates a hyperdisk in the storage pool
  public static Disk createDiskInStoragePool(String projectId, String zone, String diskName,
                                             String storagePoolName, String diskType,
                                             long diskSizeGb, long iops, long throughput)
          throws IOException, ExecutionException, InterruptedException, TimeoutException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (DisksClient client = DisksClient.create()) {
      // Create a disk.
      Disk disk = Disk.newBuilder()
              .setZone(zone)
              .setName(diskName)
              .setType(diskType)
              .setSizeGb(diskSizeGb)
              .setStoragePool(storagePoolName)
              .setProvisionedIops(iops)
              .setProvisionedThroughput(throughput)
              .build();

      InsertDiskRequest request = InsertDiskRequest.newBuilder()
              .setProject(projectId)
              .setZone(zone)
              .setDiskResource(disk)
              .build();

      // Wait for the insert disk operation to complete.
      Operation operation = client.insertAsync(request).get(1, TimeUnit.MINUTES);

      if (operation.hasError()) {
        System.out.println("Disk creation failed!");
        throw new Error(operation.getError().toString());
      }

      // Wait for server update
      TimeUnit.SECONDS.sleep(10);

      Disk hyperdisk = client.get(projectId, zone, diskName);

      System.out.printf("Hyperdisk '%s' has been created successfully", hyperdisk.getName());

      return hyperdisk;
    }
  }
}

Node.js

// Import the Compute library
const computeLib = require('@google-cloud/compute');
const compute = computeLib.protos.google.cloud.compute.v1;

// Instantiate a diskClient
const disksClient = new computeLib.DisksClient();
// Instantiate a zoneOperationsClient
const zoneOperationsClient = new computeLib.ZoneOperationsClient();

/**
 * TODO(developer): Update/uncomment these variables before running the sample.
 */
// Project ID or project number of the Google Cloud project you want to use.
const projectId = await disksClient.getProjectId();

// The zone where your VM and new disk are located.
// zone = 'us-central1-a';

// The name of the new disk
// diskName = 'disk-from-pool-name';

// The name of the storage pool
// storagePoolName = 'storage-pool-name';

// Link to the storagePool you want to use. Use format:
// https://www.googleapis.com/compute/v1/projects/{projectId}/zones/{zone}/storagePools/{storagePoolName}
const storagePool = `https://www.googleapis.com/compute/v1/projects/${projectId}/zones/${zone}/storagePools/${storagePoolName}`;
// The type of disk. This value uses the following format:
// "zones/{zone}/diskTypes/(hyperdisk-balanced|hyperdisk-extreme|hyperdisk-ml|hyperdisk-throughput)".
// For example: "zones/us-west3-b/diskTypes/hyperdisk-balanced"
const diskType = `zones/${zone}/diskTypes/hyperdisk-balanced`;
// Size of the new disk in gigabytes.
const diskSizeGb = 10;
// Optional: For Hyperdisk Balanced or Hyperdisk Extreme disks,
// this is the number of I/O operations per second (IOPS) that the disk can handle.
const provisionedIops = 3000;
// Optional: For Hyperdisk Balanced or Hyperdisk Throughput volumes,
// this is an integer that represents the throughput,
// measured in MiB per second, that the disk can handle.
const provisionedThroughput = 140;

async function callCreateComputeHyperdiskFromPool() {
  // Create a disk
  const disk = new compute.Disk({
    sizeGb: diskSizeGb,
    name: diskName,
    type: diskType,
    zone,
    storagePool,
    provisionedIops,
    provisionedThroughput,
  });

  const [response] = await disksClient.insert({
    project: projectId,
    zone,
    diskResource: disk,
  });

  let operation = response.latestResponse;

  // Wait for the create disk operation to complete.
  while (operation.status !== 'DONE') {
    [operation] = await zoneOperationsClient.wait({
      operation: operation.name,
      project: projectId,
      zone: operation.zone.split('/').pop(),
    });
  }

  console.log(`Disk: ${diskName} created.`);
}

await callCreateComputeHyperdiskFromPool();

Nachdem Sie das Laufwerk erstellt haben, können Sie es an eine VM anhängen.

VM erstellen, die Laufwerke im Speicherpool verwendet

Beim Erstellen einer VM konfigurieren Sie ein Bootlaufwerk und können optional zusätzliche Datenlaufwerke (Nicht-Bootlaufwerke) erstellen, die automatisch an die VM angehängt werden. In den folgenden Abschnitten wird beschrieben, wie Sie die einzelnen Laufwerktypen im Rahmen des VM-Erstellungsprozesses in einem Speicherpool erstellen.

Bootlaufwerk für eine VM in einem Speicherpool erstellen

Wenn Sie eine VM erstellen möchten, die ein Bootlaufwerk in einem Speicherpool verwendet, müssen Sie zuerst einen Hyperdisk Balanced Storage Pool erstellen. Sie können dann eine VM mit einem Maschinentyp erstellen, der Hyperdisk Balanced-Laufwerke unterstützt. Der Maschinentyp, der Laufwerkstyp und der Speicherpool müssen in der ausgewählten Zone verfügbar sein.

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zur Seite „VM-Instanzen“

  2. Klicken Sie auf Instanz erstellen.

  3. Geben Sie einen Namen für die Instanz ein.

  4. Legen Sie die Zone auf die Zone fest, in der sich der Speicherpool befindet.

  5. Wählen Sie einen Maschinentyp aus, der Hyperdisk Balanced unterstützt, z. B. H3.

  6. Klicken Sie im Abschnitt Bootlaufwerk auf Ändern.

  7. Legen Sie im Bereich Bootlaufwerk den Bootlaufwerktyp auf Hyperdisk Balanced fest.

  8. Konfigurieren Sie die Eigenschaften für das Laufwerk.

  9. Maximieren Sie Erweiterte Konfiguration anzeigen.

  10. Wählen Sie unter der Überschrift Speicherpool die Option Speicherpool aktivieren aus.

  11. Wählen Sie in der Liste den Speicherpool aus, in dem das Laufwerk erstellt werden soll.

  12. Klicken Sie auf Auswählen, wenn Sie mit der Laufwerkskonfiguration fertig sind.

  13. Konfigurieren Sie die VM-Attribute fertig.

  14. Klicken Sie auf Erstellen.

    Die Console erstellt die VM in der angegebenen Zone und den Boot-Datenträger im ausgewählten Speicherpool.

gcloud

Sie können das Bootlaufwerk für eine neue VM im Speicherpool erstellen. Verwenden Sie dazu den Befehl gcloud compute instances create und fügen Sie das Attribut storage-pool für das Bootlaufwerk hinzu.

gcloud compute instances create VM_NAME \
    --zone=ZONE \
    --machine-type=MACHINE_TYPE \
    --create-disk=boot=yes,type=hyperdisk-balanced,size=DISK_SIZE,provisioned-throughput=THROUGHPUT, \
    provisioned-iops=IOPS,image=projects/IMAGE_PROJECT/global/images/IMAGE, \
    storage-pool=STORAGE_POOL_NAME

Ersetzen Sie Folgendes:

  • VM_NAME: der Name der VM.
  • ZONE: Region und Zone, in der die VM erstellt werden soll, im Format us-central1-a.
  • MACHINE_TYPE: der Maschinentyp der VM, z. B. m3-ultramem-32.
  • DISK_SIZE: Größe des Bootlaufwerks in GiB.
  • THROUGHPUT: der Durchsatz, der für das Laufwerk bereitgestellt werden soll
  • IOPS: die IOPS, die für das Laufwerk bereitgestellt werden sollen
  • IMAGE_PROJECT: das Projekt, das das Bild enthält
  • IMAGE: Wählen Sie eine der folgenden Optionen aus:
    • Eine bestimmte Version des Betriebssystem-Images; Beispiel: debian-12-bookworm-v20240213.
    • Eine Image-Familie, die als family/IMAGE_FAMILY formatiert sein muss. Dadurch wird die Instanz aus dem neuesten nicht verworfenen Betriebssystem-Image erstellt. Wenn Sie beispielsweise family/debian-12 angeben, legt Compute Engine eine VM aus der neuesten Version des Betriebssystem-Images in der debian-12-Image-Familie an. Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.
  • STORAGE_POOL_NAME: der Name des Speicherpools, in dem das neue Laufwerk erstellt werden soll.

REST

Sie können das Bootlaufwerk für eine neue VM im Speicherpool erstellen. Dazu erstellen Sie eine POST-Anfrage für die Methode instances.insert und fügen dabei das Attribut storagePool für das Bootlaufwerk hinzu.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
   "name": "VM_NAME",
   "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
   "disks": [
      {
         "deviceName": "BOOT_DISK_DEVICE_NAME",
         "initializeParams": {
            "diskSizeGb": "DISK_SIZE",
            "diskType": "DISK_TYPE",
            "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
            "boot": true,
            "provisionedIops": "IOPS_LIMIT",
            "provisionedThroughput": "THROUGHPUT_LIMIT",
            "storagePool": "POOL_URL"
         }
      }
   ]
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID
  • ZONE: die Zone, in der sich der Speicherpool befindet, z. B. us-central1-a Dies ist die Zone, in der die VM und das Bootlaufwerk erstellt werden.
  • VM_NAME: der Name der VM.
  • MACHINE_TYPE: der Maschinentyp der VM, z. B. m3-ultramem-32.
  • BOOT_DISK_DEVICE_NAME: Gerätename des Bootlaufwerks
  • DISK_SIZE: Größe des Bootlaufwerks in GiB.
  • DISK_TYPE: Der Laufwerkstyp, als URI angegeben
  • IMAGE_PROJECT: das Projekt, das das Bild enthält
  • IMAGE: Wählen Sie eine der folgenden Optionen aus:
    • Eine bestimmte Version des Betriebssystem-Images; Beispiel: debian-12-bookworm-v20240213.
    • Eine Image-Familie, die als family/IMAGE_FAMILY formatiert sein muss. Dadurch wird die Instanz aus dem neuesten nicht verworfenen Betriebssystem-Image erstellt. Wenn Sie beispielsweise family/debian-12 angeben, legt Compute Engine eine VM aus der neuesten Version des Betriebssystem-Images in der debian-12-Image-Familie an. Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.
  • IOPS_LIMIT: die IOPS, die für das Laufwerk bereitgestellt werden sollen
  • THROUGHPUT_LIMIT: der Durchsatz, der für das Laufwerk bereitgestellt werden soll
  • POOL_URL: der Speicherpool, in dem das neue Laufwerk erstellt wird. Sie können dies als teilweise oder vollständige URL der Ressource angeben. Beispiele für gültige Werte:
    • https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/storagePools/STORAGE_POOL_NAME
    • projects/PROJECT_ID/zones/ZONE/storagePools/STORAGE_POOL_NAME
    • zones/ZONE/storagePools/STORAGE_POOL_NAME

Zusätzliche Laufwerke in einem Speicherpool während der VM-Erstellung erstellen

Wenn Sie beim Erstellen einer VM Laufwerke in einem Speicherpool erstellen, müssen der Maschinentyp, der Laufwerktyp und der Speicherpool in der ausgewählten Zone verfügbar sein.

Console

So erstellen Sie mit der Console eine neue VM mit zusätzlichen Nicht-Bootlaufwerken:

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zur Seite „VM-Instanzen“

  2. Klicken Sie auf Instanz erstellen.

  3. Geben Sie einen Namen für die VM ein.

  4. Legen Sie die Zone auf die Zone fest, in der sich der Speicherpool befindet.

  5. Wählen Sie einen Maschinentyp aus, der den vom Speicherpool verwendeten Laufwerktyp unterstützt.

  6. Maximieren Sie den Bereich Erweiterte Optionen.

  7. Maximieren Sie Laufwerke.

  8. Klicken Sie auf Neues Laufwerk hinzufügen.

  9. Geben Sie im Bereich Neues Laufwerk hinzufügen die Informationen für das Laufwerk ein. Legen Sie den Laufwerkstyp so fest, dass er mit dem Storage Pool-Typ übereinstimmt.

  10. Wählen Sie im Bereich Speicherpool die Option Speicherpool aktivieren aus.

  11. Wählen Sie im Feld Speicherpool auswählen den Speicherpool aus, in dem das Laufwerk erstellt werden soll.

  12. Wenn Sie mit der Laufwerkskonfiguration fertig sind, klicken Sie auf Speichern.

  13. Konfigurieren Sie die VM-Attribute fertig.

  14. Klicken Sie auf Erstellen.

    Die Console erstellt die VM in der angegebenen Zone und den nicht bootfähigen Datenträger im ausgewählten Speicherpool.

gcloud

Sie können während der VM-Erstellung neue Laufwerke in einem Speicherpool erstellen. Verwenden Sie dazu den Befehl gcloud compute instances create und fügen Sie das Attribut storage-pool für das Laufwerk hinzu.

gcloud compute instances create VM_NAME \
    --zone=ZONE \
    --machine-type=MACHINE_TYPE \
    --create-disk=auto-delete=yes,boot=yes,device-name=BOOT_DISK_DEVICE_NAME,image=IMAGE_NAME, \
    size=BOOT_DISK_SIZE,type=BOOT_DISK_TYPE
    --create-disk=auto-delete=yes,boot=no,device-name=DATA_DISK_DEVICE_NAME,size=DATA_DISK_SIZE, \
    type=DATA_DISK_TYPE,provisioned-iops=IOPS,provisioned-throughput=THROUGHPUT, \
    storage_pool=STORAGE_POOL_NAME

Ersetzen Sie Folgendes:

  • VM_NAME: der Name der VM.
  • ZONE: Region und Zone, in der die VM erstellt werden soll, im Format us-central1-a
  • MACHINE_TYPE: der Maschinentyp der VM.
  • BOOT_DISK_DEVICE_NAME: Gerätename des Bootlaufwerks
  • IMAGE_NAME: Der Name des Betriebssystem-Images, das auf dem Bootlaufwerk installiert werden soll, z. B. debian-12-bookworm-v20240213
  • BOOT_DISK_SIZE: Größe des neuen Laufwerks in GiB.
  • BOOT_DISK_TYPE: Der Laufwerkstyp.
  • DATA_DISK_DEVICE_NAME: Name des Laufwerkgeräts für das Datenlaufwerk
  • DATA_DISK_SIZE: die Größe des Datenlaufwerks in GiB
  • DATA_DISK_TYPE: der Datenlaufwerktyp, entweder hyperdisk-balanced oder hyperdisk-throughput
  • IOPS: die IOPS, die für das Laufwerk bereitgestellt werden sollen
  • THROUGHPUT: der Durchsatz, der für das Laufwerk bereitgestellt werden soll
  • STORAGE_POOL_NAME: Der eindeutige Name des Speicherpools, in dem Sie das Laufwerk erstellen möchten.

REST

Sie können während der VM-Erstellung neue Laufwerke in einem Speicherpool erstellen. Dazu erstellen Sie eine POST-Anfrage für die Methode instances.insert und fügen dabei das Attribut storagePool für die zusätzlichen Laufwerke hinzu.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
   "name": "VM_NAME",
   "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
   "disks": [
      {
        "initializeParams":{
            "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE"
        },
        "boot":true
      },
      {
        "deviceName": "DEVICE_NAME",
        "boot":false,
        "initializeParams": {
           "diskSizeGb": "DISK_SIZE",
           "diskType": "DISK_TYPE",
           "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
           "provisionedIops": "IOPS_LIMIT",
           "provisionedThroughput": "THROUGHPUT_LIMIT",
           "storagePool": "POOL_URL"
        }
      }
   ]
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID
  • ZONE: die Zone, in der sich der Speicherpool befindet, z. B. us-central1-a Dies ist die Zone, in der die VM und das Bootlaufwerk erstellt werden.
  • VM_NAME: der Name der VM.
  • MACHINE_TYPE: der Maschinentyp der VM, z. B. m3-ultramem-32.
  • IMAGE_PROJECT: das Projekt, das das Bild enthält
  • IMAGE: Wählen Sie eine der folgenden Optionen aus:
    • Eine bestimmte Version des Betriebssystem-Images; Beispiel: debian-12-bookworm-v20240213.
    • Eine Image-Familie, die als family/IMAGE_FAMILY formatiert sein muss. Dadurch wird die Instanz aus dem neuesten nicht verworfenen Betriebssystem-Image erstellt. Wenn Sie beispielsweise family/debian-12 angeben, legt Compute Engine eine VM aus der neuesten Version des Betriebssystem-Images in der debian-12-Image-Familie an. Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.
  • DEVICE_NAME: Gerätename für das Datenlaufwerk
  • DISK_SIZE: Größe des Datenlaufwerks in GiB.
  • DISK_TYPE: Der Laufwerkstyp, als URI angegeben
  • IOPS_LIMIT: die IOPS, die für das Laufwerk bereitgestellt werden sollen
  • THROUGHPUT_LIMIT: der Durchsatz, der für das Laufwerk bereitgestellt werden soll
  • POOL_URL: der Speicherpool, in dem das neue Laufwerk erstellt wird. Sie können dies als teilweise oder vollständige URL der Ressource angeben. Beispiele für gültige Werte:
    • https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/storagePools/STORAGE_POOL_NAME
    • projects/PROJECT_ID/zones/ZONE/storagePools/STORAGE_POOL_NAME
    • zones/ZONE/storagePools/STORAGE_POOL_NAME

Speicherpool in einer Instanzvorlage verwenden

Die Instanzvorlagen, mit denen verwaltete Instanzgruppen (MIGs) erstellt werden, können die Informationen zum Speicherpool enthalten. Die mit der Instanzvorlage erstellten Laufwerke werden im angegebenen Speicherpool platziert.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Instanzvorlagen auf.

    Zu Instanzvorlagen

  2. Klicken Sie auf Instanzvorlage erstellen.

  3. Geben Sie einen Namen für die Instanzvorlage ein.

  4. Wählen Sie als Standort Regional und im Feld Region die Region aus, in der sich der Speicherpool befindet.

  5. Wählen Sie einen Maschinentyp aus, der Hyperdisk Balanced unterstützt, z. B. C3.

  6. Klicken Sie im Abschnitt Bootlaufwerk auf Ändern.

  7. Legen Sie im Bereich Bootlaufwerk den Bootlaufwerktyp auf Hyperdisk Balanced fest.

  8. Konfigurieren Sie die Eigenschaften für das Laufwerk.

  9. Maximieren Sie Erweiterte Konfiguration anzeigen.

  10. Wählen Sie unter der Überschrift Speicherpool die Option Speicherpool aktivieren aus.

  11. Wählen Sie in der Liste den Speicherpool aus, in dem das Laufwerk erstellt werden soll.

  12. Klicken Sie auf Auswählen, wenn Sie mit der Laufwerkskonfiguration fertig sind.

  13. Konfigurieren Sie die VM-Attribute fertig.

  14. Klicken Sie auf Erstellen.

    Mit der Vorlage wird die VM in der angegebenen Zone und das Bootlaufwerk im ausgewählten Speicherpool erstellt.

gcloud

Sie können in einer Instanzvorlage angeben, dass das Bootlaufwerk in einem Speicherpool erstellt wird. Verwenden Sie dazu den Befehl gcloud compute instance-templates create und fügen Sie das Attribut storage-pool für das Bootlaufwerk hinzu.

gcloud compute instance-templates create TEMPLATE_NAME \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE \
    --create-disk=boot=yes,type=hyperdisk-balanced,size=DISK_SIZE,provisioned-throughput=THROUGHPUT, \
    provisioned-iops=IOPS,image=projects/IMAGE_PROJECT/global/images/IMAGE, \
    storage-pool=STORAGE_POOL_NAME

Ersetzen Sie Folgendes:

  • TEMPLATE_NAME ist der Name der Instanzvorlage.
  • REGION: die Region, in der Sie die regionale Instanzvorlage erstellen möchten. Die Region muss die Zone enthalten, in der sich der Speicherpool befindet.
  • MACHINE_TYPE: der Maschinentyp, der beim Erstellen der VM verwendet werden soll, z.  . h3-standard-88.
  • DISK_SIZE: die neue Größe des Laufwerks in GiB
  • THROUGHPUT: der Durchsatz, der für das Laufwerk bereitgestellt werden soll
  • IOPS: die IOPS, die für das Laufwerk bereitgestellt werden sollen
  • IMAGE_PROJECT: das Projekt, das das Bild enthält
  • IMAGE: Wählen Sie eine der folgenden Optionen aus:
    • Eine bestimmte Version des Betriebssystem-Images; Beispiel: debian-12-bookworm-v20240213.
    • Eine Image-Familie, die als family/IMAGE_FAMILY formatiert sein muss. Dadurch wird die Instanz aus dem neuesten nicht verworfenen Betriebssystem-Image erstellt. Wenn Sie beispielsweise family/debian-12 angeben, legt Compute Engine eine VM aus der neuesten Version des Betriebssystem-Images in der debian-12-Image-Familie an. Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.
  • STORAGE_POOL_NAME: der Name des Speicherpools, in dem das neue Laufwerk erstellt werden soll.

REST

Sie können das Bootlaufwerk für eine neue VM im Speicherpool erstellen. Dazu erstellen Sie eine POST-Anfrage für die Methode instances.insert und fügen dabei das Attribut storagePool für das Bootlaufwerk hinzu.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
{
   "name": "VM_NAME",
   "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
   "disks": [
      {
         "deviceName": "BOOT_DISK_DEVICE_NAME",
         "initializeParams": {
            "diskSizeGb": "DISK_SIZE",
            "diskType": "DISK_TYPE",
            "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
            "boot": true,
            "provisionedIops": "IOPS_LIMIT",
            "provisionedThroughput": "THROUGHPUT_LIMIT",
            "storagePool": "POOL_URL"
         }
      }
   ]
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID
  • VM_NAME: der Name der VM.
  • ZONE: die Zone, in der sich der Speicherpool befindet, z. B. us-central1-a Dies ist die Zone, in der die VM und das Bootlaufwerk erstellt werden.
  • MACHINE_TYPE: der Maschinentyp der VM, z. B. m3-ultramem-32.
  • BOOT_DISK_DEVICE_NAME: Gerätename des Bootlaufwerks
  • DISK_SIZE: Größe des Bootlaufwerks in GiB.
  • DISK_TYPE: Der Laufwerkstyp, als URI angegeben
  • IMAGE_PROJECT: das Projekt, das das Bild enthält
  • IMAGE: Wählen Sie eine der folgenden Optionen aus:
    • Eine bestimmte Version des Betriebssystem-Images; Beispiel: debian-12-bookworm-v20240213.
    • Eine Image-Familie, die als family/IMAGE_FAMILY formatiert sein muss. Dadurch wird die Instanz aus dem neuesten nicht verworfenen Betriebssystem-Image erstellt. Wenn Sie beispielsweise family/debian-12 angeben, legt Compute Engine eine Instanz aus der neuesten Version des Betriebssystem-Images in der debian-12-Image-Familie an. Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.
  • IOPS_LIMIT: die IOPS, die für das Laufwerk bereitgestellt werden sollen
  • THROUGHPUT_LIMIT: der Durchsatz, der für das Laufwerk bereitgestellt werden soll
  • POOL_URL: der Speicherpool, in dem das neue Laufwerk erstellt wird. Sie können dies als teilweise oder vollständige URL der Ressource angeben. Beispiele für gültige Werte:
    • https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/storagePools/STORAGE_POOL_NAME
    • projects/PROJECT_ID/zones/ZONE/storagePools/STORAGE_POOL_NAME
    • zones/ZONE/storagePools/STORAGE_POOL_NAME