cluster ha con pve
Post on 02-Mar-2018
287 Views
Preview:
TRANSCRIPT
-
7/26/2019 Cluster HA Con PVE
1/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 1 / 46
INDICE
1. INTRODUCCION Y FINALIDAD DEL PROYECTO ............................................................................................. 2
2. REQUISITOS PREVIOS Y EQUIPAMIENTO HARDWARE UTILIZADO .............................................................. 33. 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
-
7/26/2019 Cluster HA Con PVE
2/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 2 / 46
1 INTRODUCCION Y FINALIDAD DEL PROYECTO
El presente proyecto desarrolla la implantacin de unclsterde 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 virtualizacinKVMyOpenVZ.
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.
https://www.proxmox.com/en/proxmox-vehttps://www.proxmox.com/en/proxmox-vehttps://www.proxmox.com/en/proxmox-vehttps://www.proxmox.com/en/proxmox-vehttps://www.proxmox.com/en/proxmox-ve -
7/26/2019 Cluster HA Con PVE
3/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 3 / 46
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 enesta 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. Enestaotra webveremos 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 compartidoSAN o NAS/NFS para VMs, y/o NFS para CT (es posible usarDRBDcon 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 hardwarepara realizarfencing.
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.
https://pve.proxmox.com/wiki/High_Availability_Cluster#System_requirementshttps://pve.proxmox.com/wiki/High_Availability_Cluster#System_requirementshttps://pve.proxmox.com/wiki/High_Availability_Cluster#System_requirementshttps://pve.proxmox.com/wiki/Two-Node_High_Availability_Cluster#System_requirementshttps://pve.proxmox.com/wiki/Two-Node_High_Availability_Cluster#System_requirementshttps://pve.proxmox.com/wiki/Two-Node_High_Availability_Cluster#System_requirementshttps://pve.proxmox.com/wiki/Two-Node_High_Availability_Cluster#System_requirementshttps://pve.proxmox.com/wiki/Two-Node_High_Availability_Cluster#System_requirementshttps://pve.proxmox.com/wiki/Two-Node_High_Availability_Cluster#System_requirementshttps://pve.proxmox.com/wiki/High_Availability_Cluster#System_requirements -
7/26/2019 Cluster HA Con PVE
4/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 4 / 46
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 VEpara comenzar la instalacin:
Aceptamos trminos y condiciones:
-
7/26/2019 Cluster HA Con PVE
5/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 5 / 46
Seleccionamos el disco o particin donde se instalar proxmox:
Escogemos pas, zona horaria, e idioma del teclado:
-
7/26/2019 Cluster HA Con PVE
6/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 6 / 46
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:
-
7/26/2019 Cluster HA Con PVE
7/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 7 / 46
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:
-
7/26/2019 Cluster HA Con PVE
8/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 8 / 46
Terminada la instalacin, deberemos reiniciar el equipo:
Seleccionamos Proxmox Virtual Environment GNU/Linuxen el gestor de arranque GRUB para arrancar el
sistema, o esperamos el tiempo predeterminado de espera:
-
7/26/2019 Cluster HA Con PVE
9/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 9 / 46
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:
-
7/26/2019 Cluster HA Con PVE
10/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 10 / 46
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. Lassuscripciones bsicamente sirven para soporte tcnico y para poder acceder a ms plantillas de CTs
OpenVZ.
-
7/26/2019 Cluster HA Con PVE
11/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 11 / 46
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 NOMBRE FQDN IP / MSCARA USUARIO CONTRASEA
proxmox01 proxmox01.castillo.com 192.168.128.220 / 24 root A123456a
proxmox02 proxmox02.castillo.com 192.168.128.221 / 24 root A123456a
-
7/26/2019 Cluster HA Con PVE
12/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 12 / 46
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:
-
7/26/2019 Cluster HA Con PVE
13/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 13 / 46
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 nombreser el nombre del clster:
-
7/26/2019 Cluster HA Con PVE
14/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 14 / 46
Podremos ver el estado del clster y los nodos que lo forman con los comandos pvecm statusy pvecm
nodesrespectivamente. 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 dequorum,conceptos que
veremos ms adelante para entender el funcionamiento de HA:
-
7/26/2019 Cluster HA Con PVE
15/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 15 / 46
Procedemos a aadir el segundo nodo al clster. Para ello, en CLI del otro nodo (proxmox02), usamos el
comando pvecm add nodo, donde nodoes la IP (o nombre de host) de algn equipo que forme parte
del clster (en mi caso, la IP deproxmox01). En dicho paso, se nos requerir la contrasea del nodo al que
estamos intentando conectarnos para poder completar el proceso:
-
7/26/2019 Cluster HA Con PVE
16/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 16 / 46
Comprobamos que ahora el clster posee a ambos nodos, y que ha aumentado el nmero total de votos,
los votos espedados y elquorum.Comprobamos tambin que todos los nodos PVE son maestros, esto es
porque PVE usa un sistema dereplicacin multi-master,y no el sistema maestro-esclavo que usan otros
sistemas de virtualizacin (como por ejemplovSphere de VMWareoXenServer de Citrix).
http://en.wikipedia.org/wiki/Multi-master_replicationhttp://en.wikipedia.org/wiki/Multi-master_replicationhttp://en.wikipedia.org/wiki/Multi-master_replicationhttp://www.vmware.com/es/products/vspherehttp://www.vmware.com/es/products/vspherehttp://www.vmware.com/es/products/vspherehttps://www.citrix.es/products/xenserver/overview.htmlhttps://www.citrix.es/products/xenserver/overview.htmlhttps://www.citrix.es/products/xenserver/overview.htmlhttps://www.citrix.es/products/xenserver/overview.htmlhttp://www.vmware.com/es/products/vspherehttp://en.wikipedia.org/wiki/Multi-master_replication -
7/26/2019 Cluster HA Con PVE
17/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 17 / 46
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:
-
7/26/2019 Cluster HA Con PVE
18/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 18 / 46
-
7/26/2019 Cluster HA Con PVE
19/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 19 / 46
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 alas 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 instalarDRBD,tal como se muestra enesta 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 devirtualizacin 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 NOMBRE FQDN IP / MSCARA USUARIO CONTRASEA
nfs_server nfs_server.castillo.com 192.168.128.225 / 24 root 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-utilsque nos permitir servir una carpeta compartida por dicho protocolo:
https://pve.proxmox.com/wiki/Two-Node_High_Availability_Clusterhttps://pve.proxmox.com/wiki/Two-Node_High_Availability_Clusterhttps://pve.proxmox.com/wiki/Two-Node_High_Availability_Clusterhttp://es.wikipedia.org/wiki/Virtualizaci%C3%B3n_x86#VT_Intel_.28IVT.29http://es.wikipedia.org/wiki/Virtualizaci%C3%B3n_x86#VT_Intel_.28IVT.29http://es.wikipedia.org/wiki/Virtualizaci%C3%B3n_x86#VT_Intel_.28IVT.29http://es.wikipedia.org/wiki/Virtualizaci%C3%B3n_x86#VT_Intel_.28IVT.29https://pve.proxmox.com/wiki/Two-Node_High_Availability_Cluster -
7/26/2019 Cluster HA Con PVE
20/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 20 / 46
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):
-
7/26/2019 Cluster HA Con PVE
21/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 21 / 46
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, ycon opcin de poder actuar en nombre de root:
-
7/26/2019 Cluster HA Con PVE
22/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 22 / 46
Usamos el comando exportfs -avpara compartir la carpeta, y exportspara 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 pestaaAlmacenamiento, y pinchamos en Aadir > Almacenamiento NFS. Es importante aadir bin todos loscampos (nombre, IP o nombre de host del equipo, ruta del almacenamiento compartido). En la pestaa decontenido, aadiremos todas las opciones disponibles (imagen de disco, ISOs, plantillas OpenVZ,contenedores, archivos de backups, etc):
-
7/26/2019 Cluster HA Con PVE
23/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 23 / 46
Una vez aadido, veremos como a cada uno de los nodos le aparece dicho almacenamiento:
-
7/26/2019 Cluster HA Con PVE
24/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 24 / 46
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, pestaaContenido. Veremos como primeramente no poseemos contenido alguno. Pinchamos sobre Plantillaspara poder descargarnos una plantilla OpenVZ. Seleccionaremos el OS Debian 7.0 standard, debido a sugran estabilidad, adems de por teneractivada por defecto la consola de Proxmox(por lo que podremosusar dicha opcin desde la GUI sin ningn tipo de instalacin extra):
https://pve.proxmox.com/wiki/OpenVZ_Consolehttps://pve.proxmox.com/wiki/OpenVZ_Consolehttps://pve.proxmox.com/wiki/OpenVZ_Consolehttps://pve.proxmox.com/wiki/OpenVZ_Console -
7/26/2019 Cluster HA Con PVE
25/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 25 / 46
Una vez descargada, podremos instalar nuestro primer CT desde el botn Crear CT (si quisiramosinstalar un VM basada en KVM, tendramos que seleccionar Crear VM). El CT instalado ser usado comoservidor 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:
-
7/26/2019 Cluster HA Con PVE
26/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 26 / 46
En la pestaa Recursosindicaremos los recursos hardware para dicho CT. En mi caso, seleccionar 256MB 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):
-
7/26/2019 Cluster HA Con PVE
27/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 27 / 46
La pestaa DNSno la modificaremos, por lo que pasamos a la ltima (Confirmacin), y pincharemossobre Finalizadopara instalar el CT (puede demorar bastante):
-
7/26/2019 Cluster HA Con PVE
28/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 28 / 46
Podremos ver el estado y las distintas opciones del CT pinchando sobre ste en el panel de la izquierda. Lasacciones las tenemos en la parte superior derecha, entre las que encontramos Iniciar, Eliminar oMigrar:
Procedemos a iniciar el CT y a abrir su consola. Al igual que la consola de los nodos proxmox, se nos abriruna nueva ventana del navegador. Iniciamos sesin, e instalaremos el servidor web apache:
-
7/26/2019 Cluster HA Con PVE
29/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 29 / 46
Una vez instalado, el servicio es iniciado automticamente. nicamente editaremos el archivo/var/www/index.htmlpara poder determinar cada servidor web en las pruebas de HA que realizar msadelante. Adems, dicho CT ser utilizado como plantilla para las prximas instalaciones:
-
7/26/2019 Cluster HA Con PVE
30/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 30 / 46
-
7/26/2019 Cluster HA Con PVE
31/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 31 / 46
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 realicefencing.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 pensandoa 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/hostsde 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 lneadel archivo /etc/default/redhat-cluster-pve. A continuacin reiniciaremos el servicio cman:
-
7/26/2019 Cluster HA Con PVE
32/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 32 / 46
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:
-
7/26/2019 Cluster HA Con PVE
33/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 33 / 46
Puede pasar que despus de realizar estos pasos, los nodos del clster en la GUI aparezcan offline (nosincronizan). Si esto sucede, reiniciamos el servicio pve-cluster:
-
7/26/2019 Cluster HA Con PVE
34/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 34 / 46
A continuacin, modificaremos el archivo /etc/pve/cluster.conf, el cual contiene la configuracinprincipal del clster (informacin general, de su funcionamiento, y de los nodos que lo conforman). Estefichero 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 nodosdelclster (en mi caso enproxmox01), ya que dicho archivo se replica en todos los nodos:
-
7/26/2019 Cluster HA Con PVE
35/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 35 / 46
La siguiente imagen muestra la configuracin actual del clster (en formato xml), donde podemos ver entreotros, el nombre del clster, y la informacin de cada uno de los nodos (id, nombre, votos). Una parteesencial de este fichero cuando lo editemos, es aumentar en uno la versin del fichero (config_version), yaque PVE detectar la mayor versin para aplicar la configuracin. Vemos tambin la configuracin en lapestaa HAde la GUI (en la vista de Centro de Datos):
-
7/26/2019 Cluster HA Con PVE
36/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 36 / 46
La configuracin para disponer HA pasa por aadir los dispositivos para realizar fencing. Al no disponer deellos, simular su implantacin, suponiendo que usar la tecnologa ilo de hp. No aadiremos IP, y elusuario y contrasea sern ficticios, ya que el dispositivo no existe (pero es necesario incluirlo en laconfiguracin para poder activar HA en las VMs/CTs). A cada uno de los nodos, aadiremos la accin querealizar el fence en caso de malfuncionamiento de alguno de los nodos. Enesta webhay informacin msdetallada de los distintos dispositivos de fencing, mtodos, acciones, etc. Adems de aumentar en uno laversin del fichero, en nuestro caso aadiremos a la etiqueta cman los valores two_node=1 yexpected_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:
http://es.wikipedia.org/wiki/Integrated_Lights-Outhttp://es.wikipedia.org/wiki/Integrated_Lights-Outhttp://es.wikipedia.org/wiki/Integrated_Lights-Outhttps://pve.proxmox.com/wiki/Fencinghttps://pve.proxmox.com/wiki/Fencinghttps://pve.proxmox.com/wiki/Fencinghttps://pve.proxmox.com/wiki/Fencinghttp://es.wikipedia.org/wiki/Integrated_Lights-Out -
7/26/2019 Cluster HA Con PVE
37/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 37 / 46
Una vez realizada la configuracin a travs de CLI, nos vamos a la GUI, en la vista Centro de Datos, pestaaHA, en la que deberemos confirmar los cambios realizados en el fichero de configuracin mediante elbotn Activar:
-
7/26/2019 Cluster HA Con PVE
38/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 38 / 46
Por ltimo, aadiremos la disponibilidad de HA a nuestro CT creado anteriormente. Para ello, en la mismaseccin que el punto anterior, pinchamos sobre Aadir > VM/CT administrado por HA. Escogemos el IDdel 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). Podremosver en el resumen del CT como est administrada por HA:
-
7/26/2019 Cluster HA Con PVE
39/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 39 / 46
-
7/26/2019 Cluster HA Con PVE
40/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 40 / 46
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 sercrear
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, pestaaRedes:
Una vez eliminada la IP, apagamos el CT. Accedemos a la CLI de fedora_server(que es donde se almacenael CT) usando Putty, y crearemos un fichero tardel CT:
https://pve.proxmox.com/wiki/Custom_built_templatehttps://pve.proxmox.com/wiki/Custom_built_templatehttps://pve.proxmox.com/wiki/Custom_built_templatehttps://pve.proxmox.com/wiki/Custom_built_templatehttps://pve.proxmox.com/wiki/Custom_built_templatehttps://pve.proxmox.com/wiki/Custom_built_template -
7/26/2019 Cluster HA Con PVE
41/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 41 / 46
Al haber eliminado anteriormente la IP del CT, una vez hemos creado la plantilla, deberemos volver aaadirla, 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 lainstalacin son los mismos que elapartado 6de este documento, nicamente cambiaremos los nombresde host, las direcciones IP y sobre qu nodo proxmox queremos que se ejecute. La siguiente tabla muestraun resusmen de los CTs instalados:
NODO PROXMOX NOMBRE CT IP USUARIO CONTRASEA
proxmox01 webserver01 192.168.128.230 root A123456a
proxmox01 webserver02 192.168.128.231 root A123456aproxmox02 webserver03 192.168.128.232 root A123456a
proxmox02 webserver04 192.168.128.233 root A123456a
Una vez instalados todos los CTs, los aadiremos a la administracin HA, al igual que en elltimo punto delapartado 7, y las iniciaremos:
-
7/26/2019 Cluster HA Con PVE
42/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 42 / 46
Editaremos el fichero /var/www/index.htmlen cada uno de los CTs para cambiarle el nombre a mostrary poder identificarlos en el navegador:
Para comprobar que los CTs migran al servidor PVE sano, vamos a parar el servicio RGManager, que esel que maneja HA, en el nodo proxmox02. Recuerdo que al no disponer hardwarefencing,no podremoshacer la prueba de otra forma (eneste vdeose puede comprobar como funciona HA en PVE desconectandoel cable de red). Para ello, en la vista del servidor PVE, pestaa Servicios, pinchamos sobre el serviciocitado, y clicamos en Parar:
Veremos como las webs de los CTs webserver03 y webserver04han cado, debido a que estabancorriendo bajo el nodo proxmox02:
https://www.youtube.com/watch?v=fFn0f_pSd9whttps://www.youtube.com/watch?v=fFn0f_pSd9whttps://www.youtube.com/watch?v=fFn0f_pSd9whttps://www.youtube.com/watch?v=fFn0f_pSd9w -
7/26/2019 Cluster HA Con PVE
43/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 43 / 46
El clster HA, al detectar la cada del servicio RGManager, migrar los CTs del nodo afectado al nodosano, y reinicia los CTs (en las pruebas que he realizado, tarda de 30 seg. a 1 min. aprox.). Veremos comolos CTs ahora corren sobre proxmox01, y que las pginas web estn arriba:
-
7/26/2019 Cluster HA Con PVE
44/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 44 / 46
Para restablecer el nodo cado, iniciaremos el servicio RGManager (en un entorno de produccin real, elhardware 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):
-
7/26/2019 Cluster HA Con PVE
45/46
Clster de Alta Disponibilidad con Proxmox Virtual Environment | Proyecto fin de curso FPII ASIR
Pg. 45 / 46
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 enwikipedia.
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 enwikipediay en laweb 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 enwikipediay en laweb 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 enwikipediay en laweb
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 enwikipediay en laweb 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 undisco 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 enwikipedia.
http://es.wikipedia.org/wiki/Cl%C3%BAster_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Cl%C3%BAster_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Cl%C3%BAster_(inform%C3%A1tica)http://en.wikipedia.org/wiki/Distributed_Replicated_Block_Devicehttp://en.wikipedia.org/wiki/Distributed_Replicated_Block_Devicehttp://en.wikipedia.org/wiki/Distributed_Replicated_Block_Devicehttps://pve.proxmox.com/wiki/DRBDhttps://pve.proxmox.com/wiki/DRBDhttps://pve.proxmox.com/wiki/DRBDhttp://en.wikipedia.org/wiki/Fencing_%28computing%29http://en.wikipedia.org/wiki/Fencing_%28computing%29http://en.wikipedia.org/wiki/Fencing_%28computing%29https://pve.proxmox.com/wiki/Fencinghttps://pve.proxmox.com/wiki/Fencinghttps://pve.proxmox.com/wiki/Fencinghttp://es.wikipedia.org/wiki/Kernel-based_Virtual_Machinehttp://es.wikipedia.org/wiki/Kernel-based_Virtual_Machinehttp://es.wikipedia.org/wiki/Kernel-based_Virtual_Machinehttp://www.linux-kvm.org/getting_started.htmlhttp://www.linux-kvm.org/getting_started.htmlhttp://www.linux-kvm.org/getting_started.htmlhttp://www.linux-kvm.org/getting_started.htmlhttp://es.wikipedia.org/wiki/OpenVZhttp://es.wikipedia.org/wiki/OpenVZhttp://es.wikipedia.org/wiki/OpenVZhttps://openvz.org/Main_Pagehttps://openvz.org/Main_Pagehttps://openvz.org/Main_Pagehttp://whatis.techtarget.com/definition/cluster-quorum-diskhttp://whatis.techtarget.com/definition/cluster-quorum-diskhttp://whatis.techtarget.com/definition/cluster-quorum-diskhttp://en.wikipedia.org/wiki/Quorum_(distributed_computing)http://en.wikipedia.org/wiki/Quorum_(distributed_computing)http://en.wikipedia.org/wiki/Quorum_(distributed_computing)http://whatis.techtarget.com/definition/cluster-quorum-diskhttps://openvz.org/Main_Pagehttp://es.wikipedia.org/wiki/OpenVZhttp://www.linux-kvm.org/getting_started.htmlhttp://www.linux-kvm.org/getting_started.htmlhttp://es.wikipedia.org/wiki/Kernel-based_Virtual_Machinehttps://pve.proxmox.com/wiki/Fencinghttp://en.wikipedia.org/wiki/Fencing_%28computing%29https://pve.proxmox.com/wiki/DRBDhttp://en.wikipedia.org/wiki/Distributed_Replicated_Block_Devicehttp://es.wikipedia.org/wiki/Cl%C3%BAster_(inform%C3%A1tica) -
7/26/2019 Cluster HA Con PVE
46/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 dominiowww.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 enjQuery,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 tcnicaAJAX.
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 unanavegacin 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 eindexable mediante una carga parcial por AJAX.
En palabras llanas, con el archivo javaScript desarrollado, cada vez que el usuario clica sobre un link , este no realiza su funcin por defecto, si no que se llama a una funcin que carga mediante
AJAX una parte concreta del contenido ficheroindicado en el link, en un 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 includeo include_once. La recarga AJAX slo carga el de cada fichero
que cambia con respecto a los dems ficheros. As, si se realiza un refresco de la pgina mediante elnavegador, 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 jQueryjqueryvalidation,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.
http://www.clasesparamayores.com/http://www.clasesparamayores.com/http://getbootstrap.com/http://getbootstrap.com/https://jquery.com/https://jquery.com/https://jquery.com/http://es.wikipedia.org/wiki/AJAXhttp://es.wikipedia.org/wiki/AJAXhttp://es.wikipedia.org/wiki/AJAXhttps://rosspenman.com/pushstate-jquery/https://rosspenman.com/pushstate-jquery/https://rosspenman.com/pushstate-jquery/http://jqueryvalidation.org/http://jqueryvalidation.org/http://jqueryvalidation.org/http://jqueryvalidation.org/https://rosspenman.com/pushstate-jquery/http://es.wikipedia.org/wiki/AJAXhttps://jquery.com/http://getbootstrap.com/http://www.clasesparamayores.com/
top related