本文档介绍如何创建具有挂接 GPU 的虚拟机 (VM) 实例的托管式实例组 (MIG)。介绍了如何在可用区级 MIG 中使用规模调整请求和灵活启动预配模型一次性添加所有 GPU 虚拟机。如果您想创建 MIG 规模调整请求来使用预留,请改为参阅以下内容:
如需使用 Cluster Director 提供的功能和服务来使用预留,请参阅 AI Hypercomputer 文档中的创建 MIG 和规模调整请求。
如需使用日历模式下的未来预留,请参阅在 MIG 中创建规模调整请求。
将 MIG 规模调整请求与灵活启动预配模型结合使用,可提高您获得 GPU 虚拟机的几率。您必须在请求中指定 GPU 虚拟机的数量。动态工作负载调度器 (DWS) 是底层调度器机制,它会根据请求的时长和资源可用性来调度在 Compute Engine 中创建的调整大小请求。当资源可用时,MIG 会创建虚拟机。
如果作业的完成时间早于所请求的时长,您可以删除已创建的虚拟机。否则,MIG 会在虚拟机的运行时长结束时将其删除。
您还可以阅读创建 MIG 的其他基本场景。
准备工作
- 为确保您有足够的 GPU 配额可以用于请求的资源,请检查您的 GPU 配额。
- 如需了解配额用量,请参阅 GPU 虚拟机和抢占式分配配额。
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
限制
查看创建 MIG 规模调整请求时的限制。
创建 MIG 并一次性添加所有 GPU 虚拟机
如需创建 MIG 并在实例组中一次性添加所有 GPU 虚拟机,请执行以下操作:
创建实例模板,只有创建了模板之后才能创建 MIG。MIG 会根据实例模板创建实例组中的每个虚拟机。在模板中,指定 GPU 虚拟机的配置以及使用规模调整请求所需的其他配置。
如需详细了解实例模板,请参阅实例模板简介。
创建 MIG 和调整大小请求,以便一次性添加所有 GPU 虚拟机。
创建实例模板
按照本部分中的说明创建实例模板,然后使用该模板创建 MIG。
控制台
转到实例模板页面。
点击创建实例模板。 系统会打开创建实例模板页面。
在名称字段中,输入实例模板的名称。
在机器配置部分中,执行以下操作:
点击 GPU 标签页。
在 GPU 类型列表中,选择 GPU 类型。
在 GPU 数量列表中,选择 GPU 的数量。
在机器类型部分中,选择一种机器类型。
在预配模型部分中,执行以下操作:
在虚拟机预配模型列表中,选择弹性启动。
如需为通过实例模板创建的虚拟机设置运行时长,请在输入小时数字段中输入小时数。该值必须介于 1 小时 (
1
) 到 7 天 (168
) 之间。
可选:如需更改启动磁盘类型或映像的默认值,请在启动磁盘部分中,点击更改。然后,按照提示更改启动磁盘。
点击创建。
gcloud
使用 beta instance-templates create
命令来创建实例模板:
gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \ --image-project=IMAGE_PROJECT \ --image-family=IMAGE_FAMILY \ --instance-termination-action=DELETE \ --instance-template-region=REGION \ --machine-type=MACHINE_TYPE \ --maintenance-policy=TERMINATE \ --max-run-duration=RUN_DURATION \ --provisioning-model=FLEX_START \ --reservation-affinity=none
替换以下内容:
INSTANCE_TEMPLATE_NAME
:实例模板的名称。IMAGE_PROJECT
:映像所属的映像项目;例如debian-cloud
。如需详细了解支持的映像项目,请参阅公共映像。IMAGE_FAMILY
:映像系列。此项指定最新的未弃用操作系统映像。例如,如果您指定debian-12
,则系统会使用 Debian 12 映像系列中的最新版本。如需详细了解如何使用映像系列,请参阅映像系列最佳实践。REGION
:要创建实例模板的区域。MACHINE_TYPE
:支持 GPU 的机器类型。如果您指定 N1 机器类型,请添加--accelerator
标志以指定要挂接到虚拟机的 GPU 数量和类型。RUN_DURATION
:您希望请求的虚拟机运行的时长。您必须将该值格式化为天、小时、分钟或秒数,并分别添加对应的后缀d
、h
、m
或s
。例如,指定30m
表示 30 分钟,或指定1d2h3m4s
表示 1 天 2 小时 3 分钟 4 秒。该值必须介于 10 分钟到 7 天之间。
REST
向 beta.instanceTemplates.insert
方法发出 POST
请求以创建实例模板:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE } } ], "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, "scheduling": { "instanceTerminationAction": "DELETE", "maxRunDuration": { "seconds": RUN_DURATION }, "onHostMaintenance": "TERMINATE", "provisioningModel": "FLEX_START" } } }
替换以下内容:
PROJECT_ID
:您希望创建实例模板的项目的 ID。REGION
:要创建实例模板的区域。INSTANCE_TEMPLATE_NAME
:实例模板的名称。IMAGE_PROJECT
:映像所属的映像项目;例如debian-cloud
。如需详细了解支持的映像项目,请参阅公共映像。IMAGE
:指定以下其中一项:MACHINE_TYPE
:支持 GPU 的机器类型。如果您指定 N1 机器类型,请添加guestAccelerators
字段以指定要挂接到虚拟机的 GPU 数量和类型。RUN_DURATION
:您希望请求的虚拟机在 MIG 将其自动删除之前运行的时长(以秒为单位)。该值必须介于600
(600 秒,即 10 分钟)到604800
(604,800 秒,即 7 天)之间。
创建实例模板后,您可以查看该模板以查看其 ID 并查看其实例属性。
创建 MIG 并一次性添加所有 GPU 虚拟机
按照本部分所述,创建一个 MIG。如需在 MIG 中创建调整大小请求,您不得配置自动扩缩,并且必须关闭修复。
控制台
前往实例组页面。
点击创建实例组。 此时会打开创建实例组页面。
在名称字段中,输入 MIG 的名称。
在选择实例模板之前,您必须删除自动扩缩配置并关闭修复,如下所示:
- 如需删除自动扩缩配置,请执行以下操作:
- 在自动扩缩部分中,点击自动扩缩模式列表,然后点击删除自动扩缩配置。
- 在确认对话框中点击删除。
- 如需关闭修复功能,请在虚拟机实例生命周期部分中,点击失败时的默认操作列表,然后选择无操作。
- 如需删除自动扩缩配置,请执行以下操作:
返回到实例模板字段。在实例模板列表中,选择您在上一部分中创建的实例模板。
执行下列其中一项操作:
- 如需使用 MIG 创建调整大小请求,请执行以下操作:
- 在实例数字段中,输入您要一次性创建的所有虚拟机的数量。
- 选中使用规模调整请求,一次创建所有虚拟机复选框。
- 可选:如需为虚拟机指定与在实例模板中设置的运行时长不同的运行时长,请在请求的运行时长字段和单位列表中指定运行时长。时长必须介于 1 小时到 7 天之间。
- 如需在创建 MIG 后创建调整大小请求,请在实例数量字段中输入
0
。
- 如需使用 MIG 创建调整大小请求,请执行以下操作:
在位置部分中,指定您是要创建可用区级 MIG 还是区域级 MIG,如下所示:
- 如需创建可用区级 MIG,请选择单个可用区。或者,如需创建区域 MIG,请选择多个可用区。
- 选择 MIG 的区域和可用区。
- 如果您要创建区域级 MIG,请执行以下操作:
- 在目标分布形状字段中,选择任意单个可用区。
- 在显示的对话框中,点击停用实例重新分配。
点击创建。
gcloud
使用
instance-groups managed create
命令创建可用区级 MIG:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --template=INSTANCE_TEMPLATE_URL \ --size=0 \ --zone=ZONE \ --default-action-on-vm-failure=do_nothing
在 MIG 中,使用
instance-groups managed resize-requests create
命令创建调整大小请求。指定所需的 GPU 虚拟机数量以及您希望运行这些虚拟机的时长。gcloud compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \ --resize-request=RESIZE_REQUEST_NAME \ --resize-by=COUNT \ --zone=ZONE
替换以下内容:
INSTANCE_GROUP_NAME
:MIG 的名称。INSTANCE_TEMPLATE_URL
:您要用于在 MIG 中创建虚拟机的实例模板的网址。网址可以包含实例模板的 ID 或名称。请指定以下某个值:- 对于区域级实例模板:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
- 对于全球实例模板:
INSTANCE_TEMPLATE_ID
- 对于区域级实例模板:
ZONE
:提供 Compute Engine 服务的一个可用区。RESIZE_REQUEST_NAME
:调整大小请求的名称。COUNT
:要在实例组中一次性添加的所有虚拟机的数量。
REST
向
instanceGroupManagers.insert
方法发出POST
请求以创建可用区级 MIG。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "name": "INSTANCE_GROUP_NAME", "targetSize": 0, "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" } }
在 MIG 中,向
instanceGroupManagerResizeRequests.insert
方法发出POST
请求以创建调整大小请求。在请求正文中,指定要一次性创建的所有 GPU 虚拟机的数量以及您希望运行这些虚拟机的时长。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests { "name": "RESIZE_REQUEST_NAME", "resizeBy": COUNT }
替换以下内容:
PROJECT_ID
:您要在其中创建 MIG 的项目的 ID。INSTANCE_GROUP_NAME
:MIG 的名称。INSTANCE_TEMPLATE_URL
:您要用于在 MIG 中创建虚拟机的实例模板的网址。网址可以包含实例模板的 ID 或名称。请指定以下某个值:- 对于区域级实例模板:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
- 对于全球实例模板:
INSTANCE_TEMPLATE_ID
- 对于区域级实例模板:
ZONE
:提供 Compute Engine 服务的一个可用区。RESIZE_REQUEST_NAME
:调整大小请求的名称。COUNT
:要在实例组中一次性添加的所有虚拟机的数量。
您创建的调整大小请求会保持 ACCEPTED
状态,直到 MIG 创建了所有请求的 GPU 虚拟机。在实例组中创建所有 GPU 虚拟机后,请求的状态会更改为 SUCCEEDED
。
后续步骤
了解如何创建与调整大小请求兼容的区域级 MIG(预览版)。
了解如何查看有关 MIG 和拖管式虚拟机的信息。
- 了解如何查看虚拟机和 GPU 的实际和预测用量。