Anexar um disco que não é de inicialização a uma VM


Neste documento, explicamos como anexar um disco zonal que não seja de inicialização à VM.

Ao configurar discos para a instância de máquina virtual (VM), crie os discos que não são de inicialização das seguintes maneiras:

  • Criar e anexar os discos ao criar a VM
  • Criar os discos, criar a VM e anexá-los a ela.

Nesta página, explicamos como anexar discos criados separadamente a uma VM.

Para discos de inicialização, é possível criá-los a partir de uma imagem do SO ou de um snapshot de disco e usá-lo para criar uma VM. Para mais informações, consulte Criar um disco de inicialização personalizado.

Papéis e permissões necessárias

Para ter as permissões necessárias para anexar um disco a uma VM, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

  • Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1)
  • Para se conectar a uma instância de VM que possa ser executada como uma conta de serviço: Usuário da conta de serviço (v1) (papel roles/iam.serviceAccountUser )

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Esses papéis predefinidos contêm as permissões necessárias para anexar um disco a uma VM. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As permissões a seguir são necessárias para anexar um disco a uma VM:

  • Para anexar um disco a uma VM:
    • compute.instances.attachDisk na VM
    • compute.instances.attachDisk na VM
    • compute.disks.use no disco que você quer anexar à VM.
  • Para formatar e ativar o volume anexado: compute.instances.setMetadata na VM

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Limitações

Ao anexar um disco a uma VM, esteja ciente das seguintes limitações:

  • É possível anexar até 127 discos secundários, não inicializáveis e zonais a uma VM.
  • Não será possível anexar um disco a uma VM se isso exceder a capacidade máxima de disco para a VM.

Como anexar um disco que não é de inicialização à VM

É possível anexar um disco zonal que não seja de inicialização a uma VM usando o console do Google Cloud, a CLI do Google Cloud ou o REST.

Especifique um nome de dispositivo personalizado ao anexar o disco a uma VM. O nome especificado é usado para gerar um link simbólico para o disco no SO convidado, o que facilita a identificação e o gerenciamento de discos na VM.

Console

  1. Acesse a página Instâncias da VM.

    Acessar a página "Instâncias de VM"

  2. Clique no nome da VM a que você quer adicionar um disco.

  3. Na página de detalhes, clique em Editar.

  4. Na seção Armazenamento, em Discos adicionais, clique em + Anexar disco atual.

  5. Selecione o nome do disco.

  6. Escolha o modo de anexo e a regra de exclusão do disco.

  7. Opcional: no título Nome do dispositivo, selecione a opção Usar um nome de dispositivo personalizado. O nome inserido é usado para gerar um link simbólico para o disco, facilitando a identificação dele.

  8. Clique em Salvar para aplicar as alterações e anexar o disco à VM.

gcloud

Para anexar um disco a uma VM, use o comando gcloud compute instances attach-disk.

gcloud compute instances attach-disk VM_NAME \
    --disk DISK_NAME --device-name=DEVICE_NAME

Substitua:

  • VM_NAME: o nome da VM em que você está adicionando o novo disco zonal.
  • DISK_NAME: o nome do novo disco que você está anexando à VM.
  • DEVICE_NAME (opcional): um nome que o SO convidado usa para identificar o disco.

Terraform

Para anexar o disco a uma VM, use o recurso google_compute_instance.

resource "google_compute_instance" "test_node" {
  name         = "test-node"
  machine_type = "f1-micro"
  zone         = "us-west1-a"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }
  attached_disk {
    source      = google_compute_disk.default.id
    device_name = google_compute_disk.default.name
  }

  network_interface {
    network = "default"
    access_config {
      # Ephemeral IP
    }
  }

  # Ignore changes for persistent disk attachments
  lifecycle {
    ignore_changes = [attached_disk]
  }


}

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

REST

Para anexar um disco a uma VM, crie uma solicitação POST para o método compute.instances.attachDisk e inclua o URL no disco que você quer anexar.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/attachDisk

{
   "source": "/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME",
   "deviceName": DEVICE_NAME
}

Substitua:

  • PROJECT_ID: o ID do projeto
  • ZONE: a zona em que a VM e o disco estão localizados
  • VM_NAME: o nome da VM a que você quer anexar o disco
  • DISK_NAME: o nome do disco que você quer anexar
  • DEVICE_NAME (opcional): um nome que o SO convidado usa para criar um link simbólico, que ajuda a identificar o disco.

Depois de anexar um disco a uma VM, é preciso formatar e ativar o disco para que o sistema operacional convidado na VM possa usar o espaço de armazenamento disponível.

A seguir