使用 IRDMA RDMA 驱动程序


Cloud RDMA 通过使用 IRDMA RDMA 驱动程序实现低延迟可靠的消息传递功能。此驱动程序支持 Compute Engine 实例之间的远程直接内存访问 (RDMA)。RDMA 通过网络接口在远程机器和本地内存之间传输数据,而无需使用主机 CPU 或中间主机缓冲区。

支持 RDMA 的实例至少需要两个虚拟网络接口 (vNIC):

  • 用于 RDMA 通信的 vNIC,使用 IDPF 网络和 IRDMA RDMA 驱动程序。此vNIC无法连接到互联网。一个实例只能有一个使用 IRDMA 的 vNIC。
  • 用于正常网络流量的 vNIC。此 vNIC 完全连接到Google Cloud 网络,可以连接到互联网。此 vNIC 使用 gVNIC 网络驱动程序。您最多可以添加 8 个额外的 GVNIC 网络接口,使每个实例的总 NIC 数达到 10 个。

H4D 实例支持 IRDMA 网络驱动程序。

配置使用 IRDMA 驱动程序的 vNIC 时,您必须指定使用 Falcon RDMA 网络配置文件创建的 VPC 网络。

准备工作

  • 如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 Google Cloud 服务和 API。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. 安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:

      gcloud init

      如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

    2. Set a default region and zone.

    REST

    如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。

      安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:

      gcloud init

      如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

    如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

操作系统支持

预览版期间,请使用预安装了 Cloud RDMA 驱动程序的 HPC 虚拟机映像

将 IRDMA 与 Compute Engine 实例搭配使用的概览

如需创建使用 Cloud RDMA 的计算实例,您必须至少拥有一个常规 VPC 网络和一个 Falcon VPC 网络。Falcon VPC 网络使用 RDMA 网络配置文件,该配置文件可实现 H4D 实例之间的 RDMA 流量传输。此网络与将非 RDMA 流量传输到其他 Google Cloud服务或互联网的常规 VPC 网络是分开的。

如需创建使用 Cloud RDMA 的计算实例,您需要完成以下任务:

  1. 选择支持 IRDMA 的公共操作系统映像,或创建一个标记为使用 IRDMA 的自定义操作系统映像。
  2. 确定或创建至少两个 VPC 网络:

    • 用于通过 gVNIC 网络接口传输流量的常规 VPC 网络
    • 用于 RDMA 流量的 Falcon VPC 网络
  3. 使用公共操作系统映像或自定义操作系统映像创建计算实例。在创建实例期间,配置至少两个网络接口:一个使用 gVNIC 驱动程序,另一个使用 IRDMA 驱动程序。

  4. 验证 IRDMA 是否已启用。

创建支持 IRDMA 的自定义操作系统映像

您可以使用 Google Cloud CLIREST 创建操作系统映像。如需了解创建自定义操作系统映像的详细信息和最佳实践,请参阅创建自定义操作系统映像

gcloud

  1. 选择支持 IRDMA 的操作系统映像或映像系列。在预览版期间,请使用 HPC 虚拟机映像

  2. 使用上一步中所选操作系统映像或映像系列创建自定义操作系统映像。如需创建自定义操作系统映像,请使用 gcloud compute images create 命令。例如,以下命令会创建支持 IRDMA 且基于特定操作系统映像的自定义操作系统映像。

    gcloud compute images create IMAGE_NAME \
        --source-image=SOURCE_IMAGE \
        --source-image-project=SOURCE_IMAGE_PROJECT \
    

    替换以下内容:

    • IMAGE_NAME:您要创建的映像的名称
    • SOURCE_IMAGE:支持 IRDMA 的特定操作系统映像,例如:hpc-rocky-linux-8-v20250721

      如果您要使用映像系列中的最新操作系统映像,请将 --source-image 标志替换为 --source-image-family 标志,并将其值设置为支持 IRDMA 的映像系列。例如:--source-image-family=hpc-rocky-linux-8

    • SOURCE_IMAGE_PROJECT:包含来源操作系统映像或映像系列的项目的名称

    如需详细了解何时使用映像系列,请参阅映像系列最佳实践

REST

  1. 选择支持 IRDMA 的操作系统映像或映像系列。如需了解详情,请参阅操作系统详细信息

  2. 使用上一步中所选操作系统映像或映像系列,通过 images.insert 方法创建操作系统映像。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images
    {
      "name":"IMAGE_NAME",
      "sourceImage":"SOURCE_IMAGE_URI"
    }
    

    替换以下内容:

    • PROJECT_ID:要在其中创建新映像的项目的 ID
    • IMAGE_NAME:自定义映像的名称
    • SOURCE_IMAGE_URI:您要使用的特定操作系统映像或映像系列的 URI

      例如:

      • 特定操作系统映像:"sourceImage": "projects/rocky-linux-cloud/global/images/hpc-rocky-linux-8-v20250721"
      • 映像系列:"sourceImage": "projects/rocky-linux-cloud/global/images/family/hpc-rocky-linux-8"

      指定映像系列时,Compute Engine 会根据该系列中最新的未弃用操作系统映像创建虚拟机。如需详细了解何时使用映像系列,请参阅映像系列最佳实践

创建支持 IRDMA 的虚拟机

您可以使用其中一个支持的公共操作系统映像或使用您按照创建支持 IRDMA 的自定义操作系统映像中的步骤创建的自定义操作系统映像来创建虚拟机。

如需在实例中使用 RDMA,您必须为该实例配置多个网络接口 (NIC)。一个 NIC 必须使用 GVNIC 驱动程序(指定 nic-type=GVNIC),另一个 NIC 必须使用 IRDMA 驱动程序(指定 nic-type=IRDMA)。

使用公共操作系统映像创建虚拟机

如需使用 HPC 虚拟机映像或支持 IRDMA 的公共操作系统映像创建虚拟机,请按照以下页面中的说明操作:

使用自定义操作系统映像创建虚拟机

如果您没有使用支持 IRDMA 的公共操作系统映像,则必须先创建支持 IRDMA 的自定义操作系统映像。然后,您可使用该自定义操作系统映像,通过 Google Cloud 控制台Google Cloud CLIREST 创建虚拟机。

如需了解如何使用自定义映像创建实例,请参阅通过自定义映像创建实例

验证 IRDMA 是否已启用

部署虚拟机后,运行以下性能带宽测试,确保您运行的是支持 RDMA 的健康虚拟机实例。

ib_send_bw -aF & # start the server
ib_send_bw -aF $(hostname) # start the client (can be done on the same machine)

对于大于 4096 字节的行,报告的单连接带宽 BW average [MB/s] 应至少达到 11,000 MB/s;对于较小的消息大小,该值预计会更小。

后续步骤