openMosix e nodi Diskless
1.Introduzione
Circa questo HOWTO
Questo HOWTO vi aiuterà a creare un cluster openMosix usando nodi diskless
. Esso sarà basato sulla distribuzione Gentoo Linux. Intendiamo renderlo il più
facile possibile e indirizzato ai newbie di Linux. Mentre un'utente esperto
può facilmente unire insieme i vari HOWTOs disponibili su openMosix, nodi diskless
e sul networking; speriamo che questo HOWTO possa facilitare la procedura anche per utenti con poca esperienza.
Riguardo openMosix
OpenMosix è una patch per il kernel Linux che consente a host multipli di agire come
una singola immagine di sistema (SSI). Questo fa si che host multipli appaiano
come un grande host multiprocessore. Al tempo di questo scritto stavo usando
l'ultima release della patch openMosix per il kernel, versione 2.4.22, e gli openMosix
user tools versione 0.3.4. Ci sono molte informazioni su
openMosix su http://openmosix.sourceforge.net. Non è facile fare un cluster
con differenti versioni di sorgenti patchati, e abbiamo visto che molte patch non sono retro compatibili.
OpenMosix migra esplicitamente i processi pesanti quando eseguite un binario a.out o ELF
o quando un processo pesante esegue un fork. Esso non migra i processi leggeri
come i p-threads, o i processi pesanti che usano la memria condivisa (shared memory).
Per maggiori informazioni su openMosix visitate la loro home page.
Cluster
Il nostro cluster sarà composto di singoli computer (nodes) che condividono
le risorse computazionali per incrementare la potenza computazionale di tutti
i nodi. non tuttii nodi devono essere della stessa architettura ma questo renderebbe
più semplice metterli in cluster.
Prima di inziare
Dovreste avere Gentoo installata sui computer che volete aggiungere al vostro cluster
In più dovreste avere i sorgenti del kernel openMosix che è stato convenientemente
patchato da Gentoo.
Per ottenere questi sorgenti usate emerge:
Esempio 1: Ottenere i sorgenti del kernel patchati |
# emerge openmosix-sources
|
2.Configurare il kernel
Riguardo i kernel
Il kernel è il software che risiede tra il vostro hardware e il resto del
software che avete caricato nella vostra macchina, essenzialmente il cuore del kernel
del sistema operativo. Quando il vostro computer parte, il BIOS esegue le
istruzioni trovate nello spazio riservato al boot del vostro disco rigido. Queste istruzioni
sono tipicamente un boot loader che carica il vostro kernel. Dopo che il vostro kernel
è stato caricato tutti i processi sono gestiti dal kernel.
Per maggiori informazioni sul kernel e sulla sua configurazione potreste voler guardare
http://www.tldp.org/HOWTO/Kernel-HOWTO.html.
Configurare il kernel
Il kernel può essere grande e personalizzato come volete
ma ci sono alcune piccole opzioni richieste dal kernel che avete bisogno di attivare.
Importante:
E' estremamente importante che /usr/src/linux punti agli
openmosix-sources come mostrato sotto.
|
Esempio 2: Far puntare /usr/src/linux a openmosix |
# cd /usr/src
# rm linux
# ln -s linux-2.4.22-openmosix linux
|
Then go into your kernel configuration:
Esempio 3: Modificare la configurazione del kernel |
# cd /usr/src/linux
# make menuconfig
|
Dovreste ottenere una GUI blu e grigia che offre una alternativa alla modifca
manuale del file /usr/src/linux/.config. Se il vstro kernel funziona
bene potreste voler salvare il file di configurazione corrente
uscendo dalla GUI e digitando:
Esempio 4: Fare il backup della configurazione del kernel |
# cp .config .config_working
|
Nella GUI, un'item del menu princpale dovrebbe dire openMosix --->. Se non lo fa
dovete fare l'emerge dei sorgenti del kernel con la patch per openMosix
(Prima di iniziare). Andate nel seguente sottomenu
e assicuratevi che le seguenti opzioni siano selezionate come built-in e NON
come modulo.
Esempio 5: Menuconfig options |
openMosix --->
[*] openMosix process migration support
[ ] Support clusters with a complex network topology
[*] Stricter security on openMosix ports
(1) Level of process-identity disclosure (0-3)
[*] openMosix File-System
[ ] Poll/Select exceptions on pipes
[ ] Disable OOM Killer
[ ] Load Limit
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
Networking options --->
<*> Packet socket
[ ] Packet socket: mmapped IO
< > Netlink device emulation
[ ] Network packet filtering (replaces ipchains)
[ ] Socket Filtering
<*> Unix domain sockets
[*] TCP/IP networking
[*] IP: multicasting
File systems --->
[*] /proc file system support
[*] /dev file system support (EXPERIMENTAL)
[*] Automatically mount at boot
|
Nota:
Queste opzioni della configurazione vanno aggiunte alla vostra specifica configurazione
del sistema e non vanno intese come sostitute della vostra.
|
Dopo che avete riconfigurato il kernel dovete ricompilarlo digitando:
Esempio 6: Ricompilare il kernel e i moduli |
# make dep
# make clean bzImage modules modules_install
# cp arch/i386/boot/bzImage /boot/bzImage-openmosix
|
Poi aggiungete una opzione per il nuovo kernel in lilo.conf o
grub.conf (Dipende da quale bootloader state usando) e mettete
il nuovo kernel come default. Ora che la nuova bzImage è stata
copiata in /boot tutto quello che dovete fare è riavviare il sistema.
Opzioni mancanti
Se avete delle opzioni mancanti nella vostra configurazione del kernel assicuratevi di abilitare:
- Code maturity level options --->
- Prompt for development and/or incomplete code/drivers
3.Configurazione dei nodi openMosix
Installare openMosix user tools
Per permettere al cluster di migrare i processi, bisogna installare dei piccoli binari in user-land.
in più, un server openMosix deve essere avviato per permettere a ogni nodo di unirsi al cluster
e fare un'uso pieno delle possibilità di openMosix. Per ottenere questi binari, usate emerge:
Esempio 7: Installare le utility userland openMosix |
# emerge openmosix-user
|
Configurare i nodi openMosix
Modificare o creare /etc/openmosix.map non è più necessario. La
la nuova versione delle userland utilities ha disponibile un demone che
automaticamnte trova tuti i nodi nella vostra rete.
Create una directory /mfs su tutti i nodi e montatela se volete usare
il filesystem openMosix (altamente raccomandato) che v permette di accedere a tutti i vostri nodi
.
Esempio 8: mkdir /mfs |
# mkdir /mfs
|
Esempio 9: Esempio di /etc/fstab |
none /mfs mfs noauto,dfsa=1 0 0
|
Nota:
Non tutti i nodi devono essere attivi e in esecuzione per far funzionare corretamente openMosix.
|
Avviare openMosix
Avviare openMosix è molto semplice. I comandi seguenti abiliteranno le funzionalità
di openMosix nel vostro kernel e avviano l'autodiscovery daemon,che terrà traccia di
tutti i nodi disponibili.
Esempio 10: Avviare openMosix |
# /etc/init.d/openmosix start
|
4.openMosix userland utilities
Utility a linea di comando
openMosix-user installa alcuni utili tool nel vostro sistem. per citarne alcuni:
-
mosmon - openMosix monitor. Vi permette di vedere lo stato di tutti i vostri nodi
incluso l'utilizzo della cpu , la memoria installata, memoria usata, etc.
-
mtop - Versione potenziata di top che vi mostra su quale nodo stà attulamente giarando un processo.
-
mps - Versione potenziata di ps. Mostra anche il numero dei nodi.
-
mosctl whois - Questo è molto utile come mosmon e gli altri tool vi dice
il numero del nodo. Con mosctl whois nodenumber potete vedere
l'ip o l'hostname di questo nodo.
openmosix stress test può essere usato per verificare che tutto funzioni come dovrebbe nel vostro cluster
e come si comporta sotto carico. Questo pacchetto è chiamato:
openmosixtest:
Esempio 11: Emerge openmosixtest |
# emerge openmosixtest
|
L'ebuild vi informerà su come eseguire il test.
Graphical utilities
Per avere una visione grafica del vostro cluster e vedere i processi che vengono migrati,
potete usare openmosixview.
Esempio 12: Emerge openmosixview |
# emerge openmosixview
|
Per avviare questa fantastica applicazione digitate semplicemente openmosixview:
Esempio 13: Lanciare openmosixview |
# openmosixview
|
5.Risorse
openMosix
openMosix add-ons (sono disponibili gli ebuilds )
|