En esta página se explica cómo crear instancias de HPC con interfaces de red habilitadas para RDMA. Para obtener instrucciones sobre cómo crear instancias optimizadas para aceleradores A4 o A3 Ultra que usen RDMA, consulta Crear una instancia optimizada para IA con A4 o A3 Ultra.
Para crear una instancia de cálculo que utilice el acceso directo a memoria remoto (RDMA), debe configurar al menos dos interfaces de red (NICs) al crear la instancia. Una NIC debe ser una NIC IRDMA que se conecte a una red de VPC con un perfil de red RDMA, y la otra NIC debe usar GVNIC.
Consulta la tabla Comparación de series de máquinas para determinar qué series de máquinas admiten interfaces de red RDMA.
Antes de empezar
-
Si aún no lo has hecho, configura la autenticación.
La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos 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
-
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
- Set a default region and zone.
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .
Roles obligatorios
Para obtener los permisos que necesitas para crear una instancia que admita la comunicación RDMA, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de instancias de Compute (v. 1) (
roles/compute.instanceAdmin.v1
) en el proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.Este rol predefinido contiene los permisos necesarios para crear una instancia que admita la comunicación RDMA. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para crear una instancia que admita la comunicación RDMA, se necesitan los siguientes permisos:
-
compute.instances.create
del proyecto -
Para usar una imagen personalizada para crear la VM, sigue estos pasos:
compute.images.useReadOnly
en la imagen -
Para usar una captura para crear la VM, sigue estos pasos:
compute.snapshots.useReadOnly
en la captura -
Para usar una plantilla de instancia para crear la VM, haz lo siguiente:
compute.instanceTemplates.useReadOnly
en la plantilla de instancia -
Para especificar una subred para tu VM, haz lo siguiente:
compute.subnetworks.use
en el proyecto o en la subred elegida -
Para especificar una dirección IP estática para la máquina virtual, haz lo siguiente:
compute.addresses.use
en el proyecto -
Para asignar una dirección IP externa a la VM cuando se usa una red de VPC, sigue estos pasos:
compute.subnetworks.useExternalIp
en el proyecto o en la subred elegida -
Para definir los metadatos de la instancia de VM:
compute.instances.setMetadata
en el proyecto -
Para definir etiquetas en la VM, haz lo siguiente:
compute.instances.setTags
en la VM -
Para definir etiquetas en la VM, sigue estos pasos:
compute.instances.setLabels
en la VM -
Para definir una cuenta de servicio que pueda usar la VM, sigue estos pasos:
compute.instances.setServiceAccount
en la VM -
Para crear un disco para la VM, sigue estos pasos:
compute.disks.create
en el proyecto -
Para adjuntar un disco en modo de solo lectura o de lectura y escritura, sigue estos pasos:
compute.disks.use
en el disco -
Para adjuntar un disco en modo de solo lectura, sigue estos pasos:
compute.disks.useReadOnly
en el disco
También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.
Requisitos
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 de VPC con el perfil de red Falcon RDMA en la misma región y zona que la instancia.
- Si no especificas una red o una subred, Compute Engine usará la red VPC predeterminada y la subred automática que se encuentre 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.
Limitaciones
- La red de nivel 1 para la comunicación con IP interna solo es compatible con las VMs que ejecutan el controlador de red virtual gVNIC.
- No puedes usar la migración en directo con VMs que usen RDMA. Debes configurar la instancia para que se finalice durante los eventos de mantenimiento.
- No puedes usar RDMA con grupos de instancias gestionados (MIGs) (gestionados o no gestionados).
- Solo puedes usar tipos de pila de red
IPv4_ONLY
con una instancia compatible con RDMA. - Solo puedes usar la serie de máquinas H4D para crear una instancia que use Cloud RDMA.
Crear una instancia con Cloud RDMA
Las instancias con RDMA de Cloud requieren un mínimo de dos interfaces de red (NICs):
- Tipo de NIC
GVNIC
: usa el controladorgve
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 basada en RDMA entre instancias.
Una instancia solo puede tener una interfaz
IRDMA
. Cada instancia puede tener de una a diez interfaces de red.Para crear una instancia que use IRDMA, sigue los pasos que se indican en las siguientes secciones:
Crea una política de emplazamiento si no hay ninguna adecuada.
Crea una red de VPC o usa una que ya tengas y que esté habilitada para RDMA.
Crea una instancia con RDMA que tenga una interfaz de red
IRDMA
, al menos una interfaz de redGVNIC
y una política de colocación compacta.
Crear una política de colocación para instancias RDMA
Las instancias que se comunican mediante 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 que puedas usar con tus instancias de RDMA, sigue los pasos que se indican en Crear una política de colocación compacta y especifica un valor de distancia máxima de 3 o inferior.
Crear redes de nube privada virtual
Para configurar las redes, puedes seguir las instrucciones documentadas o usar la secuencia de comandos proporcionada.
Guías de instrucciones
Para crear las redes, puedes seguir estas instrucciones:
Para crear las redes de host de las
GVNIC
interfaces de red, consulta Crear y gestionar redes de VPC.Si solo vas a configurar una interfaz de red
GVNIC
, puedes usar la red VPC predeterminada y la subred automática que se encuentre en la misma región que la instancia.Para crear una red para la interfaz de red
IRDMA
, consulta Crear una red de VPC con un perfil de red RDMA. Define la unidad máxima de transmisión (MTU) en8896
para la red RDMA.
Secuencia de comandos
Para crear las redes, puedes usar la siguiente secuencia de comandos.
Opcional: Antes de ejecutar la secuencia de comandos, enumera los perfiles de red RDMA para verificar que están disponibles.
gcloud beta compute network-profiles list
Copia el siguiente código y ejecútalo en una ventana de shell de Linux.
#!/bin/bash # Create standard VPC (network and subnet) for the GVNIC interface gcloud beta compute networks create GVNIC_NAME_PREFIX-net-0 \ --subnet-mode=custom gcloud beta compute networks subnets create GVNIC_NAME_PREFIX-sub-0 \ --network=GVNIC_NAME_PREFIX-net-0 \ --region=REGION \ --range=10.0.0.0/16 gcloud beta compute firewall-rules create GVNIC_NAME_PREFIX-internal-0 \ --network=GVNIC_NAME_PREFIX-net-0 \ --action=ALLOW \ --rules=tcp:0-65535,udp:0-65535,icmp \ --source-ranges=10.0.0.0/8 # Create SSH firewall rules gcloud beta 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 an external IP for only the GVNIC interface gcloud beta 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 network for RDMA over Falcon transport gcloud beta compute networks create RDMA_NAME_PREFIX-irdma \ --network-profile=ZONE-vpc-falcon \ --subnet-mode custom # Create subnet for RDMA gcloud beta compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \ --network=RDMA_NAME_PREFIX-irdma \ --region=REGION \ --range=10.1.0.0/16 # offset to avoid overlap with GVNIC network
Haz los cambios siguientes:
GVNIC_NAME_PREFIX
: prefijo de nombre que se va a usar en la red de nube privada virtual y la subred estándar que usan un tipo de NIC GVNIC.RDMA_NAME_PREFIX
: el prefijo de nombre que se usará para la red de Virtual Private Cloud y la subred que usa el tipo de NIC IRDMA.ZONE
: la zona en la que quieres crear las redes y las instancias de computación. Usaus-central1-a
oeurope-west4-b
.REGION
: la región en la que quieres crear las redes. Debe corresponderse con la zona especificada. Por ejemplo, si tu zona eseurope-west4-b
, tu región eseurope-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 utilices0.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.
Crear una instancia con RDMA habilitado
En los pasos siguientes se muestra cómo crear una instancia con la primera interfaz de red configurada como interfaz gVNIC y la segunda interfaz de red configurada como interfaz de red IRDMA:
Consola
En la Google Cloud consola, ve a la página Crear una instancia.
Si se te solicita, selecciona tu proyecto y haz clic en Continuar.
Aparecerá la página Crear una instancia y se mostrará el panel Configuración de la máquina.
En el panel Configuración de la máquina, haz lo siguiente:
- En el campo Nombre, especifica un nombre para la instancia. Para obtener más información, consulta el artículo Convenciones para asignar nombres de recursos.
Opcional: En el campo Zona, selecciona una zona para esta instancia.
Elige la zona que has usado para configurar el perfil de red RDMA.
Elige la familia de máquinas Optimizadas para la computación.
En la columna Serie, seleccione la serie de máquinas H4D.
En la sección Tipo de máquina, selecciona el tipo de máquina de tu instancia.
En el menú de navegación de la izquierda, haz clic en Sistema operativo y almacenamiento. En el panel Sistema operativo y almacenamiento que aparece, haz lo siguiente:
- En la parte inferior de la sección Sistema operativo y almacenamiento, haz clic en Cambiar.
- En las listas Sistema operativo y Versión, selecciona un tipo y una versión de SO que ofrezcan compatibilidad con RDMA.
- Asegúrate de que el tipo de disco de arranque sea Hyperdisk Balanced.
- Haz clic en Seleccionar en la parte inferior del panel para guardar los cambios.
En el menú de navegación de la izquierda, haz clic en Redes. En el panel Redes que aparece, haz lo siguiente:
- Ve a la sección Interfaces de red. Ya debería haber una interfaz de red con la etiqueta
default
. - Haz clic en Añadir una interfaz de red. En la sección Nueva interfaz de red que aparece, haz lo siguiente:
- En la lista Tarjeta de interfaz de red, selecciona
IRDMA
. - En el campo Red, selecciona la red de VPC con un perfil de red RDMA.
- Opcional: En la lista Subred, selecciona la subred que quieras que use la instancia.
- En el campo Tipo de pila de IP, comprueba que esté configurado como Solo IPv4.
- En la lista Dirección IPv4 externa, selecciona Ninguna.
- Para confirmar los detalles de la interfaz de red, haz clic en Hecho.
- En la lista Tarjeta de interfaz de red, selecciona
- Ve a la sección Interfaces de red. Ya debería haber una interfaz de red con la etiqueta
Opcional: Especifica otras opciones de configuración para la instancia. Para obtener más información, consulta Opciones de configuración durante la creación de instancias.
Para crear e iniciar la instancia, haz clic en Crear.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Usa el comando
gcloud compute instances create
con al menos dos marcas--network-interface
, una para la interfaz GVNIC y otra para la interfaz IRDMA. Puedes personalizar el resto de las opciones de comandos según sea necesario.gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --create-disk=boot=yes, \ image=projects/IMAGE_PROJECT/global/images/IMAGE, \ size=SIZE \ --maintenance-policy=TERMINATE \ --network-interface \ nic-type=GVNIC, \ network=NETWORK_NAME,subnet=SUBNET_NAME, \ stack-type=STACK_TYPE, \ private-network-ip=INTERNAL_IPV4_ADDRESS, \ address=EXTERNAL_IPV4_ADDRESS \ --network-interface \ nic-type=IRDMA, \ network=RDMA_NETWORK_NAME,subnet=RDMA_SUBNET_NAME, \ stack-type=IPV4_ONLY, \ no-address \
Haz los cambios siguientes:
INSTANCE_NAME
: el nombre de la instancia de computaciónZONE
: la zona en la que se crea la instancia, comoeurope-west1-b
. La región de la instancia se deduce de la zona.MACHINE_TYPE
: opcional, el tipo de máquina que se va a usar en la instancia.IMAGE_PROJECT
: opcional: el proyecto de imagen que contiene la imagen. Durante el periodo de vista previa, usa una imagen personalizada o la imagen de máquina virtual de HPC.IMAGE
: Opcional: especifica una de las siguientes opciones:- Una versión específica de la imagen del SO, por ejemplo,
hpc-rocky-linux-8-v20250721
. - Una familia de imágenes,
que debe tener el formato
family/IMAGE_FAMILY
. De este modo, se crea la instancia a partir de la imagen de SO más reciente que no esté obsoleta. Por ejemplo, si especificasfamily/hpc-rocky-linux-8
, Compute Engine creará una instancia con la versión más reciente de la imagen del SO de la familia de imágenes de HPC Rocky Linux 8. Para obtener más información sobre cómo usar familias de imágenes, consulta las prácticas recomendadas para familias de imágenes.
- Una versión específica de la imagen del SO, por ejemplo,
SIZE
: opcional, tamaño del nuevo disco. El valor debe ser un número entero. La unidad de medida predeterminada es GiB.NETWORK_NAME
: nombre de la red (opcional).SUBNET_NAME
: nombre de la subred que se va a usar para la interfaz de red. Para ver una lista de subredes de la red, usa el comandogcloud compute networks subnets list
.En el caso de la interfaz de red gVNIC, puedes omitir las marcas
network
ysubnet
, y usar la reddefault
.STACK_TYPE
: opcional: el tipo de pila de la interfaz de red gVNIC.STACK_TYPE
debe ser uno de los siguientes valores:IPV4_ONLY
,IPV4_IPV6
oIPV6_ONLY
. El valor predeterminado esIPV4_ONLY
.INTERNAL_IPV4_ADDRESS
: opcional: la dirección IPv4 interna que quieres que use la instancia de proceso en la subred de destino. Omite esta marca si no necesitas una dirección IP específica.Para especificar una dirección IPv6 interna, usa la marca
--internal-ipv6-address
.EXTERNAL_IPV4_ADDRESS
: opcional: la dirección IPv4 externa estática que se va a 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_NETWORK_NAME
: nombre de la red que has creado con un perfil de red RDMA.RDMA_SUBNET_NAME
: nombre de una subred de la red RDMA.
REST
Para crear una instancia configurada para usar RDMA, haz una solicitud
POST
al métodoinstances.insert
. Incluye el objetonetworkInterfaces
con al menos dos configuraciones de red: una para la interfaz gVNIC y otra para la interfaz IRDMA. Puedes personalizar el resto de las propiedades de la instancia según sea necesario.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: ID del proyecto en el que se va a crear la instancia.ZONE
: zona en la que se creará la instanciaMACHINE_TYPE
: el tipo de máquina que se va a usar. Por ejemplo,h4d-highmem-192-lssd
.INSTANCE_NAME
: nombre de la nueva instanciaIMAGE_PROJECT
: Opcional: el proyecto de imagen que contiene la imagen.IMAGE
: Opcional: especifica una de las siguientes opciones:- Una versión específica de la imagen del SO. Por ejemplo:
debian-12-bookworm-v20250415
- Una familia de imágenes, que debe tener el formato
family/IMAGE_FAMILY
. De esta forma, se crea la instancia a partir de la imagen de SO más reciente que no esté obsoleta. Por ejemplo, si especificasfamily/debian-12
, Compute Engine crea una instancia con la versión más reciente de la imagen del SO de la familia de imágenes de Debian 12. Para obtener más información sobre cómo usar familias de imágenes, consulta las prácticas recomendadas para familias de imágenes.
- Una versión específica de la imagen del SO. Por ejemplo:
NETWORK_NAME
: opcional: nombre de la red que se va a usar con la interfaz de red gVNICSUBNET_NAME
: nombre de la subred que se va a usar con la interfaz de red gVNICEn el caso de la interfaz de red de GVNIC, puedes omitir las propiedades
network
ysubnet
, y usar la reddefault
.INTERNAL_IPV4_ADDRESS
: Opcional: la dirección IPv4 interna que quieres que use la instancia de proceso en la subred de destino. Omite esta marca si no necesitas una dirección IP específica.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_NETWORK_NAME
: el nombre de la red que has creado con un perfil de red RDMARDMA_SUBNET_NAME
: el nombre de una subred de la red RDMA.
Método HTTP y URL:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
Cuerpo JSON de la solicitud:
{ "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "name": "INSTANCE_NAME", "disks": [ { "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot": true } ], "networkInterfaces": [ { "network": "NETWORK_NAME", "subnetwork": "SUBNET_NAME", "networkIP": "INTERNAL_IPV4_ADDRESS", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "External IP", "natIP": "EXTERNAL_IPV4_ADDRESS" } ], "stackType": "IPV4_ONLY", "nicType": "GVNIC", }, { "network": "RDMA_NETWORK_NAME", "subnetwork": "RDMA_SUBNET_NAME", "stackType": "IPV4_ONLY", "nicType": "IRDMA", } ] }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "compute#operation", "id": "9216044482154695709", "name": "operation-1739207409646-62dccc7d7bc58-d1350b42-64fdb7f7", "zone": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`", "operationType": "insert", "targetLink": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`/instances/`INSTANCE_NAME`", "targetId": "2679381553616227357", "status": "RUNNING", "user": "USER_ID", "progress": 0, "insertTime": "2025-02-10T09:10:10.551-08:00", "startTime": "2025-02-10T09:10:10.551-08:00", "selfLink": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`/operations/operation-1565289606387-58f9f62f5989c-e582f586-6d22f38" "kind": "compute#operation" }
Siguientes pasos
- Consulta cómo comprobar el estado de una instancia para saber cuándo está lista para usarse.
- Consulta cómo conectarte a tu instancia.
- Consulta las direcciones IP que se asignan al crear una instancia.
- Consulta cómo crear una instancia de doble pila o solo IPv6.
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-19 (UTC).
-