Ajouter des disques d'un pool de stockage aux VM


Vous pouvez créer des disques dans un pool de stockage Hyperdisk, puis les associer à une instance de machine virtuelle (VM), ou créer des disques dans le pool de stockage lors de la création d'une VM.

Avant de commencer

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant 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. Install the Google Cloud CLI, then initialize it by running the following command:

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

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

      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.

      Pour en savoir plus, consultez 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 gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.

      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.

      Pour en savoir plus, consultez 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 gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.

      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.

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

      REST

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

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

        gcloud init

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

Rôles et autorisations requis

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

  • Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1)
  • Pour se 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 la page 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 de stockage. 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 de stockage :

  • Pour créer des disques dans un pool de stockage 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 de stockage 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

Passez en revue les limites suivantes pour la création de disques dans un pool de stockage Hyperdisk :

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

Options de provisionnement

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

Provisionner la capacité du disque

Si vous créez un pool de stockage de capacité Advanced, vous pouvez utiliser l'allocation dynamique de capacité. Vous pouvez créer des disques dans le pool de stockage avec une taille cumulée dépassant la capacité provisionnée du pool. La capacité utilisée du pool de stockage 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 500 % de la capacité provisionnée d'un pool de stockage de capacité Advanced.

Si vous créez des disques dans un pool de stockage de capacité Standard, vous créez des disques dans le pool de stockage jusqu'à ce que la taille totale de tous les disques du pool de stockage atteigne la capacité provisionnée du pool de stockage. Les disques d'un pool de stockage avec une 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.

Performances de provisionnement

Si vous créez un pool de stockage de performances Advanced, vous pouvez utiliser l'allocation dynamique de capacité. Vous pouvez créer des disques dans le pool de stockage 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 de stockage sont définies par les performances totales utilisées par les disques et non par la quantité de performances provisionnées pour chaque disque. Vous pouvez provisionner des disques avec des performances globales pouvant atteindre 500% des performances provisionnées d'un pool de stockage de performances Advanced.

Si vous créez des disques dans un pool de stockage 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 de stockage, moins la quantité utilisée pour tous les disques créés dans le pool de stockage.

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 de stockage échoue et le disque n'est pas créé.

Exemple

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

Avec le provisionnement de performances standard:

  • Vous pouvez provisionner jusqu'à 100 000 IOPS globaux lorsque vous créez des disques Hyperdisk équilibrés dans le pool de stockage.
  • Les 100 000 IOPS de performances provisionnées du pool de stockage Hyperdisk équilibré vous sont facturés.
  • 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 le pool dispose de 90 000 IOPS provisionnées restantes que vous pouvez allouer à d'autres disques du pool de stockage.

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és par le pool de stockage vous sont facturés.
  • Si vous créez un seul disque (Disk1) dans le pool de stockage avec 5 000 IOPS, vous ne consommez aucun 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 s'il utilise son maximum de 5 000 IOPS par minute donnée, 5 000 IOPS sont consommés à partir des IOPS provisionnés du pool de stockage. Tous les autres disques que vous avez créés dans le même pool de stockage peuvent utiliser un maximum agrégé de 95 000 IOPS au cours de la même minute sans entrer en conflit.

Créer des disques dans le pool de stockage

Vous pouvez créer un disque dans un pool de stockage à l'aide de la console Google Cloud, de la Google Cloud CLI ou de REST.

Console

À l'aide de la console Google Cloud, vous pouvez créer un disque dans un pool de stockage 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. Cliquez sur le nom du pool de stockage dans lequel vous souhaitez créer un disque.

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

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

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

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

  7. 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 à la page 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 de stockage dans lequel vous souhaitez créer le disque.

  4. Dans le champ Type de disque, choisissez le type de disque correspondant au pool de stockage Hyperdisk : 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 de stockage dans lequel créer le disque. Seul le pool de stockage 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 de stockage, exécutez 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 spécifiés par des espaces pour créer plusieurs disques avec les mêmes attributs.
  • ZONE : zone dans laquelle le pool de stockage a été créé. Spécifiez cette valeur au format de zone régionale, par exemple us-central1-a.
  • STORAGE_POOL_NAME : nom du pool de stockage dans lequel créer le disque.
  • SIZE (facultatif) : capacité provisionnée du 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 mébioctet (Mo) par seconde à provisionner pour le disque.

REST

Pour créer un ou plusieurs disques dans un pool de stockage, 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 de stockage, 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 du pool de stockage. 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 taille n'est spécifiée, la valeur par défaut est 100 Go.
  • STORAGE_POOL_NAME : nom du pool de stockage 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 mébioctets (Mo) par seconde à 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 de stockage

Lors de la création d'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 de stockage dans le cadre du processus de création d'une VM.

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

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

Console

  1. Dans Google Cloud Console, 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 de stockage.

  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 de stockage 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 de stockage sélectionné.

gcloud

Vous pouvez créer le disque de démarrage pour une nouvelle VM dans le pool de stockage à l'aide de la commande gcloud compute instances create 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. Cette action crée l'instance à partir de l'image d'OS la plus récente et non obsolète. 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 la page 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 de stockage 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 de stockage, 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. Cette action crée l'instance à partir de l'image d'OS la plus récente et non obsolète. 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 la page 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 de stockage lors de la création de la VM

Lorsque vous créez des disques dans un pool de stockage lors de la création de la VM, le type de machine, le type de disque et le pool de stockage 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 Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Cliquez sur Create Instance (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 de stockage.

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

  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 de stockage.

  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 de stockage 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 de démarrage dans le pool de stockage sélectionné.

gcloud

Vous pouvez créer des disques dans un pool de stockage 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 de stockage dans lequel vous souhaitez créer le disque.

REST

Vous pouvez créer des disques dans un pool de stockage 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 de stockage, 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. Cette action crée l'instance à partir de l'image d'OS la plus récente et non obsolète. 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 la page 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 de stockage 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 de stockage. Les disques créés à l'aide du modèle d'instance sont placés dans le pool de stockage 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 de stockage.

  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 de stockage 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 de stockage 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 de stockage à 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 de stockage.
  • 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. Cette action crée l'instance à partir de l'image d'OS la plus récente et non obsolète. 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 la page 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 de stockage 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 de stockage, 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. Cette action crée l'instance à partir de l'image d'OS la plus récente et non obsolète. 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 la page 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