Neste documento, descrevemos como usar a nomenclatura de dispositivos persistentes na VM Linux.
Para VMs que usam um sistema operacional Linux, os nomes de dispositivos, como /dev/sda
,
podem mudar depois que você executar procedimentos como os seguintes:
- Como iniciar e interromper uma VM
- Como desconectar e reconectar discos
- Como mudar tipos de máquina
Essa mudança ocorre porque os nomes dos dispositivos são atribuídos de um intervalo disponível depois que uma VM é iniciada ou um dispositivo é anexado. Remover um dispositivo ou interromper a VM libera o nome do dispositivo. Quando o dispositivo é reconectado ou a VM reiniciada, um novo nome de dispositivo é atribuído do intervalo disponível. O kernel do Linux não garante a ordenação do dispositivo após reinicializações.
Uma mudança no nome do dispositivo pode fazer com que todos os aplicativos ou scripts que dependem do nome original do dispositivo não funcionem corretamente ou que a VM não seja inicializada após uma reinicialização.
Para evitar esse problema, é recomendável usar a nomenclatura de dispositivos permanentes ao se referir a discos e partições nas VMs do Linux. Também é possível usar links simbólicos.
Antes de começar
- Revise o gerenciamento de dispositivos do seu sistema operacional Linux:
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud.
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine da seguinte maneira.
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Usando um rótulo. Essa opção precisa que os sistemas de arquivos sejam compatíveis com rótulos e que você adicione um rótulo às partições de disco.
- usando uma partição ou um 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
) do Persistent Disk ou Google Cloud Hyperdisk, ou um link simbólico, baseado no nome do recurso de disco. - Conectar-se à VM.
Se você não souber o nome do dispositivo de disco, encontre-o usando o link simbólico.
ls -l /dev/disk/by-id/google-*
O resultado será assim:
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
O resultado será assim:
/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 será assim:
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
Nesse exemplo,
/data
é o ponto de montagem eext4
é o tipo de sistemas de arquivos.Execute
mount -av
para confirmar que o dispositivo está ativado corretamente.sudo mount -av
Se o dispositivo for ativado corretamente, 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
- Conectar-se à VM.
Execute o comando a seguir para recuperar o ID no disco
sudo ls -lh /dev/disk/by-id/google-*
O resultado será assim:
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
NVME
discos, a saída será semelhante a estalrwxrwxrwx 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
Execute
mount -av
para confirmar que o dispositivo está ativado corretamente.sudo mount -av
Se o dispositivo for ativado corretamente, 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
Usar nomenclatura de dispositivo permanente
Para configurar um nome de dispositivo permanente, atribua um nome de ponto de montagem ao dispositivo de disco no arquivo
fstab
. Há três maneiras de configurar um nome de dispositivo permanente.Recomendamos usar o UUID da partição ou o link simbólico para VMs do 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 o link simbólico, conclua as seguintes etapas:
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 2024-09-24 UTC.
-