La forma recomendada de importar imágenes de discos de arranque a Compute Engine desde sus centros de datos físicos, desde máquinas virtuales (VM) en su estación de trabajo local o desde VM que se ejecutan en otra plataforma en la nube, es utilizar la herramienta de importación de discos virtuales , que automatiza todos los pasos de esta guía.
Si prefiere no utilizar la herramienta automatizada, puede 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 y esta guía se centra en cómo importar imágenes de discos de arranque.
Importa tus discos de arranque existentes 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 cargador de arranque y del sistema operativo. Sin embargo, es posible que necesites importar tus propias imágenes de disco de arranque en los siguientes escenarios:
- Sus aplicaciones requieren un sistema operativo que no se proporciona como imagen pública.
- Ya tienes un conjunto de imágenes básicas que utilizas para crear máquinas virtuales 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.
Alternativamente, puede obtener ayuda con la migración de sus máquinas virtuales mediante los servicios de socios. Para obtener más información, consulta Migrar máquinas virtuales a Compute Engine .
Descripción general
Para importar una imagen de disco de arranque a Compute Engine, utilice el siguiente proceso:
- Planifique su ruta de importación. Debes identificar dónde prepararás la imagen del disco de arranque antes de cargarla y cómo te conectarás a esa imagen después de que se inicie en el entorno de Compute Engine.
- Prepare su disco de arranque para que pueda arrancar dentro del entorno de Compute Engine y para que pueda acceder a él después de que arranque.
- Cree y comprima 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 .
- Utilice la imagen importada para crear una instancia de VM y asegúrese de que arranque correctamente.
- Si la imagen no se inicia correctamente, puede solucionar el problema adjuntando la imagen del disco de inicio a otra instancia y reconfigurarla.
- Optimice la imagen e instale el entorno invitado para que la imagen importada del sistema operativo pueda comunicarse con el servidor de metadatos y utilizar funciones adicionales de Compute Engine.
Requisitos
Requisitos para el disco de arranque.
Para importar discos de arranque a Compute Engine, los discos de arranque deben cumplir los siguientes requisitos:
- Le recomendamos que instale todas las actualizaciones disponibles en su máquina virtual de origen.
- Si creó un kernel de sistema operativo personalizado, debe cumplir con los requisitos de configuración de hardware y kernel . La mayoría de las distribuciones estándar de Linux ya cumplen con estos requisitos, por lo que este requisito es solo para usuarios avanzados que crean sus propios sistemas operativos personalizados para ejecutar en Compute Engine.
- El disco de arranque no debe tener más de 2048 GB (2 TB).
- El disco de arranque que importe 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 en el disco de arranque puede tener cualquier formato que desee, siempre y cuando arranque correctamente desde el gestor de arranque MBR.
- El gestor de arranque en el disco de arranque no debe tener argumentos de línea de comandos
quiet
,rhgb
osplashimage=
kernel. Compute Engine no admite pantallas de presentación al inicio. Puede eliminar estos valores de la configuración de GRUB durante el paso de configuración del gestor de arranque . - El sistema operativo en el disco de arranque debe ser compatible con ACPI .
Requisitos para el archivo de imagen.
El archivo de imagen que importe debe cumplir con los siguientes requisitos:
- Realice una verificación de coherencia en la imagen del disco utilizando el comando
qemu-img check
en el disco. - Para exportar el disco virtual, utilice la función de exportación de su software de administración de VM. No copie el archivo VMDK del sistema de archivos de su administrador de VM.
- El archivo de imagen debe ser una imagen compatible .
- El nombre del archivo de la imagen del disco debe ser
disk.raw
. - El archivo de imagen RAW debe tener un tamaño en incrementos 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 compresión gzip y la opción--format=oldgnu
para la utilidadtar
( manual ).
Requisitos para tu proyecto
Cuando crea una instancia de VM a partir de una imagen importada, la instancia debe poder acceder al repositorio de paquetes externo para el sistema operativo que está configurado en el disco de arranque.
Se puede acceder a este repositorio directamente desde el proveedor del sistema operativo o mediante una conexión de red a su infraestructura local que aloja estos repositorios.
Para configurar el acceso al repositorio externo, complete uno de los siguientes pasos en su proyecto:
- Configure una dirección IP externa estática para que su VM se conecte a su red local local u otras redes externas.
- Configure un host bastión, VPN o reenvío TCP IAP que pueda usarse para conectarse a su red local local u otras redes externas.
Limitaciones
Para importar discos utilizando redes que no permiten direcciones IP externas, debe cumplir requisitos de red adicionales. Para obtener más información, consulte Importación de discos utilizando redes que no permiten direcciones IP externas .
Costos de importación de imágenes
Antes de comenzar, comprenda los costos del proceso de importación. No hay costo por la transferencia de datos de red entrante para cargar el archivo de imagen del disco de arranque en Cloud Storage y no hay costo por importar esa imagen como una imagen personalizada de Compute Engine. Sin embargo, existen costos para algunos pasos específicos en el proceso de importación:
- El costo de almacenar temporalmente sus archivos de imagen comprimidos en un depósito estándar de Cloud Storage. Debes usar un depósito temporal de Cloud Storage para guardar tus archivos antes de poder importarlos como imágenes personalizadas de Compute Engine. Puede eliminar el depósito después de completar el proceso de importación.
- El costo de almacenar imágenes personalizadas después de terminar de importarlas a Compute Engine.
- El costo potencial de las transferencias de datos salientes en su centro de datos existente, proveedor de red o su servicio de nube actual. Los archivos de imagen pueden ser muy grandes incluso después de comprimirlos, por lo que copiar esos archivos a Compute Engine podría generar importantes cargos por transferencia de datos salientes en algunas plataformas.
- El costo de los discos persistentes de Compute Engine y las instancias de VM donde puedes configurar tu imagen después de importarla a Compute Engine.
Planifique y prepare su ruta de importación
Su método para importar su disco depende de la configuración actual del sistema que desea mover a Compute Engine. Necesita un sistema donde pueda crear y comprimir el archivo de imagen del disco de arranque, así como un sistema donde pueda cargar el archivo de imagen en Cloud Storage. Considere los siguientes elementos cuando planifique su ruta de importación:
- La ruta de importación de imágenes requiere que configure su disco de arranque en un entorno de sistema operativo que funcione. Este proceso puede hacer que el disco de arranque no arranque en ningún lugar fuera del entorno de Compute Engine. Es su responsabilidad asegurarse de no perder datos en sus discos ni interrumpir sus aplicaciones comerciales funcionales mientras importa su sistema a Compute Engine.
- Identifique cuál es su configuración de acceso al sistema actual y planifique cómo desea acceder al sistema después de importarlo a Compute Engine.
- Si su sistema tiene inicio de sesión de usuario o configuraciones SSH, puede configurar solo el gestor de arranque y luego configurar la imagen para que se ejecute de manera óptima en Compute Engine. Puede acceder a la instancia a través de su configuración SSH existente o mediante un inicio de sesión de usuario directo en la consola serie interactiva .
- Si su sistema no tiene inicio de sesión de usuario o configuraciones SSH, debe configurar el disco de inicio para poder acceder a él después de que se inicie en Compute Engine.
- La duración del proceso de importación puede tardar varias horas o días dependiendo del tamaño de su disco de arranque y la velocidad de su conexión de red.
- El sistema donde crea y comprime la imagen del disco de inicio debe tener suficiente espacio de almacenamiento para crear los archivos de imagen en un dispositivo de almacenamiento que no sea el disco de inicio. Normalmente, sus archivos de imagen y
tar.gz
utilizan entre 2 y 3 veces más espacio que el propio disco de arranque. - Comprenda la estructura del sistema de archivos del sistema existente que desea importar.
- Si tu sistema operativo y los archivos de tu aplicación están distribuidos en varios discos, importa cada uno de esos discos individualmente y usa cada imagen para crear un disco persistente único para tu instancia de VM de Compute Engine.
- Si sus sistemas tienen volúmenes de arranque en una configuración RAID donde varios discos actúan como un único volumen lógico, cree una única imagen de todo el conjunto en lugar de crear una imagen para cada disco del conjunto. Los discos persistentes de Compute Engine eliminan la necesidad de configuraciones RAID.
- Si su sistema cifra el contenido de su disco de inicio con un Módulo de plataforma segura o con cifrado a nivel de software, descifre su disco de inicio antes de crear el archivo de imagen del disco de inicio. Google no puede leer sus imágenes si están cifradas. Ciframos sus imágenes después de que las carga y le permitimos proporcionar sus propias claves de cifrado para sus discos persistentes y depósitos de Cloud Storage .
Después de identificar o crear un sistema donde pueda completar el proceso de importación, conéctese a ese sistema y configure el gestor de arranque .
Prepare la imagen del disco de arranque
En un sistema en ejecución, prepare la imagen del disco de inicio para que pueda funcionar en un entorno de Compute Engine.
- Configure el gestor de arranque en el disco de arranque para que la imagen pueda arrancar en Compute Engine.
- Configure SSH o el acceso de inicio de sesión de usuario en el disco de arranque para que pueda acceder a él después de importarlo a Compute Engine e iniciarlo como una instancia de VM.
Este proceso puede hacer que el sistema no pueda arrancar fuera de Compute Engine, por lo que la mejor práctica es completar este paso en un sistema aislado usando una copia del disco de arranque que desea importar.
Configurar el gestor de arranque
Configure el gestor de arranque en el sistema para que pueda arrancar en Compute Engine.
Conéctese al terminal del sistema con el disco de arranque que planea importar.
Edite el archivo de configuración de GRUB. Normalmente, este archivo se encuentra en
/etc/default/grub
, pero en algunas distribuciones anteriores, puede estar ubicado en un directorio no estándar.Realice los siguientes cambios en el archivo de configuración de GRUB:
- Elimine cualquier línea que tenga
splashimage=
. Compute Engine no admite pantallas de presentación al inicio. - Elimine los argumentos de línea de comandos
rhgb
yquiet
del kernel. - Agregue
console=ttyS0,38400n8d
a los argumentos de la línea de comandos del kernel, para que la instancia pueda interactuar con la consola serie .
- Elimine cualquier línea que tenga
Regenere el archivo
grub.cfg
. Utilice uno de los siguientes comandos, según su distribución.- Debian y Ubuntu:
sudo update-grub
- RHEL, CentOS, SUSE, openSUSE:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
- Debian y Ubuntu:
Edite el archivo
/etc/fstab
y elimine las referencias a todos los discos y particiones que no sean el disco de inicio y las particiones de ese disco de inicio. Las entradas no válidas en/etc/fstab
pueden hacer que el proceso de inicio del sistema se detenga.
Después de configurar el gestor de arranque, cree y comprima el archivo de imagen del disco .
Configure SSH o el acceso de inicio de sesión de usuario en la imagen
Después de que tu imagen se ejecute en Compute Engine como una instancia de VM, debes tener una forma de acceder a esa instancia. Puede conectarse a la instancia utilizando una configuración SSH existente o puede iniciar sesión con un nombre de usuario y contraseña conectándose a la consola serie .
Complete la configuración de inicio de sesión de usuario o SSH antes de crear y comprimir el archivo de imagen de disco .
Crea y comprime el archivo de imagen del disco.
Crea y comprime el archivo de imagen del disco de arranque para el sistema que deseas importar a Compute Engine. El proceso para crear y comprimir el archivo de imagen es diferente según la plataforma donde operan sus sistemas.
Genérico
En casi cualquier sistema, puedes utilizar este proceso para crear un archivo de imagen RAW que puedes importar a Compute Engine. Puede completar este proceso en el sistema en ejecución que está importando, o puede conectar su disco de inicio como disco secundario en otro sistema y crear la imagen del disco de inicio desde el disco detenido. Asegúrese de tener suficiente espacio de almacenamiento disponible para guardar temporalmente los archivos de imagen del disco. Este ejemplo toma una imagen de un sistema en ejecución.
Conéctese al terminal del sistema que tiene el disco de arranque que planea importar.
Utilice el comando
lsblk
para identificar el disco de arranque de origen desde el que desea crear una imagen y la ubicación donde tiene suficiente espacio para escribir los archivos de imagen. Para este ejemplo,/dev/sda
es el disco de arranque de origen y/dev/sdb
es un disco secundario grande montado en el directorio/tmp
. Aunque /dev/sda se esté ejecutando, aún puedes crear una imagen a partir de él. Es mejor hacer esto 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
Cree el archivo de imagen desde su disco de arranque.
sudo dd if=/dev/sda of=/tmp/disk.raw bs=4M conv=sparse
Cambie al directorio donde escribió 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 cargarlo más rápidamente en Cloud Storage. En OSX, instalegtar
y utilícelo para este paso en lugar detar
.tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
AWS EC2
Para obtener más información sobre la importación de imágenes de máquinas de Amazon (AMI) e imágenes de discos virtuales desde Amazon Web Services (AWS) a Compute Engine, consulte Importar imágenes desde AWS .
VirtualBox
Si preparó su sistema en un entorno VirtualBox, puede usar la herramienta VBoxManage
para convertir una imagen de disco .vdi
o .qcow2
al formato disk.raw
.
Apague la máquina invitada de VirtualBox que desea importar y reemplace GUEST_NAME con el nombre de su máquina invitada. Puede apagar la máquina invitada con la interfaz VirtualBox o utilizando la utilidad VBoxManage .
VBoxManage controlvm GUEST_NAME acpipowerbutton
Convierta la imagen de invitado al formato RAW usando la utilidad VBoxManage , reemplazando GUEST_NAME con la ruta a su 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 cargarlo más rápidamente en Cloud Storage. En OSX, instalegtar
y utilícelo para este paso en lugar detar
.sudo tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
El archivo de imagen está comprimido y listo para cargar en Cloud Storage.
Importa la imagen a tu lista de imágenes personalizadas
Cargue el archivo en Cloud Storage e importe la imagen a su lista de imágenes personalizadas. Opcionalmente, puede cifrar la imagen durante el paso de importación de la imagen.
Importe la imagen con la consola o las herramientas CLI de Google Cloud :
Consola
Copie el archivo compressed-image.tar.gz
a su estación de trabajo local y use la consola de Google Cloud para crear un depósito y cargar el archivo .
- En la consola de Google Cloud, vaya a la página del navegador de Cloud Storage.
- En la parte superior de la página, haz clic en Crear depósito .
- Especifique un nombre de depósito único, la clase de almacenamiento Estándar y una ubicación donde desea almacenar sus archivos de imagen.
- Haga clic en Crear para crear el depósito. La página del navegador navega hasta el nuevo depósito.
- En la parte superior de la página, haz clic en Cargar archivos .
- En el cuadro de diálogo del archivo, seleccione el archivo
compressed-image.tar.gz
que descargó de su sistema. El archivo se carga desde su estación de trabajo local. Este paso puede tardar varias horas dependiendo del tamaño de su archivo de imagen comprimido y de la velocidad de su conexión de red.
Después de cargar la imagen en Cloud Storage, importe el archivo de imagen a su lista de imágenes personalizadas.
- En la consola de Google Cloud, vaya a la página Imágenes .
- En la parte superior de la página, haz clic en Crear imagen .
- En el campo Nombre , especifique un nombre único para la imagen.
- Opcionalmente, especifique una familia de imágenes para su nueva imagen o configure ajustes de cifrado específicos para la imagen.
- Haga clic en el menú Fuente y seleccione Archivo de Cloud Storage .
Ingresa la ruta al archivo
compressed-image.tar.gz
que subiste a Cloud Storage.BUCKET_NAME/compressed-image.tar.gz
Haga clic en Crear para importar la imagen. El proceso puede tardar varios minutos dependiendo del tamaño de la imagen del disco de arranque.
La imagen ahora está incluida en la página Imágenes . Puede crear una máquina virtual utilizando esta imagen importada . Si hay un error de arranque, verifique y asegúrese de haber configurado el gestor de arranque correctamente.
gcloud y almacenamiento gcloud
Usa la CLI de gcloud para cargar el archivo de imagen del disco de arranque comprimido. Puede completar este proceso en el sistema donde creó la imagen del disco de arranque, o puede copiar ese archivo a otro sistema y completar el proceso de carga allí.
Instala e inicializa la CLI de gcloud en el sistema desde el que planeas cargar el
compressed-image.tar.gz
.Usa la CLI de gcloud para crear un nuevo depósito de Cloud Storage.
gcloud storage buckets create gs://BUCKET_NAME
Cargue el archivo
compressed-image.tar.gz
en el nuevo depósito.gcloud storage cp compressed-image.tar.gz gs://BUCKET_NAME
Importe el archivo de imagen como una nueva imagen personalizada.
gcloud compute images create IMAGE_NAME --source-uri gs://BUCKET_NAME/compressed-image.tar.gz
Reemplace lo siguiente:
- IMAGE_NAME : el nombre de la imagen que importaste.
- BUCKET_NAME : el nombre del depósito en el que está almacenada la imagen importada.
La imagen ahora está incluida en la lista de imágenes personalizadas. Puede crear una máquina virtual utilizando esta imagen importada . Si hay un error de arranque, verifique y asegúrese de haber configurado el gestor de arranque correctamente.
gcloud compute images list --no-standard-images
NAME PROJECT FAMILY DEPRECATED STATUS [IMAGE_NAME] [PROJECT_ID] READY
Pruebe la imagen importada para asegurarse de que funcione
Confirme que la imagen importada funciona como se esperaba. Cree una máquina virtual con un disco de arranque que utilice la imagen importada.
Consola
En la consola de Google Cloud, vaya a la página Crear una instancia .
En la sección Disco de arranque , haga clic en Cambiar y luego haga lo siguiente:
- Seleccione la pestaña Imágenes personalizadas .
- Para seleccionar el proyecto de imagen, haga clic en Seleccionar un proyecto y luego haga lo siguiente:
- Seleccione el proyecto que contiene la imagen.
- Haga clic en Abrir .
- En la lista Imagen , haga clic en la imagen que importó.
- Seleccione el tipo y tamaño de su disco de arranque.
- Para confirmar las opciones de su disco de arranque, haga clic en Seleccionar .
Haga clic en Crear .
nube de gcloud
gcloud compute instances create VM_NAME --zone ZONE --image IMAGE_NAME
Reemplace lo siguiente:
- VM_NAME : un nombre único para su VM.
- ZONE : la zona donde creó el disco independiente.
- IMAGE_NAME : el nombre de la imagen que importaste.
Después de crear la VM, confirme que se inició correctamente. Verifique la salida del puerto serie:
Consola
- En la consola de Google Cloud, vaya a la página de instancias de VM .
- En la lista de máquinas virtuales, haga clic en el nombre de la máquina virtual que creó a partir de la imagen importada. Se abre la página de detalles de la máquina virtual.
- En la sección Registros , haga clic en el puerto serie apropiado para expandir y ver la salida del puerto serie para esta VM.
Si la máquina virtual se detuvo en Booting from Hard Disk 0...
, debes solucionar los problemas desde el entorno de Compute Engine o puedes reconfigurar el disco de inicio en tu sistema original y repetir el proceso de importación.
nube de gcloud
gcloud compute instances get-serial-port-output VM_NAME
Si la VM se detuvo al Booting from Hard Disk 0...
, debes solucionar los problemas desde el entorno de Compute Engine o puedes reconfigurar el disco de inicio en tu sistema original y repetir el proceso de importación.
También puede probar la VM conectándose a ella. Conéctese a la VM a través de una de las siguientes opciones:
- SSH: si la VM tenía una configuración SSH funcional, puede conectarse a la VM usando SSH y su clave privada. Puede encontrar la dirección IP de la instancia de VM en la página de instancias de VM .
- Consola serie: si necesita iniciar sesión en la máquina virtual directamente sin SSH, puede habilitar la consola serie e iniciar sesión con un nombre de usuario y contraseña.
¿Qué sigue?
- Configure el disco para que su imagen pueda aprovechar las funciones dentro del entorno de Compute Engine.
- Una vez que su imagen esté lista para producción, cree una versión final de esa imagen personalizada e inclúyala en una familia de imágenes para que pueda administrar versiones actualizadas de la imagen personalizada.
- Algunas importaciones pueden fallar debido a problemas con el disco de arranque. Para obtener más información, consulte Solución de problemas de discos de arranque .