jump to navigation

Installare e configurare OpenMosix 2.4 con Debian Etch 9 Dicembre 2007 @ 23:02

Posted by montoya in Hardware, Linux, Opensource, Programmazione, Sistemi Operativi, Tools.
Tags: ,
trackback

In questo articolo vedremo come installare e configurare OpenMosix in una Debian Etch. Per provare se le configurazioni da noi effettuate saranno valide, proveremo a creare un cluster mediante creazione di macchine virtuali con VirtualBox.

Vediamo quindi come fare.


Preparazione all’installazione OpenMosix (con kernel 2.4)

Per evitare successivi errori nella compilazione dell’openmosix come:

{standard input}:Error:suffix or operands invalid for mov

si deve retrocedere il pacchetto binutils e per farlo è necessario il seguente repositorio nel file /etc/apt/sources.list:

deb http://ftp.it.debian.org/debian/ oldstable main non-free contrib

A questo punto, per retrocedere il pacchetto binutils alla vecchia versione stabile, si deve eseguire il seguente comando:

# apt-get install binutils/oldstable

Ora installiamo i compilatori gcc, cpp e g++ 3.3 con il seguente comando:

# apt-get install gcc-3.3 cpp-3.3 g++-3.3

Si deve ora controllare se i link simbolici relativi ai compilatori, puntano alla vecchia versione appena installata con i seguenti comandi:

# gcc --version
# cpp
--version
# g++
--version

Se qualcuno di questi non è alla versione 3.3 aggiorniamo il link, facciamo un esempio per il gcc:

# rm /usr/bin/gcc
# ln -s /usr/bin/gcc-3.3 /usr/bin/gcc

Download e compilazione del kernel 2.4

Download del kernel:

# wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.26.tar.bz2

Mettiamo il kernel nell’apposita directory ed estraiamolo:

# mv linux-2.4.26.tar.bz /usr/src
# cd /usr/src
# tar xfvj linux-2.4.26.tar.bz

Facciamo ora un link simbolico al kernel riferito all’openmosix:

# ln -s linux-2.4.26 linux-openmosix

Passiamo ora al download e all’applicazione della patch:

# wget http://switch.dl.sourceforge.net/sourceforge/openmosix/openMosix-2.4.26-1.bz2
# cd linux-openmosix
# bzcat ../openMosix-2.4.26-1.bz2 | patch -Np1

Recarsi nella cartella del kernel e aprire il menuconfig:

# cd /usr/src/linux-openmosix
# make menuconfig

Dopo aver deciso dal menuconfig la configurazione migliore per il proprio computer (consiglio: se non si è esperti usare il .config di default insieme ai seguenti moduli che si trovano nella voce openmosix)

uscire dal menuconfig salvandone la configurazione e iniziare la compilazione:

# make dep
# make bzImage
# make modules
# make modules_install
# depmod -a

Copiamo ora l’immagine del kernel nella cartella del boot:

# cp arch/i386/boot/bzImage /boot/linux-2.4.26-om

e aggiorniamo il grub:

# update-grub

Riavviando possiamo notare al boot la presenza del kernel appena compilato:

Installazione e configurazione dell’openmosix

Scarichiamo il programma, mettiamolo nella home dell’utente root ed estraiamolo:

# wget http://heanet.dl.sourceforge.net/sourceforge/openmosix/openmosix-tools-0.3.6-2.tar.gz
# mv openmosix-tools-0.3.6-2.tar.gz /root
# cd /root
# tar xfvz openmosix-tools-0.3.6-2.tar.gz

A questo punto compiliamolo:

# cd openmosix-tools-0.3.6-2
# ./configure
# make
# make install

Configurazione della rete delle macchine virtuali

Innanzitutto sulle impostazioni della macchina virtuale si deve mettere sulle impostazioni di rete:

simulando quindi che le nostre macchine siano collegate su una rete locale. Per semplicità abbiamo numerato i mac address delle schede di rete.

Ora, per ogni macchina (generata dalla clonazione), andiamo a modificare i file di configurazione della rete, e precisamente:

  • /etc/network/interfaces (per i settaggi ip)
  • /etc/hostname (per il nome del pc)
  • /etc/hosts (per i nomi ad ogni pc)

Ecco passo passo il contenuto di ciascun file per ogni macchina (ovviamente ogni macchina avrà una propria configurazione)

/etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

/etc/hostname
server

/etc/hosts
192.168.1.1 server
192.168.1.2 client01

Affinché le modifiche dei file abbiano successo, necessita il riavvio delle macchine.

Testare poi la comunicazione tra le macchine tramite un ping. Una volta certi che le macchine comunicano, prepariamoci a testarne il funzionamento.

Configurazione e test dell’openmosix

Si deve andare a specificare nel file /etc/openmosix.map di ogni macchina, la configurazione dei nodi del cluster:

1 server 1
2 client01 1
3 client02 1
....
n client0n 1

dove:

  • il primo numero: indica l’id del nodo del cluster
  • il secondo: indica l’hostname del nodo del cluster specificato in /etc/hosts
  • il terzo: indica il numero di processori all’interno di quel nodo

A questo punto, avviare in ciascuna macchina il demone openmosix con il seguente comando:

# /etc/init.d/openmosix start

Se non vengono riscontrati errori, siamo pronti per il test.

Ora creiamo un semplice programmino che ci permetterà di vedere il flusso dei processi tra le macchine.

Creiamo con un editor di testo un file test.sh a vostro piacimento (calcolo su matrici ad esempio). Oppure creare un programma scritto in c++.

Ora gli diamo l’esecuzione tramite:

# chmod +x test.sh

A questo punto lanciamo lo script in background:

# ./test.sh &

Ed avviamo su ogni macchina il mosmon tramite l’omonimo comando ed apparirà:

e possiamo vedere che tutte e due le macchine sono all’opera!

Noi abbiamo usato solo 2 macchine virtuali, ma il tutto è facilmente generalizzabile ad n macchine virtuali.Infine si nota un gran lavoro di interscambio tra le 2 macchine mediante la rete.

Commenti»

1. jfk - 10 Dicembre 2007 @ 8:20

Scusa, mi dici a cosa serve installare openmosix, quando per sua stessa dichiarazione, Moshe Bar, l’ha dichiarato morto?
Potrei poi capire, se proprio vogliamo (penso tu possa voler fare un cluster con vecchie macchine con cpu singole core), che tu lo installi su sarge, ma installarlo su etch, con un sacco di problemi poi di dipendenze per gli altri pacchetti, mi sembra quantomeno “particolare” come soluzione…

2. montoya - 10 Dicembre 2007 @ 8:53

@jfk
Te hai ragione su tutto, però ho dovuto fare tutto questo per una relazione di un esame universitario.
Ho forse sbagliato condividere col resto del mondo tutte le bestemmie che ho detto per riuscire ad installare e configurare questo cazzo di openmosix? :)
Ribadisco però che hai pienamente ragione… infatti ad aprile 2008 il progetto chiuderà i battenti!

3. anonimo - 10 Dicembre 2007 @ 9:15

vero che il progetto e’ avviato a chisura, ma cio’ non significa che non puo’ continuare ad essere utilizzato.
LA patch funziona, i nodi sono stabili e scalano, su certi problemi, linearmente, o quasi in funzione del numero delle cpu coiunvolte.

Il fatto di dover usare il vecchio “2.4.26″ non mi sembra un grosso limite, poiche’ per fare calcolo, al cluster non serve altro che cpu, scheda di rete e ram: tutti il resto (grafica, applicativi, etc) e’ solo roba in piu’ che non serve.

4. jfk - 10 Dicembre 2007 @ 10:06

ne avresti detto meno se tu lo avessi installato direttamente su sarge :-)
In realta’ il progetto e’ ottimo, ed e’ un vero peccato che chiuda. Tanto e’ vero che in alcune ambiti viene ancora usato pesantemente. Il discorso che fa pero’ Moshe Bar, e’ che e’ diventato oramai piu’ economico prendere una macchina multicore e fargli elaborare i dati.
E non e’ che ha tutti i torti. Ho letto ad esempio (non ricordo dove) che hanno utilizzato 8 ps3 in cluster per delle ricerche.
Hanno risparmiato il costo di un paio di super pc. Naturalmente hanno avuto il supporto di ibm e sony. Mi sorge un dubbio: non e’ che hanno utilizzato openmosix? :-D

5. anonimo - 10 Dicembre 2007 @ 12:27

infatti il mi tengo da parte i primi tre cd di sarge, patch openmosix e utility userspace.
Mi sono fatto anche una minidistro su chiavetta :-)

NOTA: il discorso di Moshe, semplicemente non regge: anche se hai un pc quadcore, avrai sempre classi di problemi che richiedono l’assemblaggio di N cpu.

6. montoya - 10 Dicembre 2007 @ 20:57

@tutti
Io ho testato il tutto all’interno del mio pc, tramite 2 macchine virtuali che erano “collegate” in rete. Da molta soddisfazione vedere come il carico dal nodo 1 va al nodo 2 bilanciando così l’intero carico.

Se funziona così, che ci vuole a installare 10 sarge, 10 openmosix 2.4 e collegare i 10 PC in rete mediante uno switch che zeppa?

Niente :D Abbiamo una grid fatta in casa praticamente con 0 euri di spesa e facilità di configurazione +00 (leggi più infinito) :P

7. Squeeed - 20 Dicembre 2007 @ 12:24

Ciao *
Sto provando ma ho degli stramaledetti problemi con le dipendenze, ho anche messo su sarge ma il problema persiste.
Praticamente non riesco a retrocedere binutils in quanto mi disinstalla g++-3.3 et simila.
Ho provato anche a bloccare la versione ma non funziona, continua ad aggiornarmi il pacchetto quando tento di installare g++-3.3 ecc..

Come posso uscirne?

8. paoloc - 16 Gennaio 2008 @ 1:13

Ciao Montoya, ciao un po’ a tutti.
e’ un po’ che sto inseguendo, per varie vie, la multi-elaborazione (magari via lan boot, ecc.)
Mi servirebbe di mettermi in contatto con te, perchè tu ti sei ‘ravanato’ il ‘…’, ma ci sei riuscito, io no!
ho installato diverse distro, ma il risultato (ora a destra, ora a manca) è sempre molto simile a quello di Sqeeed, di cui sopra.

Una parola, invece a tutti.
E’ molto semplice il perchè della scelta di Moshe Bar: magari è stato ‘convinto’ ad abbandonare il project.
Del resto, (e ne sono io testimone con ben tre installazioni funzionanti) quel sw che si chiama vmware (in versione ESX) funziona davvero come una freccia. Del resto IBM ha annunciato delle macchine xserver type 3950 (base 1 proc. quadcore XEON 2700- max 4 proc a macchina) che possono essere ‘giuntate’ con dei cavi speciali tra di loro (simil scsi:sas), fino ad averne 8 chassis on-line. (4*XEON*4core*2700*8) ((((MOSTRUOSO!!!!)))).
ma a chi viene, allora, in mente di ‘giuntare’ via lan (magari ancora a 10Mbit) dei pc che stentano ad arrivare (magari) a PIII 500?????
Ad un ‘matto’ come me, forse, o come “all’epoca” Moshe, o come te caro Montoya.
è anche vero che con un singolo alimentatore (tagliando via tutte le porte si riesce a far accendere fino a 5 motherboard) (alimentatori vecchio tipo max 235W). però secondo me, rimane, comunque, un’esperienza entusiasmante. ecco il perchè della, forse, decima mia notte senza ’sonno’.

un saluto a tutti.
paoloc

p.s. ———————————————————-
Montoya, non scherzo, ho bisogno di contattarti.

9. montoya - 16 Gennaio 2008 @ 19:32

@paoloc
Come facciamo? Tramite posta? Non so boh…

10. paoloc - 18 Gennaio 2008 @ 4:41

Grazie.

sarò in forze non prima delle 08.30.
se puoi, mi fai uno squillo al 335.*******.
grazie anticipate.

11. Gaghiel_ - 17 Febbraio 2008 @ 18:50

Buon giorno (non di)
anch’io ho dei problemi con la configurazione del cluster a priori, sarà perchè comincio ora a capirne qualcosa di shell (molto poco), il mio scopo finale è quello di far girare BOINC nel mio cluster per aiutare seppur di poco la ricerca scienifica.

ora ci riprovo con ubuntu-6.06 “dapper drake” (se non erro) e cluster knoppix (per i vari nodi).

iso x CD -> ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/clusterknoppix/clusterKNOPPIX_V3.6-2004-08-16-EN-cl1.iso

immagine per floppy -> http://esagroup.altervista.org/eucaristos-0.0.3.img.tar.gz

grazie per le spiegazioni, a presto

12. Giovanni - 4 Agosto 2008 @ 0:41

ciao a tutti, io voglio costruire un cluster per soddisfazione personale, sono 3 anni che ce l’ho in testa e sto accumulando vecchi pc… adesso voglio mettere openmosix su redhat 7.3 con kernel 2.4.26 che ho provveduto a compilare sulla macchina in questione. ho installato openmosix, openmosixview e openmosix tool. ho intenzione di usare dei nodi diskles con boot via pxe. sto installndo il server dhcp e ho i primi problemi con il fatto che avevo compilato il kernell senza suporto ipv6.. adesso devo risolvere questo problema, o abilito ipv6 o non faccio usare ipv6 al server dhcp…

13. montoya - 4 Agosto 2008 @ 13:59

@Giovanni
E che ci fai tanto col supporto ipv6 :P