Anexe um disco não de arranque a uma VM

Esta página explica como anexar um disco não de arranque existente a uma ou mais instâncias de máquinas virtuais (VMs).

Para criar ou alterar o disco de arranque de uma VM, consulte os artigos Criar um disco de arranque e Desassociar e voltar a associar um disco de arranque, respetivamente.

Para criar um novo disco, consulte os artigos Crie um novo volume de disco persistente e Crie um novo volume de Hyperdisk.

Funções e autorizações necessárias

Para receber as autorizações de que precisa para anexar um disco a uma VM, peça ao seu administrador para lhe conceder as seguintes funções da IAM no projeto:

  • Administrador de instâncias do Compute (v1) (roles/compute.instanceAdmin.v1)
  • Para se ligar a uma instância de VM que pode ser executada como uma conta de serviço: Utilizador da conta de serviço (v1) (função roles/iam.serviceAccountUser)

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Estas funções predefinidas contêm as autorizações necessárias para anexar um disco a uma VM. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações 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 quer anexar à VM
  • Para formatar e montar o volume anexado: compute.instances.setMetadata na VM

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Modo de anexação do disco

Quando anexa um disco a uma VM, indica como a VM pode aceder aos dados no disco especificando o modo de anexação do disco. Pode escolher o modo de leitura ou de leitura/escrita.

O modo predefinido é de leitura/escrita.

Partilhe um disco entre VMs

Pode partilhar o mesmo disco entre VMs para que cada VM possa aceder simultaneamente ao disco anexando-o a cada VM. Pode anexar um disco a várias VMs se o tipo de disco e o tipo de máquina da VM o suportarem.

Para anexar um disco a várias VMs, siga o procedimento em Anexe um disco não de arranque à sua VM para cada VM.

Tem de usar o mesmo modo de associação de disco para todas as VMs às quais associa o disco. Por exemplo, não pode anexar um disco a uma VM no modo de leitura/escrita e anexá-lo em simultâneo a outra VM no modo de leitura.

Para obter informações sobre como associar um disco a várias VMs, incluindo os tipos de discos suportados, consulte o artigo Partilhe um disco entre VMs.

Anexar um volume Hyperdisk a várias VMs

Para anexar um volume do Hyperdisk a várias VMs, certifique-se de que o modo de acesso do disco está definido para um valor adequado para o seu exemplo de utilização. Para ver instruções sobre como definir o modo de acesso, consulte defina o modo de acesso do disco.

Quando anexa um volume do Hyperdisk a uma VM, tem de escolher um modo de anexo do disco que não entre em conflito com o modo de acesso do disco. Por exemplo, não pode usar o modo de anexo de leitura com um disco que esteja no modo de gravação única ou de gravação múltipla.

Limitações

Quando anexar um disco a uma VM, tenha em atenção as seguintes limitações:

  • Um disco tem de estar na mesma zona que a VM à qual o quer anexar. Para discos regionais, a VM tem de estar na mesma zona que uma das réplicas do disco.

  • Pode anexar até 127 discos secundários, não de arranque e zonais a uma VM.

  • Não pode anexar um disco a uma VM se, ao fazê-lo, exceder os limites de tamanho e anexos do Hyperdisk.

  • Os seguintes tipos de discos não suportam o modo de leitura:

    • Hyperdisk Balanced
    • Hiperdisco equilibrado de alta disponibilidade
    • Débito do Hyperdisk
    • Hyperdisk Extreme
  • Quando associa um disco a várias VMs, tem de usar o mesmo modo de associação de disco para todas as VMs.

  • Quando anexa um disco a várias VMs, aplicam-se restrições adicionais. Consulte as restrições para partilhar um disco entre VMs no modo só de leitura e no modo de gravação múltipla.

  • Os discos associados a várias VMs não suportam a eliminação automática, ou seja, não podem ser eliminados automaticamente quando a VM é eliminada.

Anexe um disco não de arranque a uma VM

Pode anexar um disco zonal não de arranque a uma VM através da Google Cloud consola, da Google Cloud CLI ou da API REST.

Quando anexar um disco a uma VM, tenha em atenção os seguintes pontos:

  • Use um nome de dispositivo personalizado: a Google recomenda que especifique um nome de dispositivo personalizado quando anexar um disco a uma VM. O nome que especificar é usado para gerar um symlink para o disco no SO convidado, o que facilita a identificação e a gestão de discos na VM.

  • Anexar um disco a várias VMs: para anexar um disco a várias VMs, repita o procedimento nesta secção para cada VM. Tem de usar o mesmo modo de ligação de disco para todas as VMs às quais liga o disco.

Para anexar um disco persistente regional ou um volumeHyperdisk equilibrado de alta disponibilidade à sua VM, consulte, em alternativa, o artigo Anexe um disco regional à sua VM.

Consola

  1. Aceda à página Instâncias de VM.

    Aceda à página de instâncias de VM

  2. Clique no nome da VM à qual quer adicionar um disco.

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

  4. Na secção Armazenamento, em Discos adicionais, clique em + Anexar disco existente.

  5. Na lista Disco, selecione o disco que quer anexar. Se o disco não estiver listado, certifique-se de que está na mesma localização que a VM. Isto significa a mesma zona para um disco zonal e a mesma região para um disco regional.

  6. Para o Modo de ligação do disco, selecione Só de leitura para permitir apenas que a VM leia a partir do disco. Para permitir o acesso de leitura/escrita à VM, selecione Leitura/escrita.

  7. Em Regra de eliminação, especifique se pretende eliminar o disco quando a VM for eliminada. Para manter o disco quando a VM é eliminada, selecione Manter disco. Para eliminar o disco quando a VM for eliminada, selecione Eliminar disco. Se estiver a anexar o disco a várias VMs, tem de selecionar Manter disco.

  8. Opcional: no título Nome do dispositivo, selecione a opção Usar um nome do dispositivo personalizado. O nome que introduzir é usado para gerar um link simbólico para o disco, o que facilita a identificação do disco.

  9. Para aplicar as alterações ao disco, clique em Concluído.

  10. Clique em Guardar 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. Use a flag mode para especificar o modo de associação do disco.

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

Substitua o seguinte:

  • VM_NAME: o nome da VM onde está a adicionar o novo disco persistente zonal
  • DISK_NAME: o nome do novo disco que está a anexar à VM.
  • DEVICE_NAME: Opcional: um nome que o SO convidado usa para identificar o disco.
  • DISK_ATTACHMENT_MODE: Opcional: como anexar o disco à VM. Para o modo de leitura, defina como ro. Para o modo de leitura/escrita, defina como rw ou omita esta flag porque rw é a predefinição.

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 os comandos básicos do Terraform.

REST

Para anexar um disco a uma VM, crie um pedido POST para o método compute.instances.attachDisk e inclua o URL do disco que quer anexar.

Para especificar o modo de anexo do disco, use o parâmetro mode.

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,
   "mode" : "DISK_ATTACHMENT_MODE"
}

Substitua o seguinte:

  • PROJECT_ID: o ID do seu projeto
  • ZONE: a zona onde a VM e o disco estão localizados
  • VM_NAME: o nome da VM à qual quer anexar o disco
  • DISK_NAME: o nome do disco a anexar
  • DEVICE_NAME: Opcional: um nome que o SO do convidado usa para criar um link simbólico, o que ajuda a identificar o disco.
  • DISK_ATTACHMENT_MODE: Opcional: como o disco deve ser associado à VM. Para o modo de leitura, use READ_ONLY. Para o modo de leitura/escrita, defina como READ_WRITE ou omita porque READ_WRITE é a predefinição.

Depois de anexar um disco a uma VM, estabeleça ligação à VM e ative o sistema operativo (SO) da VM para usar o disco:

  • Se anexou um disco em branco, formate e monte o disco
  • Se anexou um disco não vazio, monte o disco

Saiba como formatar e montar os novos discos em VMs Linux ou Windows.

O que se segue?