Agregar discos de un grupo de almacenamiento a las máquinas virtuales


Puede crear discos en un grupo de almacenamiento de hiperdisco y luego conectar el disco a una instancia de máquina virtual (VM), o puede crear discos en el grupo de almacenamiento al crear una VM.

Antes de comenzar

  • Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    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. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. 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, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.

      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. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. 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, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.

      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. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. 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, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.

      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.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

Roles y permisos necesarios

Para obtener los permisos que necesita para crear un disco Hyperdisk Balanced o Hyperdisk Throughput en un grupo de almacenamiento, solicite a su administrador que le otorgue las siguientes funciones de IAM en el proyecto:

  • Administrador de instancias informáticas (v1) ( roles/compute.instanceAdmin.v1 )
  • Para conectarse a una instancia de VM que se puede ejecutar 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, consulte Administrar el acceso a proyectos, carpetas y organizaciones .

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

Permisos requeridos

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

  • Para crear discos en un grupo de almacenamiento y conectarlos a una instancia de VM:
    • compute.disks.create en el proyecto.
    • compute.instances.attachDisk en la máquina virtual
    • compute.disks.use en el volumen que desea adjuntar a la VM
    • compute.storagePools.use en el grupo de almacenamiento en el que está creando discos.
  • Para formatear y montar el volumen adjunto: compute.instances.setMetadata en la VM

Es posible que también pueda obtener estos permisos con roles personalizados u otros roles predefinidos .

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

Limitaciones

Revise las siguientes limitaciones para crear discos en un grupo de almacenamiento de hiperdisco:

  • Solo puede crear discos con equilibrio de hiperdisco en un grupo de almacenamiento con equilibrio de hiperdisco y solo puede crear discos con rendimiento de hiperdisco en un grupo de almacenamiento con rendimiento de hiperdisco.
  • 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, debe utilizar un grupo de almacenamiento equilibrado de hiperdisco.
  • 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, debe volver a crear el disco a partir de una instantánea. Para obtener más información, consulte Cambiar el tipo de disco .
  • Puede crear hasta 1000 discos en un grupo de almacenamiento.
  • Los grupos de almacenamiento no admiten discos regionales .

Opciones de aprovisionamiento

Dependiendo del tipo de aprovisionamiento para el grupo de almacenamiento de hiperdisco, puede elegir cómo aprovisionar tanto la capacidad como el rendimiento de cada disco que cree en el grupo de almacenamiento.

Aprovisionamiento de capacidad del disco

Si crea un grupo de almacenamiento de capacidad avanzada, puede utilizar aprovisionamiento ligero. Puede crear discos en el grupo de almacenamiento con un tamaño acumulativo que exceda la capacidad aprovisionada del grupo. La capacidad utilizada del grupo de almacenamiento se define por los datos totales en uso y no por la cantidad de espacio en disco que haya aprovisionado. Puede aprovisionar discos con una capacidad agregada de hasta el 500 % de la capacidad aprovisionada de un grupo de almacenamiento de capacidad avanzada.

Si está creando discos en un grupo de almacenamiento de capacidad estándar, cree discos en el grupo de almacenamiento hasta que el tamaño total de todos los discos en el 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 pertenecen al grupo, donde la capacidad se consume cuando se crean los discos.

Rendimiento de aprovisionamiento

Si crea un grupo de almacenamiento de rendimiento avanzado, puede utilizar aprovisionamiento ligero. Puede crear discos en el grupo de almacenamiento con una cantidad acumulada de IOPS y un rendimiento que exceda el rendimiento aprovisionado del grupo. El rendimiento utilizado del grupo de almacenamiento se define por el rendimiento total utilizado por los discos y no por la cantidad de rendimiento aprovisionado para cada disco. Puede aprovisionar discos con un rendimiento agregado de hasta el 500 % del rendimiento aprovisionado de un grupo de almacenamiento de rendimiento avanzado.

Si está creando discos en un grupo de almacenamiento de rendimiento estándar, las IOPS o el rendimiento que aprovisiona para un disco deben ser menores que las IOPS o el rendimiento disponibles en el grupo de almacenamiento de Hyperdisk. Las IOPS o el rendimiento disponibles son la cantidad aprovisionada para el grupo de almacenamiento menos la cantidad utilizada para todos los discos creados en el grupo de almacenamiento.

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

Ejemplo

Supongamos que tiene un grupo de almacenamiento equilibrado de Hyperdisk con 100 000 IOPS aprovisionadas.

Con aprovisionamiento de rendimiento estándar:

  • Puede aprovisionar hasta 100 000 IOPS agregadas al crear discos Hyperdisk Balanced en el grupo de almacenamiento.
  • Se le cobrará por los 100 000 IOPS del rendimiento aprovisionado del grupo de almacenamiento equilibrado de Hyperdisk.
  • Al igual que los discos creados fuera de un grupo de almacenamiento, los discos Hyperdisk Balanced en grupos de almacenamiento de rendimiento estándar se aprovisionan automáticamente con hasta 3000 IOPS de referencia y 140 MiB/s de rendimiento de referencia. Este rendimiento de referencia no se cuenta en el rendimiento aprovisionado para el grupo de almacenamiento. Solo cuando agrega discos al grupo de almacenamiento con un rendimiento aprovisionado que está por encima de la línea base, se cuenta en el rendimiento aprovisionado para el grupo de almacenamiento, por ejemplo:

    • Un disco aprovisionado con 3000 IOPS utiliza 0 IOPS de grupo y el grupo todavía tiene 100 000 IOPS aprovisionadas disponibles para otros discos.
    • Un disco aprovisionado con 13 000 IOPS utiliza 10 000 IOPS del grupo y al grupo le quedan 90 000 IOPS aprovisionadas que puede asignar a otros discos en el grupo de almacenamiento.

Con aprovisionamiento de rendimiento avanzado:

  • Puede aprovisionar hasta 500 000 IOPS de rendimiento agregado de Hyperdisk al crear discos en el grupo de almacenamiento.
  • Se le cobran 100 000 IOPS proporcionadas por el grupo de almacenamiento.
  • Si crea un único disco ( Disk1 ) en el grupo de almacenamiento que tiene 5000 IOPS, no consumirá ninguna IOPS del grupo de almacenamiento aprovisionado. Sin embargo, la cantidad de IOPS que puede aprovisionar a los discos nuevos creados en el grupo de almacenamiento es ahora de 495 000.
  • Si Disk1 comienza a leer y escribir datos, y si utiliza su máximo de 5000 IOPS en un minuto determinado, entonces se consumen 5000 IOPS del grupo de almacenamiento de IOPS aprovisionado. Cualquier otro disco que haya creado en el mismo grupo de almacenamiento puede utilizar un máximo agregado de 95 000 IOPS en ese mismo minuto sin entrar en competencia.

Crear discos en el grupo de almacenamiento

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

Consola

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

En la página Grupos de almacenamiento :

  1. En la consola de Google Cloud, vaya a la página Grupos de almacenamiento .

    Vaya a la página de grupos de almacenamiento

  2. Haga clic en el nombre del grupo de almacenamiento en el que desea crear un disco.

  3. En la página Administrar grupo de almacenamiento , haga clic en +Crear nuevo disco .

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

  5. Especifique o cambie cualquier valor para el que no desee utilizar el valor predeterminado.

  6. Cuando termine de especificar las propiedades del disco, haga clic en Guardar .

  7. En la página Administrar grupo de almacenamiento , debería ver el nuevo disco en la sección Discos del grupo de almacenamiento .

En la página Crear disco :

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

    Vaya a la página Crear un disco

  2. Introduzca un nombre para el disco.

  3. Seleccione la zona que contiene el grupo de almacenamiento en el que desea crear el disco.

  4. Para Tipo de disco , elija el tipo de disco que coincida con el grupo de almacenamiento de hiperdisco, ya sea rendimiento de hiperdisco o hiperdisco equilibrado.

  5. Modifique los valores en los campos Tamaño , IOPS aprovisionadas y Rendimiento aprovisionado , según sea necesario.

  6. En la sección Grupo de almacenamiento , seleccione Habilitar grupo de almacenamiento y luego elija el nombre del grupo de almacenamiento en el que crear el disco. En la lista solo aparecen los grupos de almacenamiento que existen en la zona seleccionada.

  7. Cuando termine de especificar la información del disco, haga clic en Crear .

nube de 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

Reemplace lo siguiente:

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

DESCANSAR

Para crear uno o más discos en un grupo de almacenamiento, cree una POST utilizando el método disks.insert . Incluya las propiedades name , sizeGb , type , storagePool , provisionedIops y provisionedThroughput . Para crear este disco como un disco sin arranque vacío y sin formato, no especifique una imagen de origen 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",
}

Reemplace 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 : Opcional: una cadena de texto que describe el disco.
  • DISK_TYPE : el tipo de disco, que debe coincidir con el tipo de grupo de almacenamiento. Utilice hyperdisk-throughput o hyperdisk-balanced .
  • DISK_SIZE : Opcional: el tamaño del nuevo disco. El valor debe ser un número entero seguido de una unidad de tamaño de GB para gibibytes o TB para tebibytes. Si no se especifica ningún tamaño, se utilizan 100 GB como valor predeterminado.
  • STORAGE_POOL_NAME : el nombre del grupo de almacenamiento en el que se creará el disco.
  • IOPS_LIMIT : Opcional: las IOPS que se aprovisionarán para el disco. Puede utilizar esta marca solo con discos Hyperdisk Balanced.
  • THROUGHPUT_LIMIT : Opcional: el rendimiento en mebibytes (MB) por segundo para aprovisionar el disco.

Ir


// 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;
    }
  }
}

Nodo.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, puede conectarlo a una máquina virtual .

Cree una máquina virtual que utilice discos en el grupo de almacenamiento

Al crear una máquina virtual, configura un disco de arranque y, opcionalmente, puede crear discos de datos adicionales (que no sean de arranque), que se adjuntan automáticamente a la máquina virtual. Las siguientes secciones explican cómo crear cada tipo de disco en un grupo de almacenamiento como parte del proceso de creación de VM.

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

Para crear una máquina virtual que utilice un disco de arranque en un grupo de almacenamiento, primero debe crear un grupo de almacenamiento equilibrado de hiperdisco. Luego puede crear una máquina virtual utilizando 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 elija.

Consola

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

    Ir a instancias de VM

  2. Haga clic en Crear instancia .

  3. Introduzca un nombre para la instancia.

  4. Establezca la zona en la misma zona donde se encuentra el grupo de almacenamiento.

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

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

  7. En el panel Disco de arranque , establezca el tipo de disco de arranque en Hiperdisco equilibrado.

  8. Configure las propiedades del disco.

  9. Expanda Mostrar configuración avanzada .

  10. Bajo el título Grupo de almacenamiento , seleccione Habilitar grupo de almacenamiento .

  11. Elija el grupo de almacenamiento en el que crear el disco de la lista.

  12. Cuando termine con la configuración del disco, haga clic en Seleccionar .

  13. Termine de configurar las propiedades de la VM.

  14. Haga clic en Crear .

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

nube de gcloud

Puedes crear el disco de inicio para una nueva VM en el grupo de almacenamiento usando el comando gcloud compute instances create e incluyendo la propiedad storage-pool para el disco de inicio.

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

Reemplace lo siguiente:

  • VM_NAME : el nombre de la VM.
  • ZONE : la región y zona para crear la VM, usando 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, en GiB, del disco de arranque
  • THROUGHPUT : el rendimiento para aprovisionar el disco
  • IOPS : el IOPS para aprovisionar el disco
  • IMAGE_PROJECT : el proyecto que contiene la imagen
  • IMAGE : especifique uno de los siguientes:
    • Una versión específica de la imagen del sistema operativo, 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 del sistema operativo más reciente y no obsoleta. Por ejemplo, si especifica family/debian-12 , Compute Engine crea una VM usando la última versión de la imagen del sistema operativo en la familia de imágenes debian-12 . Para obtener más información sobre el uso de familias de imágenes, consulte Mejores prácticas de familias de imágenes .
  • STORAGE_POOL_NAME : el nombre del grupo de almacenamiento en el que se creará el nuevo disco.

DESCANSAR

Puede crear el disco de inicio para una nueva máquina virtual en el grupo de almacenamiento creando una solicitud POST para el método instances.insert e incluyendo la propiedad storagePool para el disco de inicio.

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

Reemplace 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, en GiB, del disco de arranque
  • DISK_TYPE : el tipo de disco, especificado como URI
  • IMAGE_PROJECT : el proyecto que contiene la imagen
  • IMAGE : especifique uno de los siguientes:
    • Una versión específica de la imagen del sistema operativo, 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 del sistema operativo más reciente y no obsoleta. Por ejemplo, si especifica family/debian-12 , Compute Engine crea una VM usando la última versión de la imagen del sistema operativo en la familia de imágenes debian-12 . Para obtener más información sobre el uso de familias de imágenes, consulte Mejores prácticas de familias de imágenes .
  • IOPS_LIMIT : los IOPS a aprovisionar para el disco
  • THROUGHPUT_LIMIT : el rendimiento para aprovisionar el disco
  • POOL_URL : el grupo de almacenamiento en el que se crea el nuevo disco. Puede proporcionar esto como una URL parcial o completa al recurso. Por ejemplo, los siguientes son valores 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

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

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

Consola

Utilice los siguientes pasos para usar la consola para crear una nueva máquina virtual con discos adicionales que no sean de arranque:

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

    Ir a instancias de VM

  2. Haga clic en Crear instancia .

  3. Introduzca un nombre para la VM.

  4. Establezca la zona en la misma zona donde se encuentra el grupo de almacenamiento.

  5. Elija un tipo de máquina que admita el tipo de disco utilizado por el grupo de almacenamiento.

  6. Expanda la sección Opciones avanzadas .

  7. Expanda Discos .

  8. Haga clic en Agregar nuevo disco .

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

  10. En la sección Grupo de almacenamiento , seleccione Habilitar grupo de almacenamiento .

  11. En el campo Seleccionar un grupo de almacenamiento , seleccione el grupo de almacenamiento en el que crear el disco.

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

  13. Termine de configurar las propiedades de la VM.

  14. Haga clic en Crear .

    La consola crea la máquina virtual en la zona especificada y crea el disco que no es de arranque en el grupo de almacenamiento seleccionado.

nube de gcloud

Puedes crear nuevos discos en un grupo de almacenamiento durante la creación de VM usando el comando gcloud compute instances create e incluyendo 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

Reemplace lo siguiente:

  • VM_NAME : el nombre de la VM.
  • ZONE : la región y zona para crear la VM, usando 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 : 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 : el tamaño, en GiB, del disco de arranque
  • BOOT_DISK_TYPE : el tipo de disco
  • DATA_DISK_DEVICE_NAME : el nombre del dispositivo de disco para el disco de datos
  • DATA_DISK_SIZE : el tamaño del disco de datos, en GiB
  • DATA_DISK_TYPE : el tipo de disco de datos, ya sea hyperdisk-balanced o hyperdisk-throughput
  • IOPS : el IOPS para aprovisionar el disco
  • THROUGHPUT : el rendimiento para aprovisionar el disco
  • STORAGE_POOL_NAME : el nombre único del grupo de almacenamiento en el que desea crear el disco.

DESCANSAR

Puede crear nuevos discos en un grupo de almacenamiento durante la creación de VM creando una solicitud POST para el método instances.insert e incluyendo la propiedad 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"
        }
      }
   ]
}

Reemplace 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 : especifique uno de los siguientes:
    • Una versión específica de la imagen del sistema operativo, 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 del sistema operativo más reciente y no obsoleta. Por ejemplo, si especifica family/debian-12 , Compute Engine crea una VM usando la última versión de la imagen del sistema operativo en la familia de imágenes debian-12 . Para obtener más información sobre el uso de familias de imágenes, consulte Mejores prácticas de familias de imágenes .
  • DEVICE_NAME : el nombre del dispositivo para el disco de datos
  • DISK_SIZE : el tamaño, en GiB, del disco de datos.
  • DISK_TYPE : el tipo de disco, especificado como URI
  • IOPS_LIMIT : los IOPS a aprovisionar para el disco
  • THROUGHPUT_LIMIT : el rendimiento para aprovisionar el disco
  • POOL_URL : el grupo de almacenamiento en el que se crea el nuevo disco. Puede proporcionar esto como una URL parcial o completa al recurso. Por ejemplo, los siguientes son valores 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 grupo de almacenamiento en una plantilla de instancia

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

Consola

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

    Ir a plantillas de instancia

  2. Haga clic en Crear plantilla de instancia .

  3. Introduzca un nombre para la plantilla de instancia.

  4. Elija Regional para la ubicación y, en el campo Región , elija la región donde se encuentra el grupo de almacenamiento.

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

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

  7. En el panel Disco de arranque , establezca el tipo de disco de arranque en Hiperdisco equilibrado.

  8. Configure las propiedades del disco.

  9. Expanda Mostrar configuración avanzada .

  10. Bajo el título Grupo de almacenamiento , seleccione Habilitar grupo de almacenamiento .

  11. Elija el grupo de almacenamiento en el que crear el disco de la lista.

  12. Cuando termine con la configuración del disco, haga clic en Seleccionar .

  13. Termine de configurar las propiedades de la VM.

  14. Haga clic en Crear .

    La plantilla crea la máquina virtual en la zona especificada y crea el disco de arranque en el grupo de almacenamiento seleccionado.

nube de gcloud

Puedes especificar en una plantilla de instancia que el disco del libro se cree en un grupo de almacenamiento mediante el comando gcloud compute instance-templates create e incluyendo la propiedad storage-pool para el disco de inicio.

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

Reemplace lo siguiente:

  • TEMPLATE_NAME : el nombre de la plantilla de instancia.
  • REGION : la región donde desea crear la plantilla de instancia regional. La región debe contener la zona donde se encuentra el grupo de almacenamiento.
  • MACHINE_TYPE : el tipo de máquina que se utilizará al crear la VM, por ejemplo, h3-standard-88 .
  • DISK_SIZE : el tamaño, en GiB, del disco.
  • THROUGHPUT : el rendimiento para aprovisionar el disco
  • IOPS : el IOPS para aprovisionar el disco
  • IMAGE_PROJECT : el proyecto que contiene la imagen
  • IMAGE : especifique uno de los siguientes:
    • Una versión específica de la imagen del sistema operativo, 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 del sistema operativo más reciente y no obsoleta. Por ejemplo, si especifica family/debian-12 , Compute Engine crea una VM usando la última versión de la imagen del sistema operativo en la familia de imágenes debian-12 . Para obtener más información sobre el uso de familias de imágenes, consulte Mejores prácticas de familias de imágenes .
  • STORAGE_POOL_NAME : el nombre del grupo de almacenamiento en el que se creará el nuevo disco.

DESCANSAR

Puede crear el disco de inicio para una nueva máquina virtual en el grupo de almacenamiento creando una solicitud POST para el método instances.insert e incluyendo la propiedad storagePool para el disco de inicio.

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

Reemplace 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, en GiB, del disco de arranque
  • DISK_TYPE : el tipo de disco, especificado como URI
  • IMAGE_PROJECT : el proyecto que contiene la imagen
  • IMAGE : especifique uno de los siguientes:
    • Una versión específica de la imagen del sistema operativo, 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 del sistema operativo más reciente y no obsoleta. Por ejemplo, si especifica family/debian-12 , Compute Engine crea una instancia utilizando la última versión de la imagen del sistema operativo en la familia de imágenes debian-12 . Para obtener más información sobre el uso de familias de imágenes, consulte Mejores prácticas de familias de imágenes .
  • IOPS_LIMIT : los IOPS a aprovisionar para el disco
  • THROUGHPUT_LIMIT : el rendimiento para aprovisionar el disco
  • POOL_URL : el grupo de almacenamiento en el que se crea el nuevo disco. Puede proporcionar esto como una URL parcial o completa al recurso. Por ejemplo, los siguientes son valores 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