Está en la página 1de 46

Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR

INDICE
1.

INTRODUCCION Y FINALIDAD DEL PROYECTO ............................................................................................. 2

2.

REQUISITOS PREVIOS Y EQUIPAMIENTO HARDWARE UTILIZADO .............................................................. 3

3.

INSTALACION DE PROXMOX VIRTUAL ENVIRONMENT .............................................................................. 4

4.

CREACION DEL CLUSTER DE SERVIDORES .................................................................................................. 12

5.

INSTALACION DE SERVIDOR NFS ............................................................................................................... 19

6.

INSTALACION DEL PRIMER CT OPENVZ ..................................................................................................... 24

7.

ACTIVACION Y CONFIGURACION DE HA .................................................................................................... 31

8.

TESTEANDO EL CLUSTER HA ...................................................................................................................... 40

9.

GLOSARIO Y BIBLIOGRAFIA ........................................................................................................................ 45

10. EXTRA: DESARROLLO DE WEBSITE ............................................................................................................. 46

Pg. 1 / 46

Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR

1. INTRODUCCION Y FINALIDAD DEL PROYECTO


El presente proyecto desarrolla la implantacin de un clster de servidores en alta disponibilidad (en adelante
HA) destinado a la virtualizacin de equipos. Para ello, he seleccionado la plataforma Proxmox Virtual
Environment (en adelante PVE), el cual es un sistema operativo (en adelante OS) de cdigo abierto basado en
Linux (ms concretamente en Debian) que permite virtualizacin KVM y OpenVZ.
Con l, se pretende explicar el concepto de clster de HA basado en PVE, y podremos observar su instalacin,
su configuracin, su administracin, la instalacin de mquinas virtuales KVM (en adelante VM) y/o
contenedores OpenVZ (en adelante CT) y el funcionamiento de algunas de sus caractersticas ms importantes,
como la migracin en caliente, o cmo realiza HA en caso de fallo de uno de los nodos.
NOTA: Puede que algunas imgenes adjuntas en el documento no coincidan exactamente con la explicacin dada, o
no concuerden en la lnea de tiempo de cada uno de los pasos, debido a las numerosas pruebas que he realizado.
Adems, algunas fotos se han capturado desde mquinas virtuales debido a la imposibilidad de captura desde un
equipo fsico (por ejemplo, en la propia instalacin de PVE), por lo que algunos datos proporcionados en dichas
capturas no coinciden con los equipos fsicos (tamao de discos, hardware, nombres de host, VMs/CTs instaladas,
etc.).
Adems, se incluyen numerosos enlaces que direccinan a un aparado de glosario en este mismo documento, donde se
explica brevemente una gran cantidad de conceptos y trminos que son necesarios entender o tener cierta idea para
poder comprender dicho trabajo. Otros enlaces apuntan directamente a webs externas donde se arroja informacin
relevante o complementaria.

Pg. 2 / 46

Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR

2. REQUISITOS PREVIOS Y EQUIPAMIENTO HARDWARE UTILIZADO


Para poder implementar y garantizar un correcto funcionamiento de un clster HA de servidores PVE se
necesita un equipamiento hardware mnimo. La lista de requerimientos completa puede verse en esta web.
En ella, se puede comprobar que se necesita un mnimo de tres nodos para poder realizar HA en un clster,
pero se comenta sin embargo que es posible realizarse, con ciertas limitaciones, mediante dos nodos. En esta
otra web veremos los requerimientos para una implantacin de HA con dos nodos.
Resumiendo, podramos decir que los requisitos generales y ptimos para implementar un clster HA seran:
Servidores con alta redundancia (fuentes, RAID de discos, UPS, etc.).
3 nodos PVE (versin 2.0 en adelante), aunque, como hemos visto, tambin es posible con 2.
Almacenamiento compartido SAN o NAS/NFS para VMs, y/o NFS para CT (es posible usar DRBD con los
nodos PVE para no necesitar almacenamiento compartido extra, sin embargo no es aconsejable debido a
los numerosos problemas que puede acarrear, como por ejemplo la necesidad de intervencin humana
para la sincronizacin del DRBD en caso de fallo de uno de los nodos).
Red de Area Local (LAN) redundante (interfaces, cableado, switches, etc.).
Distintas LAN separadas por usos (comunicacin entre nodos, trfico de datos de almacenamiento
compartido, trfico de mquinas virtuales).
Dispositivo hardware para realizar fencing.
Evidentemente, para mi es imposible disponer del equipamiento necesario para poder realizar una
implantacin real y vlida para produccin; sin embargo, con un equipamiento ms modesto se pueden
comprobar los resultados de la administracin centralizada del clster desde una nica interfaz web (en
adelante GUI), migracin de VMs/CTs, incluso sin apagarlas (migracin en caliente), y funcionamiento de HA.
Para ello, dispongo de tres equipos cedidos para dicho proyecto por el IES Bezmiliana. Con dicho equipamiento
implementar un clster HA con dos nodos PVE, y un servidor NFS para almacenamiento compartido.
Las caractersticas hardware ms relevantes de los equipos que actuarn como nodos de PVE son:

Procesador: Intel Pentium 4, 3.06 GHz


Memoria RAM: 1.5 GB DDRII
Disco Duro: 1 x 76 GB
Tarjeta de red: 1 x Intel 10/100 Mbps

Las caractersticas hardware ms relevantes del equipo que actuar como servidor NFS son:

Procesador: Intel Pentium 4, 3.06 GHz


Memoria RAM: 500 MB DDRII
Disco Duro: 1 x 76 GB
Tarjeta de red: 1 x Intel 10/100 Mbps
NOTA: Una parte de vital importancia, y que no puede ser relevada ni reemplazada por ningn otro mtodo, es
disponer de uno o ms dispositivos hardware para realizar fencing. Sin ello, no podremos implantar el correcto
funcionamiento de HA. Evidentemente no dispongo de este hardware, pero podremos simular su instalacin y
activacin en PVE, y, con ciertas limitaciones, comprobar el funcionamiento de HA cuando uno de los nodos falla.

Pg. 3 / 46

Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR

3. INSTALACION DE PROXMOX VIRTUAL ENVIRONMENT


La instalacin de PVE es smamente sencilla. He usado la ltima ISO disponible desde la web, la versin 3.4 (a
da 24 de marzo de 2015), que he grabado en un CD. Simplemente introducimos dicho CD en el lector del
equipo (en el cual debemos tener configurado correctamente el orden de arranque desde la BIOS) y
comenzamos la instalacin.
A continuacin se muestra la instalacin paso por paso en uno de los nodos PVE:
Seleccionamos Install Proxmox VE para comenzar la instalacin:

Aceptamos trminos y condiciones:

Pg. 4 / 46

Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR

Seleccionamos el disco o particin donde se instalar proxmox:

Escogemos pas, zona horaria, e idioma del teclado:

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.

Una vez realizado los pasos anteriores, comienza la instalacin:

Pg. 7 / 46

Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR

Terminada la instalacin, deberemos reiniciar el equipo:

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

Antes de autenticarnos, elegimos el idioma espaol. Introducimos usuario y contrasea:

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

4. CREACION DEL CLUSTER DE SERVIDORES


El siguiente paso, una vez instalado PVE en ambos servidores, es crear un clster que albergue a ambos. Dicha
implementacin deber realizarse mediante CLI.
Podremos acceder al CLI directamente desde el servidor proxmox, aunque este mtodo no es muy cmodo,
por lo que la mejor opcin es acceder desde un equipo externo (usar mi equipo porttil). Podremos acceder
a travs del protocolo SSH si estamos en linux con el comando bajo el mismo nombre, o a travs de programas
como Putty en Windows, pero lo ms cmodo es usar la opcin Shell, teniendo seleccionada la vista del
nodo en el panel izquierdo de la GUI de PVE, la cual, nos habrir en una nueva ventana del navegador un
intrprete de comandos.

La creacin del clster, paso a paso, se muestra a continuacin:


Primeramente, es recomentable realizar una actualizacin del OS y de todos los paquetes software que
incorpora en cada uno de los nodos:

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

5. INSTALACION DE SERVIDOR NFS


PVE necesita de almacenamiento compartido entre todos los nodos para poder almacenar los distintos
archivos (VMs/CTs, backups, ISOs, Plantillas CT, etc.). Se ha optado por crear un sencillo servidor NFS basado
en Fedora 21. Lo ideal en un entorno de produccin sera que este almacenamiento fuera una cabina de
almacenamiento SAN o NAS, y que adems disponiese de sistema propio de HA o replicacin, pero debido a
las limitaciones hardware de las que dispongo, no me es posible montar ninguna.
Otra opcin, si no quisisemos usar almacenamiento externo compartido, y bastante apto para un clster de
dos nodos, sera instalar DRBD, tal como se muestra en esta web. Pero descarto la instalacin despus de
varias pruebas de este sistema bajo VirtualBox, ya que es bastante problemtico a la hora de sincronizar los
dos discos entre ambos nodos en caso de fallo de alguno de ellos, necesitando de bastante intervencin por
parte del administrador (indicar qu nodo ha sido el ltimo en sincronizar, reiniciar servicios, etc).
Al usar almacenamiento compartido, PVE es capaz de realizar migracin en caliente de VMs/CTs entre los
distintos nodos con una velocidad increble (de segundos a algunos pocos minutos), ya que realmente no migra
toda la VM/CT, si no slo los servicios que corren de un nodo a otro.
La eleccin de usar un servidor NFS, viene dada tambin porque es necesario este tipo de protocolo para
poder instalar CTs OpenVZ, que sern las elegidas para este proyecto debido al alto rendimiento que tienen
en comparacin con las VMs basadas en KVM (ms an si tenemos en cuenta que contamos con procesadores
Intel Pentium a 32 bits, y que no disponen de ninguna instruccin de virtualizacin por harware).
La instalacin de Fedora 21 no se va a mostrar, ya que no es motivo de este proyecto, adems de ser
sumanente sencilla. A mtodo de resumen, tenemos la siguiente tabla:
NOMBRE
nfs_server

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

Realizado lo anterior, procedemos a ejecutar el servicio NFS:

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

6. INSTALACION DEL PRIMER CT OPENVZ


Una vez aadido el almacenamiento compartido, podremos instalar nuestro primer CT. Elegir instalar un CT
OpenVZ, ya que ofrece un mejor rendimiento, adems de consumir menos recursos. La instalacin paso por
paso, a continuacin:
Primeramente seleccionamos el almacenamiento compartido en el panel lateral izquierdo, pestaa
Contenido. Veremos como primeramente no poseemos contenido alguno. Pinchamos sobre Plantillas
para poder descargarnos una plantilla OpenVZ. Seleccionaremos el OS Debian 7.0 standard, debido a su
gran estabilidad, adems de por tener activada por defecto la consola de Proxmox (por lo que podremos
usar dicha opcin desde la GUI sin ningn tipo de instalacin extra):

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:

En la pestaa Plantilla, seleccionamos el OS recien descargado:

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:

En la pestaa Redes, indicaremos la direccin IP ligada al CT (en mi caso, 192.168.128.230):

Pg. 26 / 46

Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR

La pestaa DNS no la modificaremos, por lo que pasamos a la ltima (Confirmacin), y pincharemos


sobre Finalizado para instalar el CT (puede demorar bastante):

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

Una vez instalado, el servicio es iniciado automticamente. nicamente editaremos el archivo


/var/www/index.html para poder determinar cada servidor web en las pruebas de HA que realizar ms
adelante. Adems, dicho CT ser utilizado como plantilla para las prximas instalaciones:

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

A continuacin, modificaremos el archivo /etc/pve/cluster.conf, el cual contiene la configuracin


principal del clster (informacin general, de su funcionamiento, y de los nodos que lo conforman). Este
fichero no se debe tocar directamente, sino que realizaremos una copia, aadindole la extensin .new
(que ser el fichero que editemos). Esta configuracin se deber hacer slamente en uno de los nodos del
clster (en mi caso en proxmox01), ya que dicho archivo se replica en todos los nodos:

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

10. EXTRA: DESARROLLO DE WEBSITE


Como punto extra al presente proyecto, he querido aadir algunos de los puntos ms interesantes del
desarrollo de una website en este apartado, que aunque es algo que tiene poco que ver con lo visto
anteriormente, he visto interesante su inclusin para poder mostrar las capacidades obtenidas en el periodo
de prcticas del mdulo. Dicha web ser un proyecto de negocio real bajo el dominio
www.clasesparamayores.com.
USANDO HTML, PHP, JQUERY y BOOTSTRAP COMO BASE
La web est desarrollada en HTML5, y hace un amplio uso de las clases predefinidas del framework de Twitter
Bootstrap para el diseo, debido a su comodidad y a las numerosas ventajas que ofrece (full-responsive,
efectos, posibilidad de aplicar temas, etc.).
Dicho framework, se apoya a su vez en jQuery, que tambin es usado para desarrollar los archivos javaScript,
debido igualmente a su facilidad y comodidad de uso, y con el que conseguiremos vistosos efectos y recargas
parciales mediante la tcnica AJAX.
Por ltimo, como lenguaje del lado de servidor, se usa PHP, ya que ser montado bajo un servidor web Apache.
A travs de este lenguaje he optimizado las partes de la pgina que son repetitivas, y adems servir de
interlocutor con la futura base de datos.
ACCESIBILIDAD E INDEXACION MEDIANTE RECARGAS AJAX
La base principal sobre la que se apoya esta website es conseguir una navegacin completa mediante recargas
AJAX (Asincronous JavaScript And XML), sin que por ello deje de ser accesible e indexable para los
navegadores sin javaScript activo o para los robots de bsqueda. Para ello, he usado esta gua, en la que
mediante history.pushState (para guardar una url en el historial del navegador) y el evento popstate (que
escucha las llamadas al historial en el navegador cliente), se puede conseguir una navegacin accesible e
indexable mediante una carga parcial por AJAX.
En palabras llanas, con el archivo javaScript desarrollado, cada vez que el usuario clica sobre un link <a
href=fichero>, este no realiza su funcin por defecto, si no que se llama a una funcin que carga mediante
AJAX una parte concreta del contenido fichero indicado en el link, en un <div> concreto de la web (segn
la seccin donde nos encontremos).
Adems, cada fichero .php es autosuficiente, debido a que se ha realizado una divisin de stos con
respecto a las partes comunes o estticas de la web (cabecera, men, formulario, etc), includas en cada
fichero mediante la orden include o include_once. La recarga AJAX slo carga el <div> de cada fichero
que cambia con respecto a los dems ficheros. As, si se realiza un refresco de la pgina mediante el
navegador, o se introduce una pgina concreta en la barra de direcciones, se podr cargar la pgina completa.
DOBLE VALIDACION DE FORMULARIO
La parte del formulario es tambin un punto interesante, ya que valida tanto del lado del cliente como del
servidor. Para la parte de cliente, he usado un Plugin para jQuery jqueryvalidation, el cual ha sido modificado
para incluir opciones de validacin especficas y vlidas para dicho formulario. La validacin se realiza en
tiempo real de cara al usuario, ya que mientras pasa de un campo a otro, se indicar si dicho campo est
correcto, o por el contrario, cual es el error concreto.
Para aumentar la seguridad a la hora de insetar los datos en la futura base de datos, una vez se enva la peticin
del formulario al servidor (ya validada en el cliente), ste vuelve a validar todos los campos, para corroborar
que todo est correcto.

Pg. 46 / 46

También podría gustarte