Nesta página, descrevemos como personalizar os discos permanentes usados para inicializar cada instância de máquina virtual (VM) em que um job é executado.
Especificamente, é possível personalizar o tamanho, o tipo e/ou a imagem do sistema operacional (SO) da VM de um disco de inicialização. Se você quiser personalizar apenas a imagem do SO da VM, consulte Especificar a imagem do SO da VM para um job.
Para saber mais sobre discos de inicialização e quando configurá-los, consulte Visão geral do ambiente do SO da VM.
Antes de começar
- Se você nunca usou o Batch, consulte Primeiros passos com ele e ative-o concluindo os pré-requisitos para projetos e usuários.
-
Para receber as permissões necessárias para criar um job, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Editor de jobs em lote (
roles/batch.jobsEditor
) no projeto -
Usuário da conta de serviço (
roles/iam.serviceAccountUser
) na conta de serviço do job, que é, por padrão, a conta de serviço padrão do Compute Engine
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Também é possível receber as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
-
Editor de jobs em lote (
Criar e executar um job que usa um disco de inicialização personalizado
Para especificar um disco de inicialização personalizado ao criar um job, selecione um dos seguintes métodos:
Usar um modelo de instância do Compute Engine que especifique um disco de inicialização personalizado pré-existente. Se você quiser usar um modelo de instância de VM ao criar esse job ou um disco de inicialização personalizado atual, conclua as etapas a seguir:
Crie ou identifique um disco de inicialização personalizado.
Para requisitos de disco de inicialização para o Batch, consulte este documento e a Visão geral do ambiente do SO da VM. Para instruções sobre como criar um disco de inicialização, consulte Criar um disco de inicialização personalizado na documentação do Compute Engine.
Crie ou identifique um modelo de instância de VM que inclua esse disco de inicialização personalizado.
Para instruções sobre como criar um modelo de instância de VM, consulte Criar modelos de instância na documentação do Compute Engine.
Crie e execute um job que inclua esse modelo de instância de VM.
Para instruções sobre como criar e executar o job, consulte Definir recursos do job usando um modelo de instância de VM.
Use o campo "Disco de inicialização" para especificar um novo disco de inicialização personalizado. Conforme explicado nas instruções a seguir, é possível definir um novo disco de inicialização personalizado usando o campo do disco de inicialização (
bootDisk
) ao criar e executar um job com a CLI gcloud ou a API Batch.Especificamente, é possível personalizar o disco de inicialização configurando a imagem do SO da VM (
image
), o tipo de disco permanente (type
) e/ou o tamanho (sizeGb
) dos subcampos. O Batch define um valor padrão para qualquer um desses subcampos que você optar por omitir.
gcloud
Crie um arquivo JSON que especifique os detalhes de configuração do job. Para especificar um novo disco de inicialização personalizado para as VMs do job, inclua o campo
bootDisk
e os subcampos.Por exemplo, para criar um job básico de script que use um novo disco de inicialização personalizado, crie um arquivo JSON com o seguinte conteúdo:
{ "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" } }
Substitua:
VM_OS_IMAGE_URI
: um nome de recurso relativo da imagem do SO da VM. Use uma das seguintes opções:Especificar um prefixo do SO do Batch. Para usar a imagem mais recente de um SO em lote específico, use o seguinte formato:
BATCH_OS_PREFIX
Substitua
BATCH_OS_PREFIX
por um dos prefixos de imagem do SO da VM em lote. Por exemplo,batch-debian
é o prefixo do SO do Debian em lote.Especifique uma família de imagens. Para usar a imagem mais recente de uma família de imagens específica, use o seguinte formato:
projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
Substitua:
IMAGE_PROJECT_ID
: o ID do projeto que contém a imagem. Por exemplo, para todas as imagens em lote, especifiquebatch-custom-image
.IMAGE_FAMILY
: a família de imagens, que inclui uma ou mais imagens específicas e representa o tipo e a versão principal do SO. Por exemplo, para ver todas as famílias de imagens do SO da VM do Batch, consulte uma lista de imagens do SO da VM.
Especifique uma versão da imagem. Para usar uma versão específica de uma imagem do SO da VM, use o seguinte formato:
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
Substitua:
IMAGE_PROJECT_ID
: o ID do projeto que contém a imagem. Por exemplo, para todas as imagens em lote, especifiquebatch-custom-image
.IMAGE_NAME
: o nome da imagem, que representa uma versão específica de uma imagem do SO da VM. Por exemplo, para ver todas as versões de imagem do SO da VM no Batch, consulte uma lista de imagens do SO da VM.
BOOT_DISK_TYPE
: o tipo de disco do disco de inicialização, que pode serpd-standard
,pd-balanced
,pd-ssd
oupd-extreme
. O tipo de disco padrão para discos de inicialização épd-balanced
.BOOT_DISK_SIZE
: o tamanho do novo disco de inicialização permanente em GB. Esse valor precisa obedecer a todos os requisitos de tamanho do disco de inicialização.
Para criar o job, execute o seguinte comando
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Substitua:
JOB_NAME
: o nome do job.LOCATION
: o local deste job.JSON_CONFIGURATION_FILE
: o caminho para o arquivo JSON com os detalhes de configuração do job.
API
Para criar um job usando a API Batch, use o método jobs.create
e especifique os detalhes de configuração do job.
Para especificar a imagem do SO da VM para o job, inclua o
campo bootDisk
e os subcampos.
Por exemplo, para criar um job de script básico que usa um novo disco de inicialização personalizado, faça a seguinte solicitação 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"
}
}
Substitua:
VM_OS_IMAGE_URI
: um nome de recurso relativo da imagem do SO da VM. Use uma das seguintes opções:Especificar um prefixo do SO do Batch. Para usar a imagem mais recente de um SO em lote específico, use o seguinte formato:
BATCH_OS_PREFIX
Substitua
BATCH_OS_PREFIX
por um dos prefixos de imagem do SO da VM em lote. Por exemplo,batch-debian
é o prefixo do SO do Debian em lote.Especifique uma família de imagens. Para usar a imagem mais recente de uma família específica, use o seguinte formato:
projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
Substitua:
IMAGE_PROJECT_ID
: o ID do projeto que contém a imagem. Por exemplo, para todas as imagens em lote, especifiquebatch-custom-image
.IMAGE_FAMILY
: a família de imagens, que inclui uma ou mais imagens específicas e representa o tipo e a versão principal do SO. Por exemplo, para ver todas as famílias de imagens do SO da VM do Batch, consulte uma lista de imagens do SO da VM.
Especifique uma versão da imagem. Para usar uma versão específica de uma imagem do SO da VM, use o seguinte formato:
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
Substitua:
IMAGE_PROJECT_ID
: o ID do projeto que contém a imagem. Por exemplo, para todas as imagens em lote, especifiquebatch-custom-image
.IMAGE_NAME
: o nome da imagem, que representa uma versão específica de uma imagem do SO da VM. Por exemplo, para ver todas as versões de imagem do SO da VM no Batch, consulte uma lista de imagens do SO da VM.
BOOT_DISK_TYPE
: o tipo de disco do disco de inicialização, que pode serpd-standard
,pd-balanced
,pd-ssd
oupd-extreme
. O tipo de disco padrão para discos de inicialização épd-balanced
.BOOT_DISK_SIZE
: o tamanho do novo disco de inicialização permanente em GB. Esse valor precisa obedecer a todos os requisitos de tamanho do disco de inicialização.
A seguir
- Se você tiver problemas para criar ou executar um job, consulte Solução de problemas.
- Saiba mais sobre discos de inicialização e imagens do SO da VM.
- Saiba mais sobre como criar um job.
- Saiba como visualizar jobs e tarefas.