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 so bei Compute Engine authentifizieren.

    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 die Laufwerke 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 Speicherpool mit erweiterter Kapazität erstellen, können Sie die Thin Provisioning verwenden. Sie können im Speicherpool Laufwerke mit einer kumulativen Größe erstellen, die die bereitgestellte Kapazität des Pools überschreitet. Die verwendete Kapazität des Speicherpools wird durch die insgesamt genutzten Daten und nicht durch die Menge des von Ihnen bereitgestellten Speicherplatzes 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 Laufwerke im Speicherpool, 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 Speicherpools 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 Baseline-Leistung 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 des Speicherpools angerechnet. Beispiele:

    • Ein Laufwerk mit 3.000 IOPS belegt keine Pool-IOPS und im Pool sind 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 in einer bestimmten Minute die maximalen 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 die Google Cloud Console, die Google Cloud CLI oder REST verwenden, um ein Laufwerk in einem Speicherpool zu erstellen.

Console

Mit der Google Cloud Console können Sie entweder über die Seite Speicherpools oder die Seite Laufwerke ein neues Laufwerk in einem Speicherpool 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 ein Laufwerk erstellen möchten.

  3. Klicken Sie auf der Seite Speicherpool verwalten auf +Neues Laufwerk erstellen.

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

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

  6. Klicken Sie auf Speichern, wenn Sie die Laufwerkeigenschaften 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 wird nur der Speicherpool angezeigt, der in der ausgewählten Zone vorhanden ist.

  7. Wenn Sie mit dem Festlegen der Laufwerkinformationen fertig sind, klicken Sie auf Erstellen.

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 mit Laufwerksnamen angeben, die durch Leerzeichen angegeben werden, 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: Name des Speicherpools, in dem das Laufwerk erstellt werden soll
  • SIZE (optional) ist 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 dem Typ des Hyperdisk-Speicherpools entsprechen, 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 für Hyperdisk Balanced-Laufwerke 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 ein 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 Typ des Laufwerks, der dem Typ des Speicherpools entsprechen 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: 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 für Hyperdisk Balanced-Laufwerke 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 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.
const zone = 'us-central1-a';
// The name of the new disk
const diskName = 'disk-from-pool-name';
// The name of the storage pool
const 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(),
    });
  }

  const hyperdisk = (
    await disksClient.get({
      project: projectId,
      zone,
      disk: diskName,
    })
  )[0];

  console.log(JSON.stringify(hyperdisk));
}

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. Sie können optional zusätzliche Datenlaufwerke (Nicht-Bootlaufwerke) erstellen, die automatisch mit der VM verbunden werden. In den folgenden Abschnitten wird erläutert, wie Sie im Rahmen der VM-Erstellung die einzelnen Laufwerkstypen 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 für die Zone 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 Attribute des Laufwerks.

  9. Maximieren Sie Erweiterte Konfiguration anzeigen.

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

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

  12. Klicken Sie nach der Laufwerkskonfiguration auf Auswählen.

  13. Schließen Sie die Konfiguration der VM-Attribute ab.

  14. Klicken Sie auf Erstellen.

    Die Console erstellt die VM in der angegebenen Zone und das Bootlaufwerk im ausgewählten Speicherpool.

gcloud

Sie können das Bootlaufwerk für eine neue VM im Speicherpool mit dem gcloud compute instances create-Befehl erstellen und dabei das Attribut storage-pool für das Bootlaufwerk angeben.

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 ist die 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 geben dabei den Parameter storagePool für das Bootlaufwerk.

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 für das Bootlaufwerk.
  • DISK_SIZE: Größe des Bootlaufwerks in GiB.
  • DISK_TYPE: der als URI angegebene Laufwerkstyp
  • 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 ist 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 während der VM-Erstellung Laufwerke in einem Speicherpool erstellen, müssen der Maschinentyp, der Laufwerkstyp und der Speicherpool in der von Ihnen ausgewählten Zone verfügbar sein.

Console

Führen Sie die folgenden Schritte aus, um mit der Console eine neue VM mit zusätzlichen Nicht-Bootlaufwerken zu erstellen:

  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 Laufwerkstyp 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. Schließen Sie die Konfiguration der VM-Attribute ab.

  14. Klicken Sie auf Erstellen.

    Die Console erstellt die VM in der angegebenen Zone und das Nicht-Bootlaufwerk 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 für das Bootlaufwerk.
  • 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 als URI angegebene Laufwerkstyp
  • 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 ist 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, die zum Erstellen verwalteter Instanzgruppen (MIGs) verwendet werden, können die Speicherpoolinformationen enthalten. Die mit der Instanzvorlage erstellten Laufwerke werden im angegebenen Speicherpool abgelegt.

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 Attribute des Laufwerks.

  9. Maximieren Sie Erweiterte Konfiguration anzeigen.

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

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

  12. Klicken Sie nach der Laufwerkskonfiguration auf Auswählen.

  13. Schließen Sie die Konfiguration der VM-Attribute ab.

  14. Klicken Sie auf Erstellen.

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

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 geben dabei den Parameter storagePool für das Bootlaufwerk.

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 für das Bootlaufwerk.
  • DISK_SIZE: Größe des Bootlaufwerks in GiB.
  • DISK_TYPE: Der Laufwerkstyp, angegeben als URI
  • 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 ist 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