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 0
Abrid 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.exe
como 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.