Crea y conecta un disco que no sea de arranque a tu máquina virtual siguiendo las instrucciones de esta página.
Antes de empezar
Para usar los comandos de la gdcloud
interfaz de línea de comandos (CLI), asegúrate de haber descargado, instalado y configurado la gdcloud
CLI.
Todos los comandos de Distributed Cloud usan la CLI gdcloud
o kubectl
y requieren un entorno de sistema operativo.
Obtener la ruta del archivo kubeconfig
Para ejecutar comandos en el servidor de la API Management, asegúrate de tener los siguientes recursos:
Inicia sesión y genera el archivo kubeconfig del servidor de la API Management si no tienes uno.
Usa la ruta al archivo kubeconfig del servidor de la API Management para sustituir
MANAGEMENT_API_SERVER
en estas instrucciones.
Solicitar permisos y acceso
Para realizar las tareas que se indican en esta página, debes tener el rol de administrador de máquinas virtuales de proyecto. Sigue los pasos para verificar que tienes el rol de administrador de máquinas virtuales de proyecto (project-vm-admin
) en el espacio de nombres del proyecto en el que reside la VM.
Para realizar operaciones con VMs mediante la consola de GDC o la CLI de gdcloud, pide al administrador de gestión de identidades y accesos de tu proyecto que te asigne el rol Administrador de VirtualMachine de proyecto y el rol Lector de proyectos (project-viewer
).
Acoplar un disco a una VM
Crea y conecta discos que no sean de arranque a tu máquina virtual. Cada disco adicional puede especificar una imagen personalizada o un disco en blanco. Puedes añadir varios discos a una VM a la vez.
Consola
En el menú de navegación, haz clic en Máquinas virtuales > Instancias.
En la lista de máquinas virtuales, haga clic en el nombre de una máquina virtual para ver sus detalles.
Haz clic en Añadir disco.
En el cuadro de diálogo de confirmación, haz clic en Detener para detener la VM.
Espera unos minutos a que se detenga la VM.
Haz clic en Renovar.
Cuando la VM esté detenida, vuelve a hacer clic en Añadir nuevo disco.
En el cuadro de diálogo Añadir disco, elija un disco nuevo o uno que ya tenga.
Para aprovisionar un disco nuevo, haz clic en la pestaña Disco nuevo.
- En el campo Nombre del disco, introduce un nombre de disco único para el proyecto.
- En el campo Tamaño, introduce un tamaño de disco entre 10 y 65.536 GiB. Por ejemplo, 10 GiB.
- En la sección Regla de eliminación, haz clic en Conservar disco o Eliminar disco.
Para elegir un disco ya creado, haz clic en la pestaña Disco ya creado.
- En la lista Disco, selecciona un disco.
- En la sección Regla de eliminación, haz clic en Conservar disco o Eliminar disco.
Haz clic en Guardar. El disco aparece en la lista de discos de la VM.
API
Crea un
VirtualMachineDisk
:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -n PROJECT -f - <<EOF apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachineDisk metadata: name: NON_BOOT_BLANK_DISK spec: size: NON_BOOT_BLANK_DISK_SIZE EOF
Añade
VirtualMachineDisk
alspec.disks
deVirtualMachine
:kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog -n PROJECT VM_NAME
Edita lo siguiente en tu editor de texto:
... disks: - virtualMachineDiskRef: name: VM_BOOT_DISK_NAME boot: true - virtualMachineDiskRef: name: NON_BOOT_BLANK_DISK autoDelete: false ...
Sustituye las variables con las siguientes definiciones.
Variable Definición MANAGEMENT_API_SERVER
El archivo kubeconfig del servidor de la API Management. PROJECT
El proyecto de Google Distributed Cloud air-gapped (GDC) en el que se creará la VM. VM_NAME
Nombre de la nueva VM. VM_BOOT_DISK_NAME
Nombre del nuevo disco de arranque de la VM. NON_BOOT_BLANK_DISK
El nombre del disco adicional. NON_BOOT_BLANK_DISK_SIZE
El tamaño de los discos adicionales, como 20G
.
Formatear y montar un disco que no sea de arranque
Después de conectar un disco a la VM, sigue los pasos necesarios para que se pueda acceder a él desde la VM.
Conéctate a la VM.
Accede a la VM a través de SSH.
Formatear el disco
Lista los discos conectados a tu instancia por número de serie y localiza el disco que quieras formatear y montar.
ls -l /dev/disk/by-id/
En este ejemplo de resultado se muestran los nombres de los discos como números de serie:
total 0 lrwxrwxrwx 1 root root 9 Sep 13 23:51 ata-QEMU_HARDDISK_agentSADisk -> ../../sdc lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-0ATA_QEMU_HARDDISK_agentSADisk -> ../../sdc lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-boot -> ../../sda lrwxrwxrwx 1 root root 10 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-boot-part1 -> ../../sda1 lrwxrwxrwx 1 root root 11 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-boot-part14 -> ../../sda14 lrwxrwxrwx 1 root root 11 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-boot-part15 -> ../../sda15 lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-data -> ../../sdb lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-1ATA_QEMU_HARDDISK_agentSADisk -> ../../sdc lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-SATA_QEMU_HARDDISK_agentSADisk -> ../../sdc lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-boot -> ../../sda lrwxrwxrwx 1 root root 10 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-boot-part1 -> ../../sda1 lrwxrwxrwx 1 root root 11 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-boot-part14 -> ../../sda14 lrwxrwxrwx 1 root root 11 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-boot-part15 -> ../../sda15 lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-data -> ../../sdb
La información que sigue a la flecha,
->
, en cada línea indica el nombre del dispositivo de disco. Por ejemplo, enscsi-SQEMU_QEMU_HARDDISK_vm-disk-data -> ../../sdb
, el número de serie esscsi-SQEMU_QEMU_HARDDISK_vm-disk-data
y el nombre del dispositivo essdb
.Identifica el número de serie de tu disco en esta lista.
Comportamiento importante de las funciones situacionales que puede afectar a la lista de números de serie:
- Si el valor
virtualMachineDiskRef.name
tiene más de 20 caracteres, solo se usarán los 20 primeros como número de serie. - Si hay dos discos con los mismos 20 primeros caracteres, solo el primer disco tiene un número de serie.
- Si el valor
Formatea el disco:
sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/disk/by-id/DISK_ID
- Sustituye
DISK_ID
por el número de serie del disco que vas a formatear. - En este ejemplo, especifica
scsi-SQEMU_QEMU_HARDDISK_vm-disk-data
para formatear todo el disco sin una tabla de particiones.
Para maximizar el rendimiento del disco, usa las opciones de formato recomendadas en la marca -E
. Como no tienes que reservar espacio para el volumen raíz en el disco secundario, especifica -m 0
para usar todo el espacio en disco disponible.
Montar el disco
Crea un directorio que sirva como punto de montaje del nuevo disco. Puedes usar cualquier directorio. En el siguiente ejemplo se crea un directorio en
/mnt/disks/
:sudo mkdir -p /mnt/disks/MOUNT_DIR
Sustituye
MOUNT_DIR
por el directorio en el que quieras montar el disco.Monta el disco en la instancia y habilita la opción de descarte:
sudo mount -o discard,defaults /dev/disk/by-id/DISK_ID /mnt/disks/MOUNT_DIR
Haz los cambios siguientes:
DISK_ID
con el número de serie del disco que se va a montar.MOUNT_DIR
con el directorio en el que quieras montar el disco.
Opcional: Configura los permisos de lectura y escritura en el disco. El siguiente comando concede acceso de escritura,
a+w
, al disco a todos los usuarios.sudo chmod a+w /mnt/disks/MOUNT_DIR
Opcional: Configurar el montaje automático al reiniciar la VM. Para ello, usa el identificador único universal (UUID) o el script de inicio.
Configurar el montaje automático al reiniciar la VM: UUID del disco
Añade el disco al archivo /etc/fstab
para que se monte automáticamente de nuevo cuando se reinicie la VM. En un sistema operativo (SO), el nombre del dispositivo cambia con cada reinicio, pero el UUID del dispositivo siempre apunta al mismo volumen, incluso cuando se mueven discos entre sistemas. Por lo tanto, utiliza siempre el UUID del dispositivo
para configurar el montaje automático al reiniciar la VM.
Crea una copia de seguridad de tu archivo
/etc/fstab
actual:sudo cp /etc/fstab /etc/fstab.backup
Consulta el UUID del disco:
sudo blkid /dev/DEVICE_NAME
En el ejemplo de salida se muestra el UUID de
accc19c5-d0d6-4157-9672-37d4e1d48eb5
del disco/dev/sdb: UUID="accc19c5-d0d6-4157-9672-37d4e1d48eb5" TYPE="ext4"
DEVICE_NAME
es el nombre del dispositivo del disco que quieres montar automáticamente. Si has creado una tabla de particiones en el disco, especifica la partición que quieras montar como sufijo del nombre del dispositivo. Por ejemplo, sisdb
es el nombre del dispositivo de disco y quieres montar la partición 1,DEVICE_NAME
se convierte ensdb1
.Abre el archivo
/etc/fstab
en un editor de texto y crea una entrada que incluya el UUID:UUID=UUID_VALUE /mnt/disks/MOUNT_DIR ext4 discard,defaults,MOUNT_OPTION 0 2
Haz los cambios siguientes:
UUID_VALUE
con el discoUUID
, que aparece como resultado del comando List the UUID (Lista el UUID).MOUNT_DIR
con el directorio en el que has montado el disco.MOUNT_OPTION
con el valorMOUNT_OPTION
de tu SO, que especifica lo que hace el SO si no puede montar el disco durante el inicio.
Comprueba que las entradas de
/etc/fstab
sean correctas:cat /etc/fstab
A continuación, se muestra un ejemplo de resultado:
LABEL=cloudimg-rootfs / ext4 defaults 0 1 LABEL=UEFI /boot/efi vfat umask=0077 0 1 UUID=UUID_VALUE /mnt/disks/MOUNT_DIR ext4 discard,defaults,MOUNT_OPTION 0 2
Si desvinculas este disco o creas una captura a partir del disco de arranque de esta VM, edita el archivo /etc/fstab
y elimina la entrada de este disco. Aunque hayas configurado MOUNT_OPTION
como nofail
o nobootwait
, mantén el archivo /etc/fstab
sincronizado con los dispositivos que se conecten a tu máquina virtual. Elimina estas entradas antes de crear la captura del disco de arranque o de separar el disco.
Configurar el montaje automático al reiniciar la VM: secuencia de comandos de inicio de la VM
También puedes usar una secuencia de comandos de inicio para montar el disco en cada reinicio. Para ello, añade los comandos de Montar el disco a una secuencia de comandos de inicio. Antes de añadir la secuencia de comandos para montar el disco, formatéalo con los comandos de Formatear el disco.
Crea el secreto de la secuencia de comandos de inicio.
cat <<EOF >>mount-disk-script #!/bin/bash mkdir -p /mnt/disks/MOUNT_DIR mount -o discard,defaults /dev/disk/by-id/DISK_ID /mnt/disks/MOUNT_DIR EOF
kubectl create secret -n PROJECT generic VM_NAME-mount-script --from-file=script=mount-disk-script
rm mount-disk-script
Añade la secuencia de comandos de inicio a la VM.
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog -n PROJECT VM_NAME
Edita el
spec.startupScripts
para incluir el nombre del secreto.apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachine metadata: name: VM_NAME namespace: PROJECT spec: … startupScripts: - name: mount-script scriptSecretRef: name: VM_NAME-mount-script
Para obtener más información sobre cómo configurar secuencias de comandos de inicio, consulta este artículo.