Crea de forma masiva instancias optimizadas para HPC que usan RDMA


En este instructivo, se muestra cómo crear una gran cantidad de instancias de máquina virtual (VM) de computación de alto rendimiento (HPC) que son idénticas e independientes entre sí. Las instancias usan tipos de máquinas H4D optimizados para HPC y se ejecutan en bloques de capacidad reservados. En este instructivo, también se muestra cómo configurar las instancias H4D para usar Cloud RDMA.

Este instructivo está dirigido a ingenieros de HPC, administradores y operadores de plataformas, y especialistas en datos y MPI que estén interesados en crear un clúster de instancias de HPC interconectadas. Las instancias resultantes no usan un orquestador para la administració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 posición si no creas las VMs en el mismo bloque o subbloque.
  3. Crear redes de nube privada virtual
  4. Crea instancias habilitadas para RDMA de forma masiva.
  5. Realizar una limpieza

Costos

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

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.

Antes de comenzar

  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 usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI 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 usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI 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. Reserva bloques de capacidad para tu implementación

    En este documento, se explica cómo reservar bloques de capacidad solicitando a tu equipo de cuentas que cree una solicitud de reserva futura para ti. Usa este tipo de reserva para obtener capacidad para la implementación densa de instancias de VM. Para obtener una descripción general de todas las opciones de consumo, consulta lo siguiente:

    Esta acción te permite reservar bloques de capacidad durante un período definido, a partir de una fecha y hora específicas que elijas. Según tu solicitud, Google crea un borrador de solicitud de reserva futura. Después de que revises y envíes esta solicitud de borrador, y Google Cloud la apruebe, Compute Engine creará automáticamente (creará automáticamente) una reserva vacía. Luego, a la hora de inicio que elijas, Compute Engine aprovisiona la capacidad solicitada en la reserva creada de forma automática. Luego, puedes usar la reserva para crear instancias de máquina virtual (VM) hasta que finalice el período de reserva.

    Como parte del proceso de solicitud de reserva futura, Google administra la cuota de los recursos reservados. No necesitas solicitar cuota. A la hora de inicio de tu reserva futura aprobada, Google aumenta tu cuota si no tienes suficiente para los recursos reservados.

    Para reservar bloques de capacidad, completa los siguientes pasos:

    1. Comunícate con tu equipo de cuentas y proporciona la siguiente información para que Google cree un borrador de solicitud de reserva futura:

      • Número de proyecto: Es 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 Cómo encontrar 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 optimizados para HPC H4D

      • Recuento total: Es la cantidad total de VMs que se reservarán. Solo puedes reservar múltiplos de dos VMs. Los tamaños de bloque y la cantidad de VM por bloque varían según el tipo de máquina y la disponibilidad. Tu equipo de cuentas puede proporcionarte más detalles sobre tu solicitud.

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

      • Hora de inicio: Es la hora de inicio del período de reserva. Da formato a la hora de inicio como una marca de tiempo RFC 3339:

        YYYY-MM-DDTHH:MM:SSOFFSET
        

        Reemplaza lo siguiente:

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

        • HH:MM:SS: Una 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 formato como una compensación del horario universal coordinado (UTC). Por ejemplo, para usar la hora estándar del Pacífico (PST), especifica -08:00. Para no usar compensación, especifica Z.

      • Hora de finalización: Es la hora de finalización del período de reserva. Dale formato como una marca de tiempo RFC 3339.

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

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

        1. Si aún no lo hiciste, verifica 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 se compartirá la capacidad reservada. Puedes especificar hasta 100 proyectos en tu organización.

      • Nombre de la reserva: Es el nombre de la reserva que Compute Engine crea automáticamente para entregar la capacidad reservada. Compute Engine solo crea reservas con una orientación específica.

      • Nombre del compromiso: Si tu período de reserva es de un año o más, debes comprar y adjuntar un compromiso basado en recursos a tus 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 reservaste la capacidad. Para obtener más información, consulta Habilita el uso compartido de CUD para los compromisos basados en recursos.

    2. Google crea un borrador de solicitud de reserva futura y tu equipo de cuentas se comunica contigo.

    3. Revisa la solicitud de borrador. Ten en cuenta lo siguiente cuando revises la solicitud de reserva:

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

        • Borra la reserva creada automáticamente.
        • Detiene o borra las VMs que usan la reserva. La acción que se realiza se basa en la acción de finalización que especificas cuando creas las VMs.
      • No puedes cambiar si la capacidad reservada se comparte después de enviar la solicitud de reserva.

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

      Console

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

        Ir a Reservas

      2. Haz clic en la pestaña Reservas futuras. En la tabla Reservas futuras, se enumeran todas las solicitudes 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 creó Google para ti. Se abrirá una página con los detalles de la solicitud de reserva futura.

      4. En la sección Información básica, verifica que los detalles de la solicitud, como las Fechas y el Tipo de uso compartido, sean correctos. Además, si solicitaste un compromiso, verifica que se haya especificado.

      5. Si alguno de estos detalles es incorrecto, comunícate con tu equipo de cuentas.

      gcloud

      1. Para ver una lista de las solicitudes de reserva futuras en tu proyecto, usa el comando gcloud beta compute future-reservations list con la marca --filter establecida 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 proporcionaste a tu equipo de cuentas.

      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
        

        Reemplaza lo siguiente:

        • FUTURE_RESERVATION_NAME: Es el nombre del borrador de la solicitud de reserva futura.
        • ZONE: Es la zona en la que Google creó la solicitud.

        El resultado es similar a este:

        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, verifica que los detalles de la solicitud, como el período de reserva y el tipo de uso compartido, sean correctos. Además, si compraste un compromiso, verifica que esté especificado.

      5. Si los detalles son incorrectos, comunícate con tu equipo de cuentas.

      REST

      1. Para ver una lista de las solicitudes de reserva futuras en tu proyecto, realiza una solicitud GET al método futureReservations.list en versión beta. En la URL de la solicitud, incluye el parámetro de búsqueda filter y configúralo como status.procurementStatus=DRAFTING:

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

        Reemplaza lo siguiente:

        • PROJECT_ID: Es el ID del proyecto en el que Google creó el borrador de la solicitud de reserva futura.
        • ZONE: Es 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 le proporcionaste a tu equipo de cuentas.

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

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

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

        El resultado es similar a este:

        {
          "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, verifica que los detalles de la solicitud, como el período de reserva y el tipo de uso compartido, sean correctos. Además, si solicitaste un compromiso, verifica que se haya especificado.

      5. Si los detalles son incorrectos, comunícate con tu equipo de cuentas.

    4. Si todo se ve bien, envía la solicitud de reserva. Debes enviar la solicitud antes de la hora de inicio.

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

      Console

      1. En la consola de Google Cloud , 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 creó Google para ti.

      4. Haz clic en Enviar.

      gcloud

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

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

      REST

      Para enviar el borrador de la solicitud para su revisión, realiza una solicitud PATCH al método beta futureReservations.update. En la URL de la solicitud, incluye el parámetro de búsqueda updateMask y configúralo como 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 de inmediato la solicitud que enviaste.

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

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

    Opcional: Crea una política de posición

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

    Las instancias que se comunican con Cloud RDMA deben estar ubicadas en una sola zona y, de manera más estricta, dentro de un solo tejido de clúster. Puedes crear una política de posición compacta y especificar un valor de distancia máxima para establecer la compacidad mínima dentro de una zona. Existe un límite para la cantidad de instancias a las que puedes asignar la política de posición compacta cuando especificas un valor de distancia máxima, y el límite cambia según el valor que elijas.

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

    gcloud

    Para crear una política de posición 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
    

    Reemplaza lo siguiente:

    • POLICY_NAME: El nombre de la política de posición compacta
    • MAX_DISTANCE: Es la configuración de distancia máxima para 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 la VM se realiza de la mejor manera posible.
    • REGION: la región en la que deseas crear la política de posición. Especifica una región en la que esté disponible el tipo de máquina que deseas usar. Para obtener información sobre las regiones disponibles, consulta Regiones y zonas disponibles.

    REST

    Para crear una política de posición compacta, realiza una solicitud POST al método beta.resourcePolicies.insert. En el cuerpo de la solicitud, incluye el campo collocation configurado como 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"
        }
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID de tu proyecto
    • REGION: la región en la que deseas crear la política de posición. Especifica una región en la que esté disponible el tipo de máquina que deseas 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: Es la configuración de distancia máxima para 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 la VM se realiza de la mejor manera posible.

    Crea redes de nube privada virtual

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

    • Tipo de NIC GVNIC: Usa el controlador gve para el tráfico de TCP/IP y de Internet para la comunicación normal entre VM y entre VM 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 agregar hasta ocho interfaces de red GVNIC adicionales para un total de 10 NIC por instancia.

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

    • Cada interfaz de red debe conectarse a una red de nube privada virtual diferente.
    • Para configurar una interfaz de red de IRDMA, primero debes crear una red de VPC con el perfil de red de RDMA de Falcon 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 subred, Compute Engine usa la red de VPC predeterminada y la subred automática que se encuentra en la misma región que la instancia.
    • Si especificas una subred, pero no una red, Compute Engine infiere la red a partir de la subred especificada.
    • Si especificas una red, debes especificar una subred y esta debe pertenecer a la misma red. De lo contrario, la creación de la instancia fallará.

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

    Guías de instrucciones

    Para crear las redes, puedes usar las siguientes 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 de Falcon.

    1. Opcional: Antes de ejecutar la secuencia de comandos, enumera los perfiles de red de la 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
    

    Reemplaza lo siguiente:

    • GVNIC_NAME_PREFIX: Es el prefijo del nombre que se usará para la subred y la red de VPC estándar que usa un tipo de NIC de GVNIC.
    • REGION: la región en la que deseas crear la política. Debe corresponder a la zona especificada para la marca --network-profile cuando se crea la VPC de Falcon. Por ejemplo, si especificas la zona como europe-west4-b, tu región será europe-west4.
    • IP_RANGE: Es el rango de direcciones IP fuera de la red de VPC que se usará para las reglas de firewall de SSH. Como práctica recomendada, especifica los rangos de direcciones IP específicos desde los que necesitas permitir el acceso, en lugar de todas las fuentes IPv4 o IPv6. No uses 0.0.0.0/0 ni ::/0 como rango de origen, ya que esto permite el tráfico desde todas las fuentes IPv4 o IPv6, incluidas las fuentes fuera deGoogle Cloud.
    • RDMA_NAME_PREFIX: Es el prefijo del nombre que se usará para la red de VPC y la subred que usa el tipo de NIC de IRDMA.
    • ZONE: Es la zona en la que deseas crear las redes y las instancias de procesamiento. Usa us-central1-a o europe-west4-b.

    Crea instancias habilitadas para RDMA de forma masiva

    Revisa las siguientes limitaciones antes de crear instancias de H4D con RDMA de Cloud:

    • No puedes usar la migración en vivo durante los eventos de mantenimiento del host con instancias que tengan una interfaz de red de Cloud RDMA. Debes configurar la instancia para que finalice durante los eventos de mantenimiento.
    • Solo puedes usar direcciones IPv4 con interfaces de red RDMA y redes de 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 RDMA de Cloud.

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

    gcloud

    Usa el comando gcloud compute instances create con tres marcas --network-interface, dos para las interfaces de gVNIC y una para la interfaz de IRDMA. Si elegiste usar una política de posición compacta, agrega también la siguiente marca: --resource-policies=POLICY_NAME. Reemplaza POLICY_NAME por el nombre de la política de posició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
    

    Reemplaza lo siguiente:

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

      • Si usas una política de posició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 posición de compactación, 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 Visualiza la capacidad.

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

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

    • GVNIC_NAME_PREFIX: Es el prefijo de nombre que usaste cuando creaste la red de VPC y la subred para la interfaz de GVNIC.

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

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

    • EXTERNAL_IPV4_ADDRESS: Opcional: Es una dirección IPv4 externa estática para usar con la interfaz de red. Debes haber reservado una dirección IPv4 externa con anterioridad. Realiza una de las siguientes acciones:

      • Especifica una dirección IPv4 válida de la subred.
      • Usa la marca no-address si no deseas que la interfaz de red tenga una dirección IP externa.
      • Especifica address='' si deseas 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: Es el prefijo de nombre que usaste cuando creaste la red de VPC y la subred para la interfaz de IRDMA.

    REST

    Para crear instancias habilitadas para RDMA de forma masiva, realiza una solicitud POST al método beta instances.bulkInsert con la siguiente configuración:

    • 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 elegiste usar una política de posición de compactación, agrega también el objeto resourcePolicies al cuerpo de la solicitud.
    • Para usar los bloques de capacidad reservados cuando crees las instancias, establece provisioningModel en 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
            }
        },
        ...
      }
    }
    

    Completa los siguientes pasos:

    1. Reemplaza lo siguiente en el cuerpo de la solicitud:

      • PROJECT_ID: ID del proyecto en el que deseas crear las instancias.
      • ZONE: Especifica una zona en la que esté disponible el tipo de máquina que deseas usar. Si usas una política de posición de compactación, usa una zona en la misma región que la política de posición de compactación. 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: Es el patrón del nombre de las instancias. Por ejemplo, si usas vm-# para el patrón de nombre, se generan instancias con nombres como vm-1 y vm-2, hasta la cantidad especificada por el campo count.
      • COUNT: Es la cantidad de instancias que se crearán.
      • MACHINE_TYPE: Es el tipo de máquina que se usará para las instancias. Usa uno de los tipos de máquinas H4D, por ejemplo, h4d-highmem-192-lssd.
      • DISK_SIZE: Es el tamaño del disco de arranque en GiB.
      • IMAGE_PROJECT: Es el ID del proyecto de la imagen de SO, por ejemplo, debian-cloud.
      • IMAGE_FAMILY: Es la familia de imágenes de la imagen de SO que deseas usar, por ejemplo, rocky-linux-9-optimized-gcp. Para obtener una lista de las imágenes del SO compatibles, consulta Sistemas operativos compatibles. Elige una versión de imagen de SO que admita la interfaz IRDMA.
      • GVNIC_NAME_PREFIX: Es el prefijo de nombre que usaste cuando creaste la red de VPC y la subred para la interfaz de 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: Es una dirección IPv4 externa estática para usar con la interfaz de red. Debes haber reservado una dirección IPv4 externa con anterioridad.

      • RDMA_NAME_PREFIX: Es el prefijo de nombre que usaste cuando creaste la red de VPC y la subred para la interfaz de IRDMA.

      • RESERVATION: Para este valor, puedes especificar una de las siguientes opciones:

        • Si usas una política de posició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 deseas que las instancias se coloquen en un bloque específico y no usas una política de posició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 Visualiza la capacidad.

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

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

      Reemplaza lo siguiente:

      • PROJECT_ID: Es el ID del proyecto de la política de posición compacta.
      • REGION: Es 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.

    Limpia

    Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.

    Borra tu proyecto

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

    Borra recursos

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

      Ir a Instancias de VM

    2. Selecciona las filas que contienen las instancias de VM que creaste en este instructivo.

    3. Haz clic en Borrar y, luego, en Borrar para confirmar.

    4. Para borrar la política de posición, usa el comando gcloud compute resource-policies delete.

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

      Reemplaza lo siguiente:

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

    ¿Qué sigue?