Inicio > Internet y redes, Linux, Servidores, Tutoriales, Webmaster > Convertir un Droplet de DigitalOcean a una VM de VMware

Convertir un Droplet de DigitalOcean a una VM de VMware

Lunes, 8 de Septiembre de 2014 Dejar un comentario Ir a comentarios

SI deseas hacer un respaldo local funcional del Droplet o para migrarlo a otro servidor debes seguir estos pasos.

Requerimientos

  1. Acceso root con contraseña al droplet (si usas claves públicas para acceder al droplet debes crear una contraseña con el comando passwd root)
  2. Acceso al panel de control de la página de DigitalOcean
  3. Servidor accesible remotamente por SSH para guardar la imagen
  4. El mismo servidor anterior debe tener el paquete qemu-utils instalado
  5. VMware instalado, puede ser en el servidor anterior o en otro equipo.
  6. Espacio disponible en disco, se requiere por lo menos el tamaño total del disco del droplet + el espacio utilizado en el mismo.
  7. Archivo ISO de Ubuntu, se usará como live cd.

Este tutorial fue realizado para copiar un droplet con SO Debian 7 x64, con otra distribución pueden variar algunos comandos, como para detener los servicios.

Para hacer el respaldo debes ingresar por consola al droplet, para ello debes entrar por la página de DigitalOcean

image

Hacer clic en el droplet y luego en el botón grande “Console access”

image

Luego debes iniciar sesión como root y tu contraseña. Si sólo usas claves públicas para entrar por SSH debes asignar una contraseña previamente al usuario root.

  • Cambia el nivel de ejecución del sistema al nivel 1, correspondiente al single-user mode . Esto detendrá casi todos los servicios y el sistema entrará en “modo de mantenimiento”, debes ingresar la contraseña de root nuevamente.

image

  • Debes detener otros tres servicios más con los comandos

/etc/init.d/rsyslog stop
/etc/init,d/udev stop
/etc/init,d/dbus stop

  • Para hacer más liviana la imagen se rellenarán con ceros el espacio libre de la partición, para ello se usará el comando dd. Una vez finalizado se eliminará el archivo que genere este comando

dd if=/dev/zero of=zerofile bs=20M
rm zerofile

  • Ahora se generará una imagen del droplet, la que se transferirá comprimida por SSH a otro servidor (requerimiento 3).

dd if=/dev/vda | gzip –1 – | ssh usuario@direccionServidor dd of=/carpeta/imagen.gz

  • Una vez completado el comando anterior la imagen ya ha sido transferida fuera del droplet, por lo que ya éste se puede apagar con el comando shutdown o reboot si desea reiniciarse para ser puesto online.
  • En el servidor donde se guardó la imagen se debe ejecutar este comando para descomprimir la imagen, esto requerirá tener como espacio disponible la misma cantidad total del disco del droplet original. O sea que si el droplet incluía un disco de 20GB, esa cantidad será requerida para la descompresión.

gunzip /carpeta/imagen.gz

  • Ahora se convertirá la imagen a VMDK para que pueda utilizarse en VMware. En la imagen VMDK resultante sólo se ocupará el espacio utilizado. La imagen original puede eliminarse posteriormente, aunque ésta puede montarse en loopback para acceder a los archivos.

qemu-img convert –O vmdk /carpeta/imagen /carpeta/imagen.vmdk

  • Ya está lista la imagen para VMware (/dev/sda), pero sin embargo aún no se puede iniciar una VM desde ella, para ello se debe preparar cambiando el bootloader.
  • Tienes que crear una VM nueva con un disco que tenga por lo menos 2 GB más que los que estaban en uso en el droplet (/dev/sdb), asignar la ISO de Ubuntu a la unidad de CD de la VM.
  • Iniciar la VM desde el CD para iniciar Ubuntu
  • En Ubuntu con GParted crear tabla de particiones y una partición ext4 para el disco virtual recién creado que ocupe todo el espacio (/dev/sdb)
  • Transferir la imagen convertida a la partición nueva

dd if=/dev/sda of=/dev/sdb1 conv=notrunc,noerror

  • Una vez transferida la imagen hacer una revisión

fsck –t ext4 /dev/sdb1

  • Eliminar el bootloader de DigitalOcean

mount /dev/sdb1 /mnt
rm –rf /mnt/boot/grub
umount /mnt

  • Ahora se debe instalar GRUB para que la imagen pueda iniciarse, para eso se usará boot-repair

add-apt-repository ppa:yannubuntu/boot-repair
sed ‘s/trusty/saucy/g’ -i /etc/apt/sources.list.d/yannubuntu-boot-repair-trusty.list
apt-get update
apt-get install -y boot-repair
boot-repair &

Seleccionar “Recommended repair”

Durante el proceso boot-repair solicitará ejecutar algunos comandos en una terminal nueva, para eso se debe copiar y pegar en una terminal nueva. Una vez ejecutado presionar siguiente.

  • Ahora puedes reiniciar la máquina virtual e iniciar el SO original desde ella.
  • Finalmente deben desactivar ciertos módulos, para ello edita el archivo /etc/modprobe/fbdev-blacklist.conf (o blacklist.conf si existe) y agregar al final las siguientes líneas

blacklist vt8623fb
blacklist floppy

image

Puedes eliminar la imagen original copiada, la imagen convertida a VMDK, sólo se usará el disco nuevo que se creó para la VM.

Recomendado

  • El droplet tiene configurada la red con IP estática, para cambiarlo a IP dinámica por DHCP se debe editar el archivo /etc/network/interfaces de

auto eth1 eth0
iface eth0 inet static
        address <IP publica>
        netmask 255.255.192.0
        gateway <GW DO>
iface eth1 inet static
        address <IP privada>
        netmask 255.255.0.0

a

auto eth0
iface eth0 inet dhcp

Desde donde dice “Primary network interface”

 

Fuente: http://scriptthe.net/ConvertDigitalOceanDroplettoVMwareVM.pdf