openMosix e nodi Diskless

Contenuti:

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
(Make sure /boot is mounted before copying to it)
# 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 ) 



Ultimo aggiorn.:
20 Novembre, 2003
Michael Imhof
Autore

Michael Andrews
Ricerche

Sven Vermeulen
Revisione

Stefano Lucidi
Traduzione

Enrico Morelli
Traduzione

Sommario:  Questo HOWTO Vi aiuterà a creare un cluster openMosix usando Gentoo.
- 2002 Gentoo.it - Domande, commenti e/o correzioni? Email gentoo-dev@gentoo.it.