Use links simbólicos para aceder a discos associados a uma VM do Linux

Quando anexa um disco a uma máquina virtual (VM) que usa um SO Linux, o Google Cloud Platform Google Cloud cria automaticamente um link simbólico (symlink) para o disco. Para aceder a volumes de discos persistentes ou discos SSD locais na sua VM Linux, use os links simbólicos. Estes links simbólicos são previsíveis e permanecem consistentes nos reinícios. Google Cloud cria links simbólicos para todos os discos anexados a uma VM no /dev/disk/by-id.

Este documento explica como identificar os links simbólicos corretos para os discos anexados a uma VM.

Os links simbólicos são criados em /dev/disk/by-id quando um disco é anexado à VM, durante ou após a criação da VM. Os nomes dos links simbólicos são criados da seguinte forma:

Persistent Disk e Google Cloud Hyperdisk

Os links simbólicos são criados com as seguintes regras:

  • Se especificou um nome de dispositivo personalizado quando criou o disco: google-DEVICE_NAME
  • Se não especificou um nome de dispositivo personalizado quando criou o disco:
    • Disco de arranque: google-VM_NAME
    • Disco não de arranque: google-DISK_NAME

Depois de formatar o disco, o link simbólico é anexado com -partN, onde N é o número da partição, por exemplo, google-data-disk-part1.

Discos SSD local

Os links simbólicos de SSDs locais têm formatos diferentes consoante a interface de disco.

  • SCSI:
    • Se especificou um nome de dispositivo personalizado quando criou o disco: google-DEVICE_NAME
    • Se não especificou um nome de dispositivo personalizado quando criou o disco: google-local-ssd-N, onde N é o número do disco SSD local, a começar em 0.
  • NVMe: os links simbólicos têm o nome google-local-nvme-ssd-N, em que N é o número do SSD, a começar em 0.

Depois de formatar um disco SSD local, o link simbólico é anexado com -partN, onde N é o número da partição, por exemplo, google-local-nvme-ssd-0-part1.

Links simbólicos de dispositivos

O Compute Engine cria elos simbólicos adicionais no diretório com base no tipo de disco e na interface, por exemplo, scsi-0Google_PersistentDisk_DEVICE_NAME. Estes links têm a mesma função que os links simbólicos mencionados anteriormente.

Exemplo 1: VM C3 com SSD local anexado

Suponhamos que criou uma VM com as seguintes propriedades:

  • Nome da VM: instance-1
  • Série de máquinas: C3
  • Tipo de interface de disco: NVMe para o disco persistente e o SSD local
  • Discos adicionais: nenhum
  • Discos SSD locais anexados: 2
  • Nomes de dispositivos personalizados usados: nenhum

O Compute Engine cria os seguintes links simbólicos para essa VM:

ls -l /dev/disk/by-id/google-*
google-instance-1 -> ../../nvme2n1
google-instance-1-part1 -> ../../nvme2n1p1
google-instance-1-part14 -> ../../nvme2n1p14
google-instance-1-part15 -> ../../nvme2n1p15
google-local-nvme-ssd-0 -> ../../nvme0n1
google-local-nvme-ssd-1 -> ../../nvme1n1

Neste exemplo, a ligação simbólica do disco de arranque do disco persistente é google-instance-1, que se baseia no nome da VM. O disco de arranque está formatado e tem o sistema operativo instalado. O disco de arranque tem 3 partições: part1, part14 e part 15. Os discos SSD locais anexados não estão formatados, pelo que foi criado apenas um único link simbólico para cada disco SSD local.

Exemplo 2: VM N2 com SSD local NVMe anexado e disco persistente adicional

Suponhamos que criou uma VM com as seguintes propriedades:

  • Nome da VM: instance-2
  • Série de máquinas: N2
  • Tipo de interface de disco: SCSI para disco persistente e NVMe para SSD local
  • Discos adicionais: 1 disco persistente denominado extra-scsi-disk
  • Discos SSD locais anexados: 2
  • Nomes de dispositivos personalizados usados: nenhum

Os seguintes links simbólicos são criados para essa VM:

ls -l /dev/disk/by-id/google-*
google-extra-scsi-disk -> ../../sdb
google-instance-2 -> ../../sda
google-instance-2-part1 -> ../../sda1
google-instance-2-part14 -> ../../sda14
google-instance-2-part15 -> ../../sda15
google-local-nvme-ssd-0 -> ../../nvme0n1
google-local-nvme-ssd-0-part1 -> ../../nvme0n1p1
google-local-nvme-ssd-1 -> ../../nvme0n2

Neste exemplo, a ligação simbólica do disco de arranque do disco persistente é google-instance-2, que se baseia no nome da VM. O disco de arranque está formatado e tem a imagem do SO instalada. O disco de arranque tem 3 partições: part1, part14 e part 15. O primeiro disco SSD local também é particionado, com uma única partição, pelo que é criado um link simbólico adicional para essa partição do disco. O disco persistente adicional adicionado à VM tem o link simbólico google-extra-scsi-disk, que se baseia no nome do disco. O disco persistente adicional e o segundo disco SSD local não estão formatados, pelo que apenas é apresentado um único link simbólico para esses discos.

O que se segue?