En este documento, se describe cómo usar nombres de dispositivos persistentes en tu VM de Linux.
Para las VMs que usan un sistema operativo Linux, los nombres de dispositivos, por ejemplo, /dev/sda
, pueden cambiar después de realizar procedimientos como los siguientes:
- Inicia y detén una VM
- Desconecta y vuelve a conectar discos
- Cambia tipos de máquinas
Este cambio de nombre del dispositivo se produce porque los nombres de los dispositivos se asignan a partir de un rango disponible una vez que se inicia una VM o se conecta un dispositivo. Desconectar un dispositivo o detener la VM libera el nombre del dispositivo. Cuando se vuelve a conectar el dispositivo o se reinicia la VM, se asigna un nombre del dispositivo nuevo del rango disponible. El kernel de Linux no garantiza el orden de los dispositivos durante los reinicios.
Un cambio de nombre del dispositivo puede hacer que cualquier aplicación o secuencia de comandos que dependa del nombre original del dispositivo no funcione de forma correcta o que la VM no se inicie después de un reinicio.
Te recomendamos usar nombres de dispositivos persistentes cuando hagas referencia a discos y particiones en las VMs de Linux para evitar este problema. También puedes usar symlinks.
Antes de comenzar
- Revisa la administración de dispositivos para su sistema operativo Linux:
-
Configura la autenticación si aún no lo hiciste.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera
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.
nvme0n1
: Persistent Disknvme0n1p1
nvme0n1p2
nvme0n2
: Hyperdisknvme0n2p1
nvme0n2p2
nvme1n1
: la primera SSD localnvme2n1
: la segunda SSD local- A través de una etiqueta. Esta opción requiere que el sistema de archivos admita etiquetas y que agregues una etiqueta a las particiones del disco.
- Mediante un disco UUID o una partición. Se genera un UUID cuando se crea un disco con una tabla de particiones y el UUID es único por partición.
- A través de un ID de disco persistente (
/dev/disk/by-id
) para Persistent Disk o Google Cloud Hyperdisk, o un symlink, que se basa en el nombre del recurso del disco. - Conéctate a tu VM.
Si no conoces el nombre del dispositivo del disco, puedes encontrar el nombre del dispositivo del disco con el symlink.
ls -l /dev/disk/by-id/google-*
El resultado es similar a este:
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
Para recuperar el UUID de la partición del disco, ejecuta de uno de los siguientes comandos:
blkid
sudo blkid -s UUID
El resultado es similar a este:
/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/
El resultado es similar a este:
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
Agrega una entrada para el UUID de tu dispositivo en el archivo
/etc/fstab
.UUID=9e617251-6a92-45ff-ba40-700a9bdeb03e /data ext4 defaults 0 0
En este ejemplo,
/data
es el punto de activación yext4
es el tipo de sistema de archivos.Ejecuta
mount -av
para validar que el dispositivo esté activado de forma correcta.sudo mount -av
Si el dispositivo se activó correctamente, el resultado es similar al siguiente:
/ : 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
- Conéctate a tu VM.
Para recuperar el ID en el disco, ejecuta el siguiente comando:
sudo ls -lh /dev/disk/by-id/google-*
El resultado es similar al siguiente:
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 los discos
NVME
, el resultado es similar al siguiente: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
Agrega el symlink al archivo
/etc/fstab
./dev/disk/by-id/google-disk-2 /data ext4 defaults 0 0
Ejecuta
mount -av
para validar que el dispositivo esté activado de forma correcta.sudo mount -av
Si el dispositivo se activó correctamente, el resultado es similar al siguiente:
/ : 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
Nombres de dispositivos en VMs de Linux
Los nombres de los dispositivos Linux para los discos conectados a tu VM dependen de la interfaz que elijas cuando crees los discos. Cuando usas el comando
lsblk
para el sistema operativo para ver los dispositivos del disco, muestra el prefijonvme
para los discos conectados con la interfaz NVMe y el prefijosd
para discos conectados con la interfaz SCSI.El orden de los números de disco o los controladores NVMe no es predecible ni coherente en los reinicios de las VMs. En el primer inicio, un disco persistente podría ser
nvme0n1
(osda
para SCSI). En el segundo inicio, el nombre del dispositivo para el mismo disco persistente podría sernvme2n1
onvme0n3
(osdc
para SCSI).Cuando accedas a discos conectados, debes usar los vínculos simbólicos creados en
/dev/disk/by-id/
. Estos nombres persisten en los reinicios. Para obtener más información sobre los symlinks, consulta Vínculos simbólicos para discos conectados a una VM.Nombres de dispositivos SCSI
El formato de un dispositivo de disco conectado a SCSI es
sda
para el primer disco conectado. Las particiones de disco aparecen comosda1
. Cada disco adicional usa una letra secuencial, comosdb
ysdc
. Cuando se alcanzasdz
, los discos siguientes agregados tienen nombres comosdaa
,sdab
ysdac
, hastasddx
.Nombres de los dispositivos NVMe
El formato de un dispositivo de disco conectado a NVMe en sistemas operativos Linux es
nvmenumbernnamespace
. Elnumber
representa el número de controlador de disco NVMe y namespace es un ID de espacio de nombres de NVMe que asigna el controlador de disco NVMe. Para las particiones, pn se agrega al nombre del dispositivo, en el que n es un número que comienza con 1, lo que denota la nenésima partición.El número de controlador comienza en
0
. Un solo disco NVMe conectado a tu instancia de procesamiento tiene un nombre del dispositivo denvme0n1
. La mayoría de los tipos de máquinas usan un solo controlador de disco NVMe. Los nombres de los dispositivos NVMe sonnvme0n1
,nvme0n2
,nvme0n3
y así sucesivamente.Los discos SSD locales conectados a la serie de máquinas de tercera generación o instancias posteriores tienen un controlador NVMe independiente para cada disco. En estas VMs, los nombres de los dispositivos conectados en NVMe de SSD locales se ven como
nvme0n1
,nvme1n1
ynvme2n1
. La cantidad de discos SSD locales conectados depende del tipo de máquina de tu VM.Las instancias de procesamiento basadas en series de máquinas de tercera generación o posteriores usan NVMe para Persistent Disk y Google Cloud Hyperdisk, y también discos SSD locales. Cada VM tiene 1 controlador NVMe para Hyperdisk y Persistent Disk, y 1 controlador NVMe para cada disco SSD local. El controlador NVMe de Hyperdisk y Persistent Disk tiene un único espacio de nombres de NVMe para todos los discos conectados. Por lo tanto, una instancia de serie de máquinas de tercera generación con un Persistent Disk y un Hyperdisk (cada uno con 2 particiones) y 2 discos SSD locales sin formato usa los siguientes nombres de dispositivos:
Usa nombres de dispositivos persistentes
Para configurar un nombre de dispositivo persistente, asigna un nombre de punto de activación para el dispositivo de disco en el archivo
fstab
. Hay tres maneras de configurar un nombre de dispositivo persistente.Recomendamos usar el UUID de partición o el symlink para las VMs de Linux.
UUID de partición
Para encontrar el UUID de un disco, realiza los siguientes pasos:
ID de disco persistente
Para encontrar el nombre del dispositivo del disco con el ID de disco persistente, o symlink, completa los siguientes pasos:
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-09-03 (UTC)
-