Crear en bloque instancias optimizadas para HPC que usen RDMA


En este tutorial se explica cómo crear un gran número de instancias de máquinas virtuales (VMs) de computación de alto rendimiento (HPC) que sean idénticas e independientes entre sí. Las instancias usan tipos de máquinas optimizadas para HPC H4D y se ejecutan en bloques de capacidad reservada. En este tutorial también se muestra cómo configurar las instancias H4D para usar Cloud RDMA.

Este tutorial está dirigido a ingenieros, administradores y operadores de plataformas de HPC, así como a especialistas en datos y MPI que quieran crear un clúster de instancias de HPC interconectadas. Las instancias resultantes no usan un orquestador para la gestión de instancias ni la programación de trabajos.

Objetivos

  1. Reserva bloques de capacidad para tu implementación.
  2. Opcional: Crea una política de colocación si no vas a crear las VMs en el mismo bloque o subbloque.
  3. Crea redes de nube privada virtual.
  4. Crea instancias con RDMA en bloque.
  5. Limpiar.

Costes

En este tutorial se usan componentes facturables de Google Cloud, como los siguientes:

Para generar una estimación de costes basada en el uso previsto, utiliza la calculadora de precios.

Antes de empezar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the required API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable compute.googleapis.com
  8. Install the Google Cloud CLI.

  9. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  10. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  11. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Enable the required API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable compute.googleapis.com
  14. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/compute.instanceAdmin.v1,roles/compute.networkAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  15. Reservar bloques de capacidad para tu implementación

    En este documento se explica cómo reservar bloques de capacidad solicitando a tu equipo de cuenta que cree una solicitud de reserva futura. Usa este tipo de reserva para obtener capacidad para despliegues densos de instancias de VM. Para obtener un resumen de todas las opciones de consumo, consulta lo siguiente:

    Esta acción te permite reservar bloques de capacidad durante un periodo definido, a partir de una fecha y una hora concretas que elijas. Según tu solicitud, Google crea un borrador de solicitud de reserva futura. Después de revisar y enviar esta solicitud de borrador, y de que Google Cloud la apruebe, Compute Engine creará automáticamente (creación automática) una reserva vacía. A continuación, a la hora de inicio que hayas elegido, Compute Engine aprovisionará la capacidad solicitada en la reserva creada automáticamente. Después, puedes usar la reserva para crear instancias de máquina virtual hasta que finalice el periodo de reserva.

    Como parte del proceso de solicitud de reserva futura, Google gestiona la cuota de tus recursos reservados. No es necesario que solicites cuota. A la hora de inicio de la reserva futura aprobada, Google aumenta tu cuota si no tienes suficiente para los recursos reservados.

    Para reservar bloques de capacidad, siga estos pasos:

    1. Ponte en contacto con tu equipo de cuenta y proporciona la siguiente información a Google para que cree un borrador de solicitud de reserva futura:

      • Número de proyecto: el número del proyecto en el que tu equipo de cuentas crea la solicitud y Compute Engine aprovisiona la capacidad. Para obtener información sobre cómo encontrar el número de tu proyecto, consulta el artículo Buscar el nombre, el número y el ID del proyecto en la documentación de Resource Manager.

      • Tipo de máquina: uno de los tipos de máquinas H4D optimizados para HPC

      • Recuento total: el número total de VMs que se van a reservar. Solo puedes reservar múltiplos de dos máquinas virtuales. El tamaño de los bloques y el número de máquinas virtuales por bloque varían en función del tipo de máquina y de la disponibilidad. El equipo de tu cuenta puede proporcionarte más detalles sobre tu solicitud.

      • Zona: la zona en la que quieras reservar capacidad. Para consultar las regiones y zonas disponibles para la serie de máquinas H4D, consulta Regiones y zonas disponibles y selecciona H4D en la lista Seleccionar una serie de máquinas.

      • Hora de inicio: la hora de inicio del periodo de reserva. Formatea la hora de inicio como una marca de tiempo RFC 3339:

        YYYY-MM-DDTHH:MM:SSOFFSET
        

        Haz los cambios siguientes:

        • YYYY-MM-DD: una fecha con el formato de año de cuatro dígitos, mes de dos dígitos y día del mes de dos dígitos, separados por guiones (-).

        • HH:MM:SS: hora con formato de hora de dos dígitos con un formato de 24 horas, minutos de dos dígitos y segundos de dos dígitos, separados por dos puntos (:).

        • OFFSET: la zona horaria con el formato de una diferencia con respecto al tiempo universal coordinado (UTC). Por ejemplo, para usar la hora estándar del Pacífico (PST), especifica -08:00. Para no usar ninguna variación, especifica Z.

      • Hora de finalización: la hora de finalización del periodo de reserva. Dale el formato de marca de tiempo RFC 3339.

      • Tipo de uso compartido: si solo tu proyecto puede usar la reserva creada automáticamente (LOCAL) u otros proyectos pueden usarla (SPECIFIC_PROJECTS).

        Para compartir la capacidad reservada con otros proyectos de tu organización, haz lo siguiente:

        1. Si aún no lo has hecho, comprueba que el proyecto en el que Google crea la solicitud pueda crear reservas compartidas.

        2. Proporciona los números de los proyectos con los que quieres compartir la capacidad reservada. Puedes especificar hasta 100 proyectos de tu organización.

      • Nombre de la reserva: el nombre de la reserva que Compute Engine crea automáticamente para ofrecerte la capacidad reservada. Compute Engine solo crea reservas específicas.

      • Nombre del compromiso: si el periodo de reserva es de un año o más, debes comprar y adjuntar un compromiso basado en los recursos a los recursos reservados. Puedes comprar un compromiso con un plan de 1 o 3 años. Si compartes la capacidad reservada con otros proyectos, estos solo obtendrán descuentos si usan la misma cuenta de facturación de Cloud que el proyecto en el que reservas la capacidad. Para obtener más información, consulta Habilitar el uso compartido de CUDs en compromisos basados en recursos.

    2. Google crea un borrador de solicitud de reserva futura y tu equipo de cuenta se pone en contacto contigo.

    3. Revisa la solicitud de borrador. Ten en cuenta lo siguiente al revisar la solicitud de reserva:

      • Solo puedes empezar a usar la capacidad reservada después de la fecha y la hora de inicio especificadas.
      • Cuando se alcanza la hora de finalización especificada, Compute Engine hace lo siguiente:

        • Elimina la reserva creada automáticamente.
        • Detiene o elimina las VMs que usan la reserva. La acción que se lleva a cabo se basa en la acción de finalización que especifiques al crear las VMs.
      • No puedes cambiar si la capacidad reservada se comparte después de enviar la solicitud de reserva.

      Para revisar una solicitud de reserva futura en borrador, selecciona una de las siguientes opciones:

      Consola

      1. En la Google Cloud consola, ve a la página Reservas.

        Ir a Reservas

      2. Haz clic en la pestaña Reservas futuras. En la tabla Reservas futuras se muestra cada solicitud de reserva futura de tu proyecto y cada columna de la tabla describe una propiedad.

      3. En la columna Nombre, haz clic en el nombre de la solicitud de borrador que Google ha creado por ti. Se abrirá una página con los detalles de la solicitud de reserva futura.

      4. En la sección Información básica, compruebe que los detalles de la solicitud, como las fechas y el tipo de uso compartido, sean correctos. Además, si has solicitado un compromiso, comprueba que se haya especificado.

      5. Si alguno de estos datos es incorrecto, póngase en contacto con su equipo de cuenta.

      gcloud

      1. Para ver una lista de las solicitudes de reserva futuras de tu proyecto, usa el comando gcloud beta compute future-reservations list con la marca --filter definida como PROCUREMENT_STATUS=DRAFTING:

        gcloud beta compute future-reservations list --filter=PROCUREMENT_STATUS=DRAFTING
        
      2. En el resultado del comando, busca la solicitud de reserva que tenga el nombre que has proporcionado a tu equipo de asistencia.

      3. Para ver los detalles de la solicitud de borrador, usa el comando gcloud beta compute future-reservations describe:

        gcloud beta compute future-reservations describe FUTURE_RESERVATION_NAME \
            --zone=ZONE
        

        Haz los cambios siguientes:

        • FUTURE_RESERVATION_NAME: el nombre de la solicitud de reserva futura en borrador.
        • ZONE: la zona en la que Google ha creado la solicitud.

        El resultado debería ser similar al siguiente:

        autoCreatedReservationsDeleteTime: '2026-02-10T19:20:00Z'
        creationTimestamp: '2025-11-27T11:14:58.305-08:00'
        deploymentType: DENSE
        id: '7979651787097007552'
        kind: compute#futureReservation
        name: example-draft-request
        planningStatus: DRAFT
        reservationName: example-reservation
        schedulingType: INDEPENDENT
        selfLink: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/example-draft-request
        selfLinkWithId: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/7979651787097007552
        specificReservationRequired: true
        specificSkuProperties:
          instanceProperties:
            localSsds:
            - diskSizeGb: '375'
              interface: NVME
            ...
          machineType: h4d-highmem-192-lssd
        totalCount: '2'
        status:
          autoCreatedReservations:
          - https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/reservations/example-reservation
          fulfilledCount: '2'
          lockTime: '2026-01-27T19:15:00Z'
          procurementStatus: DRAFTING
        timeWindow:
          endTime: '2026-02-10T19:20:00Z'
          startTime: '2026-01-27T19:20:00Z'
        zone: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b
        
      4. En el resultado del comando, comprueba que los detalles de la solicitud, como el periodo de reserva y el tipo de recurso compartido, sean correctos. Además, si has comprado un compromiso, comprueba que se haya especificado.

      5. Si los detalles son incorrectos, póngase en contacto con su equipo de cuentas.

      REST

      1. Para ver una lista de las solicitudes de reserva futuras de tu proyecto, haz una solicitud GET al método futureReservations.list beta. En la URL de la solicitud, incluya el parámetro de consulta filter y asígnale el valor status.procurementStatus=DRAFTING:

        GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations?filter=status.procurementStatus=DRAFTING
        

        Haz los cambios siguientes:

        • PROJECT_ID: el ID del proyecto en el que Google ha creado la solicitud de reserva futura en borrador.
        • ZONE: la zona en la que existe la solicitud.
      2. En el resultado de la solicitud, busca la solicitud de reserva que tenga el nombre que has proporcionado a tu equipo de asistencia.

      3. Para ver los detalles de la solicitud de borrador, haz una solicitud GET al método beta futureReservations.get:

        GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME
        

        Sustituye FUTURE_RESERVATION_NAME por el nombre de la solicitud de reserva futura en borrador.

        El resultado debería ser similar al siguiente:

        {
          "specificSkuProperties": {
            "instanceProperties": {
              "machineType": "h4d-highmem-192-lssd",
              "localSsds": [
                {
                  "diskSizeGb": "375",
                  "interface": "NVME"
                },
                ...
              ]
            },
            "totalCount": "2"
          },
          "kind": "compute#futureReservation",
          "id": "7979651787097007552",
          "creationTimestamp": "2025-11-27T11:14:58.305-08:00",
          "selfLink": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/example-draft-request",
          "selfLinkWithId": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/7979651787097007552",
          "zone": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b",
          "name": "example-draft-request",
          "timeWindow": {
            "startTime": "2026-01-27T19:20:00Z",
            "endTime": "2026-02-10T19:20:00Z"
          },
          "status": {
            "procurementStatus": "DRAFTING",
            "lockTime": "2026-01-27T19:15:00Z"
          },
          "planningStatus": "DRAFT",
          "specificReservationRequired": true,
          "reservationName": "example-reservation",
          "deploymentType": "DENSE",
          "schedulingType": "INDEPENDENT",
          "autoCreatedReservationsDeleteTime": "2026-02-10T19:20:00Z"
        }
        
      4. En el resultado, comprueba que los detalles de la solicitud, como el periodo de reserva y el tipo de uso compartido, sean correctos. Además, si has solicitado un compromiso, comprueba que se haya especificado.

      5. Si los detalles son incorrectos, póngase en contacto con su equipo de cuentas.

    4. Si todo es correcto, envía la solicitud de reserva. Debes enviar la solicitud antes de la hora de inicio de la solicitud.

      Para enviar una solicitud de reserva futura en borrador, selecciona una de las siguientes opciones:

      Consola

      1. En la Google Cloud consola, ve a la página Reservas.

        Ir a Reservas

      2. Haz clic en la pestaña Reservas futuras.

      3. En la columna Nombre, haz clic en el nombre de la solicitud de borrador que Google ha creado por ti.

      4. Haz clic en Enviar.

      gcloud

      Para enviar la solicitud de revisión, usa el comando gcloud beta compute future-reservations update con la marca --planning-status definida como SUBMITTED:

      gcloud beta compute future-reservations update FUTURE_RESERVATION_NAME \
          --planning-status=SUBMITTED \
          --zone=ZONE
      

      REST

      Para enviar la solicitud de borrador a revisión, haz una solicitud PATCH al método beta futureReservations.update. En la URL de la solicitud, incluya el parámetro de consulta updateMask y asígnele el valor planningStatus:

      PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME?updateMask=planningStatus
      
      {
        "name": "FUTURE_RESERVATION_NAME",
        "planningStatus": "SUBMITTED"
      }
      
    5. Google Cloud aprueba inmediatamente la solicitud que has enviado.

    6. Compute Engine crea una reserva vacía con los recursos que has solicitado.

    7. Para ver la reserva, consulta Ver capacidad reservada en la documentación de AI Hypercomputer.

    Opcional: Crear una política de emplazamiento

    Usa una política de emplazamiento si quieres que tus VMs se coloquen lo más cerca posible unas de otras. Sin embargo, si quieres que tus VMs estén en un bloque específico, omite este paso y proporciona el nombre del bloque necesario durante la creación en bloque de VMs.

    Las instancias que se comunican mediante Cloud RDMA deben estar ubicadas en una sola zona y, de forma más estricta, en un solo tejido de clúster. Puede crear una política de emplazamiento compacto y especificar un valor de distancia máxima para definir la compacidad mínima en una zona. Hay un límite en el número de instancias a las que puedes asignar la política de colocación compacta cuando especificas un valor de distancia máxima. Este límite cambia en función del valor que elijas.

    Para crear una política de colocación compacta, selecciona una de las siguientes opciones:

    gcloud

    Para crear una política de emplazamiento compacta, usa el comando gcloud beta compute resource-policies create group-placement.

    gcloud beta compute resource-policies create group-placement POLICY_NAME \
    --collocation=collocated \
    --max-distance=MAX_DISTANCE \
    --region=REGION
    

    Haz los cambios siguientes:

    • POLICY_NAME: el nombre de la política de posición compacta
    • MAX_DISTANCE: la configuración de distancia máxima de tus instancias de VM. Especifica 3 para colocar las VMs en bloques adyacentes y 2 para colocarlas en el mismo bloque. La colocación de las VMs se realiza en la medida de lo posible.
    • REGION: la región en la que quieras crear la política de emplazamiento. Especifica una región en la que esté disponible el tipo de máquina que quieras usar. Para obtener información sobre las regiones disponibles, consulta Regiones y zonas disponibles.

    REST

    Para crear una política de emplazamiento compacta, haz una solicitud POST al método beta.resourcePolicies.insert. En el cuerpo de la solicitud, incluye el campo collocation con el valor COLLOCATED y el campo maxDistance.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
    {
        "name": "POLICY_NAME",
        "groupPlacementPolicy": {
            "collocation": "COLLOCATED",
            "maxDistance": "MAX_DISTANCE"
        }
    }
    

    Haz los cambios siguientes:

    • PROJECT_ID: tu ID de proyecto
    • REGION: la región en la que quieras crear la política de emplazamiento. Especifica una región en la que esté disponible el tipo de máquina que quieras usar. Para obtener información sobre las regiones disponibles, consulta Regiones y zonas disponibles.
    • POLICY_NAME: el nombre de la política de posición compacta
    • MAX_DISTANCE: la configuración de distancia máxima de tus instancias de VM. Especifica 3 para colocar las VMs en bloques adyacentes y 2 para colocarlas en el mismo bloque. La colocación de las VMs se realiza en la medida de lo posible.

    Crear redes de nube privada virtual

    Las instancias habilitadas para RDMA requieren un mínimo de dos interfaces de red (NICs):

    • Tipo de NIC GVNIC: usa el controlador gve para el tráfico TCP/IP e Internet en la comunicación normal entre máquinas virtuales y entre máquinas virtuales e Internet.
    • Tipo de NIC IRDMA: usa controladores IDPF/iRDMA para la comunicación de red RDMA entre instancias.

    Las instancias que usan Cloud RDMA solo pueden tener una interfaz IRDMA. Puedes añadir hasta ocho interfaces de red GVNIC adicionales, lo que hace un total de 10 NICs por instancia.

    Consulta las siguientes reglas para configurar una interfaz de red de una instancia:

    • Cada interfaz de red debe conectarse a una red Virtual Private Cloud diferente.
    • Para configurar una interfaz de red IRDMA, primero debes crear una red VPC con el perfil de red Falcon RDMA en la misma región y zona que la instancia.
    • En el caso de la interfaz de red GVNIC, si no especificas una red o una subred, Compute Engine usará la red VPC predeterminada y la subred automática que esté en la misma región que la instancia.
    • Si especificas una subred, pero no una red, Compute Engine inferirá la red a partir de la subred especificada.
    • Si especificas una red, también debes especificar una subred que pertenezca a la misma red. De lo contrario, no se podrá crear la instancia.

    Para configurar las redes de nube privada virtual (VPC) de Falcon que se van a usar con tus instancias, puedes seguir las instrucciones documentadas o usar la secuencia de comandos proporcionada.

    Guías de instrucciones

    Para crear las redes, puedes seguir estas instrucciones:

    Secuencia de comandos

    Puedes crear hasta nueve interfaces de red GVNIC y una interfaz de red IRDMA por instancia. Cada interfaz de red debe conectarse a una red independiente. Para crear las redes, puedes usar la siguiente secuencia de comandos, que crea dos redes para GVNIC y una red para IRDMA que usa el perfil de red de VPC Falcon.

    1. Opcional: Antes de ejecutar la secuencia de comandos, enumera los perfiles de red de VPC de Falcon para verificar que haya uno disponible. Los perfiles de red de VPC de Falcon no están disponibles en todas las zonas.

      gcloud beta compute network-profiles list --filter=falcon
      
    2. Copia el siguiente código y ejecútalo en una ventana de shell de Linux.

    #!/bin/bash
    
    # Create standard VPC (networks and subnets) for the two GVNIC interfaces
      for N in $(seq 0 1); do
        gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
            --subnet-mode=custom
    
        gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
            --network=GVNIC_NAME_PREFIX-net-$N \
            --region=<var>REGION</var> \
            --range=10.$N.0.0/16
    
        gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \
            --network=GVNIC_NAME_PREFIX-net-$N \
            --action=ALLOW \
            --rules=tcp:0-65535,udp:0-65535,icmp \
            --source-ranges=10.0.0.0/8
    done
    
    # Create SSH firewall rules
    gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \
      --network=GVNIC_NAME_PREFIX-net-0 \
      --action=ALLOW \
      --rules=tcp:22 \
      --source-ranges=IP_RANGE
    
    # Optional: Create a firewall rule for the external IP address for the
    #  first GVNIC network interface
    gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \
      --network=GVNIC_NAME_PREFIX-net-0 \
      --action=ALLOW \
      --rules=icmp \
      --source-ranges=IP_RANGE
    
    # Create a network for the RDMA over Falcon network interface
    gcloud beta compute networks create RDMA_NAME_PREFIX-irdma \
      --network-profile=ZONE-vpc-falcon \
      --subnet-mode custom
    
    # Create a subnet for the RDMA network
    gcloud beta compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \
        --network=RDMA_NAME_PREFIX-irdma \
        --region=REGION \
        --range=10.2.0.0/16
    # offset to avoid overlap with GVNIC subnet ranges
    

    Haz los cambios siguientes:

    • GVNIC_NAME_PREFIX: el prefijo de nombre que se va a usar en la red VPC y la subred estándar que usa un tipo de NIC gVNIC.
    • REGION: la región en la que quieras crear las redes. Debe corresponderse con la zona especificada en la marca --network-profile al crear la VPC de Falcon. Por ejemplo, si especificas la zona europe-west4-b, tu región será europe-west4.
    • IP_RANGE: el intervalo de direcciones IP fuera de la red de VPC que se va a usar en las reglas de cortafuegos SSH. Como práctica recomendada, especifica los intervalos de direcciones IP concretos desde los que necesitas permitir el acceso, en lugar de todas las fuentes IPv4 o IPv6. No utilices 0.0.0.0/0 ni ::/0 como intervalo de origen, ya que esto permite el tráfico de todos los orígenes IPv4 o IPv6, incluidos los que están fuera deGoogle Cloud.
    • RDMA_NAME_PREFIX: el prefijo de nombre que se usará para la red VPC y la subred que usen el tipo de NIC IRDMA.
    • ZONE: la zona en la que quieres crear las redes y las instancias de computación. Usa us-central1-a o europe-west4-b.

    Crear instancias con RDMA en bloque

    Consulta las siguientes limitaciones antes de crear instancias H4D con RDMA en la nube:

    • No puedes usar la migración en directo durante los eventos de mantenimiento del host con instancias que tengan una interfaz de red Cloud RDMA. Debes configurar la instancia para que se finalice durante los eventos de mantenimiento.
    • Solo puedes usar direcciones IPv4 con interfaces de red RDMA y redes VPC con un perfil de red RDMA de Falcon.
    • Solo puedes usar la serie de máquinas H4D para crear instancias optimizadas para HPC con Cloud RDMA.

    En los siguientes pasos se muestra cómo crear instancias con RDMA habilitado de forma masiva con las dos primeras interfaces de red configuradas como interfaces GVNIC y la tercera interfaz de red configurada como interfaz de red IRDMA:

    gcloud

    Usa el comando gcloud compute instances create con tres marcas --network-interface, dos para las interfaces GVNIC y una para la interfaz IRDMA. Si has elegido usar una política de emplazamiento compacta, añade también la siguiente marca: --resource-policies=POLICY_NAME. Sustituye POLICY_NAME por el nombre de la política de colocación compacta. Puedes personalizar el resto de las opciones de la instancia según sea necesario.

    gcloud compute instances bulk create \
        --name-pattern=NAME_PATTERN \
        --count=COUNT \
        --machine-type=MACHINE_TYPE \
        --image-family=IMAGE_FAMILY \
        --image=project= IMAGE_PROJECT \
        --reservation-affinity=specific \
        --reservation=RESERVATION \
        --provisioning-model=RESERVATION_BOUND \
        --instance-termination=action=DELETE \
        --maintenance-policy=TERMINATE \
        --region=REGION \
        --boot-disk-type=hyperdisk-balanced \
        --boot-disk-size=DISK_SIZE \
        --scopes=cloud-platform \
        --network-interface=nic-type=GVNIC, \
            network=GVNIC_NAME_PREFIX-net-0, \
            subnet=GVNIC_NAME_PREFIX-sub-0, \
            stack-type=STACK_TYPE, \
            address=EXTERNAL_IPV4_ADDRESS \
        --network-interface=nic-type=GVNIC, \
            network=GVNIC_NAME_PREFIX-net-1, \
            subnet=GVNIC_NAME_PREFIX-sub-1, no-address \
        --network-interface=nic-type=IRDMA, \
            network=RDMA_NAME_PREFIX-irdma, \
            subnet=RDMA_NAME_PREFIX-irdma-sub, \
            stack-type=IPV4_ONLY, no-address
    

    Haz los cambios siguientes:

    • NAME_PATTERN: el patrón de nombre de las instancias. Por ejemplo, si usas vm-# como patrón de nombre, se generarán instancias con nombres como vm-1 y vm-2, hasta el número especificado por la marca --count.
    • COUNT: número de instancias que se van a crear.
    • MACHINE_TYPE: el tipo de máquina que se va a usar en las instancias. Usa uno de los tipos de máquinas H4D, como h4d-highmem-192-lssd.
    • IMAGE_FAMILY: la familia de imágenes del SO que quieras usar, por ejemplo, rocky-linux-9-optimized-gcp. Para ver una lista de imágenes de SO compatibles, consulta Sistemas operativos compatibles. Elige una versión de imagen del SO que admita la interfaz IRDMA.
    • IMAGE_PROJECT: el ID del proyecto de la imagen del SO. Por ejemplo, rocky-linux-cloud.
    • RESERVATION: en este valor, puede especificar una de las siguientes opciones:

      • Si usas una política de asignación o si las VMs se pueden colocar en cualquier lugar de tu bloque de reserva, especifica el nombre de la reserva (por ejemplo, h4d-highmem-exfr-prod).
      • Si quieres que las instancias se coloquen en un bloque específico y no usas una política de colocación compacta, especifica un nombre de bloque de reserva con el formato RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME, for example,h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1`.

      Para ver el nombre de la reserva o los bloques de reserva disponibles, consulta Ver capacidad.

    • REGION: especifica una región en la que esté disponible el tipo de máquina que quieras usar. Por ejemplo, europe-west1. Para obtener información sobre las regiones disponibles, consulta Regiones y zonas disponibles.

    • DISK_SIZE: opcional, tamaño del disco de arranque en GiB. El valor debe ser un número entero.

    • GVNIC_NAME_PREFIX: el prefijo de nombre que usaste al crear la red VPC y la subred de la interfaz GVNIC.

      En el caso de la interfaz de red gVNIC, puedes omitir las marcas network y subnet para usar la red default.

    • STACK_TYPE: opcional: el tipo de pila de la interfaz de red gVNIC. STACK_TYPE debe ser uno de los siguientes valores: IPV4_ONLY o IPV4_IPV6. El valor predeterminado es IPV4_ONLY.

    • EXTERNAL_IPV4_ADDRESS: opcional: una dirección IPv4 externa estática que se usará con la interfaz de red. Debes haber reservado una dirección IPv4 externa previamente. Elige una de estas opciones:

      • Especifica una dirección IPv4 válida de la subred.
      • Usa la marca no-address si no quieres que la interfaz de red tenga una dirección IP externa.
      • Especifica address='' si quieres que la interfaz reciba una dirección IP externa efímera.

      Para especificar una dirección IPv6 externa, usa la marca --external-ipv6-address.

    • RDMA_NAME_PREFIX: el prefijo de nombre que has usado al crear la red de VPC y la subred de la interfaz IRDMA.

    REST

    Para crear instancias con RDMA habilitado en bloque, haz una solicitud POST al método beta instances.bulkInsert con los siguientes ajustes:

    • Incluye el objeto networkInterfaces con al menos dos configuraciones de red: una para la interfaz de red gVNIC y otra para la interfaz de red RDMA.
    • Si has elegido usar una política de emplazamiento compacta, añade también el objeto resourcePolicies al cuerpo de la solicitud.
    • Para usar los bloques de capacidad reservados al crear las instancias, defina provisioningModel como RESERVATION_BOUND.
    • Puedes personalizar el resto de las propiedades de la instancia según sea necesario.
    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
    {
      "namePattern":"NAME_PATTERN",
      "count":"COUNT",
      "instanceProperties":{
        "machineType":"MACHINE_TYPE",
        "disks":[
          {
            "boot":true,
            "initializeParams":{
              "diskSizeGb":"DISK_SIZE",
              "diskType":"hyperdisk-balanced",
              "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
            },
            "mode":"READ_WRITE",
            "type":"PERSISTENT"
          }
        ],
        "networkInterfaces": [
          {
              "network": "GVNIC_NAME_PREFIX-net-0",
              "subnetwork": "GVNIC_NAME_PREFIX-sub-0",
              "accessConfigs": [
                {
                    "type": "ONE_TO_ONE_NAT",
                    "name": "External IP",
                    "natIP": "EXTERNAL_IPV4_ADDRESS"
                }
              ],
              "stackType": "IPV4_ONLY",
              "nicType": "GVNIC",
          },
          {
              "network": "GVNIC_NAME_PREFIX-net-1",
              "subnetwork": "GVNIC_NAME_PREFIX-sub-1",
              "stackType": "IPV4_ONLY",
              "nicType": "GVNIC",
          },
          {
              "network": "RDMA_NAME_PREFIX-irdma",
              "subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
              "stackType": "IPV4_ONLY",
              "nicType": "IRDMA",
          }
        ],
        "reservationAffinity":{
            "consumeReservationType":"SPECIFIC_RESERVATION",
            "key":"compute.googleapis.com/reservation-name",
            "values":[
                "RESERVATION"
            ],
            "scheduling":{
                "provisioningModel":"RESERVATION_BOUND",
                "instanceTerminationAction":"DELETE",
                "onHostMaintenance": "TERMINATE",
                "automaticRestart":true
            }
        },
        ...
      }
    }
    

    Este agente debe seguir estos pasos:

    1. Sustituye los siguientes elementos en el cuerpo de la solicitud:

      • PROJECT_ID: el ID del proyecto en el que quieres crear las instancias.
      • ZONE: especifica una zona en la que esté disponible el tipo de máquina que quieras usar. Si usas una política de emplazamiento compacto, utiliza una zona de la misma región que la política de emplazamiento compacto. Para obtener información sobre las regiones en las que están disponibles los tipos de máquinas H4D, consulta Regiones y zonas disponibles.
      • NAME_PATTERN: el patrón de nombre de las instancias. Por ejemplo, si se usa vm-# como patrón de nombre, se generarán instancias con nombres como vm-1 y vm-2, hasta el número especificado en el campo count.
      • COUNT: número de instancias que se van a crear.
      • MACHINE_TYPE: el tipo de máquina que se va a usar en las instancias. Usa uno de los tipos de máquinas H4D, como h4d-highmem-192-lssd.
      • DISK_SIZE: tamaño del disco de arranque en GiB.
      • IMAGE_PROJECT: el ID del proyecto de la imagen del SO, por ejemplo, debian-cloud.
      • IMAGE_FAMILY: la familia de imágenes del SO que quieras usar, por ejemplo, rocky-linux-9-optimized-gcp. Para ver una lista de imágenes de SO compatibles, consulta Sistemas operativos compatibles. Elige una versión de imagen del SO que admita la interfaz IRDMA.
      • GVNIC_NAME_PREFIX: el prefijo de nombre que has usado al crear la red VPC y la subred de la interfaz gVNIC

        En el caso de la interfaz de red gVNIC, puedes omitir los campos network y subnetwork para usar la red default.

      • EXTERNAL_IPV4_ADDRESS: opcional: una dirección IPv4 externa estática que se usará con la interfaz de red. Debes haber reservado una dirección IPv4 externa previamente.

      • RDMA_NAME_PREFIX: el prefijo de nombre que has usado al crear la red de VPC y la subred de la interfaz IRDMA.

      • RESERVATION: en este valor, puede especificar una de las siguientes opciones:

        • Si usas una política de asignación o si las VMs se pueden colocar en cualquier lugar de tu bloque de reserva, especifica el nombre de la reserva (por ejemplo, h4d-highmem-exfr-prod).
        • Si quieres que las instancias se coloquen en un bloque específico y no usas una política de colocación compacta, especifica un nombre de bloque de reserva como RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME, for example,h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1`.

        Para ver el nombre de la reserva o los bloques de reserva disponibles, consulta Ver capacidad.

    2. Opcional: Si usas una política de colocación compacta, sustituye ... en el cuerpo de la solicitud por el siguiente campo:

      "resourcePolicies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
      ],
      

      Haz los cambios siguientes:

      • PROJECT_ID: el ID de proyecto de la política de posición compacta.
      • REGION: la región de la política de posición compacta.
      • POLICY_NAME: el nombre de la política de posición compacta.
    3. Envía la solicitud.

    Limpieza

    Para evitar que los recursos utilizados en este tutorial se cobren en tu cuenta de Google Cloud, elimina el proyecto que contiene los recursos o conserva el proyecto y elimina los recursos.

    Eliminar un proyecto

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

    Eliminar los recursos

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

      Ir a instancias de VM

    2. Seleccione las filas que contengan las instancias de VM que ha creado en este tutorial.

    3. Haz clic en Eliminar y, a continuación, en Eliminar para confirmar la acción.

    4. Para eliminar la política de emplazamiento, usa el comando gcloud compute resource-policies delete.

      gcloud compute resource-policies delete POLICY_NAME \
          --region=REGION
      

      Haz los cambios siguientes:

      • POLICY_NAME: el nombre de la política de emplazamiento
      • REGION: la región en la que se encuentra la política de emplazamiento

    Siguientes pasos