Este documento describe cómo utilizar nombres de dispositivos persistentes en su máquina virtual Linux.
Para las máquinas virtuales que utilizan un sistema operativo Linux, los nombres de los dispositivos, por ejemplo /dev/sda
, pueden cambiar después de realizar procedimientos como los siguientes:
- Iniciar y detener una VM
- Desmontar y volver a colocar discos
- Cambiar tipos de máquinas
Este cambio de nombre de dispositivo se produce porque los nombres de los dispositivos se asignan desde un rango disponible una vez que se inicia una máquina virtual 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 máquina virtual, se asigna un nuevo nombre de dispositivo del rango disponible. El kernel de Linux no garantiza el orden de los dispositivos tras los reinicios.
Un cambio de nombre de dispositivo puede provocar que cualquier aplicación o script que dependa del nombre del dispositivo original no funcione correctamente o que la máquina virtual no arranque después de reiniciar.
Se recomienda utilizar nombres de dispositivos persistentes al hacer referencia a discos y particiones en sus máquinas virtuales Linux para evitar este problema. También puedes utilizar enlaces simbólicos .
Antes de comenzar
- Revise la administración de dispositivos para su sistema operativo Linux:
- Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
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 persistente -
nvme0n1p1
-
nvme0n1p2
-
nvme0n2
- Hiperdisco -
nvme0n2p1
-
nvme0n2p2
-
nvme1n1
- primer SSD local -
nvme2n1
- segundo SSD local - Mediante el uso de una etiqueta . Esta opción requiere que el sistema de archivos admita etiquetas y que agregue una etiqueta a las particiones del disco.
- Utilizando una partición o un UUID de disco. Se genera un UUID cuando se crea un disco con una tabla de particiones y el UUID es único por partición.
- Utilizando un ID de disco persistente (
/dev/disk/by-id
) para Persistent Disk o Google Cloud Hyperdisk, o un enlace simbólico basado en el nombre del recurso del disco. - Conéctese a su máquina virtual.
Si no conoce el nombre del dispositivo del disco, puede encontrarlo mediante el enlace simbólico.
ls -l /dev/disk/by-id/google-*
El resultado es similar al siguiente:
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 el UUID de la partición del disco ejecutando uno de los siguientes comandos:
blkid
sudo blkid -s UUID
El resultado es similar al siguiente:
/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 al siguiente:
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
Agregue una entrada para el UUID de su 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 montaje yext4
es el tipo de sistema de archivos.Valide que el dispositivo esté montado correctamente ejecutando
mount -av
.sudo mount -av
Si el dispositivo se monta 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éctese a su máquina virtual.
Recupere la ID en el disco ejecutando 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 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
Agregue el enlace simbólico al archivo
/etc/fstab
./dev/disk/by-id/google-disk-2 /data ext4 defaults 0 0
Valide que el dispositivo esté montado correctamente ejecutando
mount -av
.sudo mount -av
Si el dispositivo se monta 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
Nomenclatura de dispositivos en máquinas virtuales Linux
Los nombres de los dispositivos Linux para los discos conectados a su VM dependen de la interfaz que elija al crear los discos. Cuando utiliza el comando del sistema operativo
lsblk
para ver sus dispositivos de disco, muestra el prefijonvme
para los discos conectados con la interfaz NVMe y el prefijosd
para los discos conectados con la interfaz SCSI.El orden de los números de disco o de los controladores NVMe no es predecible ni coherente entre los reinicios de las máquinas virtuales. En el primer arranque, 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).Al acceder a los discos adjuntos, debe utilizar los enlaces simbólicos creados en
/dev/disk/by-id/
. Estos nombres persisten tras los reinicios. Para obtener más información sobre los enlaces simbólicos, consulte Enlaces simbólicos para discos conectados a una máquina virtual .Nombres de dispositivos SCSI
El formato de un dispositivo de disco conectado SCSI es
sda
para el primer disco conectado. Las particiones del disco aparecen comosda1
. Cada disco adicional utiliza una letra secuencial, comosdb
ysdc
. Cuando se alcanzasdz
, los siguientes discos agregados tienen nombres comosdaa
,sdab
ysdac
, hastasddx
.Nombres de dispositivos NVMe
El formato de un dispositivo de disco conectado a NVMe en los sistemas operativos Linux es
nvme number n namespace
. Elnumber
representa el número del controlador de disco NVMe y namespace es un ID de espacio de nombres NVMe asignado por el controlador de disco NVMe. Para particiones, p n se agrega al nombre del dispositivo, donde n es un número, que comienza con 1, que denota la n partición .El número de controlador comienza en
0
. Un único disco NVMe conectado a su instancia informática tiene un nombre de dispositivonvme0n1
. La mayoría de los tipos de máquinas utilizan un único controlador de disco NVMe. Los nombres de los dispositivos NVMe sonnvme0n1
,nvme0n2
,nvme0n3
, etc.Los discos SSD locales conectados a series de máquinas de tercera generación o instancias posteriores tienen un controlador NVMe independiente para cada disco. En estas máquinas virtuales, los nombres de los dispositivos SSD locales conectados a NVMe se parecen
nvme0n1
,nvme1n1
ynvme2n1
. La cantidad de discos SSD locales conectados depende del tipo de máquina de su VM.Las instancias informáticas basadas en series de máquinas de tercera generación o posteriores utilizan NVMe tanto para el disco persistente como para el hiperdisco de Google Cloud, y también para los discos SSD locales. Cada VM tiene 1 controlador NVMe para disco persistente e hiperdisco y 1 controlador NVMe para cada disco SSD local. El controlador NVMe de disco persistente e hiperdisco tiene un único espacio de nombres NVMe para todos los discos conectados. Por lo tanto, una instancia de serie de máquinas de tercera generación con un disco persistente y un hiperdisco (cada uno con 2 particiones) y 2 discos SSD locales sin formato utiliza los siguientes nombres de dispositivo:
Utilice nombres de dispositivos persistentes
Para configurar un nombre de dispositivo persistente, asigne un nombre de punto de montaje para el dispositivo de disco en el archivo
fstab
. Hay tres formas de configurar un nombre de dispositivo persistente.Recomendamos utilizar el UUID de partición o el enlace simbólico para máquinas virtuales Linux.
UUID de partición
Para encontrar el UUID de un disco, realice los siguientes pasos:
ID de disco persistente
Para encontrar el nombre del dispositivo de disco utilizando el ID del disco persistente o el enlace simbólico, complete los siguientes pasos:
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-04-17 (UTC).
-