Crea pool di archiviazione Hyperdisk

I pool di archiviazione Hyperdisk sono una nuova risorsa di archiviazione a blocchi che consente di gestire Archiviazione a blocchi Hyperdisk in forma aggregata. Sono disponibili pool di archiviazione Hyperdisk nelle varianti del pool di archiviazione per la velocità effettiva Hyperdisk e del pool di archiviazione bilanciato Hyperdisk.

Quando crei un pool di archiviazione, devi specificare le seguenti proprietà:

  • Tipo di pool di archiviazione
  • Zona
  • Capacità sottoposta a provisioning del pool
  • IOPS e velocità effettiva sottoposte a provisioning del pool

Puoi utilizzare il provisioning di capacità standard o avanzato con i pool di archiviazione Hyperdisk. Con Capacità standard, la dimensione totale di ciascun disco viene detratta dal pool di archiviazione di cui è stato eseguito il provisioning. I pool di archiviazione della capacità avanzata traggono vantaggio il thin provisioning e la riduzione dei dati, nonché solo la quantità di dati scritti effettivi dalla capacità di provisioning del pool.

Prima di iniziare

  • Se non l'hai già fatto, configura l'autenticazione. Autenticazione è Il processo di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione Compute Engine come segue.

    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. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

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

      Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.

        Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

        gcloud init

      Per ulteriori informazioni, vedi Esegui 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 pool di archiviazione, chiedi all'amministratore di concederti seguenti ruoli IAM sul 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.

Questi ruoli predefiniti le autorizzazioni necessarie per creare un pool di archiviazione. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare un pool di archiviazione sono necessarie le seguenti autorizzazioni:

  • compute.storagePools.create del progetto
  • compute.storagePools.setLabels del progetto

Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati e altri ruoli predefiniti.

Limitazioni

Prendi nota delle seguenti limitazioni durante la creazione di pool di archiviazione Hyperdisk:

Limiti delle risorse:

  • Puoi creare un pool di archiviazione Hyperdisk con una capacità di provisioning massima di 1 PiB.
  • Puoi creare un massimo di 5 pool di archiviazione all'ora.
  • Puoi creare un massimo di 10 pool di archiviazione al giorno.
  • Puoi creare al massimo 10 pool di archiviazione per progetto.
  • Non puoi modificare il modello di provisioning per un pool; non puoi modificare Da un pool di archiviazione con capacità standard a un pool di capacità avanzata.
  • I pool di archiviazione sono una risorsa di zona.
  • Puoi creare fino a 1000 dischi in un pool di archiviazione.
  • Puoi utilizzare i pool di archiviazione Hyperdisk solo con Compute Engine. Le istanze Cloud SQL non possono utilizzare i pool di archiviazione Hyperdisk.
  • Puoi modificare la capacità di cui è stato eseguito il provisioning di un pool di archiviazione al massimo due volte in un periodo di 24 ore.

Limiti per i dischi in un pool di archiviazione:

  • È possibile creare solo nuovi dischi nello stesso progetto e nella stessa zona pool di archiviazione.
  • 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 devi ricreare il disco da uno snapshot. Per ulteriori informazioni, consulta Cambiare il tipo di disco.
  • Per creare dischi di avvio in un pool di archiviazione, devi utilizzare un pool di archiviazione bilanciato Hyperdisk.
  • Non puoi creare dischi regionali in un pool di archiviazione.
  • Non puoi clonare, creare snapshot istantanei di o configurare la replica asincrona del disco permanente per i dischi un pool di archiviazione.

Intervalli di capacità e limiti di prestazioni di cui è stato eseguito il provisioning

Quando si crea un pool di archiviazione, la capacità di cui è stato eseguito il provisioning, le IOPS sono soggetti ai limiti descritti in:

Crea un pool di archiviazione Hyperdisk

Per creare un nuovo pool di archiviazione Hyperdisk, utilizza la console Google Cloud, Google Cloud CLI oppure REST.

Console

  1. Vai alla pagina Crea un pool di archiviazione nella console Google Cloud.
    Vai alla pagina Crea pool di archiviazione
  2. Nel campo Nome, inserisci un nome univoco per il pool di archiviazione.
  3. (Facoltativo) Nel campo Descrizione, inserisci una descrizione per pool di archiviazione.
  4. Nel campo Località, seleziona la regione e la zona in cui creare rispetto al pool di archiviazione.
  5. Scegli un valore per il Tipo di pool di archiviazione.
  6. Scegli un Tipo di capacità e specifica la capacità di cui eseguire il provisioning pool di archiviazione nelle dimensioni nel campo Capacità del pool di archiviazione. Puoi specificare una dimensione da 10 TiB a 1 PiB.

    Per creare un pool di archiviazione con grande capacità, potresti dover richiedere una quota più alta.

  7. Per i pool di archiviazione bilanciati Hyperdisk, nel campo IOPS sottoposte a provisioning, inserisci le IOPS per il provisioning del pool di archiviazione.

  8. Per un pool di archiviazione per la velocità effettiva Hyperdisk o un pool di archiviazione bilanciato Hyperdisk, nel campo Velocità effettiva sottoposta a provisioning: inserire la velocità effettiva per il provisioning del pool di archiviazione.

  9. Fai clic su Invia per creare il pool di archiviazione.

gcloud

Per creare un pool di archiviazione Hyperdisk, utilizza Comando gcloud compute storage-pools create.

gcloud compute storage-pools create NAME  \
    --zone=ZONE   \
    --storage-pool-type=STORAGE_POOL_TYPE   \
    --capacity-provisioning-type=CAPACITY_PROVISIONING_TYPE \
    --provisioned-capacity=POOL_CAPACITY   \
    --provisioned-iops=IOPS   \
    --provisioned-throughput=THROUGHPUT   \
    --description=DESCRIPTION

Sostituisci quanto segue:

  • NAME: il nome univoco del pool di archiviazione.
  • ZONE: la zona in cui creare il pool di archiviazione, ad esempio us-central1-a.
  • STORAGE_POOL_TYPE: tipo di disco in cui archiviare rispetto al pool di archiviazione. I valori consentiti sono hyperdisk-throughput e hyperdisk-balanced.
  • CAPACITY_PROVISIONING_TYPE: facoltativo: la capacità dal tipo di provisioning del pool di archiviazione. I valori consentiti sono advanced e standard. Se non specificato, il valore advanced .
  • POOL_CAPACITY: la capacità totale per il provisioning della nuova pool di archiviazione, specificato in GiB per impostazione predefinita.
  • IOPS: le IOPS per eseguire il provisioning pool di archiviazione. Puoi utilizzare questo flag solo con i pool di archiviazione bilanciati Hyperdisk.
  • THROUGHPUT: la velocità effettiva in MBps di cui eseguire il provisioning per il pool di archiviazione.
  • DESCRIPTION: facoltativo: una stringa di testo che descrive pool di archiviazione.

REST

Crea una richiesta POST per creare un pool di archiviazione Hyperdisk utilizzando Metodo storagePools.insert.

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

{
    "name": "NAME",
    "description": "DESCRIPTION",
    "poolProvisionedCapacityGb": "POOL_CAPACITY",
    "storagePoolType": "projects/PROJECT_ID/zones/ZONE/storagePoolTypes/STORAGE_POOL_TYPE",
    "poolProvisionedIops": "IOPS",
    "poolProvisionedThroughput": "THROUGHPUT",
    "capacityProvisioningType": "CAPACITY_PROVISIONING_TYPE"
}

Sostituisci quanto segue:

  • PROJECT_ID: ID progetto
  • ZONE: la zona in cui creare il pool di archiviazione, ad esempio us-central1-a.
  • NAME: un nome univoco per il pool di archiviazione .
  • DESCRIPTION: facoltativo: una stringa di testo che descrive pool di archiviazione.
  • POOL_CAPACITY: la capacità totale per il nuovo pool di archiviazione, specificato in GiB per impostazione predefinita.
  • STORAGE_POOL_TYPE: tipo di disco in cui archiviare rispetto al pool di archiviazione. I valori consentiti sono hyperdisk-throughput e hyperdisk-balanced.
  • IOPS: facoltativo: le IOPS di cui eseguire il provisioning per pool di archiviazione. Puoi utilizzare questo flag solo con i pool di archiviazione bilanciati Hyperdisk.
  • THROUGHPUT: (facoltativo) la velocità effettiva in MBps di cui eseguire il provisioning per il pool di archiviazione.
  • CAPACITY_PROVISIONING_TYPE: facoltativo: la capacità dal tipo di provisioning del pool di archiviazione. I valori consentiti sono advanced e standard. Se non specificato, il valore advanced .

Java


import com.google.cloud.compute.v1.InsertStoragePoolRequest;
import com.google.cloud.compute.v1.Operation;
import com.google.cloud.compute.v1.StoragePool;
import com.google.cloud.compute.v1.StoragePoolsClient;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

public class CreateHyperdiskStoragePool {
  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 storagePool.
    String zone = "europe-central2-b";
    // Name of the storagePool you want to create.
    String storagePoolName = "YOUR_STORAGE_POOL_NAME";
    // The type of disk you want to create. This value uses the following format:
    // "projects/%s/zones/%s/storagePoolTypes/hyperdisk-throughput|hyperdisk-balanced"
    String storagePoolType = "hyperdisk-balanced";
    // Optional: the capacity provisioning type of the storage pool.
    // The allowed values are advanced and standard. If not specified, the value advanced is used.
    String capacityProvisioningType = "advanced";
    // The total capacity to provision for the new storage pool, specified in GiB by default.
    long provisionedCapacity = 128;
    // the IOPS to provision for the storage pool.
    // You can use this flag only with Hyperdisk Balanced Storage Pools.
    long provisionedIops = 3000;
    // the throughput in MBps to provision for the storage pool.
    long provisionedThroughput = 140;

    createHyperdiskStoragePool(projectId, zone, storagePoolName, storagePoolType,
            capacityProvisioningType, provisionedCapacity, provisionedIops, provisionedThroughput);
  }

  // Creates a hyperdisk storagePool in a project
  public static StoragePool createHyperdiskStoragePool(String projectId, String zone,
                                                String storagePoolName, String storagePoolType,
                                                String capacityProvisioningType, long capacity,
                                                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 (StoragePoolsClient client = StoragePoolsClient.create()) {
      // Create a storagePool.
      StoragePool resource = StoragePool.newBuilder()
              .setZone(zone)
              .setName(storagePoolName)
              .setStoragePoolType(storagePoolType)
              .setCapacityProvisioningType(capacityProvisioningType)
              .setPoolProvisionedCapacityGb(capacity)
              .setPoolProvisionedIops(iops)
              .setPoolProvisionedThroughput(throughput)
              .build();

      InsertStoragePoolRequest request = InsertStoragePoolRequest.newBuilder()
              .setProject(projectId)
              .setZone(zone)
              .setStoragePoolResource(resource)
              .build();

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

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

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

      StoragePool storagePool = client.get(projectId, zone, storagePoolName);

      System.out.printf("Storage pool '%s' has been created successfully", storagePool.getName());

      return storagePool;
    }
  }
}

Passaggi successivi