Este documento descreve como usar a nomenclatura persistente de dispositivos na sua VM Linux.
Para VMs que usam um sistema operativo Linux, os nomes dos dispositivos, por exemplo, /dev/sda
, podem mudar depois de realizar procedimentos como os seguintes:
- Iniciar e parar uma VM
- Desanexar e voltar a anexar discos
- Alterar tipos de máquinas
Esta alteração do nome do dispositivo ocorre porque os nomes dos dispositivos são atribuídos a partir de um intervalo disponível assim que uma VM é iniciada ou um dispositivo é anexado. Desassociar um dispositivo ou parar a VM liberta o nome do dispositivo. Quando o dispositivo é novamente associado ou a VM é reiniciada, é atribuído um novo nome de dispositivo a partir do intervalo disponível. O kernel do Linux não garante a ordem dos dispositivos nos reinícios.
Uma alteração do nome do dispositivo pode fazer com que quaisquer aplicações ou scripts que dependam do nome do dispositivo original não funcionem corretamente ou pode fazer com que a MV não seja iniciada após um reinício.
Recomendamos que use a atribuição de nomes persistente aos dispositivos quando fizer referência a discos e partições nas suas VMs Linux para evitar este problema. Também pode usar links simbólicos.
Antes de começar
- Reveja a gestão de dispositivos para o seu sistema operativo Linux:
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- Set a default region and zone.
Atribuição de nomes de dispositivos em VMs do Linux
Os nomes dos dispositivos Linux para os discos anexados à sua VM dependem da interface que escolher quando criar os discos. Quando usa o comando do sistema operativo
lsblk
para ver os dispositivos de disco, é apresentado o prefixonvme
para os discos anexados com a interface NVMe e o prefixosd
para os discos anexados com a interface SCSI.A ordem dos números de discos ou dos controladores NVMe não é previsível nem consistente nos reinícios das VMs. Na primeira inicialização, um disco persistente pode ser
nvme0n1
(ousda
para SCSI). No segundo arranque, o nome do dispositivo para o mesmo disco persistente pode sernvme2n1
ounvme0n3
(ousdc
para SCSI).Quando acede a discos anexados, deve usar os links simbólicos criados em
/dev/disk/by-id/
. Estes nomes persistem nos reinícios. Para mais informações sobre links simbólicos, consulte o artigo Links simbólicos para discos anexados a uma VM.Nomes dos dispositivos SCSI
O formato de um dispositivo de disco anexado a SCSI é
sda
para o primeiro disco anexado. As partições do disco aparecem comosda1
. Cada disco adicional usa uma letra sequencial, comosdb
esdc
. Quando o limite desdz
discos é atingido, os discos adicionados posteriormente têm nomes comosdaa
,sdab
esdac
, até um máximo desddx
.Nomes dos dispositivos NVMe
O formato de um dispositivo de disco ligado por NVMe nos sistemas operativos Linux é
nvmenumbernnamespace
. O elementonumber
representa o número do controlador de disco NVMe e namespace é um ID do espaço de nomes NVMe atribuído pelo controlador de disco NVMe. Para partições, é anexado pn ao nome do dispositivo, em que n é um número, a começar por 1, que indica a nth partição.O número do controlador começa em
0
. Um único disco NVMe anexado à sua instância de computação tem o nome do dispositivonvme0n1
. A maioria dos tipos de máquinas usa um único controlador de disco NVMe. Os nomes dos dispositivos NVMe são, então,nvme0n1
,nvme0n2
,nvme0n3
, e assim sucessivamente.Os discos SSD locais associados a instâncias da série de máquinas de terceira geração ou posteriores têm um controlador NVMe separado para cada disco. Nestas VMs, os nomes dos dispositivos ligados por NVMe SSD local têm o seguinte aspeto:
nvme0n1
,nvme1n1
envme2n1
. O número de discos SSD locais anexados depende do tipo de máquina da sua VM.As instâncias de computação baseadas na série de máquinas de terceira geração ou posterior usam NVMe para o Persistent Disk e o Google Cloud Hyperdisk, bem como os discos SSD locais. Cada VM tem 1 controlador NVMe para o disco persistente e o Hyperdisk, e 1 controlador NVMe para cada disco SSD local. O disco persistente e o controlador NVMe do Hyperdisk têm um único espaço de nomes NVMe para todos os discos anexados. Assim, uma instância de série de máquinas de terceira geração com um disco persistente e um Hyperdisk (cada um com 2 partições) e 2 discos SSD locais não formatados usa os seguintes nomes de dispositivos:
nvme0n1
– Disco persistentenvme0n1p1
nvme0n1p2
nvme0n2
– Hyperdisknvme0n2p1
nvme0n2p2
nvme1n1
- primeiro SSD localnvme2n1
segundos de SSD local
Use a nomenclatura persistente de dispositivos
Para configurar um nome de dispositivo persistente, atribui um nome de ponto de montagem ao dispositivo de disco no ficheiro
fstab
. Existem três formas de configurar um nome de dispositivo persistente.- Usando uma etiqueta. Esta opção requer que o sistema de ficheiros suporte etiquetas e que adicione uma etiqueta às partições do disco.
- Usando um UUID de partição ou disco. É gerado um UUID quando é criado um disco com uma tabela de partições, e o UUID é exclusivo por partição.
- Usando um ID de disco persistente (
/dev/disk/by-id
) para o disco persistente ou o Google Cloud Hyperdisk, ou um symlink, que se baseia no nome do recurso do disco.
Recomendamos que use o UUID da partição ou o link simbólico para VMs Linux.
UUID da partição
Para encontrar o UUID de um disco, siga estes passos:
- Estabeleça ligação à sua VM.
Se não souber o nome do dispositivo do disco, pode encontrar o nome do dispositivo do disco através do link simbólico.
ls -l /dev/disk/by-id/google-*
O resultado é semelhante ao seguinte:
lrwxrwxrwx 1 root root 9 Oct 23 15:58 /dev/disk/by-id/google-my-vm -> ../../sda lrwxrwxrwx 1 root root 10 Oct 23 15:58 /dev/disk/by-id/google-my-vm-part1 -> ../../sda1 lrwxrwxrwx 1 root root 11 Oct 23 15:58 /dev/disk/by-id/google-my-vm-part15 -> ../../sda15 lrwxrwxrwx 1 root root 9 Oct 23 15:58 /dev/disk/by-id/google-my-vm-app-data -> ../../nvme0n1
Execute um dos seguintes comandos para obter o UUID da partição do disco:
blkid
sudo blkid -s UUID
O resultado é semelhante ao seguinte:
/dev/sda1: UUID="4f570f2d-fffe-4c7d-8d8f-af347af7612a" /dev/sda15: UUID="E0B2-DFAF" /dev/nvme0n1: UUID="9e617251-6a92-45ff-ba40-700a9bdeb03e"
ls -l
sudo ls -l /dev/disk/by-uuid/
O resultado é semelhante ao seguinte:
lrwxrwxrwx 1 root root 10 Sep 22 18:12 4f570f2d-fffe-4c7d-8d8f-af347af7612a -> ../../sda1 lrwxrwxrwx 1 root root 13 Sep 22 18:15 9e617251-6a92-45ff-ba40-700a9bdeb03e -> ../../nvme0n1 lrwxrwxrwx 1 root root 11 Sep 22 18:12 E0B2-DFAF -> ../../sda15
Adicione uma entrada para o UUID do seu dispositivo no ficheiro
/etc/fstab
.UUID=9e617251-6a92-45ff-ba40-700a9bdeb03e /data ext4 defaults 0 0
Neste exemplo,
/data
é o ponto de montagem eext4
é o tipo de sistema de ficheiros.Valide se o dispositivo está montado corretamente executando
mount -av
.sudo mount -av
Se o dispositivo for montado com êxito, a saída é semelhante à seguinte:
/ : ignored /boot/efi : already mounted mount: /data does not contain SELinux labels. You just mounted an file system that supports labels which does not contain labels, onto an SELinux box. It is likely that confine applications will generate AVC messages and not be allowed access to this filesystem. For more details see restorecon(8) and mount(8). /data : successfully mounted
ID do disco persistente
Para encontrar o nome do dispositivo de disco através do ID do disco persistente ou do link simbólico, conclua os seguintes passos:
- Estabeleça ligação à sua VM.
Execute o seguinte comando para obter o ID no disco:
sudo ls -lh /dev/disk/by-id/google-*
O resultado é semelhante ao seguinte:
lrwxrwxrwx. 1 root root 9 May 16 17:34 google-disk-2 -> ../../sdb lrwxrwxrwx. 1 root root 9 May 16 09:09 google-persistent-disk-0 -> ../../sda lrwxrwxrwx. 1 root root 10 May 16 09:09 google-persistent-disk-0-part1 -> ../../sda1 lrwxrwxrwx. 1 root root 10 May 16 09:09 google-persistent-disk-0-part2 -> ../../sda2
Para discos
NVME
, o resultado é semelhante ao seguinte:lrwxrwxrwx 1 root root 13 Jun 1 10:27 google-disk-3 -> ../../nvme0n2 lrwxrwxrwx 1 root root 13 Jun 1 10:25 google-t2a -> ../../nvme0n1 lrwxrwxrwx 1 root root 15 Jun 1 10:25 google-t2a-part1 -> ../../nvme0n1p1 lrwxrwxrwx 1 root root 16 Jun 1 10:25 google-t2a-part15 -> ../../nvme0n1p15
Adicione o link simbólico ao ficheiro
/etc/fstab
./dev/disk/by-id/google-disk-2 /data ext4 defaults 0 0
Valide se o dispositivo está montado corretamente executando
mount -av
.sudo mount -av
Se o dispositivo for montado com êxito, a saída é semelhante à seguinte:
/ : ignored /boot/efi : already mounted mount: /data does not contain SELinux labels. You just mounted an file system that supports labels which does not contain labels, onto an SELinux box. It is likely that confine applications will generate AVC messages and not be allowed access to this file system. For more details see restorecon(8) and mount(8). /data : successfully mounted
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-09-19 UTC.
-