Guia d'ús
Una vegada que disposis de la placa màster inicialitzada i un o més nodes slave configurats, podràs començar a utilitzar el clúster. I això inclou funcions com executar scripts en paral·lel, visualitzar les mètriques dels nodes i l'estat de la xarxa, o administrar el sistema de manera remota des del màster.
Execució en el clúster
El sistema compta amb l'eina Slurm, que proporciona un sistema de cues tant per a usuaris com per a processos per gestionar l'execució en el clúster. A continuació indiquem algunes de les funcionalitats que aquesta eina ofereix:
- Pots consultar l'estat del clúster mitjançant la comanda 'sinfo'. Aquesta comanda et mostra el nombre de nodes amb els quals comptes i l'estat dels mateixos. Si l'estat és ‘idle', és que el node es troba operatiu. Si està a ‘down’, vol dir que alguna cosa ha fallat i no pots utilitzar aquest node. Hauràs revisar per veure si és problema de configuració o si s'ha quedat penjat.
- Per executar scripts, utilitza la comanda 'srun'. Aquesta et permet afegir opcions, com especificar el nombre de processos que es crearan, el nombre de nodes a utilitzar, redireccionar el resultat, etc.
- Quan llancis un script a executar, podràs consultar el seu estat, el temps d'execució que porta, el seu identificador (PID) i qui el va llançar mitjançant la comanda squeue.
- Si vols cancel·lar l'execució d'un procés, utilitza la comanda 'scancel' seguit de l'identificador (PID) del procés a cancel·lar.
Per a més informació sobre l'eina Slurm i com utilitzar-la, pots consultar la seva documentació en la seva pàgina web: https://slurm.schedmd.com/documentation.html.
Monitorització del sistema
El sistema compta amb una eina de monitorització que s'instal·la i configura durant la inicialització de el sistema perquè puguis fer un seguiment exhaustiu del clúster. Aquesta eina és Ganglia, i per accedir a la pàgina web que mostra les mètriques del teu clúster hauràs d'accedir a un navegador desde la placa màster.
- El primer pas que has de fer és connectar-te a la placa màster. Si ho fas via SSH, utilitza l'opció '-Y' en la teva comanda, per permetre el pas de la interfície gràfica i puguis visualitzar el navegador. Un exemple de connexió seria 'ssh -Y odroid@192.168.X.X', especificant l'adreça IP de la teva placa màster.
- Un cop siguis a la placa màster, obre un navegador web. El sistema compta amb el navegador Midori instal·lat.
- Un cop l'hagis obert, posa la següent adreça a la barra de el navegador: http://localhost/ganglia.
- Se't mostrarà la pàgina principal de Ganglia. A la part central-esquerra es mostra un desplegable, i al clicar a ell apareixen tots els nodes del teu clúster. Per visualitzar les dades d'un node, no tens més que clicar en el seu nom i la pàgina mostrarà tots els gràfics que ha generat per a aquest node.
Si vols conèixer més sobre les possibilitats que t'ofereix aquesta eina, pots fer una ullada a la seva pàgina web: http://ganglia.sourceforge.net/.
Administració remota
El sistema compta amb un parell de scripts per a l'administració i manteniment del clúster. Aquests scripts permeten l'execució d'ordres en tots els nodes del clúster de manera remota desde la placa màster. D'aquesta manera, s'ofereix la possibilitat de consultar l'estat de serveis o d'executar ordres d'actualització o reinici, per exemple, d'una manera ràpida i centralitzada, sense necessitat d'haver de connectar-se un a un a tots els nodes de clúster.
Per a aquesta tasca, es compta amb dos scripts, anomenats 'global_execute_seq' i 'global_execute_par', que executen la comanda o seqüencia de comandes amb pipes que se'ls indiqui per paràmetre en tots els nodes de clúster.
Aspectes a tenir en compte:
- La llista de nodes del clúster per a l'execució d'aquests scripts ve recollida a l'arxiu '/opt/scripts/odroid.par'. Aquest fitxer es modifica automàticament després de la inicialització de cada node slave per incloure-ho. Si es desitja excloure un o més nodes de l'execució d'aquests scripts d'administració remota, s'ha de comentar la línia corresponent a el node en qüestió de l'arxiu '/opt/scripts/odroid.par', és a dir, caldrà incloure un '#' a l'inici de la línia corresponent.
- L'execució d'aquests scripts, al trobar-se aquests sota el directori 'bin/', es pot fer desde qualsevol directori. Un exemple d'ús d'aquests seria el següent: 'global_execute_seq hostname', el qual llançarà com a resultat el nom que tenen cada un dels nodes slave assignat.
- La diferència entre els dos scripts és que el que compta amb el sufix 'seq<' executa la comanda de manera seqüencial, és a dir, espera al fet que acabi l'execució de la comanda en el primer node slave per llançar l'execució de el següent slave. D'altra banda, el que compta amb el sufix 'par' llança totes les execucions sense esperar que cap acabi. El primer, el seqüencial, s'haurà d'utilitzar per a tasques que requereixin de pas de paquets, com ara 'apt update', ja que com el node màster exerceix de tallafocs de la xarxa interna, una execució d'aquesta comanda en paral·lel comporta la sobrecàrrega del màster. Per als comandaments que no impliquin pas de paquets a través del màster, es pot utilitzar l'opció en paral·lel de l'script.