Proxmox: instalación, clustering y migración en vivo

En este post explicaré cómo instalar Proxmox con un particionamiento personalizado y cómo luego formar un cluster con otro equipo con Proxmox. Finalmente, daré una pauta de cómo lograr hacer la migración en vivo de máquinas virtuales.

En mi caso, cuento con dos servidores que soportan virtualización por hardware y he decidido utilizar Proxmox como plataforma de virtualización por varios motivos:

  • Es software libre.
  • Es gratis.
  • Permite virtualizar con KVM y OpenVZ.
  • Tiene una interfaz web muy sencilla de utilizar
  • Basado en Debian: se lo puede administrar por SSH e instalar cualquier paquete compilado para Debian.
  • Soporta varias funcionalidades avanzadas sin adquirir ninguna licencia adicional:
    • Migración en vivo.
    • Clustering de servidores.
    • Backups automáticos de las VMs.
    • Posibilidad de conectar a un NAS/SAN con NFS, iSCSI.

Instalación

La instalación de Proxmox es sumamente sencilla dado que se realiza en pocos pasos mediante una interfaz gráfica muy intuitiva. No obstante, cabe destacar que por defecto no se pregunta nada del esquema de particionamiento que utilizará. Desde mi punto de vista, la forma en que se particiona por defecto resulta muy ineficiente, dado que se asigna mucho espacio al directorio raíz y a la swap, espacio que normalmente no se utiliza.

No obstante, como el particionamiento se lleva a cabo utilizando LVM, es posible luego redimensionar esas particiones; sin embargo, es más sencillo escoger el tamaño al momento de la instalación para luego no tener que hacer ningún cambio. Para ello, cuando Proxmox bootea desde el CD la primera vez se queda esperando con un prompt que nos permite pasarle algún parámetro. En este caso, le indicaremos que deseamos un disco raíz de 20GB y una swap de 4GB, de la siguiente manera:

boot: linux maxroot=20 swapsize=4

Una vez finalizado lo anterior se prosigue la instalación guiada normalmente.

Armar el cluster

Contar con un cluster de servidores Proxmox es sumamente útil dado que posibilita migrar máquinas virtuales entre cualquier servidor del cluster y permite administrar todos los servidores Proxmox desde una única interfaz, ubicada en el master.

Por fortuna, crear el cluster con Proxmox es totalmente trivial y se realiza con los siguientes pasos (tener en cuenta que todos los equipos que formen parte del cluster deben tener nombres diferentes):

En el nodo que será el master:

dell:~# pveca -c
cluster master successfully created

dell:~# pveca -l
CID----IPADDRESS----ROLE-STATE--------UPTIME---LOAD----MEM---DISK
 1 : 10.31.1.67      M     A     1 day 05:11   0.08    30%     3%

Luego, el segundo nodo, que será el esclavo:

virtua:~# pveca -l
local node '10.31.1.60' not part of cluster

virtua:~# pveca -a -h 10.31.1.67
cluster node successfully created

virtua:~# pveca -l
CID----IPADDRESS----ROLE-STATE--------UPTIME---LOAD----MEM---DISK
 1 : 10.31.1.67      M     A     1 day 05:13   0.01    30%     3%
 2 : 10.31.1.60      N     A           01:57   0.00    11%     2%

Con lo anterior ya se conformó el cluster entre ambos equipos. Si se accede por web a https://10.31.1.67 se podrá ver el estado de ambos servidores así como las máquinas virtuales con las que cuentan los mismos (en este caso ninguna dado que aún no hemos creado). Lógicamente, desde dicha interfaz podrán apagarse, prenderse, reiniciarse y modificarse las distintas máquins virtuales.

Migración en vivo

Para la migración en vivo se necesita utilizar un servidor NAS/SAN en el que se alojen los discos de las máquinas virtuales. El motivo de esto es que para lograr la migración en vivo, lo único que se hace es mover la información que la máquina a ser migrada tiene en memoria, de un equipo al otro. Como el disco es compartido por estar en un servidor de almacenamiento no cambia nada allí; además la migración gracias a esto se hace muy rápido.

Como en este caso sólo se tienen dos servidores, se utilizará el nodo master como servidor de almacenamiento. Para ello, se creará un directorio que luego será exportado por NFS y agregado a la sección “Storage”. Lo primero se realiza de la siguiente forma:

dell:~# aptitude install nfs-kernel-server
dell:~# mkdir /var/lib/vz/storage
dell:~# vi /etc/exports 
/var/lib/vz/storage     10.31.1.60(rw,no_root_squash) 10.31.1.67(rw,no_root_squash)
dell:~# /etc/init.d/nfs-kernel-server restart

Listo, sólo resta agregar el nuevo dispositivo de almacenamiento por medio de la interfaz web. Luego, cuando se cree una máquina virtual y un disco para la misma se debe guardar este último en el almacenamiento de red. Teniendo esto hecho, el paso de migrar las máquinas virtuales en vivo es tan sencillo que ni vale la pena que lo explique aquí.

  • Acerca de
  • Entradas recientes
  • Leandro Di Tommaso

    Especialista en redes e infraestructura en Mikroways
    http://leandroditommaso.com.ar

    Entradas recientes de Leandro Di Tommaso (ver todas)

    Esta entrada tiene 4 comentarios

    1. Rafa

      Hola, en primer lugar felicitarte por tu blog, no sabía la existencia del proyecto proxmox, yo uso una Ubuntu mínima junto con KVM, libvirt y qemu.

      He estado leyendo tu artículo y tengo una duda. En el ejemplo que pones de montar un cluster con proxmox en este caso de dos host y virtualizar varios entornos. ¿Sería posible que los recursos o carga de las máquinas virtuales creadas se repartan entre los dos cluster y si fallara uno de los nodos el que está online asumiera todo el trabajo hasta recuperación del nodo caido?

      Saludos.

    2. luis diaz

      saludos,
      de gran utilidad tu articulo. gracias!

      una pregunta…
      como podría configurar respaldos automaticos entre equipos en un cluster.

      suponiendo que se tienen X maquinas en donde se ejecutan los vps y entre ellas se intercambian en vivo, durante tareas de mantenimiento de hardware.

      como sera posible, respaldar los vps de esos equipos a los nodos (en el cluster) que uno tenga con la capacidad de almacenamiento

      pregunto, pq cuando se trabaja de forma individual es fácil configurar almacenes y respaldos

      pero cuando se conforma el cluster esta opción es bloqueada en la interfaces web de los nodos y solo es posible crear y programar respaldos en el master y obviamente desde el hacia el..

      gracias de antemano

    3. Pcrednet

      Muy bueno.
      Actualmente tengo un VPS contratdo externo y usan OpenVZ con Proxmox. Quiero montarme uno en local para mantener una copia de mi VPS por si acaso… mil gracias

      Ya te preguntaré si tengo algún problema.

      Gracias.

    Deja un comentario