En artigos pasados, comezamos a falar sobre o que é Proxmox VE e como funciona. Hoxe falaremos de como se pode aproveitar a posibilidade de agrupar e mostrar que beneficios dá.
Que é un cluster e por que é necesario? Un clúster (do inglés cluster) é un grupo de servidores unidos por canles de comunicación de alta velocidade, que funcionan e aparecen ante o usuario como un todo. Hai varios escenarios principais para usar un clúster:
Proporcionando tolerancia a fallos (alta dispoñibilidade).
Equilibrio de carga (Equilibrio de carga).
Aumento da produtividade (alto rendemento).
Realización de computación distribuída (Informática distribuida).
Cada escenario ten os seus propios requisitos para os membros do clúster. Por exemplo, para un clúster que realiza computación distribuída, o principal requisito é a alta velocidade de operacións de punto flotante e unha baixa latencia de rede. Estes clusters úsanse a miúdo para fins de investigación.
Xa que tocamos o tema da computación distribuída, gustaríame sinalar que tamén existe algo como sistema de reixa (do inglés grid - lattice, network). A pesar da semellanza xeral, non confunda o sistema de reixa e o clúster. Grid non é un cluster no sentido habitual. A diferenza dun clúster, os nodos incluídos na grella son na maioría das veces heteroxéneos e caracterízanse por unha baixa dispoñibilidade. Este enfoque simplifica a solución de problemas de computación distribuída, pero non permite crear un único todo a partir de nodos.
Un exemplo sorprendente de sistema de rede é unha plataforma informática popular BOIN (Berkeley Open Infrastructure for Network Computing). Esta plataforma foi creada orixinalmente para o proxecto SETI @ home (Search for Extra-Terrestrial Intelligence at Home), que trata o problema de atopar intelixencia extraterrestre mediante a análise de sinais de radio.
Chat istoUnha gran variedade de datos recibidos dos radiotelescopios divídese en moitos pequenos anacos, e son enviados aos nodos do sistema de rede (no proxecto SETI@home, os ordenadores voluntarios desempeñan o papel destes nodos). Os datos son procesados nos nodos e despois de completar o procesamento, envíanse ao servidor central do proxecto SETI. Así, o proxecto resolve o problema global máis complexo sen ter á súa disposición a potencia informática necesaria.
Agora que temos unha comprensión clara do que é un clúster, propoñemos considerar como se pode crear e utilizar. Usaremos un sistema de virtualización de código aberto Proxmox VE.
É especialmente importante comprender claramente as limitacións e os requisitos do sistema de Proxmox antes de comezar a crear un clúster, a saber:
número máximo de nodos nun clúster - 32;
todos os nodos deben ter a mesma versión de Proxmox (hai excepcións, pero non se recomendan para a produción);
se no futuro está previsto utilizar a funcionalidade de alta dispoñibilidade, entón o clúster debería ter polo menos 3 nodos;
Os portos deben estar abertos para que os nodos poidan comunicarse entre si UDP/5404, UDP/5405 para corosync e TCP/22 para SSH;
o atraso da rede entre os nodos non debe exceder 2 ms.
Crear un clúster
Importante! A seguinte configuración é de proba. Non esquezas consultar con documentación oficial Proxmox V.E.
Para executar un clúster de proba, tomamos tres servidores co hipervisor Proxmox instalado coa mesma configuración (2 núcleos, 2 GB de RAM).
Inicialmente, despois de instalar o sistema operativo, execútase un único servidor modo autónomo.
Crea un clúster facendo clic no botón Crear clúster no apartado correspondente.
Establecemos un nome para o futuro clúster e seleccionamos unha conexión de rede activa.
Fai clic no botón Crear. O servidor xerará unha clave de 2048 bits e escribirá xunto cos parámetros do novo clúster nos ficheiros de configuración.
Inscrición TAREFA OK indica a finalización exitosa da operación. Agora, mirando a información xeral sobre o sistema, pódese ver que o servidor pasou ao modo cluster. Ata agora, o clúster consta dun só nodo, é dicir, aínda non ten as capacidades para as que se necesita un clúster.
Unirse a un Clúster
Antes de conectarnos ao clúster creado, necesitamos obter información para completar a conexión. Para iso, vai á sección Agrupar e нажимаем кнопку Información de unirse.
Na xanela que se abre, interésanos o contido do campo do mesmo nome. Haberá que copialo.
Aquí codifican todos os parámetros de conexión necesarios: o enderezo do servidor para a conexión e a pegada dixital. Imos ao servidor que hai que incluír no clúster. Prememos o botón Únete ao Clúster e na xanela que se abre, pega o contido copiado.
campos Enderezo do compañeiro и Impresión dixital cubrirase automaticamente. Introduza o contrasinal de root para o nodo número 1, seleccione a conexión de rede e prema o botón unirse.
Durante o proceso de unión a un clúster, a páxina web da GUI pode deixar de actualizarse. Está ben, só tes que cargar de novo a páxina. Do mesmo xeito, engadimos outro nodo e, como resultado, obtemos un clúster completo de 3 nodos de traballo.
Agora podemos controlar todos os nodos do clúster desde unha GUI.
Organización de alta dispoñibilidade
Proxmox fóra da caixa admite a funcionalidade de organización HA tanto para máquinas virtuais como para contedores LXC. Utilidade ha-xerente detecta e xestiona erros e fallos, realizando unha conmutación por falla dun nodo fallido a un funcionando. Para que o mecanismo funcione correctamente, é necesario que as máquinas virtuais e os contedores teñan un almacenamento de ficheiros común.
Despois de activar a funcionalidade de alta dispoñibilidade, a pila de software ha-manager supervisará continuamente o estado da máquina virtual ou contenedor e interactuará de forma asíncrona con outros nodos do clúster.
Anexando almacenamento compartido
Como exemplo, implantamos un pequeno ficheiro compartido NFS en 192.168.88.18. Para que todos os nodos do clúster poidan usalo, cómpre facer as seguintes manipulacións.
Seleccione no menú da interface web Centro de datos - Almacenamento - Engadir - NFS.
Enche os campos ID и servidor. Na lista despregable Exportar seleccione o directorio desexado entre os dispoñibles e na lista contido - Tipos de datos necesarios. Despois de premer o botón Engadir o almacenamento conectarase a todos os nodos do clúster.
Ao crear máquinas virtuais e contedores en calquera dos nodos, especificamos o noso almacenamento como almacenamento.
Configurando HA
Por exemplo, creemos un contedor con Ubuntu 18.04 e configuremos a Alta dispoñibilidade para el. Despois de crear e executar o contedor, vai á sección Datacenter-HA-Add. No campo que se abre, especifique o ID da máquina virtual/contedor e o número máximo de intentos para reiniciar e moverse entre nós.
Se se supera este número, o hipervisor marcará a máquina virtual como fallida e poñeraa no estado Erro, despois de que deixará de realizar calquera acción con ela.
Despois de premer o botón Engadir utilidade ha-xerente notificará a todos os nodos do clúster que agora a máquina virtual co ID especificado está controlada e, en caso de falla, debe reiniciarse noutro nodo.
Imos facer un accidente
Para ver como funciona exactamente o mecanismo de conmutación, desactivemos a fonte de alimentación do nodo1 de forma anormal. Miramos dende outro nodo o que está a suceder co clúster. Vemos que o sistema solucionou un fallo.
O funcionamento do mecanismo HA non significa a continuidade da VM. En canto o nodo "cae", a operación da máquina virtual detense temporalmente ata que se reinicie automaticamente noutro nodo.
E aquí comeza a "maxia": o clúster reasignou automaticamente o nodo para executar a nosa máquina virtual e en 120 segundos o traballo restaurouse automaticamente.
Apagamos o nodo 2 sobre a nutrición. Vexamos se o clúster sobrevivirá e se a máquina virtual volverá a funcionar automaticamente.
Por desgraza, como podemos ver, temos un problema co feito de que xa non hai quórum no único nodo supervivente, o que desactiva automaticamente HA. Damos o comando para forzar a instalación dun quórum na consola.
pvecm expected 1
Despois de 2 minutos, o mecanismo HA funcionou correctamente e, ao non atopar o nodo2, lanzou a nosa máquina virtual no nodo3.
En canto volvemos a activar o nodo1 e o nodo2, o clúster restaurouse por completo. Teña en conta que a máquina virtual non migra de novo ao nodo1 por si mesma, pero pódese facer manualmente.
Resumindo
Contámosche como funciona o mecanismo de agrupación Proxmox e tamén che mostramos como se configura HA para máquinas virtuais e contedores. O uso axeitado da agrupación e HA aumenta moito a fiabilidade da infraestrutura, ademais de proporcionar recuperación ante desastres.
Antes de crear un clúster, cómpre planificar inmediatamente para que fins se utilizará e canto terá que escalalo no futuro. Tamén cómpre comprobar que a infraestrutura de rede está preparada para funcionar con atrasos mínimos para que o futuro clúster funcione sen fallos.
Díganos: está a usar as capacidades de agrupación de Proxmox? Agardámoste nos comentarios.