Importación manual de discos de arranque


Para importar imágenes de disco de arranque a Compute Engine desde tus centros de datos físicos, máquinas virtuales (VM) en tu estación de trabajo local o VM que se ejecutan en otra plataforma en la nube, se recomienda 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 y en esta guía se indica cómo importar imágenes de disco de arranque.

Importa tus discos de arranque existentes solo si no puedes compilar o migrar tus apps para que se ejecuten sobre las 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 apps en esas imágenes sin tener que preocuparte por las configuraciones del sistema operativo y el bootloader. Sin embargo, es posible que debas importar tus propias imágenes de disco de arranque en las siguientes situaciones:

  • Si tus apps requieren un sistema operativo que no se proporciona como imagen pública.
  • Si ya tienes un conjunto de imágenes básicas que puedes usar para crear VM en otra plataforma en la nube.
  • Si el trabajo que se necesita a fin de migrar el código de la app a una de las imágenes públicas es mayor que el necesario para completar el proceso de importación de la imagen de disco de arranque.

Como alternativa, puedes obtener ayuda con la migración de tus VM mediante Partner Services. Para obtener más información, consulta la migración de VM a Compute Engine.

Descripción general

Para importar una imagen de disco de arranque a Compute Engine, usa el siguiente proceso:

  1. Planifica tu ruta de importación. Debes identificar dónde vas a preparar tu imagen de disco de arranque antes de subirla y cómo se conectará con esa imagen una vez iniciada en el entorno de Compute Engine.
  2. Prepara tu disco de arranque a fin de que puedas arrancar dentro del entorno de Compute Engine y para que puedas acceder a él después de que arranque.
  3. Crea y comprime el archivo de imagen de disco de arranque.
  4. Sube el archivo de imagen a Cloud Storage y, luego, importa la imagen a Compute Engine como una nueva imagen personalizada.
  5. Usa la imagen importada para crear una instancia de VM y asegúrate de que se inicie de forma correcta.
  6. Si la imagen no se inicia correctamente, puedes solucionar el problema si adjuntas la imagen de disco de arranque a otra instancia y la vuelves a configurar.
  7. Optimiza la imagen y, luego, instala el entorno invitado para que la imagen importada del sistema operativo pueda comunicarse con el servidor de metadatos y usar funciones adicionales de Compute Engine.

Requisitos

Requisitos para el disco de arranque

Para importar discos de arranque a Compute Engine, estos deben satisfacer los siguientes requisitos:

  • Te recomendamos que instales todas las actualizaciones disponibles en tu VM de origen.
  • Si creaste un kernel de sistema operativo personalizado, debe satisfacer los requisitos de configuración de kernel y hardware. La mayoría de las distribuciones de Linux ya satisfacen estos requisitos, por lo que este requisito es solo para usuarios avanzados que compilan sus propios sistemas operativos personalizados a fin de ejecutarlos en Compute Engine.
  • El disco de arranque no debe superar los 2,048 GB (2 TB).
  • El disco de arranque que importas debe tener una tabla particionada de MBR funcional o una configuración híbrida de una tabla particionada de GPT con un bootloader de MBR.
  • La partición principal en el disco de arranque puede tener el formato que prefieras, siempre que se inicie de forma correcta desde el bootloader de MBR.
  • El bootloader en el disco de arranque no debe tener los argumentos de línea de comandos de kernel quiet, rhgb o splashimage=. Compute Engine no admite pantallas de presentación durante el inicio. Puedes quitar estos valores de la configuración de GRUB durante el paso de configuración del bootloader.
  • El sistema operativo en el disco de arranque debe admitir ACPI.

Requisitos para el archivo de imagen

El archivo de imagen que importes debe satisfacer los siguientes requisitos:

  • Realiza una verificación de coherencia en la imagen de disco con el comando qemu-img check en el disco.
  • Para exportar el disco virtual, usa la función de exportación del software de administración de VM. No copies el archivo VMDK del sistema de archivos de VM Manager.
  • El archivo de imagen debe ser de una imagen compatible.
  • El nombre de archivo de la imagen de disco debe ser disk.raw.
  • El archivo de imagen RAW debe tener un tamaño múltiplo de 1 GB. Por ejemplo, el archivo puede tener 11 GB o 10 GB, pero no 10.5 GB.
  • El archivo comprimido debe ser un archivo .tar.gz que use la compresión gzip y la opción --format=oldgnu para la utilidad tar (manual).

Requisitos para 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 que está configurado en el disco de arranque.

Se puede acceder a este repositorio de forma directa desde el proveedor del sistema operativo o mediante una conexión de red a la infraestructura local que aloja estos repositorios.

Para configurar el acceso al repositorio externo, completa uno de los siguientes pasos en tu proyecto:

Limitaciones

Para importar discos con redes que no permiten direcciones IP externas, debes cumplir con requisitos de red adicionales. Para obtener más información, consulta Importa discos mediante redes que no permiten direcciones IP externas.

Costos de importación de imágenes

Antes de comenzar, comprende los costos del proceso de importación. La entrada de red necesaria para subir tu archivo de imagen de disco de arranque a Cloud Storage y la importación de esa imagen como una imagen personalizada de Compute Engine no generan costos. Sin embargo, hay costos para algunos pasos específicos del proceso de importación:

  • El costo de almacenar de forma temporal tus archivos de imagen comprimidos en un depósito estándar de Cloud Storage. Debes usar un bucket temporal de Cloud Storage para guardar tus archivos antes de poder importarlos como imágenes personalizadas de Compute Engine. Puedes quitar el bucket después de completar el proceso de importación.
  • El costo por almacenar imágenes personalizadas después de que termines de importarlas a Compute Engine.
  • El costo potencial de las transferencias de datos salientes en tu centro de datos existente, proveedor de red o servicio en la nube actual. Los archivos de imagen pueden ser muy grandes incluso después de comprimirlos, por lo que copiarlos en Compute Engine podría generar cargos significativos por transferencia de datos de salida en algunas plataformas.
  • El costo de los discos persistentes y las instancias de VM de Compute Engine en las que puede configurar tu imagen después de importarla a Compute Engine.

Planifica y prepara tu ruta de importación

Tu método para importar el disco depende de la configuración actual del sistema que deseas mover a Compute Engine. Necesitas un sistema en el que se pueda crear y comprimir el archivo de imagen de disco de arranque, además de un sistema en el que se pueda subir el archivo de imagen Cloud Storage. Ten en cuenta los siguientes elementos cuando planifiques tu ruta de importación:

  • La ruta de importación de imágenes requiere que configures tu disco de arranque en un entorno de sistema operativo que funcione. Este proceso puede hacer que el disco de arranque no se inicie en ningún lugar fuera del entorno de Compute Engine. Es tu responsabilidad asegurarte de no perder datos en tus discos o interrumpir tus apps empresariales funcionales mientras importas tu sistema a Compute Engine.
  • Identifica tu configuración de acceso al sistema existente y planifica cómo deseas acceder al sistema después de importarlo a Compute Engine.
    • Si tu sistema tiene configuraciones de acceso de usuario o SSH existentes, puedes configurar solo el bootloader y, luego, configurar la imagen para que se ejecute de manera óptima en Compute Engine. Puedes acceder a la instancia mediante tu configuración de SSH existente o a través de un acceso directo de usuario en la consola en serie interactiva.
    • Si tu sistema no tiene acceso de usuario existente o configuración SSH, debes configurar el disco de arranque para que puedas acceder a él después de que se inicie en Compute Engine.
  • La duración del proceso de importación puede llevar varias horas o días, dependiendo del tamaño de tu disco de arranque y la velocidad de tu conexión de red.
  • El sistema en el que creas y comprimes la imagen de tu disco de arranque debe tener suficiente espacio de almacenamiento para crear los archivos de imagen en un dispositivo de almacenamiento que no sea el disco de arranque. Por lo general, tus archivos de imagen y tar.gz usan entre 2 y 3 veces más espacio que el disco de arranque.
  • Comprende la estructura del sistema de archivos del sistema existente que deseas importar.
    • Si el sistema operativo y los archivos de la app están distribuidos en varios discos, importa cada uno de ellos de forma individual y usa cada imagen a fin de crear un único disco persistente 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 solo volumen lógico, crea una imagen única de todo el array en lugar de una para cada disco. Los discos persistentes de Compute Engine eliminan la necesidad de configuraciones RAID.
  • Si el sistema encripta el contenido de tu disco de arranque con un módulo de plataforma de confianza o con una encriptación de software, desencripta el disco de arranque antes de crear el archivo de imagen de disco de arranque. Google no puede leer tus imágenes si están encriptadas. Encriptamos tus imágenes después de subirlas y te permitimos proporcionar tus propias claves de encriptación para tus discos persistentes y depósitos de Cloud Storage.

Después de identificar o crear un sistema en el que puedas completar el proceso de importación, conéctate a ese sistema y configura el bootloader.

Prepara la imagen de 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 bootloader en el disco de arranque para que la imagen se inicie en Compute Engine.
  • Configura el acceso de usuario o SSH en el disco de arranque a fin de que puedas acceder a él después de importarlo a Compute Engine para iniciarlo como una instancia de VM.

Este proceso puede hacer que el sistema no se pueda iniciar fuera de Compute Engine, por lo que se recomienda completar este paso en un sistema aislado con una copia del disco de arranque que deseas importar.

Configura el bootloader

Configura el bootloader en el sistema para que pueda iniciarse en Compute Engine.

  1. Conéctate a la terminal del sistema con el disco de arranque que planeas importar.

  2. Edita el archivo de configuración de GRUB. Por lo general, este archivo está en /etc/default/grub, pero, en algunas distribuciones anteriores, podría estar ubicado en un directorio no estándar.

  3. Realiza los siguientes cambios en el archivo de configuración de GRUB:

    • Quita cualquier línea que tenga splashimage=. Compute Engine no admite pantallas de presentación durante el inicio.
    • Quita los argumentos de línea de comandos de kernelrhgb y quiet.
    • Agrega console=ttyS0,38400n8d a los argumentos de línea de comandos de kernel para que la instancia pueda interactuar con la consola en serie interactiva.
  4. Vuelve a generar el archivo grub.cfg. Usa uno de los siguientes comandos según la distribución que uses.

    • Debian y Ubuntu: sudo update-grub
    • RHEL, CentOS, SUSE y openSUSE: sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  5. Edita el archivo /etc/fstab y quita las referencias a todos los discos y particiones que no sean el disco de arranque en sí y las particiones de ese disco de arranque. Las entradas no válidas en /etc/fstab pueden hacer que el proceso de inicio del sistema se detenga.

Después de configurar el bootloader, crea y comprime el archivo de imagen de disco.

Configura el acceso de usuario o SSH 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 ella. Puedes conectarte a la instancia con una configuración SSH existente o acceder a la consola en serie con un nombre de usuario y una contraseña.

Completa la configuración de acceso de usuario o SSH antes de crear y comprimir el archivo de imagen de disco.

Crea y comprime el archivo de imagen de disco

Crea y comprime el archivo de imagen de disco de arranque para el sistema que deseas importar a Compute Engine. El proceso para crear y comprimir el archivo de imagen es diferente dependiendo de la plataforma en la que operan tus sistemas.

Genérico

En casi cualquier sistema, puedes usar este proceso para crear un archivo de imagen RAW que puedes importar a Compute Engine. Puedes completar este proceso en el sistema en ejecución que importas o 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 tener suficiente espacio de almacenamiento disponible para almacenar de forma temporal los archivos de imagen de disco. Este ejemplo toma una imagen de un sistema en ejecución.

  1. Conéctate a la terminal en el sistema que tiene el disco de arranque que planeas importar.

  2. Usa el comando lsblk para identificar el disco de arranque de origen a partir del cual deseas 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 grande activado en el directorio /tmp. Aunque /dev/sda está en ejecución, aún puedes crear una imagen a partir de él. Lo mejor es hacerlo en un sistema silencioso que no procese datos ni ejecute 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
    
  3. 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
    
  4. Ve al directorio en el que se escribió el archivo disk.raw.

    cd /tmp
    
  5. Comprime el disco sin procesar en formato tar.gz. En este paso, se comprime el archivo de imagen para que puedas subirlo con mayor rapidez a Cloud Storage. En OSX, instala gtar y úsalo para este paso en lugar de tar.

    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áquina de Amazon (AMI) y, también, imágenes de disco virtual de Amazon Web Services (AWS) a Compute Engine, consulta Importa imágenes de AWS.

VirtualBox

Si preparaste tu sistema en un entorno de VirtualBox, puedes usar la herramienta VBoxManage para convertir una imagen de disco .vdi o .qcow2 en el formato disk.raw.

  1. Apaga la máquina huésped VirtualBox que deseas importar y reemplaza GUEST_NAME por el nombre de tu máquina huésped. Puedes apagar la máquina de invitado con la interfaz de VirtualBox o la herramienta VBoxManage.

    VBoxManage controlvm GUEST_NAME acpipowerbutton
  2. Convierte la imagen de huésped a formato RAW mediante la utilidad VBoxManage y reemplaza GUEST_NAME por la ruta de acceso a tu imagen de huésped. Puedes proporcionar esta imagen de huésped como un archivo vdi o qcow2:

    VBoxManage clonemedium GUEST_NAME ~/disk.raw --format RAW
  3. Comprime el disco sin procesar en formato tar.gz. En este paso, se comprime el archivo de imagen para que puedas subirlo con mayor rapidez a Cloud Storage. En OSX, instala gtar y úsalo para este paso en lugar de tar.

    sudo tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
    

El archivo de imagen está comprimido y listo para subirse a Cloud Storage.

Importa la imagen a tu lista de imágenes personalizadas

Sube el archivo a Cloud Storage y, luego, importa la imagen a tu lista de imágenes personalizadas. De manera opcional, puedes encriptar la imagen durante el paso de importación.

Importa la imagen con Console o las herramientas de Google Cloud CLI:

Console

Copia el archivo compressed-image.tar.gz en tu estación de trabajo local y usa la consola de Google Cloud para crear un bucket y subir el archivo.

  1. En la consola de Google Cloud, ve a la página del navegador de Cloud Storage.

    Ir al navegador

  2. En la parte superior de la página, haz clic en Crear depósito.
  3. Especifica un nombre de depósito único, la clase de almacenamiento Estándar y una ubicación en la que desees almacenar tus archivos de imagen.
  4. Haz clic en Crear para crear el depósito. La página del navegador dirige al bucket nuevo.
  5. Haz clic en Subir archivos en la parte superior de la página.
  6. En el cuadro de diálogo de archivo, selecciona el archivo compressed-image.tar.gz que descargaste de tu sistema. El archivo se sube desde tu estación de trabajo local. Este paso puede llevar varias horas según el tamaño de tu archivo de imagen comprimido y 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.

  1. En la consola de Google Cloud, ve a la página Imágenes.

    Ir a Imágenes

  2. En la parte superior de la página, haz clic en Crear imagen.
  3. En el campo Nombre, especifica un nombre único para la imagen.
  4. Opcionalmente, especifica una familia de imágenes para tu imagen nueva o prepara la configuración de encriptación específica para la imagen.
  5. Haz clic en el menú Origen y selecciona el archivo de Cloud Storage.
  6. Ingresa la ruta del archivo compressed-image.tar.gz que subiste a Cloud Storage.

    BUCKET_NAME/compressed-image.tar.gz
  7. Haz clic en Crear para importar la imagen. El proceso puede llevar varios minutos según el tamaño de la imagen de disco de arranque.

La imagen ahora se incluye en la página Imágenes. Puedes crear una VM con esta imagen importada. Si se produce un error de inicio, verifica y asegúrate de que configuraste el bootloader correctamente.

gcloud y gcloud storage

Usa la gcloud CLI para subir el archivo de imagen de disco de arranque comprimido. Puedes completar este proceso en el sistema en el que creaste la imagen de disco de arranque o puedes copiar ese archivo a otro sistema y completar el proceso de carga desde allí.

  1. Instala e inicializa la gcloud CLI en el sistema desde el cual planeas subir el archivo compressed-image.tar.gz.

  2. Usa gcloud CLI para crear un bucket de Cloud Storage nuevo.

    gcloud storage buckets create gs://BUCKET_NAME
  3. Sube el archivo compressed-image.tar.gz al nuevo bucket.

    gcloud storage cp compressed-image.tar.gz gs://BUCKET_NAME
  4. 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
    

    Reemplaza lo siguiente:

    • IMAGE_NAME: El nombre de la imagen que importaste.
    • BUCKET_NAME: El nombre del bucket en el que se almacena la imagen importada.

La imagen ahora se incluye en la lista de imágenes personalizadas. Puedes crear una VM con esta imagen importada. Si se produce un error de inicio, verifica y asegúrate de que configuraste el bootloader 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 como se espera. Crea una VM con un disco de arranque que use la imagen importada.

Console

  1. En la consola de Google Cloud, ve a la página Crea una instancia.

    Ir a Crear una instancia

  2. En la sección Disco de arranque, haz clic en Cambiar y, luego, haz lo siguiente:

    1. Selecciona la pestaña Imágenes personalizadas.
    2. Para seleccionar el proyecto de imagen, haz clic en Seleccionar un proyecto y, luego, haz lo siguiente:
      1. Selecciona el proyecto que contiene la imagen.
      2. Haz clic en Abrir.
    3. En la lista Imagen, haz clic en la imagen que importaste.
    4. Selecciona el tipo y tamaño de tu disco de arranque.
    5. Para confirmar las opciones del disco de arranque, haz clic en Seleccionar.
  3. Haz clic en Crear.

gcloud

gcloud compute instances create VM_NAME --zone ZONE --image IMAGE_NAME

Reemplaza lo siguiente:

  • VM_NAME: Un nombre único para la VM.
  • ZONE: La zona en la que creaste el disco independiente.
  • IMAGE_NAME: El nombre de la imagen que importaste.

Después de crear la VM, confirma que se inició correctamente. Verifica la salida del puerto en serie:

Console

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias

  2. En la lista de VM, haz clic en el nombre de la VM que creaste a partir de la imagen importada. Se abrirá la página de detalles de la VM.
  3. En la sección Registros, haz clic en el puerto en serie correspondiente para expandir y ver la salida del puerto en serie de la VM.

Si la VM se detuvo 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 VM se detuvo 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 si te conectas a ella. Conéctate a la VM a través de una de las siguientes opciones:

  • SSH: Si la VM tenía una configuración SSH funcional, puedes conectarte a la VM con SSH y tu clave privada. Puede encontrar la dirección IP de la instancia de VM en la página de Instancias de VM.
  • Consola en serie: si necesitas acceder a la VM directamente sin SSH, puedes habilitar la consola en serie y acceder con un nombre de usuario y una contraseña.

¿Qué sigue?