机器系列(例如 C3 和 X4)提供的 Bare Metal 实例使用基础设施数据平面函数 (IDPF),这是一种标准化的多供应商 PCIe 网络数据平面函数设备。IDPF 是一种实体设备。IDPF 驱动程序包含在 Linux 操作系统 (OS) 映像的内核中。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
Select the tab for how you plan to use the samples on this page:
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- 每个虚拟机的 Tier_1 网络性能
- 支持大型 MTU(巨型帧)
- VPC 网络功能:
- Cloud 新一代防火墙
- 数据包镜像
- VPC 流日志
- IPv6 支持
- VPC 网络对等互连
- Network Connectivity Center
- 实例只支持一个网卡。不能创建具有多个网卡的计算实例。
- IDPF 只支持默认队列分配,每个 NIC 有 16 个接收和发送队列 (RX/TX)。
- 如果您将 DPDK 用于裸金属实例,则 DPDK 会替换 IDPF 作为物理 NIC 的驱动程序。DPDK 应用必须将数据包转发到内核,例如通过 TAP 接口转发。
- 选择一个支持 IDPF 的公共操作系统映像,或创建一个标记为使用 IDPF 的自定义操作系统映像。
- 使用公共或自定义操作系统映像创建裸金属实例。在创建实例期间,将网络接口配置为使用 IDPF。
- 验证 IDPF 是否已启用。
IMAGE_NAME
:自定义映像的名称。SOURCE_IMAGE
:支持 IDPF 的特定操作系统映像,例如sles-15-sp4-sap-v20240208-x86-64
。如果您要使用映像系列中的最新操作系统映像,请将
--source-image
标志替换为--source-image-family
标志,并将其值设置为支持 IDPF 的映像系列,例如--source-image-family=sles-15-sp4-sap
。SOURCE_IMAGE_PROJECT
:包含来源操作系统映像或映像系列的项目的名称。示例
如需使用 Compute Engine
sles-15-sp5-sap
映像系列中的最新操作系统映像创建 SUSE Linux Enterprise Server (SLES) 操作系统映像,请运行以下命令:gcloud compute images create my-sles15sp5-metal-os \ --source-image-family=sles-15-sp5-sap \ --source-image-project=suse-sap-cloud \ --guest-os-features=IDPF
如需详细了解何时使用映像系列,请参阅映像系列最佳实践。
选择支持 IDPF 的操作系统映像或映像系列。如需了解详情,请参阅操作系统详细信息。
使用上一步中所选操作系统映像或映像系列创建操作系统映像并使用
IDPF
标记此操作系统映像。如需创建操作系统映像,请使用images.insert
方法。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "name":"IMAGE_NAME", "sourceImage":"SOURCE_IMAGE_URI", "guestOsFeatures":[ { "type":"IDPF" } ] }
请替换以下内容:
IMAGE_NAME
:您要创建的自定义映像的名称。SOURCE_IMAGE_URI
:您要使用的特定操作系统映像或映像系列的 URI。例如:
- 特定操作系统映像:
"sourceImage": "projects/suse-sap-cloud/global/images/sles-15-sp5-sap-v20240427-x86-64"
- 映像系列:
"sourceImage": "projects/suse-sap-cloud/global/images/family/sles-15-sp5-sap"
指定映像系列时,Compute Engine 会根据该系列中最新的未弃用操作系统映像创建虚拟机。如需详细了解何时使用映像系列,请参阅映像系列最佳实践。
- 特定操作系统映像:
使用
gcloud compute instances create
命令创建裸金属实例。对于启动磁盘映像,请指定您之前创建的自定义操作系统映像。对于网络接口,请将nic-type
标志的值设置为IDPF
。gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --image=IMAGE_NAME \ --image-project=YOUR_IMAGE_PROJECT \ --network-interface=nic-type=IDPF
请替换以下内容:
INSTANCE_NAME
:新实例的名称。ZONE
:要在其中创建实例的可用区。IMAGE_NAME
:之前创建的自定义操作系统映像。YOUR_IMAGE_PROJECT
:包含自定义操作系统映像的项目的名称。
可选:验证 Compute Engine 是否已创建实例并且
nicType
设置为IDPF
。gcloud compute instances describe INSTANCE_NAME \ --zone=ZONE
请替换以下内容:
INSTANCE_NAME
:实例的名称。ZONE
:您在其中创建实例的可用区。
示例
如需使用项目
my-project-12345
中名为my-sles15sp5-metal-os
的自定义 SLES 15 SP5 for SAP 操作系统映像在可用区eu-west4-b
中创建裸金属实例,请运行以下命令:gcloud compute instances create test-x4-metal-custom-os \ --zone=eu-west4-b \ --machine-type=x4-megamem-1440-metal \ --image=my-sles15sp5-metal-os \ --image-project=my-project-12345 \ --network-interface=nic-type=IDPF
需要考虑的事项
--network-interface
标志具有如下所示的子级标志:--address
:为实例分配 IP 地址--network
:接口将属于的网络--network-tier
:接口的网络层级--subnet
:接口将属于的子网。如果还指定了--network
,则子网必须是指定网络的一部分。--private-network-ip
:指定要分配给实例的 RFC 1918 IP。
如需查看完整列表,请参阅
--network-interface
标志。- 对于启动磁盘映像,请指定您之前创建的自定义操作系统映像。
- 对于网络接口,请将
nicType
字段的值设置为IDPF
。 PROJECT_ID
:要在其中创建实例的项目的 ID。ZONE
:要在其中创建实例的可用区。INSTANCE_NAME
:新实例的名称。NETWORK
:此实例的网络资源网址。如果网络或子网都未指定,则使用默认网络global/networks/default
。SUBNET_NAME
:子网的名称。网络是根据指定的子网推断出来的。这是一个可选字段。YOUR_IMAGE_PROJECT
:包含操作系统映像的项目的名称。IMAGE_NAME
:上一步中创建的自定义操作系统映像的名称。- 详细了解 IDPF。
- 了解如何连接到您的实例。
- 了解巨型帧。
- 了解如何更改 VPC 网络的 MTU 设置。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
IDPF 支持的功能
与 gVNIC 类似,IDPF 支持以下功能:
IDPF 网络接口的限制
使用 IDPF 网络接口时,请注意以下限制:
概览:将 IDPF 用于裸金属实例
如需创建使用 IDPF 的裸金属实例,请完成以下步骤:
操作系统支持
在 Compute Engine 上,IDPF 适用于数量有限的受支持公共操作系统映像。
如需了解 IDPF 支持哪些操作系统,请参阅操作系统的接口标签页。
在不支持的操作系统上使用
对于不支持 IDPF 的操作系统映像,请与操作系统发行方联系,以了解如何添加 IDPF 驱动程序。
获取包含 IDPF 的操作系统映像后,导入包含自定义操作系统的可启动虚拟磁盘。然后,您可以使用自定义操作系统映像创建在该操作系统上使用 IDPF 的裸金属实例。如需详细了解如何创建用于 Bare Metal 实例的自定义操作系统映像,请参阅本页面上的创建支持 IDPF 的自定义操作系统映像。
创建支持 IDPF 的自定义操作系统映像
如果您需要为裸金属实例使用与 Google Cloud提供的不同的操作系统映像或版本,可以使用 Google Cloud CLI 或 REST 创建操作系统映像。如需了解创建自定义操作系统映像的详细信息和最佳实践,请参阅创建自定义操作系统映像。
gcloud
创建自定义映像时,无论是通过 Google Cloud 提供的映像还是通过导入的操作系统映像,您都必须使用
IDPF
标记操作系统映像。如以下示例所示运行gcloud compute images create
命令:gcloud compute images create IMAGE_NAME \ --source-image=SOURCE_IMAGE \ --source-image-project=SOURCE_IMAGE_PROJECT \ --guest-os-features=IDPF
请替换以下内容:
REST
创建支持 IDPF 的裸金属实例
如需创建裸金属实例,您可以使用支持 IDPF 的公共操作系统映像之一,也可以使用按照创建支持 IDPF 的自定义操作系统映像中的步骤创建的自定义操作系统映像。
使用公共操作系统映像创建裸金属实例
如需使用支持 IDPF 的公共操作系统映像创建裸金属实例,请按照创建裸金属实例中的说明操作。
使用自定义操作系统映像创建裸金属实例
如果您没有使用支持 IDPF 的公共操作系统映像,则必须先创建支持 IDPF 的自定义操作系统映像。然后,您可以通过该自定义操作系统映像,使用 Google Cloud CLI 或 REST 创建裸金属实例。
gcloud
REST
使用
instances.insert
方法创建裸金属实例。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name":"INSTANCE_NAME", "networkInterfaces":[ { "nicType":"IDPF", "network":"NETWORK", "subnet":"SUBNET_NAME" } ], "disks":[ { "initializeParams":{ "sourceImage":"projects/YOUR_IMAGE_PROJECT/global/images/IMAGE_NAME" }, "boot":true } ] }
请替换以下内容:
验证是否已启用 IDPF
您可以使用
lshw
工具提取有关 Bare Metal 实例硬件配置的详细信息。如需在 Linux 实例上安装
lshw
工具,请打开与客机操作系统的 SSH 连接,然后运行以下命令:sudo apt-get install lshw -y
如需确定实例是否正在使用 IDPF 网络接口,请运行以下命令:
sudo lshw -class network
下面展示了输出示例:
*-network description: Ethernet interface product: Intel Corporation vendor: Intel Corporation physical id: 0 bus info: pci@0000:05:00.0 logical name: enp5s0f0 version: 11 serial: 42:01:0a:96:00:02 width: 64 bits clock: 33MHz capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical configuration: autonegotiation=off broadcast=yes driver=idpf driverversion=6.5.0-1023-gcp duplex=full ip=10.150.0.2 latency=0 link=yes multicast=yes resources: iomemory:21ff0-21fef iomemory:21ff0-21fef irq:16 memory:21ffe0000000-21ffefffffff memory:21fff2000000-21fff203ffff
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-06-24。
-