Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INDICE
1.
2.
3.
4.
5.
6.
7.
8.
9.
Pg. 1 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 2 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Las caractersticas hardware ms relevantes del equipo que actuar como servidor NFS son:
Pg. 3 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 4 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 5 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Introducimos contrasea y email para el usuario root. Dicha contrasea es la que usaremos para
loguearnos a travs de la GUI. En mi caso he usado A123456a. La direccin de correo es ficticia, ya que
no la usar en este proyecto, pero podra configurarse para que el sistema nos alerte en determinadas
situaciones:
Pg. 6 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
A continuacin configuramos la red, donde debemos indicar nombre del host (en formato FQDN), direccin
IP, mscara, gateway y servidor DNS. Yo he usado los datos que se muestran en la captura:
NOTA: El servidor DNS utilizado debera poder resolver el nombre de host utilizado, ya que es un requisito para la
implementacin de HA. Una alternativa sencilla, y que he realizado para este proyecto, es modificar el archivo
/etc/hosts para que cada nodo del clster sea capaz de resolver el nombre de los dems.
Pg. 7 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Seleccionamos Proxmox Virtual Environment GNU/Linux en el gestor de arranque GRUB para arrancar el
sistema, o esperamos el tiempo predeterminado de espera:
Pg. 8 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
La pantalla de bienvenida de proxmox indica la direccin y puerto que debemos usar para acceder al panel
de administracin a traves del servidor web:
Accedemos a la direccin indicada desde algn otro equipo en la misma LAN (yo usar mi equipo porttil
para la administracin de PVE). Debido a que no se dispone de certificado web, el navegador nos indicar
que la pgina no es de confianza, pero aceptamos igualmente:
Pg. 9 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Cada vez que iniciamos sesin en la GUI, nos avisa que no tenemos ninguna suscripcin. En principio, no
hace falta, ya que PVE dispone de todas las funcionalidades sin necesidad de ninguna suscripcin. Las
suscripciones bsicamente sirven para soporte tcnico y para poder acceder a ms plantillas de CTs
OpenVZ.
Pg. 10 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Esta ser la visin general de la GUI que usaremos para realizar casi todas las acciones necesarias para la
configuracin de PVE y la instalacin de mquinas virtuales. Algunas otras acciones, necesariamente
tendrn que ser administradas mediante lnea de comandos (en adelante CLI):
La siguiente tabla muestra un resumen con las caractersticas de instalacin de los nodos PVE:
NOMBRE
proxmox01
proxmox02
NOMBRE FQDN
proxmox01.castillo.com
proxmox02.castillo.com
IP / MSCARA
192.168.128.220 / 24
192.168.128.221 / 24
USUARIO
root
root
CONTRASEA
A123456a
A123456a
Pg. 11 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 12 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Una vez actualizado, reiniciaremos el servidor (podremos hacerlo con el comando init 0, reboot, o
directamente desde la GUI seleccionando la vista de nodo en la lista de la izquierda y pinchando en la
opcin Reiniciar (arriba a la derecha). A continuacin, en uno de los nodos (proxmox01), crearemos el
clster, con el comando pvecm create nombre, donde nombre ser el nombre del clster:
Pg. 13 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Podremos ver el estado del clster y los nodos que lo forman con los comandos pvecm status y pvecm
nodes respectivamente. Veremos como el nmero de nodos de momento es 1. Tambin vemos el nmero
total de votos, el nmero de votos del nodo, los votos esperados, y el nmero de quorum, conceptos que
veremos ms adelante para entender el funcionamiento de HA:
Pg. 14 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Procedemos a aadir el segundo nodo al clster. Para ello, en CLI del otro nodo (proxmox02), usamos el
comando pvecm add nodo, donde nodo es la IP (o nombre de host) de algn equipo que forme parte
del clster (en mi caso, la IP de proxmox01). En dicho paso, se nos requerir la contrasea del nodo al que
estamos intentando conectarnos para poder completar el proceso:
Pg. 15 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Comprobamos que ahora el clster posee a ambos nodos, y que ha aumentado el nmero total de votos,
los votos espedados y el quorum. Comprobamos tambin que todos los nodos PVE son maestros, esto es
porque PVE usa un sistema de replicacin multi-master, y no el sistema maestro-esclavo que usan otros
sistemas de virtualizacin (como por ejemplo vSphere de VMWare o XenServer de Citrix).
Pg. 16 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Comprobamos tambin como en la GUI podremos ver a los dos nodos, por lo que podremos administrar
mas cmodamente a todos los nodos desde cualquier IP de alguno de los nodos que conformen el clster:
Pg. 17 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 18 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
NOMBRE FQDN
nfs_server.castillo.com
IP / MSCARA
192.168.128.225 / 24
USUARIO
root
CONTRASEA
A123456a
S que indicaremos la instalacin del servicio NFS, su configuracin, la comparticin de un directorio, y cmo
lo aadiremos posteriormente a PVE a travs de la GUI:
Instalamos el paquete nfs-utils que nos permitir servir una carpeta compartida por dicho protocolo:
Pg. 19 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Antes de ejecutar el servicio y de compartir una carpeta, desactivaremos SELinux, editando el fichero
/etc/selinux/config:
Desactivaremos tambin el cortafuegos (firewalld), ya que dicho servidor no tiene por qu actuar como tal
(en un entorno real de produccin, otro equipo dedicado se dedicara a dicha funcin):
Pg. 20 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Creamos una carpeta en la raz del sistema, llamada shared_nfs, y editamos el archivo /etc/exports
para aadirla. La compartiremos nicamente con los servidores PVE, con permisos de lectura y escritura, y
con opcin de poder actuar en nombre de root:
Pg. 21 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Usamos el comando exportfs -av para compartir la carpeta, y exports para ver que ha sido compartida:
Ya tenemos listo nuestro servidor NFS. Ahora toca aadir dicha carpeta a nuestro clster de servidores PVE.
Nos colocamos sobre Centro de datos en el panel de pavegacin GUI, sobre la pestaa
Almacenamiento, y pinchamos en Aadir > Almacenamiento NFS. Es importante aadir bin todos los
campos (nombre, IP o nombre de host del equipo, ruta del almacenamiento compartido). En la pestaa de
contenido, aadiremos todas las opciones disponibles (imagen de disco, ISOs, plantillas OpenVZ,
contenedores, archivos de backups, etc):
Pg. 22 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Una vez aadido, veremos como a cada uno de los nodos le aparece dicho almacenamiento:
Pg. 23 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 24 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Una vez descargada, podremos instalar nuestro primer CT desde el botn Crear CT (si quisiramos
instalar un VM basada en KVM, tendramos que seleccionar Crear VM). El CT instalado ser usado como
servidor web, por lo que en la pestaa General, seleccionamos en qu nodo queremos instalarla,
indicamos nombre de host (webserver01), seleccionamos el almacenamiento donde se alojar
(shared_nfs), indicamos contrasea (A123456a), y pulsamos Siguiente:
Pg. 25 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
En la pestaa Recursos indicaremos los recursos hardware para dicho CT. En mi caso, seleccionar 256
MB para RAM y Swap, y dejar los otros valores por defecto:
Pg. 26 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 27 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Podremos ver el estado y las distintas opciones del CT pinchando sobre ste en el panel de la izquierda. Las
acciones las tenemos en la parte superior derecha, entre las que encontramos Iniciar, Eliminar o
Migrar:
Procedemos a iniciar el CT y a abrir su consola. Al igual que la consola de los nodos proxmox, se nos abrir
una nueva ventana del navegador. Iniciamos sesin, e instalaremos el servidor web apache:
Pg. 28 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 29 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 30 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
7. ACTIVACION Y CONFIGURACION DE HA
Ya disponemos de nuestro clster PVE con nuestro primer CT funcionando, pero sin HA an. El siguiente paso
ser activar la configuracin para permitirlo.
Como he indicado anteriormente, la funcionalidad de HA en PVE es imposible de realizar sin un dispositivo
hardware que realice fencing. Sin embargo, si activamos fence en cada uno de los nodos y simulamos en la
configuracin la adiccion de un dispositivo hardware para manejarlo, podremos activar HA en las VMs/CTs.
Aunque se permite la configuracin y activacin de fence y HA, no podremos probarlo de forma tajante (por
ejemplo apagando uno de los nodos, quitando el cable de red o deshabilitando la interfaz ethernet), ya que el
sistema se queda pensando a la espera de que el dispositivo hardware de fencing realice su tarea, aislando
el nodo del clster y reinicindolo. En estos casos, las VMs/CTs manejados por HA no migrarn hacia el nodo
sano.
Una prueba que s puede realizarse es parando el servicio que maneja HA, con el que podremos comprobar
cmo las VMs/CTs migran al nodo activo, y el clster pasa a tener un solo nodo.
La configuracin paso a paso es la siguiente:
Antes de comenzar con la configuracin del clster HA, incluiremos mediante CLI en el fichero /etc/hosts
de cada uno de los nodos la equivalencia nombre-IP de todos los nodos del clster:
El siguiente paso ser activar el fence en cada uno de los nodos. Lo haremos descomentando la ltima lnea
del archivo /etc/default/redhat-cluster-pve. A continuacin reiniciaremos el servicio cman:
Pg. 31 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
En cada uno de los nodos, unimos el servidor al dominio de fence con el comando fence_tool join.
Veremos el estado de los nodos unidos a fence con el comando fence_tool ls:
Pg. 32 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Puede pasar que despus de realizar estos pasos, los nodos del clster en la GUI aparezcan offline (no
sincronizan). Si esto sucede, reiniciamos el servicio pve-cluster:
Pg. 33 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 34 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
La siguiente imagen muestra la configuracin actual del clster (en formato xml), donde podemos ver entre
otros, el nombre del clster, y la informacin de cada uno de los nodos (id, nombre, votos). Una parte
esencial de este fichero cuando lo editemos, es aumentar en uno la versin del fichero (config_version), ya
que PVE detectar la mayor versin para aplicar la configuracin. Vemos tambin la configuracin en la
pestaa HA de la GUI (en la vista de Centro de Datos):
Pg. 35 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
La configuracin para disponer HA pasa por aadir los dispositivos para realizar fencing. Al no disponer de
ellos, simular su implantacin, suponiendo que usar la tecnologa ilo de hp. No aadiremos IP, y el
usuario y contrasea sern ficticios, ya que el dispositivo no existe (pero es necesario incluirlo en la
configuracin para poder activar HA en las VMs/CTs). A cada uno de los nodos, aadiremos la accin que
realizar el fence en caso de malfuncionamiento de alguno de los nodos. En esta web hay informacin ms
detallada de los distintos dispositivos de fencing, mtodos, acciones, etc. Adems de aumentar en uno la
versin del fichero, en nuestro caso aadiremos a la etiqueta cman los valores two_node=1 y
expected_votes=1, para indicar que PVE con HA funcionar con slo dos nodos y un voto:
Una vez editado el fichero anterior, procedemos a validarlo con el comando ccs_config_validate, para
evitarnos posibles errores antes de activarlo a travs de la GUI:
Pg. 36 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Una vez realizada la configuracin a travs de CLI, nos vamos a la GUI, en la vista Centro de Datos, pestaa
HA, en la que deberemos confirmar los cambios realizados en el fichero de configuracin mediante el
botn Activar:
Pg. 37 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Por ltimo, aadiremos la disponibilidad de HA a nuestro CT creado anteriormente. Para ello, en la misma
seccin que el punto anterior, pinchamos sobre Aadir > VM/CT administrado por HA. Escogemos el ID
del CT, y seleccionamos que inicie automticamente al inicio de proxmox. No olvidar volver a activar la
configuracin de HA (esto habr que hacerlo siempre que modifiquemos alguna funcin de HA). Podremos
ver en el resumen del CT como est administrada por HA:
Pg. 38 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 39 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
8. TESTEANDO EL CLUSTER HA
Una vez creado el clster, instalado el primer CT y activada la administracin de HA, slo queda testear el
funcionamiento en caso de fallo (tambin testearemos la migracin en caliente). Para ello, antes de nada,
crearemos otros tres CTs dedicados a servidor web. Al ser igual que el primer CT, lo que haremos ser crear
una plantilla OpenVZ a raz de l. Los pasos que he seguido son:
Primeramente, con el CT arrancado, tendremos que eliminar su IP desde la GUI, en la vista del CT, pestaa
Redes:
Una vez eliminada la IP, apagamos el CT. Accedemos a la CLI de fedora_server (que es donde se almacena
el CT) usando Putty, y crearemos un fichero tar del CT:
Pg. 40 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Al haber eliminado anteriormente la IP del CT, una vez hemos creado la plantilla, deberemos volver a
aadirla, desde la vista de CT, pestaa Redes, y pinchamos en Aadir > Direccion IP:
Seguidamente, instalaremos desde la GUI 3 CTs ms, usando la plantilla recin creada. Los pasos para la
instalacin son los mismos que el apartado 6 de este documento, nicamente cambiaremos los nombres
de host, las direcciones IP y sobre qu nodo proxmox queremos que se ejecute. La siguiente tabla muestra
un resusmen de los CTs instalados:
NODO PROXMOX
proxmox01
proxmox01
proxmox02
proxmox02
NOMBRE CT
webserver01
webserver02
webserver03
webserver04
IP
192.168.128.230
192.168.128.231
192.168.128.232
192.168.128.233
USUARIO
root
root
root
root
CONTRASEA
A123456a
A123456a
A123456a
A123456a
Una vez instalados todos los CTs, los aadiremos a la administracin HA, al igual que en el ltimo punto del
apartado 7, y las iniciaremos:
Pg. 41 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Editaremos el fichero /var/www/index.html en cada uno de los CTs para cambiarle el nombre a mostrar
y poder identificarlos en el navegador:
Para comprobar que los CTs migran al servidor PVE sano, vamos a parar el servicio RGManager, que es
el que maneja HA, en el nodo proxmox02. Recuerdo que al no disponer hardware fencing, no podremos
hacer la prueba de otra forma (en este vdeo se puede comprobar como funciona HA en PVE desconectando
el cable de red). Para ello, en la vista del servidor PVE, pestaa Servicios, pinchamos sobre el servicio
citado, y clicamos en Parar:
Veremos como las webs de los CTs webserver03 y webserver04 han cado, debido a que estaban
corriendo bajo el nodo proxmox02:
Pg. 42 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
El clster HA, al detectar la cada del servicio RGManager, migrar los CTs del nodo afectado al nodo
sano, y reinicia los CTs (en las pruebas que he realizado, tarda de 30 seg. a 1 min. aprox.). Veremos como
los CTs ahora corren sobre proxmox01, y que las pginas web estn arriba:
Pg. 43 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Para restablecer el nodo cado, iniciaremos el servicio RGManager (en un entorno de produccin real, el
hardware fencing reiniciara el nodo), y realizaremos una migracin en caliente de los CTs desplazados de
nuevo al nodo proxmox02 (suele tardar en torno a 30-45 segundos en mis pruebas):
Pg. 44 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
9. GLOSARIO Y BIBLIOGRAFIA
A continuacin se incluyen algunos trminos tcnicos que se deberan conocer para poder entender el grueso
del proyecto (por orden alfabtico):
Clster: Conjunto o agrupacin de ordenadores, normalmente mediante una red de alta velocidad, que
acta como un solo ordenador. Ms info en wikipedia.
DRBD (Distributed Replicated Block Device): DRBD es un sistema de almacenamiento distribuido y
replicado para plataformas Linux. Se consigue mediante una rplica en espejo de un dispositivo de bloque
a travs de una red de rea local, por lo que tambin se puede entender como un sistema RAID-1 en red.
Ms info en wikipedia y en la web de PVE.
Fencing: Proceso de aislamiento de un nodo servidor dentro de un clster de nodos cuando ste no est
funcionando correctamente. PVE utiliza ciertos dispositivos hardware (fence devices) para realizar fencing
y aislar dicho nodo de los dems, para que no se produzcan fallos de funcionamiento. Adems, puede
realizar una accin con dicho nodo (reboot, shutdown, etc). Ms info en wikipedia y en la web de PVE.
KVM (Kernel-based Virtual Machine): Solucin para implementar virtualizacin bajo sistemas operativos
Linux. Permite ejecutar mquinas virtuales utilizando OS sin modificar. Mas info en wikipedia y en la web
oficial.
OpenVZ: Tecnologa de virtualizacin para contenedores de OS. Tanto huspedes como anfitriones deben
ser Linux. Usa un ncleo de Linux modificado (no se puede usar cualquier ISO comn, y normalmente se
pueden descargar plantillas de contenedores de OS Linux modificados). Proporciona mejor rendimiento,
escalabilidad, densidad, administracin de recursos dinmicos, y facilidad de administracin que las
distintas tecnologas de virtualizacin alternativas. Ms info en wikipedia y en la web oficial.
Quorum: Quorum es un trmino que se usa en entornos de clster HA para referirse al nmero mnimo de
votos que necesita un clster para poder funcionar correctamente (en caso de no disponer de dichos votos,
el clster quedar bloqueado a la espera de completar los votos). Cada uno de los nodos PVE dispone de
una pequea particin con un disco quorum, que aportarn un voto. PVE necesita un mnimo de 3 votos
para poder funcionar normalmente (de ah que necesite un mnimo de tres nodos). Sin embargo, se pueden
usar otras tcnicas, como por ejemplo dos nodos PVE + un disco de quorum disponible en otro servidor
(para poder obtener los 3 votos), o de forma ms sencilla, usar el modo de funcionamiento de dos nodos,
en el cual slo se necesita de un voto para que PVE funcione correctamente. Ms info en wikipedia.
Pg. 45 / 46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 46 / 46