Este documento descreve como usar a nomenclatura persistente de dispositivos em sua VM Linux.
Para VMs que usam um sistema operacional Linux, os nomes dos dispositivos, por exemplo /dev/sda
, podem mudar depois de executar procedimentos como os seguintes:
- Iniciando e parando uma VM
- Desanexando e reconectando discos
- Alterando 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 quando uma VM é iniciada ou um dispositivo é anexado. Desconectar um dispositivo ou parar a VM libera o nome do dispositivo. Quando o dispositivo é reconectado ou a VM reiniciada, um novo nome de dispositivo é atribuído no intervalo disponível. O kernel do Linux não garante a ordem dos dispositivos nas reinicializações.
Uma alteração no nome do dispositivo pode fazer com que qualquer aplicativo ou script que dependa do nome do dispositivo original não funcione corretamente ou pode fazer com que a VM não inicialize após uma reinicialização.
É recomendável usar a nomenclatura persistente de dispositivos ao fazer referência a discos e partições em suas VMs Linux para evitar esse problema. Você também pode usar links simbólicos .
Antes de começar
- Revise o gerenciamento de dispositivos para seu sistema operacional Linux:
- Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar 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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
-
nvme0n1
- Disco Permanente -
nvme0n1p1
-
nvme0n1p2
-
nvme0n2
- Hiperdisco -
nvme0n2p1
-
nvme0n2p2
-
nvme1n1
– primeiro SSD local -
nvme2n1
- segundo SSD local - Usando um rótulo . Esta opção requer que o sistema de arquivos suporte rótulos e que você adicione um rótulo às partições do disco.
- Usando uma partição ou disco UUID . Um UUID é gerado quando um disco é criado com uma tabela de partição e o UUID é exclusivo por partição.
- Usando um ID de disco permanente (
/dev/disk/by-id
) para Persistent Disk ou Google Cloud Hyperdisk, ou um link simbólico baseado no nome do recurso do disco. - Conecte-se à sua VM.
Se você não souber o nome do dispositivo do disco, poderá encontrar o nome do dispositivo do disco usando o link simbólico.
ls -l /dev/disk/by-id/google-*
A saída é semelhante à 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
Recupere o UUID da partição do disco executando um dos seguintes comandos:
blkid
sudo blkid -s UUID
A saída é semelhante à 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/
A saída é semelhante à 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 arquivo
/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 arquivos.Valide se o dispositivo está montado corretamente executando
mount -av
.sudo mount -av
Se o dispositivo for montado com sucesso, a saída será semelhante a esta:
/ : 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
- Conecte-se à sua VM.
Recupere o ID no disco executando o seguinte comando:
sudo ls -lh /dev/disk/by-id/google-*
A saída é semelhante à 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
, a saída é semelhante a esta: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 arquivo
/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 sucesso, a saída será semelhante a esta:
/ : 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
Nomenclatura de dispositivos em VMs Linux
Os nomes dos dispositivos Linux para os discos anexados à sua VM dependem da interface escolhida ao criar os discos. Quando você usa o comando do sistema operacional
lsblk
para visualizar seus dispositivos de disco, ele exibe o prefixonvme
para discos conectados à interface NVMe e o prefixosd
para discos conectados à interface SCSI.A ordem dos números de disco ou controladores NVMe não é previsível ou consistente nas reinicializações das VMs. Na primeira inicialização, um disco permanente pode ser
nvme0n1
(ousda
para SCSI). Na segunda inicialização, o nome do dispositivo para o mesmo disco permanente pode sernvme2n1
ounvme0n3
(ousdc
para SCSI).Ao acessar discos anexados, você deve usar os links simbólicos criados em
/dev/disk/by-id/
. Esses nomes persistem durante as reinicializações. Para obter mais informações sobre links simbólicos, consulte Links simbólicos para discos anexados a uma VM .Nomes de dispositivos SCSI
O formato de um dispositivo de disco conectado por SCSI é
sda
para o primeiro disco conectado. As partições do disco aparecem comosda1
. Cada disco adicional usa uma letra sequencial, comosdb
esdc
. Quandosdz
é alcançado, os próximos discos adicionados terão nomes comosdaa
,sdab
esdac
, atésddx
.Nomes de dispositivos NVMe
O formato de um dispositivo de disco conectado a NVMe em sistemas operacionais Linux é
nvme number n namespace
. Onumber
representa o número do controlador de disco NVMe e namespace é um ID de namespace NVMe atribuído pelo controlador de disco NVMe. Para partições, p n é anexado ao nome do dispositivo, onde n é um número, começando com 1, que denota a n partição .O número do controlador começa em
0
. Um único disco NVMe anexado à sua instância de computação tem um nome de dispositivonvme0n1
. A maioria dos tipos de máquinas usa um único controlador de disco NVMe. Os nomes dos dispositivos NVMe sãonvme0n1
,nvme0n2
,nvme0n3
e assim por diante.Os discos SSD locais anexados a séries de máquinas de terceira geração ou instâncias posteriores têm um controlador NVMe separado para cada disco. Nessas VMs, os nomes dos dispositivos SSD locais conectados ao NVMe se parecem com
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 em séries de máquinas de terceira geração ou posteriores usam NVMe para disco permanente e hiperdisco do Google Cloud, além de discos SSD locais. Cada VM possui 1 controlador NVMe para disco permanente e hiperdisco e 1 controlador NVMe para cada disco SSD local. O controlador NVMe de disco permanente e hiperdisco tem um único namespace NVMe para todos os discos conectados. Portanto, uma instância da série de máquinas de terceira geração com um disco permanente e um hiperdisco (cada um com duas partições) e dois discos SSD locais não formatados usa os seguintes nomes de dispositivos:
Use nomenclatura persistente de dispositivos
Para configurar um nome de dispositivo persistente, atribua um nome de ponto de montagem para o dispositivo de disco no arquivo
fstab
. Existem três maneiras de configurar um nome de dispositivo persistente.Recomendamos usar o UUID da partição ou o link simbólico para VMs Linux.
UUID da partição
Para encontrar o UUID de um disco, execute as seguintes etapas:
ID do disco permanente
Para encontrar o nome do dispositivo de disco usando o ID do disco permanente ou link simbólico, conclua as etapas a seguir:
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-04-21 UTC.
-