Agrega discos de un grupo de almacenamiento a las VMs


Puedes crear discos en un grupo de almacenamiento de Hyperdisk y, luego, conectar el disco a una instancia de máquina virtual (VM) o puedes crear discos en el grupo de almacenamiento cuando creas una VM.

Antes de comenzar

  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    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

      Para usar las muestras de Go de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

      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.

      Para obtener más información, consulta Set up authentication for a local development environment.

      Java

      Para usar las muestras de Java de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

      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.

      Para obtener más información, consulta Set up authentication for a local development environment.

      Node.js

      Para usar las muestras de Node.js de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

      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.

      Para obtener más información, consulta Set up authentication for a local development environment.

      REST

      Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

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

        gcloud init

      Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.

Roles y permisos requeridos

Para obtener los permisos que necesitas para crear un disco de Hyperdisk Balanced o Hyperdisk Throughput en un grupo de almacenamiento, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:

  • Administrador de instancias de Compute (v1) (roles/compute.instanceAdmin.v1)
  • Para conectarte a una instancia de VM que pueda ejecutarse como una cuenta de servicio: Usuario de cuenta de servicio (v1) (rol roles/iam.serviceAccountUser)

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para crear un disco de Hyperdisk Balanced o Hyperdisk Throughput en un grupo de almacenamiento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear un disco de Hyperdisk Balanced o Hyperdisk Throughput en un grupo de almacenamiento:

  • Para crear discos en un grupo de almacenamiento y adjuntar los discos a una instancia de VM, sigue estos pasos:
    • compute.disks.create en el proyecto
    • compute.instances.attachDisk en la VM
    • compute.disks.use en el volumen que deseas conectar a la VM
    • compute.storagePools.use en el grupo de almacenamiento en el que creas discos
  • Para formatear y activar el volumen adjunto, usa compute.instances.setMetadata en la VM

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Para conocer los permisos necesarios para crear una instancia, consulta Permisos necesarios.

Limitaciones

Revisa las siguientes limitaciones para crear discos en un grupo de almacenamiento de Hyperdisk:

  • Solo puedes crear discos de Hyperdisk Balanced en un grupo de almacenamiento de Hyperdisk Balanced y solo puedes crear discos de Hyperdisk Throughput en un grupo de almacenamiento de Hyperdisk Throughput.
  • Solo se pueden crear discos nuevos en el mismo proyecto y zona en un grupo de almacenamiento.
  • Para crear discos de arranque en un grupo de almacenamiento, debes usar un grupo de almacenamiento de Hyperdisk Balanced.
  • No se permite mover discos dentro o fuera de un grupo de almacenamiento. Para mover un disco dentro o fuera de un grupo de almacenamiento, debes volver a crearlo a partir de una instantánea. Para obtener más información, consulta Cambia el tipo de disco.
  • Puedes crear hasta 1,000 discos en un grupo de almacenamiento.
  • Los grupos de almacenamiento no admiten discos regionales.

Opciones de aprovisionamiento

Según el tipo de aprovisionamiento del grupo de almacenamiento de Hyperdisk, puedes elegir cómo aprovisionar la capacidad y el rendimiento de cada disco que creas en el grupo de almacenamiento.

Aprovisiona capacidad del disco

Si creas un grupo de almacenamiento de capacidad avanzada, puedes usar el aprovisionamiento delgado. Puedes crear discos en el grupo de almacenamiento con un tamaño acumulativo que supere la capacidad aprovisionada del grupo. La capacidad usada del grupo de almacenamiento se define por la cantidad total de datos en uso y no por la cantidad de espacio en disco que aprovisionaste. Puedes aprovisionar discos con una capacidad agregada de hasta el 500% de la capacidad aprovisionada de un grupo de almacenamiento de capacidad avanzada.

Si creas discos en un grupo de almacenamiento de capacidad estándar, creas discos en el grupo de almacenamiento hasta que el tamaño total de todos los discos del grupo de almacenamiento alcance la capacidad aprovisionada del grupo de almacenamiento. Los discos de un grupo de almacenamiento con capacidad estándar se comportan de manera similar a los discos que no son de grupo, en los que la capacidad se consume cuando creas los discos.

Rendimiento del aprovisionamiento

Si creas un grupo de almacenamiento de rendimiento avanzada, puedes usar el aprovisionamiento delgado. Puedes crear discos en el grupo de almacenamiento con una cantidad acumulada de IOPS y capacidad de procesamiento que supere el rendimiento aprovisionado del grupo. El rendimiento usado del grupo de almacenamiento se define por el rendimiento total que usan los discos y no por la cantidad de rendimiento aprovisionada para cada disco. Puedes aprovisionar discos con un rendimiento agregado de hasta el 500% del rendimiento aprovisionado de un grupo de almacenamiento de rendimiento avanzado.

Si creas discos en un grupo de almacenamiento de rendimiento estándar, las IOPS o la capacidad de procesamiento que aprovisiones para un disco deben ser menores que las IOPS o la capacidad de procesamiento disponibles en el grupo de almacenamiento de Hyperdisk. Las IOPS o la capacidad de procesamiento disponibles son la cantidad aprovisionada para el grupo de almacenamiento menos la cantidad que se usa para todos los discos creados en el grupo de almacenamiento.

Si no se cumple alguna de las condiciones del párrafo anterior, la solicitud para crear un disco en el grupo de almacenamiento falla y no se crea el disco.

Ejemplo

Supongamos que tienes un grupo de almacenamiento balanceado de Hyperdisk con 100,000 IOPS aprovisionadas.

Con el aprovisionamiento de rendimiento estándar, ocurre lo siguiente:

  • Puedes aprovisionar hasta 100,000 IOPS agregadas cuando creas discos Hyperdisk balanceados en el grupo de almacenamiento.
  • Se te cobrará por las 100,000 IOPS de rendimiento aprovisionado del grupo de almacenamiento balanceado de Hyperdisk.
  • Al igual que los discos creados fuera de un grupo de almacenamiento, los discos Hyperdisk balanceados en los grupos de almacenamiento de rendimiento estándar se aprovisionan automáticamente con hasta 3,000 IOPS de referencia y 140 MiB/s de capacidad de procesamiento de referencia. Este rendimiento de referencia no se considera en el rendimiento aprovisionado del grupo de almacenamiento. Solo cuando agregas discos al grupo de almacenamiento con un rendimiento aprovisionado que supera el modelo de referencia, se considera el rendimiento aprovisionado del grupo de almacenamiento, por ejemplo:

    • Un disco aprovisionado con 3,000 IOPS usa 0 IOPS del grupo y el grupo aún tiene 100,000 IOPS aprovisionadas disponibles para otros discos.
    • Un disco aprovisionado con 13,000 IOPS usa 10,000 IOPS del grupo y el grupo tiene 90,000 IOPS aprovisionadas restantes que puedes asignar a otros discos del grupo de almacenamiento.

Con el aprovisionamiento de rendimiento avanzado, ocurre lo siguiente:

  • Puedes aprovisionar hasta 500,000 IOPS de rendimiento agregado de Hyperdisk cuando creas discos en el grupo de almacenamiento.
  • Se te cobrará por las 100,000 IOPS aprovisionadas por el grupo de almacenamiento.
  • Si creas un solo disco (Disk1) en el grupo de almacenamiento que tiene 5,000 IOPS, no consumirás ninguna IOPS de las IOPS aprovisionadas del grupo de almacenamiento. Sin embargo, la cantidad de IOPS que puedes aprovisionar a los discos nuevos creados en el grupo de almacenamiento ahora es de 495,000.
  • Si Disk1 comienza a leer y escribir datos, y si usa su máximo de 5,000 IOPS en un minuto determinado, se consumen 5,000 IOPS de las IOPS aprovisionadas del grupo de almacenamiento. Cualquier otro disco que hayas creado en el mismo grupo de almacenamiento puede usar un máximo agregado de 95,000 IOPS en ese mismo minuto sin generar contención.

Crea discos en el grupo de almacenamiento

Puedes usar la consola de Google Cloud, Google Cloud CLI o REST para crear un disco en un grupo de almacenamiento.

Console

Con la consola de Google Cloud, puedes crear un disco nuevo en un grupo de almacenamiento a través de la página Storage pools o la página Discos.

En la página Storage pools, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Storage pools.

    Ir a la página Storage pools

  2. Haz clic en el nombre del grupo de almacenamiento en el que deseas crear un disco.

  3. En la página Manage storage pool, haz clic en +Create New Disk.

  4. En el panel Agregar disco nuevo, ingresa un nombre para el disco.

  5. Especifica o cambia cualquier valor para el que no quieras usar el valor predeterminado.

  6. Cuando termines de especificar las propiedades del disco, haz clic en Guardar.

  7. En la página Manage storage pool, deberías ver el disco nuevo en la sección Storage pool disks.

En la página Crear disco:

  1. En la consola de Google Cloud, ve a la página Discos > Crear un disco.

    Ir a la página Crear un disco

  2. Ingresa un nombre para el disco.

  3. Selecciona la zona que contiene el grupo de almacenamiento en el que deseas crear el disco.

  4. Para el Tipo de disco, elige el tipo de disco que coincida con el grupo de almacenamiento de Hyperdisk, ya sea Hyperdisk Throughput o Hyperdisk Balanced

  5. Modifica los valores en los campos Tamaño, IOPS aprovisionadas y Capacidad de procesamiento aprovisionada, según sea necesario.

  6. En la sección Storage pool, selecciona Enable storage pool y, luego, elige el nombre del grupo de almacenamiento en el que se creará el disco. Solo el grupo de almacenamiento que existe en la zona seleccionada aparece en la lista.

  7. Cuando termines de especificar la información del disco, haz clic en Crear.

gcloud

Para crear uno o más discos en un grupo de almacenamiento, usa el comando gcloud compute disks create.

gcloud compute disks create DISK_NAME \
    --zone=ZONE \
    --storage-pool=STORAGE_POOL_NAME \
    --size=SIZE \
    --type=DISK_TYPE \
    --provisioned-iops=PROVISIONED_IOPS \
    --provisioned-throughput=PROVISIONED_THROUGHPUT

Reemplaza lo siguiente:

  • DISK_NAME: un nombre único para el disco. Puedes proporcionar una lista de nombres de disco especificados por espacios para crear varios discos con los mismos atributos.
  • ZONE: la zona en la que se creó el grupo de almacenamiento. Especifica este valor en formato de región-zona, por ejemplo, us-central1-a.
  • STORAGE_POOL_NAME: el nombre del grupo de almacenamiento en el que se creará el disco
  • SIZE: la capacidad aprovisionada del disco nuevo (opcional). El valor debe ser un número entero seguido de una unidad de tamaño de GB para gigabyte o TB para tebibyte. Si no se especifica ningún tamaño, se usa 100 GB como el valor predeterminado.
  • DISK_TYPE: el tipo de disco que se creará. Este debe coincidir con el tipo de grupo de almacenamiento de Hyperdisk, ya sea hyperdisk-balanced o hyperdisk-throughput.
  • PROVISIONED_IOPS: las IOPS que se aprovisionarán para el disco (opcional). Puedes usar esta marca solo con discos de Hyperdisk Balanced.
  • PROVISIONED_THROUGHPUT: la capacidad de procesamiento en mebibyte (MB) por segundo que se debe aprovisionar para el disco (opcional).

REST

Para crear uno o más discos en un grupo de almacenamiento, crea una POST con el método disks.insert. Incluye las propiedades name, sizeGb, type, storagePool, provisionedIops y provisionedThroughput. Para crear este disco como un disco vacío sin formato y que no sea de arranque, no especifiques una imagen ni una instantánea de origen.

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

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto
  • ZONE: la zona en la que se encuentra el grupo de almacenamiento, por ejemplo, us-central1-a. Esta es la zona en la que se creará el disco.
  • DISK_NAME: un nombre único para el disco.
  • DESCRIPTION: una cadena de texto que describe el disco (opcional).
  • DISK_TYPE: el tipo de disco, que debe coincidir con el tipo de grupo de almacenamiento. Usa hyperdisk-throughput o hyperdisk-balanced.
  • DISK_SIZE: Opcional: Es el tamaño del disco nuevo. El valor debe ser un número entero seguido de una unidad de tamaño de GB para gigabyte o TB para tebibyte. Si no se especifica ningún tamaño, se usa 100 GB como el valor predeterminado.
  • STORAGE_POOL_NAME: el nombre del grupo de almacenamiento en el que se creará el disco.
  • IOPS_LIMIT: las IOPS que se aprovisionarán para el disco (opcional). Puedes usar esta marca solo con discos de Hyperdisk Balanced.
  • THROUGHPUT_LIMIT: la capacidad de procesamiento en mebibytes (MB) por segundo que se debe aprovisionar para el disco (opcional).

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

Después de crear el disco, puedes conectarlo a una VM.

Crea una VM que use discos en el grupo de almacenamiento

Cuando creas una VM, configuras un disco de arranque y, de forma opcional, puedes crear discos adicionales (que no son de arranque), que se conectan a la VM de forma automática. En las siguientes secciones, se explica cómo crear cada tipo de disco en un grupo de almacenamiento como parte del proceso de creación de VM.

Crea el disco de arranque para una VM en un grupo de almacenamiento

Para crear una VM que use un disco de arranque en un grupo de almacenamiento, primero debes crear un grupo de almacenamiento de Hyperdisk Balanced. Luego, puedes crear una VM con un tipo de máquina que admita discos Hyperdisk Balanced. El tipo de máquina, el tipo de disco y el grupo de almacenamiento deben estar disponibles en la zona que elijas.

Console

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Haz clic en Crear instancia.

  3. Ingresa un nombre para la instancia.

  4. Establece la zona en la misma zona en la que se encuentra el grupo de almacenamiento.

  5. Elige un tipo de máquina que admita Hyperdisk Balanced, por ejemplo, H3.

  6. En la sección Disco de arranque, haz clic en Cambiar.

  7. En el panel Disco de arranque, establece el tipo de disco de arranque en Hyperdisk Balanced.

  8. Configura las propiedades del disco.

  9. Expande Mostrar configuración avanzada.

  10. En el encabezado Storage pool, selecciona Enable storage pool.

  11. Elige el grupo de almacenamiento en el que se creará el disco en la lista.

  12. Cuando termines la configuración del disco, haz clic en Seleccionar.

  13. Termina de configurar las propiedades de la VM.

  14. Haz clic en Crear.

    La consola crea la VM en la zona especificada y crea el disco de arranque en el grupo de almacenamiento seleccionado.

gcloud

Puedes crear el disco de arranque para una VM nueva en el grupo de almacenamiento a través del comando gcloud compute instances create y, además, incluir la propiedad storage-pool para el disco de arranque.

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

Reemplaza lo siguiente:

  • VM_NAME: el nombre de la VM.
  • ZONE: la región y la zona en la que se creará la VM, con el formato us-central1-a.
  • MACHINE_TYPE: el tipo de máquina de la VM, por ejemplo, m3-ultramem-32.
  • DISK_SIZE: el tamaño del disco de arranque, expresado en GiB
  • THROUGHPUT: la capacidad de procesamiento que se debe aprovisionar para el disco
  • IOPS: las IOPS que se deben aprovisionar para el disco
  • IMAGE_PROJECT: el proyecto que contiene la imagen
  • IMAGE: Especifica una de las siguientes opciones:
    • una versión específica de la imagen de SO; por ejemplo, debian-12-bookworm-v20240213.
    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Esto crea la instancia a partir de la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas family/debian-12, Compute Engine crea una VM con la última versión de la imagen de SO en la familia de imágenes debian-12. Para obtener más información sobre el uso de las familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.
  • STORAGE_POOL_NAME: el nombre del grupo de almacenamiento en el que se creará el disco nuevo.

REST

Puedes crear el disco de arranque para una VM nueva en el grupo de almacenamiento si creas una solicitud POST para el método instances.insert y, además, incluyes la propiedad storagePool para el disco de arranque.

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

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto
  • ZONE: la zona en la que se encuentra el grupo de almacenamiento, por ejemplo, us-central1-a. Esta es la zona en la que se crean la VM y el disco de arranque.
  • VM_NAME: el nombre de la VM.
  • MACHINE_TYPE: el tipo de máquina de la VM, por ejemplo, m3-ultramem-32.
  • BOOT_DISK_DEVICE_NAME: el nombre del dispositivo para el disco de arranque
  • DISK_SIZE: el tamaño del disco de arranque, expresado en GiB
  • DISK_TYPE: el tipo de disco, especificado como un URI
  • IMAGE_PROJECT: el proyecto que contiene la imagen
  • IMAGE: Especifica una de las siguientes opciones:
    • una versión específica de la imagen de SO; por ejemplo, debian-12-bookworm-v20240213.
    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Esto crea la instancia a partir de la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas family/debian-12, Compute Engine crea una VM con la última versión de la imagen de SO en la familia de imágenes debian-12. Para obtener más información sobre el uso de las familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.
  • IOPS_LIMIT: las IOPS que se deben aprovisionar para el disco
  • THROUGHPUT_LIMIT: la capacidad de procesamiento que se debe aprovisionar para el disco
  • POOL_URL: el grupo de almacenamiento en el que se crea el disco nuevo. Puedes proporcionar esto como una URL parcial o completa al recurso. Por ejemplo, los siguientes valores son válidos:
    • 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

Crea discos adicionales en un grupo de almacenamiento durante la creación de la VM

Cuando creas discos en un grupo de almacenamiento durante la creación de la VM, el tipo de máquina, el tipo de disco y el grupo de almacenamiento deben estar disponibles en la zona que elijas.

Console

Sigue los pasos que se indican a continuación para usar la consola para crear una VM nueva con discos adicionales que no sean de arranque:

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Haz clic en Crear instancia.

  3. Ingresa un nombre para la VM.

  4. Establece la zona en la misma zona en la que se encuentra el grupo de almacenamiento.

  5. Elige un tipo de máquina que admita el tipo de disco que usa el grupo de almacenamiento.

  6. Expande la sección Opciones avanzadas.

  7. Expande Discos.

  8. Haz clic en Agregar disco nuevo.

  9. En el panel Agregar disco nuevo, ingresa la información del disco. Establece el Tipo de disco para que coincida con el tipo de grupo de almacenamiento.

  10. En la sección Storage pool, seleccionaEnable storage pool.

  11. En el campo Seleccionar un grupo de almacenamiento, selecciona el grupo de almacenamiento en el que se creará el disco.

  12. Cuando termine la configuración del disco, haz clic en Guardar.

  13. Termina de configurar las propiedades de la VM.

  14. Haz clic en Crear.

    La consola crea la VM en la zona especificada y el disco que no es de arranque en el grupo de almacenamiento seleccionado.

gcloud

Puedes crear discos nuevos en un grupo de almacenamiento durante la creación de la VM con el comando gcloud compute instances create y la propiedad storage-pool para el disco.

gcloud compute instances create VM_NAME \
    --zone=ZONE \
    --machine-type=MACHINE_TYPE \
    --create-disk=auto-delete=yes,boot=yes,device-name=BOOT_DISK_DEVICE_NAME,image=IMAGE_NAME, \
    size=BOOT_DISK_SIZE,type=BOOT_DISK_TYPE
    --create-disk=auto-delete=yes,boot=no,device-name=DATA_DISK_DEVICE_NAME,size=DATA_DISK_SIZE, \
    type=DATA_DISK_TYPE,provisioned-iops=IOPS,provisioned-throughput=THROUGHPUT, \
    storage_pool=STORAGE_POOL_NAME

Reemplaza lo siguiente:

  • VM_NAME: el nombre de la VM.
  • ZONE: la región y la zona en la que se creará la VM, con el formato us-central1-a
  • MACHINE_TYPE: el tipo de máquina de la VM
  • BOOT_DISK_DEVICE_NAME: el nombre del dispositivo para el disco de arranque
  • IMAGE_NAME: es el nombre de la imagen del sistema operativo que se instalará en el disco de arranque; por ejemplo, debian-12-bookworm-v20240213.
  • BOOT_DISK_SIZE: es el tamaño del disco de arranque, expresado en GiB.
  • BOOT_DISK_TYPE: el tipo de disco.
  • DATA_DISK_DEVICE_NAME: el nombre del dispositivo del disco para el disco de datos.
  • DATA_DISK_SIZE: el tamaño del disco de datos, expresado en GiB.
  • DATA_DISK_TYPE: el tipo de disco de datos, ya sea hyperdisk-balanced o hyperdisk-throughput.
  • IOPS: las IOPS que se deben aprovisionar para el disco
  • THROUGHPUT: la capacidad de procesamiento que se debe aprovisionar para el disco
  • STORAGE_POOL_NAME: el nombre único del grupo de almacenamiento en el que deseas crear el disco.

REST

Puedes crear discos nuevos en un grupo de almacenamiento durante la creación de la VM si creas una solicitud POST para el método instances.insert y agregas storagePool para los discos adicionales.

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

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto
  • ZONE: la zona en la que se encuentra el grupo de almacenamiento, por ejemplo, us-central1-a. Esta es la zona en la que se crean la VM y el disco de arranque.
  • VM_NAME: el nombre de la VM.
  • MACHINE_TYPE: el tipo de máquina de la VM, por ejemplo, m3-ultramem-32.
  • IMAGE_PROJECT: el proyecto que contiene la imagen
  • IMAGE: Especifica una de las siguientes opciones:
    • una versión específica de la imagen de SO; por ejemplo, debian-12-bookworm-v20240213.
    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Esto crea la instancia a partir de la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas family/debian-12, Compute Engine crea una VM con la última versión de la imagen de SO en la familia de imágenes debian-12. Para obtener más información sobre el uso de las familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.
  • DEVICE_NAME: el nombre del dispositivo para el disco de datos.
  • DISK_SIZE: el tamaño del disco de datos, expresado en GiB.
  • DISK_TYPE: el tipo de disco, especificado como un URI
  • IOPS_LIMIT: las IOPS que se deben aprovisionar para el disco
  • THROUGHPUT_LIMIT: la capacidad de procesamiento que se debe aprovisionar para el disco
  • POOL_URL: el grupo de almacenamiento en el que se crea el disco nuevo. Puedes proporcionar esto como una URL parcial o completa al recurso. Por ejemplo, los siguientes valores son válidos:
    • 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

Usar un grupo de almacenamiento en una plantilla de instancias

Las plantillas de instancias que se usan para crear grupos de instancias administrados (MIG) pueden contener la información del grupo de almacenamiento. Los discos creados con la plantilla de instancias se colocan en el grupo de almacenamiento especificado.

Console

  1. En la consola de Google Cloud, ve a la página Plantillas de instancia.

    Ir a Plantillas de instancia

  2. Haz clic en Crear plantilla de instancias.

  3. Ingresa un nombre para la plantilla de instancias.

  4. Elige Regional para la ubicación y, en el campo Región, elige la región en la que se encuentra el grupo de almacenamiento.

  5. Elige un tipo de máquina que admita Hyperdisk Balanced, por ejemplo, C3.

  6. En la sección Disco de arranque, haz clic en Cambiar.

  7. En el panel Disco de arranque, establece el tipo de disco de arranque en Hyperdisk Balanced.

  8. Configura las propiedades del disco.

  9. Expande Mostrar configuración avanzada.

  10. En el encabezado Storage pool, selecciona Enable storage pool.

  11. Elige el grupo de almacenamiento en el que se creará el disco en la lista.

  12. Cuando termines la configuración del disco, haz clic en Seleccionar.

  13. Termina de configurar las propiedades de la VM.

  14. Haz clic en Crear.

    La plantilla crea la VM en la zona especificada y el disco de arranque en el grupo de almacenamiento seleccionado.

gcloud

Puedes especificar en una plantilla de instancias que el disco de libro se cree en un grupo de almacenamiento con el comando gcloud compute instance-templates create y, además, incluir la propiedad storage-pool para el disco de arranque.

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

Reemplaza lo siguiente:

  • TEMPLATE_NAME: el nombre de la plantilla de instancias.
  • REGION: es la región en la que deseas crear la plantilla de instancias regional. La región debe contener la zona en la que se encuentra el grupo de almacenamiento.
  • MACHINE_TYPE: el tipo de máquina que se usará cuando se cree la VM, por ejemplo, h3-standard-88.
  • DISK_SIZE: el tamaño del disco, expresado en GiB.
  • THROUGHPUT: la capacidad de procesamiento que se debe aprovisionar para el disco
  • IOPS: las IOPS que se deben aprovisionar para el disco
  • IMAGE_PROJECT: el proyecto que contiene la imagen
  • IMAGE: Especifica una de las siguientes opciones:
    • una versión específica de la imagen de SO; por ejemplo, debian-12-bookworm-v20240213.
    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Esto crea la instancia a partir de la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas family/debian-12, Compute Engine crea una VM con la última versión de la imagen de SO en la familia de imágenes debian-12. Para obtener más información sobre el uso de las familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.
  • STORAGE_POOL_NAME: el nombre del grupo de almacenamiento en el que se creará el disco nuevo.

REST

Puedes crear el disco de arranque para una VM nueva en el grupo de almacenamiento si creas una solicitud POST para el método instances.insert y, además, incluyes la propiedad storagePool para el disco de arranque.

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

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto
  • VM_NAME: el nombre de la VM.
  • ZONE: la zona en la que se encuentra el grupo de almacenamiento, por ejemplo, us-central1-a. Esta es la zona en la que se crean la VM y el disco de arranque.
  • MACHINE_TYPE: el tipo de máquina de la VM, por ejemplo, m3-ultramem-32.
  • BOOT_DISK_DEVICE_NAME: el nombre del dispositivo para el disco de arranque
  • DISK_SIZE: el tamaño del disco de arranque, expresado en GiB
  • DISK_TYPE: el tipo de disco, especificado como un URI
  • IMAGE_PROJECT: el proyecto que contiene la imagen
  • IMAGE: Especifica una de las siguientes opciones:
    • una versión específica de la imagen de SO; por ejemplo, debian-12-bookworm-v20240213.
    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Esto crea la instancia a partir de la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas family/debian-12, Compute Engine crea una VM con la última versión de la imagen de SO en la familia de imágenes debian-12. Para obtener más información sobre el uso de las familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.
  • IOPS_LIMIT: las IOPS que se deben aprovisionar para el disco
  • THROUGHPUT_LIMIT: la capacidad de procesamiento que se debe aprovisionar para el disco
  • POOL_URL: el grupo de almacenamiento en el que se crea el disco nuevo. Puedes proporcionar esto como una URL parcial o completa al recurso. Por ejemplo, los siguientes valores son válidos:
    • 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