Cluster HA Con PVE

Embed Size (px)

Citation preview

  • 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/