Usa vínculos simbólicos para acceder a los discos conectados a una instancia de procesamiento de Linux

Cuando conectas un disco a una instancia de Compute Engine que usa un SO Linux, Google Cloud crea automáticamente un vínculo simbólico (symlink) para el disco. Para acceder a los volúmenes de Persistent Disk o a los discos SSD locales en tu instancia de procesamiento, usa los symlinks. Estos symlinks son predecibles y se mantienen coherentes en los reinicios. Google Cloud crea symlinks para todos los discos conectados a una instancia de procesamiento en /dev/disk/by-id.

En este documento, se explica cómo identificar los symlinks correctos para los discos conectados a una instancia de procesamiento de Linux.

Los symlinks se crean en /dev/disk/by-id cuando se conecta un disco a la instancia de procesamiento, durante o después de su creación. Los nombres de los symlinks se crean de la siguiente manera:

Persistent Disk y Google Cloud Hyperdisk

Los symlinks se crean con las siguientes reglas:

  • Si especificaste un nombre de dispositivo personalizado cuando creaste el disco: google-DEVICE_NAME
  • Si no especificaste un nombre de dispositivo personalizado cuando creaste el disco:
    • Disco de arranque: google-INSTANCE_NAME
    • Disco que no es de arranque: google-DISK_NAME

Después de formatear el disco, el symlink se agrega con -partN, en el que N es el número de partición, por ejemplo, google-data-disk-part1.

Discos SSD locales

Los symlinks de SSDs locales tienen diferentes formatos según la interfaz de disco.

  • SCSI:
    • Si especificaste un nombre de dispositivo personalizado cuando creaste el disco: google-DEVICE_NAME
    • Si no especificaste un nombre de dispositivo personalizado cuando creaste el disco: google-local-ssd-N, donde N es el número de disco SSD local, a partir de 0.
  • NVMe: Los symlinks se denominan google-local-nvme-ssd-N, en el que N es el número de SSD, a partir de 0.

Después de formatear un disco SSD local, el symlink se agrega con -partN, en el que N es el número de partición, por ejemplo, google-local-nvme-ssd-0-part1.

Symlinks de dispositivos

Compute Engine crea symlinks adicionales en el directorio según el tipo de disco y la interfaz, por ejemplo scsi-0Google_PersistentDisk_DEVICE_NAME. Estos vínculos realizan la misma función que los symlinks mencionados anteriormente.

Ejemplo 1: Instancia C3 con SSD local conectado

Supongamos que creaste una instancia de procesamiento con las siguientes propiedades:

  • Nombre de la instancia: instance-1
  • Serie de máquinas: C3
  • Tipo de interfaz de disco: NVMe para Persistent Disk y SSDs locales
  • Discos adicionales: ninguno
  • Discos SSD locales conectados: 2
  • Nombres de dispositivos personalizados usados: ninguno

Compute Engine crea los siguientes symlinks para esa instancia de procesamiento:

ls -l /dev/disk/by-id/google-*
google-instance-1 -> ../../nvme2n1
google-instance-1-part1 -> ../../nvme2n1p1
google-instance-1-part14 -> ../../nvme2n1p14
google-instance-1-part15 -> ../../nvme2n1p15
google-local-nvme-ssd-0 -> ../../nvme0n1
google-local-nvme-ssd-1 -> ../../nvme1n1

En este ejemplo, el symlink del disco de arranque del Persistent Disk es google-instance-1, que se basa en el nombre de la instancia. El disco de arranque está formateado y tiene instalado el sistema operativo. El disco de arranque tiene 3 particiones: parte 1, parte 14 y parte 15. Los discos SSD locales conectados no tienen formato, por lo que solo se creó un symlink para cada disco SSD local.

Ejemplo 2: Instancia N2 con SSD local NVMe conectado y Persistent Disk adicional

Supongamos que creaste una instancia de procesamiento con las siguientes propiedades:

  • Nombre de la instancia: instance-2
  • Serie de máquinas: N2
  • Tipo de interfaz de disco: SCSI para Persistent Disk y NVMe para SSD local
  • Discos adicionales: 1 Persistent Disk llamado extra-scsi-disk
  • Discos SSD locales conectados: 2
  • Nombres de dispositivos personalizados usados: ninguno

Se crean los siguientes symlinks para esa instancia de procesamiento:

ls -l /dev/disk/by-id/google-*
google-extra-scsi-disk -> ../../sdb
google-instance-2 -> ../../sda
google-instance-2-part1 -> ../../sda1
google-instance-2-part14 -> ../../sda14
google-instance-2-part15 -> ../../sda15
google-local-nvme-ssd-0 -> ../../nvme0n1
google-local-nvme-ssd-0-part1 -> ../../nvme0n1p1
google-local-nvme-ssd-1 -> ../../nvme0n2

En este ejemplo, el symlink del disco de arranque del Persistent Disk es google-instance-2, que se basa en el nombre de la instancia. El disco de arranque está formateado y tiene instalada la imagen de SO. El disco de arranque tiene 3 particiones: parte 1, parte 14 y parte 15. El primer disco SSD local también está particionado, con una sola partición, por lo que hay un symlink adicional creado para esa partición de disco. El Persistent Disk adicional que se agrega a la instancia de procesamiento tiene el symlink google-extra-scsi-disk, que se basa en el nombre del disco. El Persistent Disk adicional y el segundo disco SSD local no tienen formato, por lo que solo se enumera un symlink para esos discos.

¿Qué sigue?