创建 A3 Ultra 或 A4 实例

本文档介绍如何基于 A3 Ultra 或 A4 机器系列创建挂接 GPU 的实例。如需详细了解如何创建挂接 GPU 的实例,请参阅创建挂接 GPU 的实例概览

A4 和 A3 Ultra 机器系列旨在让您能够运行大规模 AI/ML 集群,并提供目标工作负载放置、高级集群维护控制和拓扑感知调度等功能。如需了解详情,请参阅集群管理概览

准备工作

  • 如需查看创建挂接 GPU 的实例的限制和其他前提步骤(例如,如何选择操作系统映像或检查 GPU 配额),请参阅创建挂接 GPU 的实例概览
  • 如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 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 时进行身份验证

所需的角色

如需获得创建实例所需的权限,请让您的管理员为您授予项目的 Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色可提供创建实例所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

创建实例需要以下权限:

  • 针对项目的 compute.instances.create 权限
  • 使用自定义映像创建虚拟机:针对映像的 compute.images.useReadOnly 权限
  • 使用快照创建虚拟机:针对快照的 compute.snapshots.useReadOnly 权限
  • 使用实例模板创建虚拟机:针对实例模板的 compute.instanceTemplates.useReadOnly 权限
  • 为虚拟机指定子网:针对项目或所选子网的 compute.subnetworks.use 权限
  • 为虚拟机指定静态 IP 地址:针对项目的 compute.addresses.use 权限
  • 在使用 VPC 网络时为虚拟机分配外部 IP 地址:针对项目或所选子网的 compute.subnetworks.useExternalIp 权限
  • 为虚拟机分配旧版网络:针对项目的 compute.networks.use 权限
  • 使用旧版网络时为虚拟机分配外部 IP 地址:针对项目的 compute.networks.useExternalIp 权限
  • 为虚拟机设置虚拟机实例元数据:针对项目的 compute.instances.setMetadata 权限
  • 为虚拟机设置标记:针对虚拟机的 compute.instances.setTags 权限
  • 为虚拟机设置标签:针对虚拟机的 compute.instances.setLabels 权限
  • 为虚拟机设置要使用的服务账号:针对虚拟机的 compute.instances.setServiceAccount 权限
  • 为虚拟机创建新磁盘:针对项目的 compute.disks.create 权限
  • 以只读或读写模式挂接现有磁盘:针对磁盘的 compute.disks.use 权限
  • 以只读模式挂接现有磁盘:针对磁盘的 compute.disks.useReadOnly 权限

您也可以使用自定义角色或其他预定义角色来获取这些权限。

确定如何创建 A3 Ultra 或 A4 实例

如需确定要使用哪些选项来创建 A3 Ultra 或 A4 实例,请完成以下步骤:

  1. 选择使用选项:如需了解如何为 A3 Ultra 或 A4 实例选择使用选项,请参阅 AI Hypercomputer 文档中的选择使用选项

  2. 获取容量:如需了解如何为所选的使用选项获取 A3 Ultra 或 A4 实例的容量,请参阅 AI Hypercomputer 文档中的容量概览

  3. 选择创建说明:如需了解可用于创建 A3 Ultra 或 A4 实例的所有选项(例如受管实例组 [MIG] 或集群),请参阅 AI Hypercomputer 文档中的创建虚拟机和集群概览

    如果您想使用 A3 Ultra 或 A4 的集群管理功能,或者不想创建独立实例,请改为选择 AI Hypercomputer 文档中的创建选项。

创建 A3 Ultra 或 A4 实例

如需创建 A3 Ultra 或 A4 实例,请完成以下步骤:

  1. 创建 VPC 网络

  2. 创建实例

  3. 准备好实例以供使用

创建 VPC 网络

如需为 A4 或 A3 Ultra 机器类型设置网络,请为以下网络接口创建三个 VPC 网络:

  • 2 个常规 VPC 网络,用于 gVNIC 网络接口 (NIC)。这些接口用于主机到主机的通信。
  • CX-7 NIC 需要 1 个采用 RoCE 网络配置文件的 VPC 网络。RoCE VPC 网络需要有 8 个子网,每个 CX-7 NIC 对应一个子网。这些 NIC 使用 RDMA over Converged Ethernet (RoCE),可提供对于 GPU 到 GPU 通信至关重要的高带宽、低延迟通信。

如需详细了解 NIC 配置,请参阅查看网络带宽和 NIC 配置

您可以按照说明指南手动创建网络,也可以使用提供的脚本自动创建。

说明指南

如需创建网络,您可以按照以下说明操作:

对于这些 VPC 网络,我们建议将最大传输单元 (MTU) 设置为更大的值。对于 A4 或 A3 Ultra 机器类型,建议的 MTU 为 8896 字节。 如需查看其他 GPU 机器类型的建议 MTU 设置,请参阅 GPU 机器类型的 MTU 设置

脚本

如需创建网络,请按照以下步骤操作。

对于这些 VPC 网络,我们建议将最大传输单元 (MTU) 设置为更大的值。对于 A4 或 A3 Ultra 机器类型,建议的 MTU 为 8896 字节。 如需查看其他 GPU 机器类型的建议 MTU 设置,请参阅 GPU 机器类型的 MTU 设置

  1. 使用以下脚本为 gVNIC 和 CX-7 NIC 创建 VPC 网络。

      
        #!/bin/bash
    
        # Create regular VPC networks and subnets for the gVNICs
        for N in $(seq 0 1); do
          gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
            --subnet-mode=custom \
            --mtu=8896
    
          gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
            --network=GVNIC_NAME_PREFIX-net-$N \
            --region=REGION \
            --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
    
        # Assumes that an external IP is only created for vNIC 0
        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
    
      
        # List and make sure network profiles exist in the machine type's zone
        gcloud compute network-profiles list --filter "location.name=ZONE"
    
        # Create network for CX-7
        gcloud compute networks create RDMA_NAME_PREFIX-mrdma \
          --network-profile=ZONE-vpc-roce \
          --subnet-mode custom \
          --mtu=8896
    
        # Create subnets
        for N in $(seq 0 7); do
          gcloud compute networks subnets create RDMA_NAME_PREFIX-mrdma-sub-$N \
            --network=RDMA_NAME_PREFIX-mrdma \
            --region=REGION \
            --range=10.$((N+2)).0.0/16 # offset to avoid overlap with gVNICs
        done
    
      

    替换以下内容:

    • GVNIC_NAME_PREFIX:用于 gVNIC 的常规 VPC 网络和子网的自定义名称前缀。
    • RDMA_NAME_PREFIX:用于 CX-7 NIC 的 RoCE VPC 网络和子网的自定义名称前缀。
    • ZONE:指定提供您要使用的机器类型的可用区,例如 us-central1-a。如需了解区域,请参阅按区域和可用区划分的 GPU 可用性
    • REGION:您想要在其中创建子网的区域。此区域必须与指定的可用区相对应。例如,如果可用区为 us-central1-a,则区域为 us-central1
    • IP_RANGE:用于 SSH 防火墙规则的 IP 范围。
  2. 可选:如需验证 VPC 网络资源是否已成功创建,请在 Google Cloud 控制台中检查网络设置:
    1. 在 Google Cloud 控制台中,前往 VPC 网络页面。

      进入 VPC 网络页面

    2. 在列表中搜索您在上一步中创建的网络。
    3. 如需查看子网、防火墙规则和其他网络设置,请点击网络的名称。

创建实例

如需创建实例,请使用以下选项之一。

控制台

  1. 在 Google Cloud 控制台中,前往创建实例页面。

    转到“创建实例”

    此时将显示创建实例屏幕,并显示机器配置窗格。

  2. 机器配置窗格中,完成以下步骤:

    1. 为您的实例指定名称。请参阅资源命名惯例

    2. 选择您已预留容量的区域可用区

    3. 点击 GPU 标签页,然后完成以下步骤:

      1. GPU 类型列表中,选择您的 GPU 类型。

        • 对于 A4 实例,选择 NVIDIA B200

        • 对于 A3 Ultra 实例,选择 NVIDIA H200 141GB

      2. GPU 数量列表中,选择 8

  3. 在导航菜单中,点击操作系统和存储空间。在显示的操作系统和存储空间窗格中,完成以下步骤:

    1. 点击更改。系统会显示启动磁盘配置窗格。

    2. 公共映像标签页中,选择推荐的映像。如需查看推荐映像的列表,请参阅操作系统

    3. 如需确认您的启动磁盘选项,请点击选择

  4. 如需创建多 NIC 实例,请完成以下步骤。否则,如需创建单 NIC 实例,请跳过这些步骤。

    • 在导航菜单中,点击网络。在显示的网络窗格中,完成以下步骤:

      1. 网络接口部分中,完成以下步骤:

      2. 删除默认网络接口。如需删除该接口,请点击 删除

      3. 点击添加网络接口。使用此选项添加连接到您在上一部分中创建的 VPC 网络的网络接口。添加网络接口时,请注意以下事项:

        • 对于用于主机到主机通信的网络接口,请从网络子网列表中选择常规 VPC 网络和子网,并将网络接口卡列表设置为 gVNIC

        • 对于用于 GPU 到 GPU 通信的网络接口,请从网络子网列表中选择 RoCE VPC 网络和子网,并将这些网络接口的网络接口卡列表设置为 MRDMA

  5. 在导航菜单中,点击高级。然后,根据您要使用的配置模型完成以下步骤。

    灵活启动

    1. 预配模型部分中,从虚拟机预配模型列表中选择弹性启动
    2. 输入小时数中,输入您希望虚拟机运行的最长时间。该值必须介于 46 秒 (0.01) 和 7 天(168,即 168 小时)之间。

    3. 选择设置虚拟机创建等待时间

      根据工作负载的可用区要求,我们建议您指定以下时长之一,以提高虚拟机创建请求的成功率:

      • 对可用区有严格要求的工作负载:如果您的工作负载要求您在特定可用区中创建虚拟机,请指定介于 90 秒2 小时之间的时长。 持续时间越长,获得资源的机会就越大。
      • 对可用区没有严格要求的工作负载:如果虚拟机可以在区域内的任何可用区中运行,请指定 0 秒的持续时间,或清除设置虚拟机创建等待时间复选框。此操作指定 Compute Engine 仅在资源可立即使用时才分配资源。如果虚拟机创建请求因资源不可用而失败,请在其他可用区中重试该请求。

    受预留约束

    1. 点击选择预留。此操作会打开一个窗格,其中列出了所选可用区内的可用预留。在预订列表中,完成以下步骤:

      1. 选择要用于虚拟机的预留。您还可以选择预留中的特定区块。
      2. 点击选择

    Spot

    1. 预配模型部分中,从虚拟机预配模型列表中选择 Spot
    2. 可选:如需选择 Compute Engine 抢占虚拟机时发生的终止操作,请完成以下步骤:

      1. 展开虚拟机预配模型高级设置部分。
      2. 虚拟机终止时列表中,选择以下选项之一:
        • 如需在抢占期间停止虚拟机,请选择停止(默认)。
        • 如需在抢占期间删除虚拟机,请选择删除
  6. 要创建并启动该实例,请点击创建

gcloud

如需创建虚拟机,请使用 gcloud compute instances create 命令

您需要指定的参数取决于您为此部署使用的消费选项。选择与您的消费选项的配置模型对应的标签页。

灵活启动

gcloud compute instances create VM_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --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 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
    --reservation-affinity=none \
    --provisioning-model=FLEX_START \
    --request-valid-for-duration=REQUEST_VALID_FOR_DURATION \
    --max-run-duration=MAX_RUN_DURATION \
    --instance-termination-action=DELETE \
    --maintenance-policy=TERMINATE

替换以下内容:

  • VM_NAME:虚拟机的名称。
  • MACHINE_TYPE:要用于虚拟机的机器类型。 如需了解详情,请参阅 GPU 机器类型
  • IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。如需查看受支持的操作系统列表,请参阅操作系统详细信息
  • IMAGE_PROJECT:操作系统映像的项目 ID。
  • ZONE:您要使用的机器类型在其中可用的可用区。如需了解区域,请参阅按区域和可用区划分的 GPU 可用性
  • DISK_SIZE:启动磁盘的大小(以 GB 为单位)。
  • GVNIC_NAME_PREFIX:您在创建使用 gVNIC 的标准 VPC 网络和子网时指定的名称前缀。
  • RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。
  • REQUEST_VALID_FOR_DURATION:创建虚拟机的请求的有效时长。您必须将该值的格式设置为天数、小时数、分钟数或秒数,并分别添加对应的后缀 dhms。例如,指定 30m 表示 30 分钟,或指定 1d2h3m4s 表示 1 天 2 小时 3 分钟 4 秒。如果您未指定时长,则默认时长为 90 秒。

    根据工作负载的可用区要求,我们建议您指定以下时长之一,以提高虚拟机创建请求的成功率:

    • 对可用区有严格要求的工作负载:如果您的工作负载要求您在特定可用区中创建虚拟机,请指定 90 秒到 2 小时之间的时长。时长越长,获得资源的机会就越大。
    • 对可用区没有严格要求的工作负载:如果虚拟机可以在区域内的任何可用区中运行,则指定时长为零秒 (0)。此操作指定 Compute Engine 仅在资源立即可用时才分配资源。如果虚拟机创建请求因资源不可用而失败,请在其他可用区中重试该请求。
  • MAX_RUN_DURATION:您希望请求的虚拟机运行的时长。您必须将该值的格式设置为天数、小时数、分钟数或秒数,后面分别跟 dhms。例如,指定 30m 表示 30 分钟,或指定 1d2h3m4s 表示 1 天 2 小时 3 分钟 4 秒。该值必须介于 10 分钟到 7 天之间。

受预留约束

gcloud compute instances create VM_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --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 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE

替换以下内容:

  • VM_NAME:虚拟机的名称。
  • MACHINE_TYPE:要用于虚拟机的机器类型。 如需了解详情,请参阅 GPU 机器类型
  • IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。如需查看受支持的操作系统列表,请参阅操作系统详细信息
  • IMAGE_PROJECT:操作系统映像的项目 ID。
  • ZONE:您要使用的机器类型在其中可用的可用区。如需了解区域,请参阅按区域和可用区划分的 GPU 可用性
  • DISK_SIZE:启动磁盘的大小(以 GB 为单位)。
  • GVNIC_NAME_PREFIX:您在创建使用 gVNIC 的标准 VPC 网络和子网时指定的名称前缀。
  • RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。
  • RESERVATION:预留名称或预留中的特定块。如需获取预留名称或可用块,请参阅查看预留容量。根据您对实例布置的要求,请按以下方式之一操作:
    • 如需在任意块上创建实例,请执行以下操作:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      此外,如需在同一块中创建多个实例,请在创建每个实例时应用相同的紧凑布置政策,该政策指定了块共置 (maxDistance=2)。 然后,Compute Engine 会将该政策应用于预留,并在同一块上创建实例。

    • 如需在特定块上创建实例,请执行以下操作:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
  • TERMINATION_ACTION:指示在预留期结束时,Compute Engine 是关停 (STOP) 还是删除 (DELETE) 虚拟机。

Spot

gcloud compute instances create VM_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --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 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION

替换以下内容:

  • VM_NAME:虚拟机的名称。
  • MACHINE_TYPE:要用于虚拟机的机器类型。 如需了解详情,请参阅 GPU 机器类型
  • IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。如需查看受支持的操作系统列表,请参阅操作系统详细信息
  • IMAGE_PROJECT:操作系统映像的项目 ID。
  • ZONE:您要使用的机器类型在其中可用的可用区。如需了解区域,请参阅按区域和可用区划分的 GPU 可用性
  • DISK_SIZE:启动磁盘的大小(以 GB 为单位)。
  • GVNIC_NAME_PREFIX:您在创建使用 gVNIC 的标准 VPC 网络和子网时指定的名称前缀。
  • RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。
  • TERMINATION_ACTION:当 Compute Engine 抢占实例时执行的操作(STOP [默认] 或 DELETE)。

REST

如需创建虚拟机,请向 instances.insert 方法发出 POST 请求。

您需要指定的参数取决于您为此部署使用的消费选项。选择与您的消费选项的配置模型对应的标签页。

灵活启动

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks":[
    {
      "boot":true,
      "initializeParams":{
        "diskSizeGb": "DISK_SIZE",
        "diskType": "hyperdisk-balanced",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "mode": "READ_WRITE",
      "type": "PERSISTENT"
    }
  ],
  "serviceAccounts": [
    {
      "email": "default",
      "scopes": [
        "https://www.googleapis.com/auth/cloud-platform"
      ]
    }
  ],
  "networkInterfaces": [
    {
      "accessConfigs": [
        {
          "name": "external-nat",
          "type": "ONE_TO_ONE_NAT"
        }
      ],
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
    }
  ],
  "reservationAffinity":{
    "consumeReservationType": "NO_RESERVATION",
  },
  "scheduling":{
    "provisioningModel": "FLEX_START",
    "requestValidForDuration": {
      "seconds": REQUEST_VALID_FOR_DURATION
    },
    "maxRunDuration": {
      "seconds": MAX_RUN_DURATION
    },
    "instanceTerminationAction": "DELETE",
    "onHostMaintenance": "TERMINATE",
  }
}

替换以下内容:

  • PROJECT_ID:您要在其中创建虚拟机的项目的 ID。
  • ZONE:您要使用的机器类型在其中可用的可用区。如需了解区域,请参阅按区域和可用区划分的 GPU 可用性
  • MACHINE_TYPE:要用于虚拟机的机器类型。 如需了解详情,请参阅 GPU 机器类型
  • VM_NAME:虚拟机的名称。
  • DISK_SIZE:启动磁盘的大小(以 GB 为单位)。
  • IMAGE_PROJECT:操作系统映像的项目 ID。
  • IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。如需查看受支持的操作系统列表,请参阅操作系统详细信息
  • NETWORK_PROJECT_ID:网络的项目 ID。
  • GVNIC_NAME_PREFIX:您在创建使用 gVNIC 的标准 VPC 网络和子网时指定的名称前缀。
  • REGION:子网所在的区域。
  • RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。
  • REQUEST_VALID_FOR_DURATION:创建虚拟机的请求的有效时长。您必须将该值的格式设置为天数、小时数、分钟数或秒数,并分别添加对应的后缀 dhms。例如,指定 30m 表示 30 分钟,或指定 1d2h3m4s 表示 1 天 2 小时 3 分钟 4 秒。如果您未指定时长,则默认时长为 90 秒。

    根据工作负载的可用区要求,我们建议您指定以下时长之一,以提高虚拟机创建请求的成功率:

    • 对可用区有严格要求的工作负载:如果您的工作负载要求您在特定可用区中创建虚拟机,请指定 90 秒到 2 小时之间的时长。时长越长,获得资源的机会就越大。
    • 对可用区没有严格要求的工作负载:如果虚拟机可以在区域内的任何可用区中运行,则指定时长为零秒 (0)。此操作指定 Compute Engine 仅在资源立即可用时才分配资源。如果虚拟机创建请求因资源不可用而失败,请在其他可用区中重试该请求。
  • MAX_RUN_DURATION:您希望请求的虚拟机运行的时长。您必须将该值格式化为秒数。例如,指定 86400 表示 1 天。该值必须介于 10 分钟到 7 天之间。

受预留约束

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks":[
    {
      "boot":true,
      "initializeParams":{
        "diskSizeGb": "DISK_SIZE",
        "diskType": "hyperdisk-balanced",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "mode": "READ_WRITE",
      "type": "PERSISTENT"
    }
  ],
  "serviceAccounts": [
    {
      "email": "default",
      "scopes": [
        "https://www.googleapis.com/auth/cloud-platform"
      ]
    }
  ],
  "networkInterfaces": [
    {
      "accessConfigs": [
        {
          "name": "external-nat",
          "type": "ONE_TO_ONE_NAT"
        }
      ],
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
    }
  ],
  "reservationAffinity":{
    "consumeReservationType": "SPECIFIC_RESERVATION",
    "key": "compute.googleapis.com/reservation-name",
    "values":[
      "RESERVATION"
    ]
  },
  "scheduling":{
    "provisioningModel": "RESERVATION_BOUND",
    "instanceTerminationAction": "TERMINATION_ACTION",
    "onHostMaintenance": "TERMINATE",
    "automaticRestart": true
  }
}

替换以下内容:

  • PROJECT_ID:您要在其中创建虚拟机的项目的 ID。
  • ZONE:您要使用的机器类型在其中可用的可用区。如需了解区域,请参阅按区域和可用区划分的 GPU 可用性
  • MACHINE_TYPE:要用于虚拟机的机器类型。 如需了解详情,请参阅 GPU 机器类型
  • VM_NAME:虚拟机的名称。
  • DISK_SIZE:启动磁盘的大小(以 GB 为单位)。
  • IMAGE_PROJECT:操作系统映像的项目 ID。
  • IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。如需查看受支持的操作系统列表,请参阅操作系统详细信息
  • NETWORK_PROJECT_ID:网络的项目 ID。
  • GVNIC_NAME_PREFIX:您在创建使用 gVNIC 的标准 VPC 网络和子网时指定的名称前缀。
  • REGION:子网所在的区域。
  • RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。
  • RESERVATION:预留名称或预留中的特定块。如需获取预留名称或可用块,请参阅查看预留容量。根据您对实例布置的要求,请按以下方式之一操作:
    • 如需在任意块上创建实例,请执行以下操作:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      此外,如需在同一块中创建多个实例,请在创建每个实例时应用相同的紧凑布置政策,该政策指定了块共置 (maxDistance=2)。 然后,Compute Engine 会将该政策应用于预留,并在同一块上创建实例。

    • 如需在特定块上创建实例,请执行以下操作:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
  • TERMINATION_ACTION:指示在预留期结束时,Compute Engine 是关停 (STOP) 还是删除 (DELETE) 虚拟机。

Spot

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks":[
    {
      "boot":true,
      "initializeParams":{
        "diskSizeGb": "DISK_SIZE",
        "diskType": "hyperdisk-balanced",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "mode": "READ_WRITE",
      "type": "PERSISTENT"
    }
  ],
  "serviceAccounts": [
    {
      "email": "default",
      "scopes": [
        "https://www.googleapis.com/auth/cloud-platform"
      ]
    }
  ],
  "networkInterfaces": [
    {
      "accessConfigs": [
        {
          "name": "external-nat",
          "type": "ONE_TO_ONE_NAT"
        }
      ],
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
    }
  ],
  "scheduling":
  {
    "provisioningModel": "SPOT",
    "instanceTerminationAction": "TERMINATION_ACTION"
  }
}

替换以下内容:

  • PROJECT_ID:您要在其中创建虚拟机的项目的 ID。
  • ZONE:您要使用的机器类型在其中可用的可用区。如需了解区域,请参阅按区域和可用区划分的 GPU 可用性
  • MACHINE_TYPE:要用于虚拟机的机器类型。 如需了解详情,请参阅 GPU 机器类型
  • VM_NAME:虚拟机的名称。
  • DISK_SIZE:启动磁盘的大小(以 GB 为单位)。
  • IMAGE_PROJECT:操作系统映像的项目 ID。
  • IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。如需查看受支持的操作系统列表,请参阅操作系统详细信息
  • NETWORK_PROJECT_ID:网络的项目 ID。
  • GVNIC_NAME_PREFIX:您在创建使用 gVNIC 的标准 VPC 网络和子网时指定的名称前缀。
  • REGION:子网所在的区域。
  • RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。
  • TERMINATION_ACTION:当 Compute Engine 抢占实例时执行的操作(STOP [默认] 或 DELETE)。

准备好实例以供使用

如需准备挂接了 GPU 的实例以供使用,请完成以下步骤:

  1. 如需让 A4 或 A3 Ultra 实例使用其挂接的 GPU,该实例必须安装 GPU 驱动程序。除非实例中的映像已包含所需的 GPU 驱动程序,否则请安装 GPU 驱动程序

  2. 如果您在上一个部分中创建了 Spot 虚拟机,请完成以下步骤:

后续步骤