Premessa
In questo documento spiegherà come realizzare un nodo cluster utilizzando OpenMosix per condividere le risorse di più nodi (CPU, RAM, Accesso al disco, ecc) con la conseguenza di ottenre un bilanciamento del carico di ogni nodo aumentandone le prestazioni. Questo sistema viene utilizzato specialmente da chi sviluppa software ed ha bisogno di supercomputer per avere una certa velocità di compilazione dei software, ma viene utilizzato anche da Cilea che un grosso sistema di database contente milioni di articoli, riviste, abstract di riviste scientifiche a cui molti studiosi accedono. Il loro sistema utilizza molti nodi con caratteristiche hardware e software diverse ma con lo stesso scopo: offrire un servizio veloce ed affidabile. Quello che realizzeremo noi è un piccolo cluster composto da almeno 2pc ma nessuno ci vieta di ampliarlo.
Risorse Hardware e Software
Per il mio scopo ho utilizzato due vecchi pc , composti da un processore Pentium 166MMX, 32MB di RAM, Hard Disk da 2GB ide, scheda di rete pci 3Com 905-b 10/100Mbit., e l’altro nodo con un processore Pentium 200MMX, 64MB di RAM, Hard disk da 2GB ide, scheda di rete Intel 810x 10/100Mbit, mentre dal lato software ho utilizzato Slackware 9.1 con Kernel 2.4.22 e OpenMosix specifico per questa versione del Kernel e OpenMisix Tool che regoleranno le funzioni del nodo. Usando versioni di Kernel diverse potrebbero sorgere seri problemi di incompatibilità fra i nodi del cluster.
Procuriamoci i pacchetti necessari
Per facilitarvi nell’impresa vi ho messo a disposizione il mio spazio web, da dove potere prelevare i pacchetti necessari senza andare in giro per la rete magari non trovando le versioni utilizzate in questo documento. Di seguito trovate i link per scaricare i pacchetti:
http://www.webalice.it/alepensato/openmosix/openMosix-2.4.22-3.bz2
http://www.webalice.it/alepensato/openmosix/openmosix-tools-0.3.5.tar.bz2
http://www.webalice.it/alepensato/openmosix/linux-2.4.22.tar.gz
Compilazione e installazione dei software sorgenti (come root)
Installazione dei OpenMosix
In questo caso più che un’installazione si tratta di applicare la patch al nostro kernel per attivare il supporto per OpenMosix. Per prima cosa controlliamo se abbiamo i file del kernel nella directory /usr/src/linux, in caso contrario scarichiamo il kernel dal link mostrato sopra e dopo aver decompresso il pacchetto procediamo all’applicazione della patch. Eseguite questi comandi passo passo:
cd /tar bunzip2 openMosix-2.4.22-3.bz2 cd /usr/src/linux patch –p1 < /tar/ openMosix-2.4.22-3 make menuconfig
Tramite questo comando comparirà una schermata come questa, dove la prima voce e OpenMosix, quindi premiamo Invio per etrare al suo interno dove selezioneremo delle voci per completarne la configurazione.
Questa è la seconda schermata di cui parlavamo in precedenza, dove dovremo selezionare le voci proprio come qui in figura
Una volta completata la selezione delle voci premiamo Esc, e ci comparirà una schermata che ci chiede se salvare le modifiche o meno
Adesso siamo pronti per compilare in il nuovo kernel col supporto per OpenMosix.
make dep && make && make modules && make modules_install make bzImage make install mv System.map /boot mv vmlinuz /boot/openmosix
Adesso dobbiamo modificare il file di configurazione di LiLo per poter avviare il sistema col supporto OpenMosix, aggiungendo alcune righe di configurazione
vi /etc/lilo.conf
image = /boot/openmosix root = /dev/hda1 label = OpenMosix read-only
lilo
Con questa procedura abbiamo completato la predisposizione del sistema col supporto per OpenMosix
Installazione di OpenMosix-Tools
Questo pacchetto contiene degli script che, una volta installati, si occupererno della gestione dei processi relativi al cluster, delle funzioni di avvio, stop, restart a quelle sul bilanciamento del carico Eseguite questi comandi passo passo:
cd /tar bunzip2 openmosix-tools-0.3.5.tar.bz2 cd openmosix-tools-0.3.5 ./configure –with-kerneldir=/usr/src/linux make && make install mkdir /mfs cp scripts/openmosix.map /etc vi /etc/fstab
aggiungete la seguente riga per attivare la directory di sistema per OpenMosix
mfs /mfs mfs odfsa=1 0 0 vi /etc/openmosix.map
aggiungete alla fine del file le informazioni relative ai nodi, al loro IP e a quale cluster appartengono. Secondo questa sintassi potremmo trovarci col seguente esempiop:
# Nodo IP Address Cluster 1 192.168.0.10 1 2 192.168.0.11 1
Adesso dobbiamo copiare lo script per la gestione dei processi del cluster
cp scripts/openmosix /etc/rc.d/ chmod +x /etc/rc.d/openmosix /etc/rc.d/openmosix start
Adesso rendermo automatici le procedure di start e stop dei OpenMosix
vi /etc/rc.d/inet2 vi /etc/rc.d/rc.6
aggiungete le seguenti istruzioni per rendere automatico lo startup di OpenMosix
if [ -x /etc/rc.d/openmosix ];then echo “Avvio di OpenMosix� /etc/rc.d/openmosix start fi
vi /etc/rc.d/rc.6
aggiungete le seguenti istruzioni per rendere automatico lo shutdown di OpenMosix
if [ -x /etc/rc.d/openmosix ];then /etc/rc.d/openmosix stop fi
Avvio del sistema con OpenMosix
Adesso è tutto pronto alla prima esecuzione del nuovo kernel col supporto per OpenMosix. Riavviamo il sistema e nella tabella di avvio di LiLo scegliamo la voce OpenMosix. Cosଠfacendo avvieremo il sistema col kernel che abbiamo creato e quindi avremo il primo nodo abilitato. Eseguiamo le stesse operazioni su gli altri nodi per amplificare il nostro cluster. Dimenticavo di dirvi che entrando nella directory /mfs di qualunque nodo troveremo delle sottodirectory con del numeri, come /1 /2 /3, ognuna di esse rappresenta un collegamento di rete al filesystem del nodo rispettivo.