Aggiungere dischi da un pool di archiviazione alle VM


Puoi creare dischi in un pool di archiviazione Hyperdisk e poi collegarli a un'istanza di una macchina virtuale (VM) oppure puoi creare dischi nel pool di archiviazione quando crei una VM.

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    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. Vai

      Per utilizzare gli Go esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia alla gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.

      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.

      Per ulteriori informazioni, consulta Set up authentication for a local development environment.

      Java

      Per utilizzare gli Java esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia alla gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.

      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.

      Per ulteriori informazioni, consulta Set up authentication for a local development environment.

      Node.js

      Per utilizzare gli Node.js esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia alla gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.

      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.

      Per ulteriori informazioni, consulta Set up authentication for a local development environment.

      REST

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

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

        gcloud init

      Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Ruoli e autorizzazioni richiesti

Per ottenere le autorizzazioni necessarie per creare un disco Hyperdisk bilanciato o Hyperdisk Throughput in un pool di archiviazione, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

  • Amministratore istanze Compute (v1) (roles/compute.instanceAdmin.v1)
  • Per connetterti a un'istanza VM che può essere eseguita come account di servizio: Utente account di servizio (v1) (ruolo roles/iam.serviceAccountUser)

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare un disco Hyperdisk bilanciato o Hyperdisk Throughput in un pool di archiviazione. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per creare un disco Hyperdisk Balanced o Hyperdisk Throughput in un pool di archiviazione sono necessarie le seguenti autorizzazioni:

  • Per creare dischi in un pool di archiviazione e collegarli a un'istanza VM:
    • compute.disks.create sul progetto
    • compute.instances.attachDisk sulla VM
    • compute.disks.use sul volume che vuoi collegare alla VM
    • compute.storagePools.use nel pool di archiviazione in cui stai creando i dischi
  • Per formattare e montare il volume collegato: compute.instances.setMetadata sulla VM

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Per le autorizzazioni necessarie per creare un'istanza, consulta Autorizzazioni richieste.

Limitazioni

Esamina le seguenti limitazioni per la creazione di dischi in un pool di archiviazione Hyperdisk:

  • Puoi creare solo dischi Hyperdisk bilanciati in un pool di archiviazione Hyperdisk bilanciato e solo dischi Hyperdisk Throughput in un pool di archiviazione Hyperdisk Throughput.
  • In un pool di archiviazione è possibile creare solo nuovi dischi nella stessa zona e nello stesso progetto.
  • Per creare dischi di avvio in un pool di archiviazione, devi utilizzare un pool di archiviazione bilanciato Hyperdisk.
  • Non è consentito spostare i dischi all'interno o all'esterno di un pool di archiviazione. Per spostare un disco all'interno o all'esterno di un pool di archiviazione, devi ricrearlo da uno snapshot. Per ulteriori informazioni, consulta Modificare il tipo di disco.
  • Puoi creare fino a 1000 dischi in un pool di archiviazione.
  • I pool di archiviazione non supportano i dischi regionali.

Opzioni di provisioning

A seconda del tipo di provisioning per il pool di archiviazione Hyperdisk, puoi scegliere come eseguire il provisioning sia della capacità sia delle prestazioni di ogni disco creato nel pool di archiviazione.

Eseguire il provisioning della capacità del disco

Se crei un pool di archiviazione con capacità avanzata, puoi utilizzare il thin provisioning. Puoi creare dischi nel pool di archiviazione con dimensioni cumulative superiori alla capacità sottoposta a provisioning del pool. La capacità utilizzata del pool di archiviazione è definita dai dati totali in uso e non dalla quantità di spazio su disco di cui hai eseguito il provisioning. Puoi eseguire il provisioning di dischi con una capacità aggregata fino al 500% della capacità sottoposta a provisioning di un pool di archiviazione con capacità avanzata.

Se crei dischi in un pool di archiviazione con capacità standard, devi creare dischi nel pool di archiviazione fino a quando le dimensioni totali di tutti i dischi nel pool di archiviazione non raggiungono la capacità del pool di archiviazione sottoposta a provisioning. I dischi di un pool di archiviazione con capacità standard si comportano in modo simile ai dischi non appartenenti a un pool, in cui la capacità viene utilizzata al momento della creazione dei dischi.

Rendimento del provisioning

Se crei un pool di archiviazione ad alte prestazioni, puoi utilizzare il thin provisioning. Puoi creare dischi nel pool di archiviazione con un valore cumulativo di IOPS e throughput che superi le prestazioni di provisioning del pool. Le prestazioni utilizzate del pool di archiviazione sono definite dalle prestazioni totali utilizzate dai dischi e non dalla quantità di prestazioni di cui è stato eseguito il provisioning per ciascun disco. Puoi eseguire il provisioning di dischi con un rendimento aggregato fino al 500% del rendimento sottoposto a provisioning di un pool di archiviazione ad alte prestazioni.

Se crei dischi in un pool di archiviazione con prestazioni standard, le IOPS o il throughput di cui esegui il provisioning per un disco devono essere inferiori a quelli disponibili nel pool di archiviazione Hyperdisk. Le IOPS o il throughput disponibili corrispondono all'importo di provisioning per il pool di archiviazione meno l'importo utilizzato per tutti i dischi creati nel pool di archiviazione.

Se una delle condizioni del paragrafo precedente non è vera, la richiesta di creazione di un disco nel pool di archiviazione non va a buon fine e il disco non viene creato.

Esempio

Supponiamo che tu abbia un pool di archiviazione bilanciato Hyperdisk con 100.000 IOPS sottoposte a provisioning.

Con il provisioning delle prestazioni standard:

  • Puoi eseguire il provisioning di un massimo di 100.000 IOPS aggregate quando crei dischi Hyperdisk bilanciati nel pool di archiviazione.
  • Ti viene addebitato il costo delle 100.000 IOPS di prestazioni del pool di archiviazione bilanciato Hyperdisk sottoposto a provisioning.
  • Come i dischi creati al di fuori di un pool di archiviazione, i dischi Hyperdisk Balanced nei pool di archiviazione con prestazioni standard vengono sottoposti a provisioning automatico con fino a 3000 IOPS di base e 140 MiB/s di throughput di base. Questo rendimento di riferimento non viene conteggiato nel rendimento di cui è stato eseguito il provisioning per il pool di archiviazione. Solo quando aggiungi dischi al pool di archiviazione con prestazioni di cui è stato eseguito il provisioning superiori alla linea di base, queste vengono conteggiate ai fini del calcolo delle prestazioni di cui è stato eseguito il provisioning per il pool di archiviazione, ad esempio:

    • Un disco sottoposto a provisioning con 3000 IOPS utilizza 0 IOPS del pool e il pool ha ancora 100.000 IOPS di provisioning disponibili per altri dischi.
    • Un disco sottoposto a provisioning con 13.000 IOPS utilizza 10.000 IOPS del pool e il pool ha 90.000 IOPS di provisioning rimanenti che puoi allocare ad altri dischi nel pool di archiviazione.

Con il provisioning delle prestazioni avanzate:

  • Puoi eseguire il provisioning di un massimo di 500.000 IOPS di prestazioni Hyperdisk aggregate quando crei i dischi nel pool di archiviazione.
  • Ti vengono addebitate 100.000 IOPS sottoposte a provisioning dal pool di archiviazione.
  • Se crei un singolo disco (Disk1) nel pool di archiviazione con 5000 IOPS, non consumi alcuna IOPS dalle IOPS sottoposte a provisioning del pool di archiviazione. Tuttavia, la quantità di IOPS che puoi eseguire il provisioning per i nuovi dischi creati nel pool di archiviazione ora è pari a 495.000.
  • Se Disk1 inizia a leggere e scrivere dati e utilizza il massimo di 5000 IOPS in un determinato minuto, vengono consumate 5000 IOPS dalle IOPS sottoposte a provisioning del pool di archiviazione. Tutti gli altri dischi creati nello stesso pool di archiviazione possono utilizzare un massimo aggregato di 95.000 IOPS nello stesso minuto senza generare conflitti.

Creare dischi nel pool di archiviazione

Puoi utilizzare la console Google Cloud, Google Cloud CLI o REST per creare un disco in un pool di archiviazione.

Console

Utilizzando la console Google Cloud, puoi creare un nuovo disco in un pool di archiviazione tramite la pagina Pool di archiviazione o la pagina Dischi.

Nella pagina Pool di archiviazione:

  1. Nella console Google Cloud, vai alla pagina Pool di archiviazione.

    Vai alla pagina Pool di archiviazione

  2. Fai clic sul nome del pool di archiviazione in cui vuoi creare un disco.

  3. Nella pagina Gestisci pool di archiviazione, fai clic su +Crea nuovo disco.

  4. Nel riquadro Aggiungi nuovo disco, inserisci un nome per il disco.

  5. Specifica o modifica i valori per i quali non vuoi utilizzare il valore predefinito.

  6. Al termine della specifica delle proprietà del disco, fai clic su Salva.

  7. Nella pagina Gestisci il pool di archiviazione, dovresti vedere il nuovo disco elencato nella sezione Dischi del pool di archiviazione.

Nella pagina Crea disco:

  1. Nella console Google Cloud, vai alla pagina Dischi > Crea un disco.

    Vai alla pagina Crea un disco

  2. Inserisci un nome per il disco.

  3. Seleziona la zona che contiene il pool di archiviazione in cui vuoi creare il disco.

  4. Per Tipo di disco, scegli il tipo di disco corrispondente al pool di archiviazione Hyperdisk, Hyperdisk Throughput o Hyperdisk Balanced.

  5. Modifica i valori nei campi Dimensione, IOPS di cui è stato eseguito il provisioning e Throughput di cui è stato eseguito il provisioning, se necessario.

  6. Nella sezione Pool di archiviazione, seleziona Attiva pool di archiviazione, quindi scegli il nome del pool di archiviazione in cui creare il disco. Nell'elenco vengono visualizzati solo i pool di archiviazione esistenti nella zona selezionata.

  7. Al termine della specifica delle informazioni sul disco, fai clic su Crea.

gcloud

Per creare uno o più dischi in un pool di archiviazione, utilizza il comando gcloud compute disks create.

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

Sostituisci quanto segue:

  • DISK_NAME: un nome univoco per il disco. Puoi fornire un elenco di nomi di dischi specificati da spazi per creare più dischi con gli stessi attributi.
  • ZONE: la zona in cui è stato creato il pool di archiviazione. Specifica questo valore in formato regione-zona, ad esempio us-central1-a.
  • STORAGE_POOL_NAME: il nome del pool di archiviazione in cui creare il disco
  • SIZE: facoltativo, la capacità di cui è stato eseguito il provisioning del nuovo disco. Il valore deve essere un numero intero seguito da un'unità di misura della dimensione in GB per gibibyte o TB per tebibyte. Se non viene specificata alcuna dimensione, viene utilizzato il valore predefinito di 100 GB.
  • DISK_TYPE: il tipo di disco da creare. Deve corrispondere al tipo del pool di archiviazione Hyperdisk, hyperdisk-balanced o hyperdisk-throughput.
  • PROVISIONED_IOPS: facoltativo, le IOPS da eseguire il provisioning per il disco. Puoi utilizzare questo flag solo con i dischi Hyperdisk bilanciati.
  • PROVISIONED_THROUGHPUT: facoltativo: la velocità in mebibyte (MB) al secondo da eseguire il provisioning per il disco.

REST

Per creare uno o più dischi in un pool di archiviazione, crea un POST utilizzando il metodo disks.insert. Includi le proprietà name, sizeGb, type, storagePool, provisionedIops e provisionedThroughput. Per creare questo disco come disco non di avvio vuoto e non formattato, non specificare un'immagine di origine o uno snapshot di origine.

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",
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto
  • ZONE: la zona in cui si trova il pool di archiviazione, ad esempio us-central1-a. Questa è la zona in cui verrà creato il disco.
  • DISK_NAME: un nome univoco per il disco.
  • DESCRIPTION: facoltativo, una stringa di testo che descrive il disco.
  • DISK_TYPE: il tipo di disco, che deve corrispondere al tipo di pool di archiviazione. Utilizza hyperdisk-throughput o hyperdisk-balanced.
  • DISK_SIZE: facoltativo, le dimensioni del nuovo disco. Il valore deve essere un numero intero seguito da una unità di misura della dimensione in GB per i gibibyte o TB per i tebibyte. Se non viene specificata alcuna dimensione, viene utilizzato il valore predefinito di 100 GB.
  • STORAGE_POOL_NAME: il nome del pool di archiviazione in cui creare il disco.
  • IOPS_LIMIT: facoltativo, le IOPS da eseguire il provisioning per il disco. Puoi utilizzare questo flag solo con i dischi Hyperdisk bilanciati.
  • THROUGHPUT_LIMIT: facoltativo. La velocità in mebibyte (MB) per secondo da eseguire il provisioning per il disco.

Vai


// 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();

Dopo aver creato il disco, puoi collegarlo a una VM.

Crea una VM che utilizza i dischi nel pool di archiviazione

Quando crei una VM, configuri un disco di avvio e, facoltativamente, puoi creare altri dischi di dati (non di avvio) che vengono collegati automaticamente alla VM. Le sezioni seguenti spiegano come creare ogni tipo di disco in un pool di archiviazione nell'ambito del processo di creazione della VM.

Creare il disco di avvio per una VM in un pool di archiviazione

Per creare una VM che utilizza un disco di avvio in un pool di archiviazione, devi prima creare un pool di archiviazione Hyperdisk bilanciato. Puoi quindi creare una VM utilizzando un tipo di macchina che supporta i dischi Hyperdisk bilanciati. Il tipo di macchina, il tipo di disco e il pool di archiviazione devono essere tutti disponibili nella zona scelta.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic su Crea istanza.

  3. Inserisci un nome per l'istanza.

  4. Imposta la zona sulla stessa zona in cui si trova il pool di archiviazione.

  5. Scegli un tipo di macchina che supporti Hyperdisk Balanced, ad esempio H3.

  6. Nella sezione Disco di avvio, fai clic su Cambia.

  7. Nel riquadro Disco di avvio, imposta Tipo di disco di avvio su Hyperdisk bilanciato.

  8. Configura le proprietà del disco.

  9. Espandi Mostra configurazione avanzata.

  10. Nella sezione Pool di archiviazione, seleziona Abilita pool di archiviazione.

  11. Scegli il pool di archiviazione in cui creare il disco dall'elenco.

  12. Al termine della configurazione del disco, fai clic su Seleziona.

  13. Completa la configurazione delle proprietà della VM.

  14. Fai clic su Crea.

    La console crea la VM nella zona specificata e il disco di avvio nel pool di archiviazione selezionato.

gcloud

Puoi creare il disco di avvio per una nuova VM nel pool di archiviazione utilizzando il comando gcloud compute instances create e includendo la proprietà storage-pool per il disco di avvio.

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

Sostituisci quanto segue:

  • VM_NAME: il nome della VM.
  • ZONE: la regione e la zona in cui creare la VM, utilizzando il formato us-central1-a.
  • MACHINE_TYPE: il tipo di macchina della VM, ad esempio m3-ultramem-32.
  • DISK_SIZE: le dimensioni, in GiB, del disco di avvio
  • THROUGHPUT: la velocità effettiva da eseguire il provisioning per il disco
  • IOPS: le IOPS da eseguire il provisioning per il disco
  • IMAGE_PROJECT: il progetto che contiene l'immagine
  • IMAGE: specifica una delle seguenti opzioni:
    • Una versione specifica dell'immagine del sistema operativo, ad esempio debian-12-bookworm-v20240213.
    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. In questo modo viene creata l'istanza dall'immagine del sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, Compute Engine crea una VM utilizzando la versione più recente dell'immagine del sistema operativo nella famiglia di immagini debian-12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.
  • STORAGE_POOL_NAME: il nome del pool di archiviazione in cui creare il nuovo disco.

REST

Puoi creare il disco di avvio per una nuova VM nel pool di archiviazione costruendo una richiesta POST per il metodo instances.insert e includendo la proprietà storagePool per il disco di avvio.

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"
         }
      }
   ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto
  • ZONE: la zona in cui si trova il pool di archiviazione, ad esempio us-central1-a. Questa è la zona in cui vengono creati la VM e il disco di avvio.
  • VM_NAME: il nome della VM.
  • MACHINE_TYPE: il tipo di macchina della VM, ad esempio m3-ultramem-32.
  • BOOT_DISK_DEVICE_NAME: il nome del dispositivo per il disco di avvio
  • DISK_SIZE: le dimensioni, in GiB, del disco di avvio
  • DISK_TYPE: il tipo di disco, specificato come URI
  • IMAGE_PROJECT: il progetto che contiene l'immagine
  • IMAGE: specifica una delle seguenti opzioni:
    • Una versione specifica dell'immagine del sistema operativo, ad esempio debian-12-bookworm-v20240213.
    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. In questo modo viene creata l'istanza dall'immagine del sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, Compute Engine crea una VM utilizzando la versione più recente dell'immagine del sistema operativo nella famiglia di immagini debian-12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.
  • IOPS_LIMIT: le IOPS da eseguire il provisioning per il disco
  • THROUGHPUT_LIMIT: la velocità effettiva da eseguire il provisioning per il disco
  • POOL_URL: il pool di archiviazione in cui viene creato il nuovo disco. Puoi fornire un URL completo o parziale della risorsa. Ad esempio, i seguenti sono valori validi:
    • 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

Creare dischi aggiuntivi in un pool di archiviazione durante la creazione della VM

Quando crei i dischi in un pool di archiviazione durante la creazione della VM, il tipo di macchina, il tipo di disco e il pool di archiviazione devono essere disponibili nella zona scelta.

Console

Per utilizzare la console per creare una nuova VM con dischi aggiuntivi non di avvio:

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic su Crea istanza.

  3. Inserisci un nome per la VM.

  4. Imposta la zona sulla stessa zona in cui si trova il pool di archiviazione.

  5. Scegli un tipo di macchina che supporti il tipo di disco utilizzato dal pool di archiviazione.

  6. Espandi la sezione Opzioni avanzate.

  7. Espandi Dischi.

  8. Fai clic su Aggiungi nuovo disco.

  9. Nel riquadro Aggiungi nuovo disco, inserisci le informazioni del disco. Imposta il Tipo di disco in modo che corrisponda al tipo di pool di archiviazione.

  10. Nella sezione Pool di archiviazione, seleziona Abilita il pool di archiviazione.

  11. Nel campo Seleziona un pool di archiviazione, seleziona il pool di archiviazione in cui creare il disco.

  12. Al termine della configurazione del disco, fai clic su Salva.

  13. Completa la configurazione delle proprietà della VM.

  14. Fai clic su Crea.

    La console crea la VM nella zona specificata e il disco non di avvio nel pool di archiviazione selezionato.

gcloud

Puoi creare nuovi dischi in un pool di archiviazione durante la creazione della VM utilizzando il comando gcloud compute instances create e includendo la proprietà storage-pool per il disco.

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

Sostituisci quanto segue:

  • VM_NAME: il nome della VM.
  • ZONE: la regione e la zona in cui creare la VM, utilizzando il formato us-central1-a
  • MACHINE_TYPE: il tipo di macchina della VM
  • BOOT_DISK_DEVICE_NAME: il nome del dispositivo per il disco di avvio
  • IMAGE_NAME: il nome dell'immagine del sistema operativo da installare sul disco di avvio, ad esempio debian-12-bookworm-v20240213
  • BOOT_DISK_SIZE: le dimensioni, in GiB, del disco di avvio
  • BOOT_DISK_TYPE: il tipo di disco
  • DATA_DISK_DEVICE_NAME: il nome del dispositivo del disco dati
  • DATA_DISK_SIZE: le dimensioni del disco dati in GiB
  • DATA_DISK_TYPE: il tipo di disco di dati, hyperdisk-balanced o hyperdisk-throughput
  • IOPS: le IOPS da eseguire il provisioning per il disco
  • THROUGHPUT: la velocità effettiva da eseguire il provisioning per il disco
  • STORAGE_POOL_NAME: il nome univoco del pool di archiviazione in cui vuoi creare il disco.

REST

Puoi creare nuovi dischi in un pool di archiviazione durante la creazione della VM costruendo una richiesta POST per il metodo instances.insert e includendo la proprietà storagePool per i dischi aggiuntivi.

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"
        }
      }
   ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto
  • ZONE: la zona in cui si trova il pool di archiviazione, ad esempio us-central1-a. Questa è la zona in cui vengono creati la VM e il disco di avvio.
  • VM_NAME: il nome della VM.
  • MACHINE_TYPE: il tipo di macchina della VM, ad esempio m3-ultramem-32.
  • IMAGE_PROJECT: il progetto che contiene l'immagine
  • IMAGE: specifica una delle seguenti opzioni:
    • Una versione specifica dell'immagine del sistema operativo, ad esempio debian-12-bookworm-v20240213.
    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. In questo modo viene creata l'istanza dall'immagine del sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, Compute Engine crea una VM utilizzando la versione più recente dell'immagine del sistema operativo nella famiglia di immagini debian-12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.
  • DEVICE_NAME: il nome del dispositivo per il disco dati
  • DISK_SIZE: le dimensioni, in GiB, del disco dati
  • DISK_TYPE: il tipo di disco, specificato come URI
  • IOPS_LIMIT: le IOPS da eseguire il provisioning per il disco
  • THROUGHPUT_LIMIT: la velocità effettiva da eseguire il provisioning per il disco
  • POOL_URL: il pool di archiviazione in cui viene creato il nuovo disco. Puoi fornire un URL completo o parziale della risorsa. Ad esempio, i seguenti sono valori validi:
    • 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

Utilizzare il pool di archiviazione in un modello di istanza

I modelli di istanza utilizzati per creare gruppi di istanze gestite (MIG) possono contenere le informazioni sul pool di archiviazione. I dischi creati utilizzando il modello di istanza vengono posizionati nel pool di archiviazione specificato.

Console

  1. Nella console Google Cloud, vai alla pagina Modelli di istanza.

    Vai a Modelli di istanza

  2. Fai clic su Crea modello istanza.

  3. Inserisci un nome per il modello di istanza.

  4. Scegli Regionale per la località e nel campo Regione, scegli la regione in cui si trova il pool di archiviazione.

  5. Scegli un tipo di macchina che supporti Hyperdisk bilanciato, ad esempio C3.

  6. Nella sezione Disco di avvio, fai clic su Cambia.

  7. Nel riquadro Disco di avvio, imposta Tipo di disco di avvio su Hyperdisk bilanciato.

  8. Configura le proprietà del disco.

  9. Espandi Mostra configurazione avanzata.

  10. Nella sezione Pool di archiviazione, seleziona Abilita pool di archiviazione.

  11. Scegli il pool di archiviazione in cui creare il disco dall'elenco.

  12. Al termine della configurazione del disco, fai clic su Seleziona.

  13. Completa la configurazione delle proprietà della VM.

  14. Fai clic su Crea.

    Il modello crea la VM nella zona specificata e il disco di avvio nel pool di archiviazione selezionato.

gcloud

In un modello di istanza puoi specificare che il disco del volume deve essere creato in un pool di archiviazione utilizzando il comando gcloud compute instance-templates create e includendo la proprietà storage-pool per il disco di avvio.

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

Sostituisci quanto segue:

  • TEMPLATE_NAME: il nome del modello di istanza.
  • REGION: la regione in cui vuoi creare il modello di istanza regionale. La regione deve contenere la zona in cui si trova il pool di archiviazione.
  • MACHINE_TYPE: il tipo di macchina da utilizzare per la creazione della VM, ad esempio h3-standard-88.
  • DISK_SIZE: le dimensioni, in GiB, del disco
  • THROUGHPUT: la velocità effettiva da eseguire il provisioning per il disco
  • IOPS: le IOPS da eseguire il provisioning per il disco
  • IMAGE_PROJECT: il progetto che contiene l'immagine
  • IMAGE: specifica una delle seguenti opzioni:
    • Una versione specifica dell'immagine del sistema operativo, ad esempio debian-12-bookworm-v20240213.
    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. In questo modo viene creata l'istanza dall'immagine del sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, Compute Engine crea una VM utilizzando la versione più recente dell'immagine del sistema operativo nella famiglia di immagini debian-12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.
  • STORAGE_POOL_NAME: il nome del pool di archiviazione in cui creare il nuovo disco.

REST

Puoi creare il disco di avvio per una nuova VM nel pool di archiviazione costruendo una richiesta POST per il metodo instances.insert e includendo la proprietà storagePool per il disco di avvio.

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"
         }
      }
   ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto
  • VM_NAME: il nome della VM.
  • ZONE: la zona in cui si trova il pool di archiviazione, ad esempio us-central1-a. Questa è la zona in cui vengono creati la VM e il disco di avvio.
  • MACHINE_TYPE: il tipo di macchina della VM, ad esempio m3-ultramem-32.
  • BOOT_DISK_DEVICE_NAME: il nome del dispositivo per il disco di avvio
  • DISK_SIZE: le dimensioni, in GiB, del disco di avvio
  • DISK_TYPE: il tipo di disco, specificato come URI
  • IMAGE_PROJECT: il progetto che contiene l'immagine
  • IMAGE: specifica una delle seguenti opzioni:
    • Una versione specifica dell'immagine del sistema operativo, ad esempio debian-12-bookworm-v20240213.
    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. In questo modo viene creata l'istanza dall'immagine del sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, Compute Engine crea un'istanza utilizzando la versione più recente dell'immagine del sistema operativo nella famiglia di immagini debian-12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.
  • IOPS_LIMIT: le IOPS da eseguire il provisioning per il disco
  • THROUGHPUT_LIMIT: la velocità effettiva da eseguire il provisioning per il disco
  • POOL_URL: il pool di archiviazione in cui viene creato il nuovo disco. Puoi fornire un URL completo o parziale della risorsa. Ad esempio, i seguenti sono valori validi:
    • 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