Usar links simbólicos para acessar discos anexados a uma VM do Linux


Quando você anexa um disco a uma máquina virtual (VM) que usa um SO Linux, o Google Cloud cria automaticamente um link simbólico para o disco. Para acessar volumes de Disco permanente ou discos SSD locais na VM do Linux, use os links simbólicos. Esses links simbólicos são previsíveis e permanecem consistentes durante as reinicializações. O Google Cloud cria links simbólicos para todos os discos anexados a uma VM em /dev/disk/by-id.

Neste documento, explicamos como identificar os links simbólicos corretos para os discos anexados a uma VM.

Limitações

Se você anexar discos SSD locais a uma VM C3 ou C3D, talvez seja necessário seguir outras etapas para criar os links simbólicos para a instância Local Discos SSD. Essas etapas serão necessárias apenas se você usar uma das imagens públicas a seguir oferecidas pelo Google Cloud:

  • SLES 15 SP4 e SP5
  • SLES 12 SP4

Essas etapas extras só se aplicam a discos SSD locais. Não é preciso fazer nada para os volumes do Persistent Disk.

As imagens públicas na lista anterior não têm os links simbólicos do SSD local no formato /dev/disk/by-id/google-local-nvme-ssd-N. Somente links simbólicos que usam as informações do dispositivo, como nvme-nvme.1ae0-6e766d655f636172642d7064-6e766d655f636172642d7064-00000001, existem nessas imagens.

Para receber os links simbólicos fáceis de usar dessas imagens do Linux, é preciso atualizar as regras udev e adicionar um script à instância.

Para instruções sobre como atualizar as regras do udev para oferecer suporte a links simbólicos para discos SSD locais em C3 e C3D, consulte Como solucionar problemas de discos NVMe.

Como alternativa ao uso de links simbólicos, é possível acessar os discos SSD locais nas VMs usando os nomes de dispositivo deles. Por exemplo, /dev/nvme0n1.

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 maneira:

Disco permanente e hiperdisco do Google Cloud

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

  • Se você especificou um nome de dispositivo personalizado quando criou o disco: google-DEVICE_NAME
  • Se você não especificou um nome de dispositivo personalizado ao criar o disco:
    • Disco de inicialização: google-VM_NAME
    • Disco que não é de inicialização: google-DISK_NAME

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

Discos SSD locais

Os links simbólicos do SSD local têm formatos diferentes, dependendo da interface do disco.

  • SCSI: os links simbólicos são chamados de google-local-ssd-N, em que N é o número do disco SSD local, começando em 0.
  • NVMe: os links simbólicos são chamados de google-local-nvme-ssd-N, em que N é o número do SSD, começando em 0.

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

Links simbólicos do dispositivo

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

Exemplo 1: VM C3 com SSD local anexado

Suponha que você tenha criado uma VM com as seguintes propriedades:

  • Nome da VM: instance-1
  • Série das máquinas: C3
  • Tipo de interface do disco: NVMe para disco permanente e 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, o link simbólico do disco de inicialização do disco permanente é google-instance-1, que é baseado no nome da VM. O disco de inicialização é formatado e tem o sistema operacional instalado. O disco de inicialização tem três partições: parte 1, parte 14 e parte 15. Os discos SSD locais anexados não estão formatados. Por isso, apenas um link simbólico foi criado para cada disco SSD local.

Exemplo 2: VM N2 com SSD local NVMe anexado e disco permanente extra

Suponha que você tenha criado uma VM com as seguintes propriedades:

  • Nome da VM: instance-2
  • Série das máquinas: N2
  • Tipo de interface do disco: SCSI para Persistent Disk e NVMe para SSD local
  • Discos adicionais: um disco permanente chamado extra-scsi-disk
  • Discos SSD locais anexados: 2
  • Nomes de dispositivos personalizados usados: nenhum

Os links simbólicos a seguir 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, o link simbólico do disco de inicialização do disco permanente é google-instance-2, que é baseado no nome da VM. O disco de inicialização é formatado e tem a imagem do SO instalada. O disco de inicialização tem três partições: parte 1, parte 14 e parte 15. O primeiro disco SSD local também é particionado com uma única partição. Portanto, há um link simbólico adicional criado para essa partição de disco. O disco permanente extra adicionado à VM tem o link simbólico google-extra-scsi-disk, que é baseado no nome do disco. O disco permanente extra e o segundo disco SSD local não estão formatados. Portanto, somente um link simbólico é listado para esses discos.

A seguir