本页介绍了如何自定义用于启动作业所运行的每个虚拟机 (VM) 实例的永久性磁盘。
具体而言,您可以自定义启动磁盘的大小、类型和/或虚拟机操作系统 (OS) 映像。如果您只想自定义虚拟机操作系统映像,请改为参阅为作业指定虚拟机操作系统映像。
如需详细了解启动磁盘以及何时配置启动磁盘,请参阅虚拟机操作系统环境概览。
准备工作
- 如果您之前未使用过 Batch,请查看开始使用 Batch 并完成项目和用户的前提条件,以启用 Batch。
-
如需获得创建作业所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
项目的 Batch Job Editor (
roles/batch.jobsEditor
) -
服务账号用户 (
roles/iam.serviceAccountUser
) 作业的服务账号(默认情况下为默认 Compute Engine 服务账号)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
-
项目的 Batch Job Editor (
创建并运行使用自定义启动磁盘的作业
在创建作业时,您可以通过选择以下方法之一来指定自定义启动磁盘:
使用指定现有自定义启动磁盘的 Compute Engine 实例模板。 如果您想在创建此作业时使用虚拟机实例模板或使用预先存在的自定义启动磁盘,请完成以下步骤:
创建或确定自定义启动磁盘。
如需了解 Batch 的启动磁盘要求,请参阅本文档,并参阅 VM 操作系统环境概览。 如需了解如何创建启动磁盘,请参阅 Compute Engine 文档中的创建自定义启动磁盘。
创建或确定包含此自定义启动磁盘的虚拟机实例模板。
如需了解如何创建虚拟机实例模板,请参阅 Compute Engine 文档中的创建实例模板。
创建并运行包含此虚拟机实例模板的作业。
如需了解如何创建和运行作业,请参阅使用虚拟机实例模板定义作业资源。
使用启动磁盘字段指定新的自定义启动磁盘。 如以下说明中所述,您可以在使用 gcloud CLI 或 Batch API 创建和运行作业时,通过使用启动磁盘 (
bootDisk
) 字段来定义新的自定义启动磁盘。具体而言,您可以通过配置 VM OS 映像 (
image
)、永久性磁盘类型 (type
) 和/或大小 (sizeGb
) 子字段来自定义启动磁盘。系统会为选择省略的任何这些子字段批量设置默认值。
gcloud
创建一个 JSON 文件,用于指定作业的配置详细信息。 如需为作业的虚拟机指定新的自定义启动磁盘,请添加
bootDisk
字段和子字段。例如,如需创建使用新的自定义启动磁盘的基本脚本作业,请创建一个包含以下内容的 JSON 文件:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}." } } ] }, "taskCount": 3, "parallelism": 1 } ], "allocationPolicy": { "instances": [ { "policy": { "bootDisk": { "image": "VM_OS_IMAGE_URI", "type": "BOOT_DISK_TYPE", "sizeGb": BOOT_DISK_SIZE } } } ] }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
替换以下内容:
VM_OS_IMAGE_URI
:虚拟机操作系统映像的相对资源名称。使用以下任一选项:指定批处理操作系统前缀。如需使用特定 Batch OS 的最新映像,请使用以下格式:
BATCH_OS_PREFIX
将
BATCH_OS_PREFIX
替换为某个 Batch 虚拟机操作系统映像前缀,例如batch-debian
是 Batch Debian 操作系统的映像前缀。指定映像系列。如需使用特定映像系列中的最新映像,请使用以下格式:
projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
替换以下内容:
IMAGE_PROJECT_ID
:包含映像的项目的项目 ID。例如,对于所有批处理图片,请指定batch-custom-image
。IMAGE_FAMILY
:映像系列,包含一个或多个特定映像,表示操作系统的类型和主要版本。例如,如需查看 Batch 中的所有虚拟机操作系统映像系列,请查看虚拟机操作系统映像列表。
指定映像版本。如需使用特定版本的虚拟机操作系统映像,请使用以下格式:
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
替换以下内容:
IMAGE_PROJECT_ID
:包含映像的项目的项目 ID。例如,对于所有批处理图片,请指定batch-custom-image
。IMAGE_NAME
:映像名称,表示虚拟机操作系统映像的特定版本。例如,如需查看 Batch 中的所有虚拟机操作系统映像版本,请查看虚拟机操作系统映像列表。
BOOT_DISK_TYPE
:启动磁盘的磁盘类型,可以是pd-standard
、pd-balanced
、pd-ssd
或pd-extreme
。启动磁盘的默认磁盘类型为pd-balanced
。BOOT_DISK_SIZE
:新的永久性启动磁盘的大小(以 GB 为单位)。此值必须符合所有启动磁盘大小要求。
如需创建作业,请运行以下
gcloud batch jobs submit
命令:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
替换以下内容:
JOB_NAME
:相应作业的名称。LOCATION
:相应作业的位置。JSON_CONFIGURATION_FILE
:包含作业配置详细信息的 JSON 文件的路径。
API
如需使用 Batch API 创建作业,请使用 jobs.create
方法并指定作业的配置详细信息。如需为作业指定虚拟机操作系统映像,请添加 bootDisk
字段和子字段。例如,如需创建使用新的自定义启动磁盘的基本脚本作业,请发出以下 POST
请求:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}."
}
}
]
},
"taskCount": 3,
"parallelism": 1
}
],
"allocationPolicy": {
"instances": [
{
"policy": {
"bootDisk": {
"image": "VM_OS_IMAGE_URI",
"type": "BOOT_DISK_TYPE",
"sizeGb": BOOT_DISK_SIZE
}
}
}
]
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
替换以下内容:
VM_OS_IMAGE_URI
:虚拟机操作系统映像的相对资源名称。使用以下任一选项:指定批处理操作系统前缀。如需使用特定 Batch OS 的最新映像,请使用以下格式:
BATCH_OS_PREFIX
将
BATCH_OS_PREFIX
替换为某个 Batch 虚拟机操作系统映像前缀,例如batch-debian
是 Batch Debian 操作系统的映像前缀。指定映像系列。如需使用特定映像系列中的最新映像,请使用以下格式:
projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
替换以下内容:
IMAGE_PROJECT_ID
:包含映像的项目的项目 ID。例如,对于所有批处理图片,请指定batch-custom-image
。IMAGE_FAMILY
:映像系列,包含一个或多个特定映像,表示操作系统的类型和主要版本。例如,如需查看 Batch 中的所有虚拟机操作系统映像系列,请查看虚拟机操作系统映像列表。
指定映像版本。如需使用特定版本的虚拟机操作系统映像,请使用以下格式:
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
替换以下内容:
IMAGE_PROJECT_ID
:包含映像的项目的项目 ID。例如,对于所有批处理图片,请指定batch-custom-image
。IMAGE_NAME
:映像名称,表示虚拟机操作系统映像的特定版本。例如,如需查看 Batch 中的所有虚拟机操作系统映像版本,请查看虚拟机操作系统映像列表。
BOOT_DISK_TYPE
:启动磁盘的磁盘类型,可以是pd-standard
、pd-balanced
、pd-ssd
或pd-extreme
。启动磁盘的默认磁盘类型为pd-balanced
。BOOT_DISK_SIZE
:新的永久性启动磁盘的大小(以 GB 为单位)。此值必须符合所有启动磁盘大小要求。
后续步骤
- 如果您在创建或运行作业时遇到问题,请参阅问题排查。
- 详细了解启动磁盘和虚拟机操作系统映像。
- 详细了解如何创建作业。
- 了解如何查看作业和任务。