Cluster con los dos HP Proliant gen8
-
Hola amigos, hace tiempo que no escribo nada que sea por decirlo de alguna manera, tecnico. La cuestion es que tenia en la cabeza crear un cluster ( hay de diversos tipos y para diversas funciones) para aprovechar el hardware de ambos servidores que como el titulo indica, son practicamente iguales. Conditio sine qua non para que el cluster funcione. Os lo voy a resumir muy brevemente, pues asi me lo explicaron ( quien me ayudo, le costo un año montar con sus Epyc, lo que he creado con los HP) y como el conocimiento no es de nadie sino de todos paso a la explicacion lo mas resumida posible.
En primer lugar, disponer de dos servidores con hardware similar o igual. Disponer de alguna version certificada de windows server ( se puede hacer con linux) en este caso el server datacenter 2022 y también windows 10 pro a ser posible para workstation. Instalacion limpia en ambos servidores del sistema operativo.
Configuracion del servidor:
https://docs.microsoft.com/es-es/windows-server/failover-clustering/whats-new-in-failover-clustering
( indispensable seguir estos pasos que indica microsoft)- El nodo maestro será, por ejemplo HOST1, y el resto de nodos host2,3,4,5 etc.
- En todos los nodos, la cuenta y la contraseña debe ser la misma.
- Para windows, instalar MPI
- Asegurarnos de que en todos los nodos se ejecuta el proceso smpd.
- Asegurarnos de que en las reglas del firewall nuestras aplicaciones, mpi, rpc, etc tienen acceso ( tanto de entrada como de salida).
- Intentar abrir los puertos tcp udp necesarios para un cluster. ( esto para microsoft aquí.
con esto podemos si se ha configurado todo bien usar aplicaciones que admitan cluster en procesamiento en paralelo. Luego el siguiente clúster es para buscar la redundancia, si falla uno que siga el otro. ( a medida que me enseñen más os lo añado aquí, aunque sé que muchos de vosotros esto lo tenéis más que conocido)
Aplicación trabajando con 88 procesos:
Crear un clúster de conmutación por error en ambos equipos ( esto se hace desde la consola del servidor)
Implementación de un servidor de archivos en clúster de dos nodos.
Configuración de cuentas de clúster en Active Directory )
Esencial lo es todo. Pero os lo describo tal como lo he creado y como funciona para que reconozca los dos nodos, es decir, 20x2 cores+ 40x2 threads.
Validar la configuracion del cluster.Configurar y administrar el cuórum
instalar Microsoft MPI y añadir permiso tanto de esto ultimo como de snmp en el firewall.
una vez hecho todo esto. tenemos que hacer los siguiente:
descargar texel del github, la ultima version e instarlarla en el directorio c, por ejemplo.https://github.com/B4dT0bi/texel/releases
y haced lo siguiente con la consola de windows en modo administrador:
ejecutar en ambos servidores el siguiente comando:
smpd -d 0Abrid otra consola como administrador y ejecutar el siguiente comando para buscar el directorio donde se ha instalado texel:
cd C:\texel107\texel64cl.exe
y luego el siguiente comando:
piexec -hosts 2 host1 host2 texel64cl.execomo resultado deberia aparecer lo que veis en la siguiente captura de pantalla:
os dejo en ingles si esto ultimo lo haceis con linux:
The pre-compiled windows executable texel64cl.exe is compiled and linked
against MS-MPI version 8.1. It requires the MS-MPI redistributable package
to be installed and configured on all computers in the cluster.Running on a cluster is an advanced functionality and probably requires
some knowledge of cluster systems to set up.Texel uses a so called hybrid MPI design. This means that it uses a single
MPI process per computer. On each computer it uses threads and shared
memory, and optionally NUMA awareness.After texel has been started, use the "Threads" UCI option to control the
total number of search threads to use. Texel automatically decides how
many threads to use for each computer, and can also handle the case where
different computers have different number of CPUs and cores.- Example using MPICH and linux:
If there are 4 linux computers called host1, host2, host3, host4 and MPICH
is installed on all computers, start Texel like this:mpiexec -hosts host1,host2,host3,host4 /path/to/texel
Note that /path/to/texel must be valid for all computers in the cluster,
so either install texel on all computers or install it on a network disk
that is mounted on all computers.Note that it must be possible to ssh from host1 to the other hosts without
specifying a password. Use for example ssh-agent and ssh-add to achieve
this.Despues de todo esto, las posibilidades son realmente diversas, pues puedes usar un equipo como apoyo por si falla el primario, etc.
OJo, esto lo he montado para usar programas de ajedrez adaptados a cluster. Las aplicaciones, como todas, al igual que el hardware, no siempre funcionan con estas configuraciones. La cuestion es que lo hemos logrado en tiempo record, con ayuda. Y por eso os lo dejo por aqui, ya que he visto que buscando cluster, aparecia en el apartado de software.
Un abrazo compañeros. -
@jordiqui dijo en Cluster con los dos HP Proliant gen8:
clúster de conmutación por error
Entonces este clúster no es para ampliar capacidad de computo no?
Los procesos se replican en ambos equipos?, o el primero digamos le pasa al otro las tareas si llegara el caso?Gran Aportación, todo masticadito
Me estas recordando los intentos de hacer que un windows en marcha pudiera pasar de correr en un equipo pequeño a otro grande y viceversa, jolines eso para los entusiastas de a pie si que seria una pasada.
una placa de muy baja energía en plan home center, navegar descargas nas etc, y que sin encender ni apagar nada, ni salir de tu sesión de windows ni interrumpir nada, pudiera mover juegos o lo mas exigente tirando de una placa atx a tope con todo. Pasándole tareas, la sesión entera, o con el sortilegio que fuera necesario.Salu2.
-
@defaultuser En este caso concreto el archivo de texelcl.exe esta creado para que los motores de ajedez UCI usen el cluster, vamos todos los nodos o cpu. Pero quitando texel, puedes configurar un servidor de red, fallo pues al fallar el primero, seguirian con las tareas el segundo, etc. No me he querido meter mas, porque es todo un mundo. Pero os lo he reducido lo maximo posible. Un abrazote.