Ajouter des disques d'un pool Hyperdisk aux VM

Ce document explique comment créer des disques dans un pool.

Vous pouvez créer un disque dans un pool, puis l'associer à une instance de machine virtuelle (VM), ou créer des disques dans le pool lorsque vous créez une instance de VM.

Vous ne pouvez pas déplacer un disque existant vers un pool ni le déplacer hors d'un pool. Vous devez créer un disque à partir du disque existant. Pour ce faire, consultez Modifier le type, l'emplacement ou la position d'un disque.

Avant de commencer

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification permet de valider votre identité pour accéder aux services et aux API Google Cloud . Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :

    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. Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :

      gcloud init

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    2. Set a default region and zone.

    Go

    Pour utiliser les exemples Go de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez le service Identifiants par défaut de l'application avec vos identifiants utilisateur.

      Installez la Google Cloud CLI.

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

      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.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Pour en savoir plus, consultez la section Set up authentication for a local development environment.

    Java

    Pour utiliser les exemples Java de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez le service Identifiants par défaut de l'application avec vos identifiants utilisateur.

      Installez la Google Cloud CLI.

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

      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.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Pour en savoir plus, consultez la section Set up authentication for a local development environment.

    Node.js

    Pour utiliser les exemples Node.js de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez le service Identifiants par défaut de l'application avec vos identifiants utilisateur.

      Installez la Google Cloud CLI.

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

      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.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Pour en savoir plus, consultez la section Set up authentication for a local development environment.

    REST

    Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.

      Installez la Google Cloud CLI.

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .

Rôles et autorisations nécessaires

Pour obtenir les autorisations nécessaires pour créer un disque Hyperdisk Balanced ou Hyperdisk Throughput dans un pool, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :

  • Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1)
  • Pour vous connecter à une instance de VM pouvant être exécutée en tant que compte de service : Utilisateur du compte de service (v1) (rôle roles/iam.serviceAccountUser)

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ces rôles prédéfinis contiennent les autorisations requises pour créer un disque Hyperdisk Balanced ou Hyperdisk Throughput dans un pool. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer un disque Hyperdisk Balanced ou Hyperdisk Throughput dans un pool :

  • Pour créer des disques dans un pool et les associer à une instance de VM, procédez comme suit :
    • compute.disks.create sur le projet
    • compute.instances.attachDisk sur la VM.
    • compute.disks.use sur le volume que vous souhaitez associer à la VM.
    • compute.storagePools.use sur le pool dans lequel vous créez des disques
  • Pour formater et installer le volume associé : compute.instances.setMetadata sur la VM.

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Pour connaître les autorisations nécessaires pour créer une instance, consultez la section Autorisations requises.

Limites

Limites pour l'ajout de disques à un pool :

  • Vous ne pouvez créer que des disques Hyperdisk Balanced dans un pool Hyperdisk Balanced et que des disques Hyperdisk Throughput dans un pool Hyperdisk Throughput.
  • Les disques créés dans un pool doivent se trouver dans le même projet et dans la même zone.
  • Les pools ne sont pas compatibles avec les disques régionaux.
  • Vous ne pouvez pas déplacer des disques dans un pool ni les déplacer hors d'un pool. Pour déplacer un disque dans un pool ou en dehors, vous devez le recréer à partir d'un instantané. Pour en savoir plus, consultez la page Modifier le type de disque.
  • Pour créer des disques de démarrage dans un pool, vous devez utiliser un pool de stockage Hyperdisk Balanced ou un exapool Hyperdisk Balanced.

Limites spécifiques aux pools de stockage :

  • Vous pouvez créer jusqu'à 10 000 disques dans un pool de stockage.

Limites spécifiques aux Exapools :

  • Vous pouvez créer jusqu'à 500 000 disques dans un Exapool.

Options de provisionnement

En fonction du type de provisionnement du pool, vous pouvez choisir comment provisionner la capacité et les performances de chaque disque que vous créez dans le pool.

Provisionner la capacité du disque

Si vous utilisez un pool de stockage Exapool ou de capacité Advanced, vous pouvez créer des disques dans le pool avec une taille cumulée dépassant la capacité provisionnée du pool. La capacité utilisée du pool est définie par le volume total des données utilisées et non par la quantité d'espace disque que vous avez provisionnée. Vous pouvez provisionner des disques avec une capacité globale pouvant atteindre respectivement cinq ou 50 fois la capacité provisionnée d'un pool de capacité Advanced ou d'un pool Hyperdisk.

Si vous créez des disques dans un pool de capacité Standard, vous créez des disques dans le pool jusqu'à ce que la taille totale de tous les disques du pool atteigne la capacité provisionnée du pool. Les disques d'un pool à capacité Standard se comportent de la même manière que les disques hors pool, où de la capacité est consommée lorsque vous créez les disques.

Provisionnement des performances

Si vous utilisez un pool de stockage Exapool ou de capacité Advanced, vous pouvez créer des disques dans le pool avec une quantité cumulée d'IOPS et de débit dépassant les performances provisionnées du pool. Les performances utilisées du pool sont définies par les performances totales utilisées par les disques et non par la quantité de performances provisionnées pour chaque disque.

  • Pour les pools de stockage, vous pouvez provisionner des disques avec des performances globales pouvant atteindre 500 % des performances provisionnées d'un pool de performances Advanced.

  • Pour les Exapools, vous pouvez provisionner des disques avec des performances globales pouvant atteindre 50 fois les performances d'écriture provisionnées du pool.

Si vous créez des disques dans un pool de performances standards, les IOPS ou le débit que vous provisionnez pour un disque doivent être inférieurs aux IOPS ou au débit disponibles dans le pool de stockage Hyperdisk. Les IOPS ou le débit disponibles correspondent à la quantité provisionnée pour le pool, moins la quantité utilisée pour tous les disques créés dans le pool.

Si l'une des conditions du paragraphe précédent n'est pas vraie, la requête de création d'un disque dans le pool échoue et le disque n'est pas créé.

Exemple

Supposons que vous disposez d'un pool de stockage Hyperdisk équilibré avec 100 000 IOPS provisionnées.

Avec le provisionnement de performances standard:

  • Vous pouvez provisionner jusqu'à 100 000 IOPS globales lorsque vous créez des disques Hyperdisk Balanced dans le pool de stockage.
  • Les 100 000 IOPS de performances provisionnées du pool de stockage Hyperdisk Balanced vous sont facturées.
  • Comme les disques créés en dehors d'un pool de stockage, les disques Hyperdisk Balanced dans les pools de stockage de performances standards sont automatiquement provisionnés avec jusqu'à 3 000 IOPS de référence et 140 Mo/s de débit de référence. Ces performances de référence ne sont pas comptabilisées dans les performances provisionnées pour le pool de stockage. Ce n'est que lorsque vous ajoutez des disques au pool de stockage avec des performances provisionnées supérieures à celles de référence qu'ils sont comptabilisés dans les performances provisionnées pour le pool de stockage, par exemple :

    • Un disque provisionné avec 3 000 IOPS utilise 0 IOPS du pool et 100 000 IOPS provisionnées sont toujours disponibles pour les autres disques.
    • Un disque provisionné avec 13 000 IOPS utilise 10 000 IOPS du pool, et il reste 90 000 IOPS provisionnées dans le pool que vous pouvez attribuer à d'autres disques.

Avec le provisionnement des performances avancées :

  • Vous pouvez provisionner jusqu'à 500 000 IOPS de performances Hyperdisk globales lorsque vous créez des disques dans le pool de stockage.
  • Les 100 000 IOPS provisionnées par le pool de stockage vous sont facturées.
  • Si vous créez un seul disque (Disk1) dans le pool de stockage avec 5 000 IOPS, vous ne consommez aucune IOPS des IOPS provisionnées du pool de stockage. Toutefois, le nombre d'IOPS que vous pouvez provisionner pour les nouveaux disques créés dans le pool de stockage est désormais de 495 000.
  • Si Disk1 commence à lire et à écrire des données, et qu'il utilise son maximum de 5 000 IOPS au cours d'une minute donnée, alors 5 000 IOPS sont consommées à partir des IOPS provisionnées du pool de stockage. Tous les autres disques que vous avez créés dans le même pool de stockage peuvent utiliser un maximum cumulé de 95 000 IOPS au cours de la même minute sans rencontrer de conflit.

Créer des disques dans le pool

Vous pouvez utiliser la console Google Cloud , la Google Cloud CLI ou REST pour créer un disque dans un pool.

Console

À l'aide de la console Google Cloud , vous pouvez créer un disque dans un pool via la page Pools de stockage ou Disques.

Sur la page Pools de stockage :

  1. Dans la console Google Cloud , accédez à la page Pools de stockage.

    Accéder à la page Pools de stockage

  2. Sélectionnez l'onglet Exapools ou Pools de stockage.

  3. Cliquez sur le nom du pool dans lequel vous souhaitez créer un disque.

  4. Sur la page Gérer le pool de stockage, cliquez sur + Créer un disque.

  5. Dans le panneau Ajouter un disque, saisissez un nom pour le disque.

  6. Spécifiez ou modifiez les valeurs pour lesquelles vous ne souhaitez pas utiliser la valeur par défaut.

  7. Lorsque vous avez terminé de spécifier les propriétés du disque, cliquez sur Enregistrer.

  8. Sur la page Gérer le pool de stockage, le nouveau disque doit s'afficher dans la section Disques de pool de stockage.

Sur la page Créer un disque :

  1. Dans la console Google Cloud , accédez à Disques > Créer un disque.

    Accéder à la page "Créer un disque"

  2. Saisissez un nom pour le disque.

  3. Sélectionnez la zone contenant le pool dans lequel vous souhaitez créer le disque.

  4. Dans le champ Type de disque, choisissez le type de disque correspondant au pool : Hyperdisk Throughput ou Hyperdisk Balanced.

  5. Modifiez les valeurs des champs Taille, IOPS provisionnées et Débit provisionné, si nécessaire.

  6. Dans la section Pool de stockage, sélectionnez Activer le pool de stockage, puis choisissez le nom du pool dans lequel créer le disque. Seul le pool existant dans la zone sélectionnée apparaît dans la liste.

  7. Lorsque vous avez fini de spécifier les informations du disque, cliquez sur Créer.

gcloud

Pour créer un ou plusieurs disques dans un pool, utilisez la commande 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

Remplacez les éléments suivants :

  • DISK_NAME : nom unique du disque. Vous pouvez fournir une liste de noms de disques, séparés par des espaces, pour créer plusieurs disques avec les mêmes attributs.
  • ZONE : zone dans laquelle le pool a été créé. Spécifiez cette valeur au format de zone régionale, par exemple us-central1-a.
  • STORAGE_POOL_NAME : nom du pool dans lequel créer le disque
  • SIZE : (facultatif) capacité provisionnée pour le nouveau disque. La valeur doit être un nombre entier suivi d'une unité de taille (Go pour des gibioctets, To pour des tébioctets). Si aucune taille n'est spécifiée, la valeur par défaut est 100 Go.
  • DISK_TYPE : type de disque à créer Il doit correspondre au type du pool de stockage Hyperdisk (hyperdisk-balanced ou hyperdisk-throughput).
  • PROVISIONED_IOPS (facultatif) : IOPS à provisionner pour le disque. Vous ne pouvez utiliser cette option qu'avec des disques Hyperdisk Balanced.
  • PROVISIONED_THROUGHPUT : (facultatif) débit en Mio/s à provisionner pour le disque.

REST

Pour créer un ou plusieurs disques dans un pool, construisez un POST à l'aide de la méthode disks.insert. Incluez les propriétés name, sizeGb, type, storagePool, provisionedIops et provisionedThroughput. Pour créer un disque non amorçable vide et non formaté, ne spécifiez pas d'image source, ni d'instantané source.

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet
  • ZONE : zone dans laquelle se trouve le pool, par exemple us-central1-a. Il s'agit de la zone dans laquelle le disque sera créé.
  • DISK_NAME : nom unique du disque.
  • DESCRIPTION (facultatif) : chaîne de texte décrivant le disque.
  • DISK_TYPE : type de disque, qui doit correspondre au type de pool. Utilisez hyperdisk-throughput ou hyperdisk-balanced.
  • DISK_SIZE (facultatif) : taille du nouveau disque. La valeur doit être un nombre entier suivi d'une unité de taille (GB pour des gibioctets, TB pour des tébioctets). Si aucune unité de taille n'est spécifiée, la valeur par défaut est 100 Gio.
  • STORAGE_POOL_NAME : nom du pool dans lequel créer le disque.
  • IOPS_LIMIT : (facultatif) IOPS à provisionner pour le disque. Vous ne pouvez utiliser cette option qu'avec des disques Hyperdisk Balanced.
  • THROUGHPUT_LIMIT : (facultatif) débit en Mio/s à provisionner pour le disque.

Go


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

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

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

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

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

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

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

Java


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

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

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

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

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

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

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

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

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

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

      return hyperdisk;
    }
  }
}

Node.js

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

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

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

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

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

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

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

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

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

  let operation = response.latestResponse;

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

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

await callCreateComputeHyperdiskFromPool();

Après avoir créé le disque, vous pouvez l'associer à une VM.

Créer une VM qui utilise des disques du pool

Lorsque vous créez une VM, vous configurez un disque de démarrage et vous pouvez éventuellement créer des disques de données supplémentaires (non amorçables), qui sont automatiquement associés à la VM. Dans les sections suivantes, nous expliquons comment créer chaque type de disque dans un pool dans le cadre du processus de création d'une VM.

Créer le disque de démarrage pour une VM dans un pool

Pour créer une VM qui utilise un disque de démarrage dans un pool, vous devez d'abord créer un pool de stockage Hyperdisk Balanced ou un exapool Hyperdisk Balanced. Vous pouvez ensuite créer une instance à l'aide d'un type de machine compatible avec les disques Hyperdisk Balanced. Le type de machine, le type de disque et le pool doivent tous être disponibles dans la zone choisie.

Console

  1. Dans la console Google Cloud , accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Cliquez sur Créer une instance.

  3. Entrez un nom pour l'instance.

  4. Définissez la zone sur la même zone que celle où se trouve le pool.

  5. Choisissez un type de machine compatible avec les disques Hyperdisk Balanced, par exemple H3.

  6. Dans la section Disque de démarrage, cliquez sur Modifier.

  7. Dans le panneau Disque de démarrage, définissez le Type de disque de démarrage sur Hyperdisk Balanced.

  8. Configurez les propriétés du disque.

  9. Développez la section Afficher la configuration Advanced.

  10. Sous l'en-tête Pool de stockage, sélectionnez Activer le pool de stockage.

  11. Dans la liste, choisissez le pool dans lequel créer le disque.

  12. Lorsque vous avez terminé la configuration du disque, cliquez sur Sélectionner.

  13. Terminez la configuration des propriétés de la VM.

  14. Cliquez sur Créer.

    La console crée la VM dans la zone spécifiée et crée le disque de démarrage dans le pool sélectionné.

gcloud

Vous pouvez créer le disque de démarrage pour une nouvelle VM dans le pool à l'aide de la commande gcloud compute instances create et en incluant la propriété storage-pool pour le disque de démarrage.

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

Remplacez les éléments suivants :

  • VM_NAME : nom de la VM.
  • ZONE : région et zone dans lesquelles créer la VM, au format us-central1-a.
  • MACHINE_TYPE : type de machine de la VM, par exemple, m3-ultramem-32.
  • DISK_SIZE : taille du disque de démarrage, en Gio.
  • THROUGHPUT : débit à provisionner pour le disque.
  • IOPS : IOPS à provisionner pour le disque.
  • IMAGE_PROJECT : projet contenant l'image.
  • IMAGE : Spécifiez l'une des options suivantes :
    • Version spécifique de l'image de l'OS. Exemple : debian-12-bookworm-v20240213.
    • Une famille d'images, qui doit être au format family/IMAGE_FAMILY. Cela crée l'instance à partir de l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez family/debian-12, Compute Engine crée une VM à l'aide de la dernière version de l'image de l'OS dans la famille d'images debian-12. Pour en savoir plus sur l'utilisation des familles d'images, consultez Bonnes pratiques concernant les familles d'images.
  • STORAGE_POOL_NAME : nom du pool de stockage dans lequel créer le disque.

REST

Vous pouvez créer le disque de démarrage pour une nouvelle VM dans le pool en envoyant une requête POST pour la méthode instances.insert, en incluant le caractère storagePool du disque de démarrage.

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet
  • ZONE : zone dans laquelle se trouve le pool, par exemple us-central1-a. Il s'agit de la zone dans laquelle la VM et le disque de démarrage sont créés.
  • VM_NAME : nom de la VM.
  • MACHINE_TYPE : type de machine de la VM, par exemple, m3-ultramem-32.
  • BOOT_DISK_DEVICE_NAME : nom d'appareil pour le disque de démarrage.
  • DISK_SIZE : taille du disque de démarrage, en Gio.
  • DISK_TYPE : type de disque, spécifié en tant qu'URI.
  • IMAGE_PROJECT : projet contenant l'image.
  • IMAGE : Spécifiez l'une des options suivantes :
    • Version spécifique de l'image de l'OS. Exemple : debian-12-bookworm-v20240213.
    • Une famille d'images, qui doit être au format family/IMAGE_FAMILY. Cela crée l'instance à partir de l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez family/debian-12, Compute Engine crée une VM à l'aide de la dernière version de l'image de l'OS dans la famille d'images debian-12. Pour en savoir plus sur l'utilisation des familles d'images, consultez Bonnes pratiques concernant les familles d'images.
  • IOPS_LIMIT : IOPS à provisionner pour le disque.
  • THROUGHPUT_LIMIT : débit à provisionner pour le disque.
  • POOL_URL : pool de stockage dans lequel le disque est créé. Vous pouvez fournir cette URL en tant qu'URL partielle ou complète de la ressource. Par exemple, les valeurs suivantes sont valides :
    • 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

Créer des disques supplémentaires dans un pool lors de la création de la VM

Lorsque vous créez des disques dans un pool lors de la création de la VM, le type de machine, le type de disque et le pool doivent être disponibles dans la zone choisie.

Console

Procédez comme suit pour créer une VM avec des disques supplémentaires non amorçables à l'aide de la console :

  1. Dans la console Google Cloud , accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Cliquez sur Créer une instance.

  3. Nommez votre VM.

  4. Définissez la zone sur la même zone que celle où se trouve le pool.

  5. Choisissez un type de machine compatible avec le type de disque utilisé par le pool.

  6. Développez la section Options avancées.

  7. Développez Disques.

  8. Cliquez sur Ajouter un disque.

  9. Dans le panneau Ajouter un disque, saisissez les informations le concernant. Définissez le Type de disque pour qu'il corresponde au type de pool.

  10. Dans la section Pool de stockage, sélectionnez Activer le pool de stockage.

  11. Dans le champ Sélectionner un pool de stockage, sélectionnez le pool dans lequel créer le disque.

  12. Lorsque vous avez terminé la configuration du disque, cliquez sur Enregistrer.

  13. Terminez la configuration des propriétés de la VM.

  14. Cliquez sur Créer.

    La console crée la VM dans la zone spécifiée et crée le disque non de démarrage dans le pool sélectionné.

gcloud

Vous pouvez créer des disques dans un pool lors de la création de la VM en utilisant la commande gcloud compute instances create et en incluant la propriété storage-pool du disque.

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

Remplacez les éléments suivants :

  • VM_NAME : nom de la VM.
  • ZONE : région et zone dans lesquelles créer la VM, au format us-central1-a.
  • MACHINE_TYPE : type de machine de la VM.
  • BOOT_DISK_DEVICE_NAME : nom d'appareil pour le disque de démarrage.
  • IMAGE_NAME : nom de l'image du système d'exploitation à installer sur le disque de démarrage, par exemple debian-12-bookworm-v20240213
  • BOOT_DISK_SIZE : taille du disque de démarrage, en Gio.
  • BOOT_DISK_TYPE : type de disque.
  • DATA_DISK_DEVICE_NAME : nom de disque pour le disque de données.
  • DATA_DISK_SIZE : taille du disque de données, en Gio.
  • DATA_DISK_TYPE : type de disque de données (hyperdisk-balanced ou hyperdisk-throughput).
  • IOPS : IOPS à provisionner pour le disque.
  • THROUGHPUT : débit à provisionner pour le disque.
  • STORAGE_POOL_NAME : nom unique du pool dans lequel vous souhaitez créer le disque.

REST

Vous pouvez créer des disques dans un pool lors de la création de la VM en envoyant une requête POST pour la méthode instances.insert, en incluant le paramètre storagePool pour les disques supplémentaires.

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet
  • ZONE : zone dans laquelle se trouve le pool, par exemple us-central1-a. Il s'agit de la zone dans laquelle la VM et le disque de démarrage sont créés.
  • VM_NAME : nom de la VM.
  • MACHINE_TYPE : type de machine de la VM, par exemple, m3-ultramem-32.
  • IMAGE_PROJECT : projet contenant l'image.
  • IMAGE : Spécifiez l'une des options suivantes :
    • Version spécifique de l'image de l'OS. Exemple : debian-12-bookworm-v20240213.
    • Une famille d'images, qui doit être au format family/IMAGE_FAMILY. Cela crée l'instance à partir de l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez family/debian-12, Compute Engine crée une VM à l'aide de la dernière version de l'image de l'OS dans la famille d'images debian-12. Pour en savoir plus sur l'utilisation des familles d'images, consultez Bonnes pratiques concernant les familles d'images.
  • DEVICE_NAME : nom d'appareil pour le disque de données.
  • DISK_SIZE : taille du disque de données, en Gio.
  • DISK_TYPE : type de disque, spécifié en tant qu'URI.
  • IOPS_LIMIT : IOPS à provisionner pour le disque.
  • THROUGHPUT_LIMIT : débit à provisionner pour le disque.
  • POOL_URL : pool de stockage dans lequel le disque est créé. Vous pouvez fournir cette URL en tant qu'URL partielle ou complète de la ressource. Par exemple, les valeurs suivantes sont valides :
    • 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

Utiliser un pool dans un modèle d'instance

Les modèles d'instance utilisés pour créer des groupes d'instances gérés (MIG) peuvent contenir les informations sur le pool. Les disques créés à l'aide du modèle d'instance sont placés dans le pool spécifié.

Console

  1. Dans la console Google Cloud , accédez à la page Modèles d'instances.

    Accéder à la page Modèles d'instances

  2. Cliquez sur Créer un modèle d'instance.

  3. Saisissez un nom pour le modèle d'instance.

  4. Choisissez Régional pour l'emplacement et, dans le champ Région, choisissez la région dans laquelle se trouve le pool.

  5. Choisissez un type de machine compatible avec les disques Hyperdisk Balanced, par exemple C3.

  6. Dans la section Disque de démarrage, cliquez sur Modifier.

  7. Dans le panneau Disque de démarrage, définissez le Type de disque de démarrage sur Hyperdisk Balanced.

  8. Configurez les propriétés du disque.

  9. Développez la section Afficher la configuration Advanced.

  10. Sous l'en-tête Pool de stockage, sélectionnez Activer le pool de stockage.

  11. Dans la liste, choisissez le pool dans lequel créer le disque.

  12. Lorsque vous avez terminé la configuration du disque, cliquez sur Sélectionner.

  13. Terminez la configuration des propriétés de la VM.

  14. Cliquez sur Créer.

    Le modèle crée la VM dans la zone spécifiée et crée le disque de démarrage dans le pool sélectionné.

gcloud

Vous pouvez spécifier dans un modèle d'instance que le disque de démarrage doit être créé dans un pool à l'aide de la commande gcloud compute instance-templates create et en incluant la propriété storage-pool pour le disque de démarrage.

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

Remplacez les éléments suivants :

  • TEMPLATE_NAME : nom du modèle d'instance.
  • REGION : région dans laquelle vous souhaitez créer le modèle d'instance régional. La région doit contenir la zone dans laquelle se trouve le pool.
  • MACHINE_TYPE : type de machine à utiliser lors de la création de la VM, par exemple h3-standard-88.
  • DISK_SIZE : taille du disque, en Gio.
  • THROUGHPUT : débit à provisionner pour le disque.
  • IOPS : IOPS à provisionner pour le disque.
  • IMAGE_PROJECT : projet contenant l'image.
  • IMAGE : Spécifiez l'une des options suivantes :
    • Version spécifique de l'image de l'OS. Exemple : debian-12-bookworm-v20240213.
    • Une famille d'images, qui doit être au format family/IMAGE_FAMILY. Cela crée l'instance à partir de l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez family/debian-12, Compute Engine crée une VM à l'aide de la dernière version de l'image de l'OS dans la famille d'images debian-12. Pour en savoir plus sur l'utilisation des familles d'images, consultez Bonnes pratiques concernant les familles d'images.
  • STORAGE_POOL_NAME : nom du pool de stockage dans lequel créer le disque.

REST

Vous pouvez créer le disque de démarrage pour une nouvelle VM dans le pool en envoyant une requête POST pour la méthode instances.insert, en incluant le caractère storagePool du disque de démarrage.

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet
  • VM_NAME : Nom de la VM.
  • ZONE : zone dans laquelle se trouve le pool, par exemple us-central1-a. Il s'agit de la zone dans laquelle la VM et le disque de démarrage sont créés.
  • MACHINE_TYPE : type de machine de la VM, par exemple, m3-ultramem-32.
  • BOOT_DISK_DEVICE_NAME : nom d'appareil pour le disque de démarrage.
  • DISK_SIZE : taille du disque de démarrage, en Gio.
  • DISK_TYPE : type de disque, spécifié en tant qu'URI.
  • IMAGE_PROJECT : projet contenant l'image.
  • IMAGE : Spécifiez l'une des options suivantes :
    • Version spécifique de l'image de l'OS. Exemple : debian-12-bookworm-v20240213.
    • Une famille d'images, qui doit être au format family/IMAGE_FAMILY. Cela crée l'instance à partir de l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez family/debian-12, Compute Engine crée une instance à l'aide de la dernière version de l'image de l'OS dans la famille d'images debian-12. Pour en savoir plus sur l'utilisation des familles d'images, consultez Bonnes pratiques concernant les familles d'images.
  • IOPS_LIMIT : IOPS à provisionner pour le disque.
  • THROUGHPUT_LIMIT : débit à provisionner pour le disque.
  • POOL_URL : pool de stockage dans lequel le disque est créé. Vous pouvez fournir cette URL en tant qu'URL partielle ou complète de la ressource. Par exemple, les valeurs suivantes sont valides :
    • 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