La forma recomendada de importar imágenes de disco de arranque a Compute Engine desde tus centros de datos físicos, desde máquinas virtuales en tu estación de trabajo local o desde máquinas virtuales que se ejecutan en otra plataforma en la nube es usar la herramienta de importación de discos virtuales, que automatiza todos los pasos de esta guía.
Si prefieres no usar la herramienta automatizada, puedes seguir las instrucciones manuales paso a paso de esta guía.
Este proceso de importación de imágenes solo puede importar un disco a la vez. En esta guía se explica cómo importar imágenes de disco de arranque.
Importa tus discos de arranque solo si no puedes compilar o migrar tus aplicaciones para que se ejecuten sobre imágenes públicas de Compute Engine. Las imágenes públicas ya están configuradas para ejecutarse en el entorno de Compute Engine, por lo que puedes ejecutar aplicaciones en esas imágenes sin tener que preocuparte por las configuraciones del gestor de arranque y del sistema operativo. Sin embargo, es posible que tengas que importar tus propias imágenes de disco de arranque en los siguientes casos:
- Tus aplicaciones requieren un sistema operativo que no se proporciona como imagen pública.
- Ya tienes un conjunto de imágenes básicas que usas para crear VMs en otra plataforma en la nube.
- El trabajo necesario para migrar el código de la aplicación a una de las imágenes públicas es mayor que el trabajo necesario para completar el proceso de importación de la imagen del disco de arranque.
También puedes obtener ayuda para migrar tus máquinas virtuales a través de los servicios de partners. Para obtener más información, consulta el artículo sobre cómo migrar máquinas virtuales a Compute Engine.
Información general
Para importar una imagen de disco de arranque a Compute Engine, sigue estos pasos:
- Planifica la ruta de importación. Antes de subir la imagen de disco de arranque, debes identificar dónde la vas a preparar y cómo te vas a conectar a ella después de que se inicie en el entorno de Compute Engine.
- Prepara el disco de arranque para que pueda iniciarse en el entorno de Compute Engine y para que puedas acceder a él después de que se inicie.
- Crea y comprime el archivo de imagen del disco de arranque.
- Sube el archivo de imagen a Cloud Storage e importa la imagen a Compute Engine como una nueva imagen personalizada.
- Usa la imagen importada para crear una instancia de máquina virtual y asegúrate de que se inicia correctamente.
- Si la imagen no se inicia correctamente, puedes solucionar el problema adjuntando la imagen del disco de inicio a otra instancia y volviendo a configurarla.
- Optimiza la imagen e instala el entorno invitado para que la imagen del sistema operativo importada pueda comunicarse con el servidor de metadatos y usar funciones adicionales de Compute Engine.
Requisitos
Requisitos del disco de arranque
Para importar discos de arranque a Compute Engine, estos deben cumplir los siguientes requisitos:
- Te recomendamos que instales todas las actualizaciones disponibles en tu VM de origen.
- Si has creado un kernel de sistema operativo personalizado, debe cumplir los requisitos de configuración de hardware y kernel. La mayoría de las distribuciones de Linux estándar ya cumplen estos requisitos, por lo que este requisito solo se aplica a los usuarios avanzados que crean sus propios sistemas operativos personalizados para ejecutarlos en Compute Engine.
- El disco de arranque no debe tener más de 2048 GB (2 TB).
- El disco de arranque que importes debe tener una tabla de particiones MBR funcional o una configuración híbrida de una tabla de particiones GPT con un gestor de arranque MBR.
- La partición primaria del disco de arranque puede tener el formato que quieras, siempre que se inicie correctamente desde el gestor de arranque MBR.
- El gestor de arranque del disco de arranque no debe tener los argumentos de línea de comandos del kernel
quiet
,rhgb
nisplashimage=
. Compute Engine no admite pantallas iniciales de carga al iniciar. Puedes quitar estos valores de la configuración de GRUB durante el paso de configuración del gestor de arranque. - El sistema operativo del disco de arranque debe ser compatible con ACPI.
Requisitos del archivo de imagen
El archivo de imagen que importes debe cumplir los siguientes requisitos:
- Realiza una comprobación de coherencia en la imagen de disco mediante el comando
qemu-img check
en el disco. - Para exportar el disco virtual, usa la función de exportación de tu software de gestión de máquinas virtuales. No copies el archivo VMDK del sistema de archivos de tu gestor de máquinas virtuales.
- El archivo de imagen debe ser de un tipo admitido.
- El nombre del archivo de imagen de disco debe ser
disk.raw
. - El archivo de imagen RAW debe tener un tamaño que sea un incremento de 1 GB. Por ejemplo, el archivo debe tener 10 GB u 11 GB, pero no 10,5 GB.
- El archivo comprimido debe ser un archivo
.tar.gz
que utilice la compresión gzip y la opción--format=oldgnu
de la utilidadtar
(manual).
Requisitos de tu proyecto
Cuando creas una instancia de VM a partir de una imagen importada, la instancia debe poder acceder al repositorio de paquetes externo del sistema operativo configurado en el disco de arranque.
Se puede acceder a este repositorio directamente desde el proveedor del sistema operativo o a través de una conexión de red a tu infraestructura local que aloja estos repositorios.
Para configurar el acceso al repositorio externo, sigue uno de estos pasos en tu proyecto:
- Configura una dirección IP externa estática para que tu máquina virtual se conecte a tu red local on-premise u otras redes externas.
- Configura un host bastion, una VPN o un reenvío de TCP de IAP que se pueda usar para conectarte a tu red local on-premise u otras redes externas.
Limitaciones
Para importar discos mediante redes que no permitan direcciones IP externas, debes cumplir requisitos de red adicionales. Para obtener más información, consulta Importar discos mediante redes que no permiten direcciones IP externas.
Costes de importación de imágenes
Antes de empezar, infórmate sobre los costes del proceso de importación. No hay ningún coste por la transferencia de datos de red entrante para subir el archivo de imagen de disco de arranque a Cloud Storage, ni tampoco por importar esa imagen como una imagen personalizada de Compute Engine. Sin embargo, hay costes para algunos pasos específicos del proceso de importación:
- El coste de almacenar temporalmente los archivos de imagen comprimidos en un segmento estándar de Cloud Storage. Debes usar un segmento de Cloud Storage temporal para almacenar tus archivos antes de importarlos como imágenes personalizadas de Compute Engine. Puedes quitar el contenedor una vez que hayas completado el proceso de importación.
- El coste de almacenar imágenes personalizadas después de importarlas a Compute Engine.
- El coste potencial de las transferencias de datos salientes en tu centro de datos, proveedor de red o servicio en la nube actuales. Los archivos de imagen pueden ser muy grandes, incluso después de comprimirlos, por lo que copiar esos archivos en Compute Engine podría generar cargos significativos por transferencia de datos saliente en algunas plataformas.
- El coste de los discos persistentes y las instancias de máquina virtual de Compute Engine, donde puedes configurar tu imagen después de importarla a Compute Engine.
Planificar y preparar la ruta de importación
El método que utilices para importar el disco dependerá de la configuración actual del sistema que quieras migrar a Compute Engine. Necesitas un sistema en el que puedas crear y comprimir el archivo de imagen del disco de arranque, así como otro sistema en el que puedas subir el archivo de imagen a Cloud Storage. Ten en cuenta los siguientes elementos al planificar la ruta de importación:
- Para importar una imagen, debes configurar el disco de arranque en un entorno de sistema operativo que funcione. Este proceso puede provocar que el disco de arranque no arranque en ningún entorno que no sea de Compute Engine. Es tu responsabilidad asegurarte de que no se pierdan datos de tus discos ni se interrumpan tus aplicaciones empresariales funcionales mientras importas tu sistema a Compute Engine.
- Identifica la configuración de acceso de tu sistema y planifica cómo quieres acceder al sistema después de importarlo a Compute Engine.
- Si tu sistema tiene configuraciones de inicio de sesión de usuario o SSH, puedes configurar solo el gestor de arranque y, más adelante, configurar la imagen para que se ejecute de forma óptima en Compute Engine. Puedes acceder a la instancia mediante tu configuración SSH o a través de un inicio de sesión de usuario directo en la consola serie interactiva.
- Si tu sistema no tiene configuraciones de inicio de sesión de usuario o SSH, debes configurar el disco de arranque para poder acceder a él después de que se inicie en Compute Engine.
- El proceso de importación puede tardar varias horas o días, en función del tamaño del disco de arranque y de la velocidad de la conexión de red.
- El sistema en el que crees y comprimas la imagen del disco de arranque debe tener suficiente espacio de almacenamiento para crear los archivos de imagen en un dispositivo de almacenamiento que no sea el propio disco de arranque. Normalmente, los archivos de imagen y
tar.gz
ocupan entre 2 y 3 veces más espacio que el propio disco de arranque. - Familiarízate con la estructura del sistema de archivos del sistema que quieres importar.
- Si los archivos de tu sistema operativo y de tu aplicación están repartidos en varios discos, importa cada uno de esos discos por separado y usa cada imagen para crear un disco persistente único para tu instancia de VM de Compute Engine.
- Si tus sistemas tienen volúmenes de arranque en una configuración RAID en la que varios discos actúan como un único volumen lógico, crea una sola imagen de toda la matriz en lugar de crear una imagen para cada disco de la matriz. Los discos persistentes de Compute Engine eliminan la necesidad de configuraciones RAID.
- Si tu sistema cifra el contenido de tu disco de arranque con un módulo de plataforma segura o con un cifrado a nivel de software, descifra el disco de arranque antes de crear el archivo de imagen del disco de arranque. Google no puede leer tus imágenes si están cifradas. Encriptamos tus imágenes después de que las subas y te permitimos proporcionar tus propias claves de cifrado para tus discos persistentes y segmentos de Cloud Storage.
Una vez que hayas identificado o creado un sistema en el que puedas completar el proceso de importación, conéctate a ese sistema y configura el gestor de arranque.
Preparar la imagen del disco de arranque
En un sistema en ejecución, prepara la imagen de disco de arranque para que pueda funcionar en un entorno de Compute Engine.
- Configura el gestor de arranque en el disco de arranque para que la imagen se pueda iniciar en Compute Engine.
- Configura el acceso SSH o de inicio de sesión de usuario en el disco de arranque para poder acceder a él después de importarlo a Compute Engine e iniciarlo como instancia de VM.
Este proceso puede hacer que el sistema no se pueda arrancar fuera de Compute Engine, por lo que lo más recomendable es completar este paso en un sistema aislado con una copia del disco de arranque que quieras importar.
Configurar el bootloader
Configura el gestor de arranque en el sistema para que pueda arrancar en Compute Engine.
Conéctate al terminal del sistema con el disco de arranque que quieras importar.
Edita el archivo de configuración de GRUB. Normalmente, este archivo se encuentra en
/etc/default/grub
, pero en algunas distribuciones anteriores puede estar en un directorio no estándar.Haz los siguientes cambios en el archivo de configuración de GRUB:
- Elimina cualquier línea que tenga
splashimage=
. Compute Engine no admite pantallas iniciales de carga al iniciar. - Quita los argumentos de línea de comandos del kernel
rhgb
yquiet
. - Añade
console=ttyS0,38400n8d
a los argumentos de la línea de comandos del kernel para que la instancia pueda interactuar con la consola en serie.
- Elimina cualquier línea que tenga
Vuelve a generar el archivo
grub.cfg
. Usa uno de los siguientes comandos, en función de tu distribución.- Debian y Ubuntu:
sudo update-grub
- RHEL, CentOS, SUSE y openSUSE:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
- Debian y Ubuntu:
Edita el archivo
/etc/fstab
y elimina las referencias a todos los discos y particiones, excepto el disco de arranque y las particiones de ese disco. Las entradas no válidas en/etc/fstab
pueden provocar que se detenga el proceso de inicio del sistema.
Después de configurar el gestor de arranque, crea y comprime el archivo de imagen de disco.
Configurar el acceso de inicio de sesión de usuario o SSH en la imagen
Una vez que la imagen se esté ejecutando en Compute Engine como instancia de VM, debes tener una forma de acceder a ella. Puedes conectarte a la instancia mediante una configuración de SSH que ya tengas o iniciar sesión con un nombre de usuario y una contraseña conectándote a la consola en serie.
Completa la configuración de inicio de sesión de usuario o SSH antes de crear y comprimir el archivo de imagen de disco.
Crear y comprimir el archivo de imagen de disco
Crea y comprime el archivo de imagen de disco de arranque del sistema que quieras importar a Compute Engine. El proceso para crear y comprimir el archivo de imagen varía en función de la plataforma en la que operen tus sistemas.
Generic
Puedes usar este proceso en casi cualquier sistema para crear un archivo de imagen RAW que puedas importar a Compute Engine. Puedes completar este proceso en el sistema en ejecución que vas a importar o puedes adjuntar tu disco de arranque como disco secundario en otro sistema y crear la imagen de disco de arranque a partir del disco detenido. Asegúrate de que tienes suficiente espacio de almacenamiento disponible para guardar temporalmente los archivos de imagen de disco. En este ejemplo se toma una imagen de un sistema en ejecución.
Conéctate a la terminal del sistema que tenga el disco de arranque que quieras importar.
Usa el comando
lsblk
para identificar el disco de arranque de origen del que quieres crear una imagen y la ubicación en la que tienes suficiente espacio para escribir los archivos de imagen. En este ejemplo,/dev/sda
es el disco de arranque de origen y/dev/sdb
es un disco secundario de gran tamaño montado en el directorio/tmp
. Aunque /dev/sda esté en ejecución, puedes crear una imagen a partir de él. Es mejor hacerlo en un sistema silencioso que no esté procesando datos ni ejecutando aplicaciones de forma activa.lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 96G 0 part / ├─sda2 8:2 0 1K 0 part └─sda3 8:5 0 4G 0 part [SWAP] sdb 8:16 0 500G 0 disk /tmp sr0 11:0 1 1024M 0 rom
Crea el archivo de imagen a partir de tu disco de arranque.
sudo dd if=/dev/sda of=/tmp/disk.raw bs=4M conv=sparse
Cambia al directorio en el que has escrito el archivo
disk.raw
.cd /tmp
Comprime el disco sin formato en formato
tar.gz
. Este paso comprime el archivo de imagen para que puedas subirlo más rápido a Cloud Storage. En OSX, instalagtar
y úsalo en este paso en lugar detar
.tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
VirtualBox
Si has preparado tu sistema en un entorno de VirtualBox, puedes usar la herramienta VBoxManage
para convertir una imagen de disco .vdi
o .qcow2
al formato disk.raw
.
Apaga la máquina invitada de VirtualBox que quieras importar y sustituye GUEST_NAME por el nombre de tu máquina invitada. Puedes apagar la máquina invitada con la interfaz de VirtualBox o mediante la utilidad VBoxManage.
VBoxManage controlvm GUEST_NAME acpipowerbutton
Convierte la imagen de invitado al formato RAW con la utilidad VBoxManage. Sustituye GUEST_NAME por la ruta de la imagen de invitado. Esta imagen de invitado se puede proporcionar como un archivo
vdi
oqcow2
:VBoxManage clonemedium GUEST_NAME ~/disk.raw --format RAW
Comprime el disco sin formato en formato
tar.gz
. Este paso comprime el archivo de imagen para que puedas subirlo más rápido a Cloud Storage. En OSX, instalagtar
y úsalo en este paso en lugar detar
.sudo tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
El archivo de imagen se comprime y está listo para subirse a Cloud Storage.
Importar la imagen a la lista de imágenes personalizadas
Sube el archivo a Cloud Storage e importa la imagen a tu lista de imágenes personalizadas. También puedes cifrar la imagen durante el paso de importación.
Importa la imagen con la consola o con las herramientas de Google Cloud CLI:
Consola
Copia el archivo compressed-image.tar.gz
en tu estación de trabajo local y usa la consola Google Cloud para crear un contenedor y subir el archivo.
- En la Google Cloud consola, ve a la página del navegador de Cloud Storage.
- En la parte superior de la página, haz clic en Crear contenedor.
- Especifica un nombre de segmento único, la clase de almacenamiento Estándar y la ubicación en la que quieras almacenar los archivos de imagen.
- Haz clic en Crear para crear el segmento. La página del navegador se dirige al nuevo contenedor.
- En la parte superior de la página, haz clic en Subir archivos.
- En el cuadro de diálogo de archivos, selecciona el archivo
compressed-image.tar.gz
que has descargado de tu sistema. El archivo se sube desde tu estación de trabajo local. Este paso puede tardar varias horas en función del tamaño del archivo de imagen comprimido y de la velocidad de tu conexión de red.
Después de subir la imagen a Cloud Storage, importa el archivo de imagen a tu lista de imágenes personalizadas.
- En la Google Cloud consola, ve a la página Imágenes.
- En la parte superior de la página, haz clic en Crear imagen.
- En el campo Nombre, especifica un nombre único para la imagen.
- También puedes especificar una familia de imágenes para la nueva imagen o configurar ajustes de cifrado específicos para la imagen.
- Haz clic en el menú Fuente y selecciona Archivo de Cloud Storage.
Introduce la ruta del archivo
compressed-image.tar.gz
que has subido a Cloud Storage.BUCKET_NAME/compressed-image.tar.gz
Haz clic en Crear para importar la imagen. El proceso puede tardar varios minutos en función del tamaño de la imagen del disco de arranque.
La imagen se incluye ahora en la página Imágenes. Puedes crear una VM con esta imagen importada. Si se produce un error de arranque, comprueba que has configurado el gestor de arranque correctamente.
gcloud y gcloud storage
Usa la CLI de gcloud para subir el archivo de imagen de disco de arranque comprimido. Puedes completar este proceso en el sistema en el que creaste la imagen del disco de arranque o copiar ese archivo en otro sistema y completar el proceso de subida allí.
Instala e inicializa gcloud CLI en el sistema desde el que quieras subir el
compressed-image.tar.gz
.Usa la CLI de gcloud para crear un segmento de Cloud Storage.
gcloud storage buckets create gs://BUCKET_NAME
Sube el archivo
compressed-image.tar.gz
al nuevo segmento.gcloud storage cp compressed-image.tar.gz gs://BUCKET_NAME
Importa el archivo de imagen como una nueva imagen personalizada.
gcloud compute images create IMAGE_NAME --source-uri gs://BUCKET_NAME/compressed-image.tar.gz
Haz los cambios siguientes:
- IMAGE_NAME: el nombre de la imagen que has importado.
- BUCKET_NAME: el nombre del segmento en el que se almacena la imagen importada.
La imagen se incluirá en la lista de imágenes personalizadas. Puedes crear una VM con esta imagen importada. Si se produce un error de arranque, comprueba que has configurado el gestor de arranque correctamente.
gcloud compute images list --no-standard-images
NAME PROJECT FAMILY DEPRECATED STATUS [IMAGE_NAME] [PROJECT_ID] READY
Prueba la imagen importada para asegurarte de que funciona
Confirma que la imagen importada funciona correctamente. Crea una VM con un disco de arranque que use la imagen importada.
Consola
En la Google Cloud consola, ve a la página Crear una instancia.
En la sección Disco de arranque, haz clic en Cambiar y, a continuación, haz lo siguiente:
- Selecciona la pestaña Imágenes personalizadas.
- Para seleccionar el proyecto de imagen, haz clic en Seleccionar un proyecto y, a continuación, haz lo siguiente:
- Selecciona el proyecto que contiene la imagen.
- Haz clic en Abrir.
- En la lista Imagen, haz clic en la imagen que has importado.
- Selecciona el tipo y el tamaño del disco de arranque.
- Para confirmar las opciones del disco de arranque, haz clic en Seleccionar.
Haz clic en Crear.
gcloud
gcloud compute instances create VM_NAME --zone ZONE --image IMAGE_NAME
Haz los cambios siguientes:
- VM_NAME: un nombre único para tu VM.
- ZONE: la zona en la que has creado el disco independiente.
- IMAGE_NAME: el nombre de la imagen que has importado.
Después de crear la máquina virtual, confirma que se ha iniciado correctamente. Comprueba la salida del puerto serie:
Consola
- En la consola de Google Cloud , ve a la página Instancias de VM.
- En la lista de VMs, haz clic en el nombre de la VM que has creado a partir de la imagen importada. Se abrirá la página de detalles de la VM.
- En la sección Registros, haz clic en el puerto serie correspondiente para desplegarlo y ver su salida en esta VM.
Si la máquina virtual se detiene en Booting from Hard Disk 0...
, debes solucionar los problemas desde el entorno de Compute Engine o puedes volver a configurar el disco de arranque en tu sistema original y repetir el proceso de importación.
gcloud
gcloud compute instances get-serial-port-output VM_NAME
Si la máquina virtual se ha detenido en Booting from Hard Disk 0...
, debes solucionar los problemas desde el entorno de Compute Engine o puedes volver a configurar el disco de arranque en tu sistema original y repetir el proceso de importación.
También puedes probar la VM conectándote a ella. Conéctate a la VM con una de las siguientes opciones:
- SSH: si la VM tenía una configuración de SSH funcional, puedes conectarte a ella mediante SSH y tu clave privada. Puedes encontrar la dirección IP de la instancia de VM en la página Instancias de VM.
- Consola en serie: si necesitas iniciar sesión en la VM directamente sin SSH, puedes habilitar la consola en serie e iniciar sesión con un nombre de usuario y una contraseña.
Siguientes pasos
- Configura el disco para que tu imagen pueda aprovechar las funciones del entorno de Compute Engine.
- Cuando la imagen esté lista para producción, crea una versión final de esa imagen personalizada e inclúyela en una familia de imágenes para poder gestionar las versiones actualizadas de la imagen personalizada.
- Es posible que algunas importaciones fallen debido a problemas con el disco de arranque. Para obtener más información, consulta Solucionar problemas con discos de arranque.