Cluster cu openMosix pe Gentoo
1.
Introducere
Despre acest ghid
Acest ghid vă ajută la crearea unui cluster folosind openMosix. El va fi
construit în jurul distribuţiei de Linux, Gentoo. Avem de gând să facem cât mai
uşoară folosirea şi de către începători în Linux. În timp ce utilizatorii
experimentaţi pot folosi mai multe ghiduri disponibile pentru openMosix, noduri
fără disk şi în reţea, noi sperăm că acest ghid să fie util utilizatorilor mai
puţin experimentaţi.
Notă:
Dacă aveţi de gând să configuraţi un cluster openMosix folosind noduri fără
disk, ar trebui să citiţi secţiunea kernel pentru a învăţa cum se compilează un
kernel cu suportul pentru openMosix, ar trebui să citiţi Ghidul pentru Sisteme fără Disc, şi reveniţi
aici pentru implementarea efectivă a clusterului.
|
Despre openMosix
OpenMosix este un patch pentru kernel-ul linux care permite ca mai multe sisteme
să acţioneze ca unul singur (SSI). Aceasta rezultă în mai multe sisteme gazdă
să pară ca un singur sistem multiprocesor. În momentul scrierii acestui
articol, ultima versiune a patch-ului openMosix era pentru kernel-ul 2.4.22, şi
utilitarele pentru utilizator la versiunea 0.3.4. Găsiţi o varietate mare de
informaţii despre openMosix la http://openmosix.sourceforge.net. Nu
este uşoară folosirea unor versiuni diferite de surse kernel cărora li s-au
aplicat patch-uri, şi am aflat că majoritatea noilor patch-uri nu sunt
compatibile cu versiunile mai vechi. OpenMosix migrează explicit numai
procesele a.out şi binarele ELF sau când un proces mare se efectuează fork. Nu
va migra procesele aplicaţiile gen p-thread, sau procesele care folosesc
aceeaşi zonă de memorie.
Pentru mai multe informaţii despre openMosix vizitaţi pagina lor oficială.
Despre cluster
Clusterul nostru va fi compus din calculatoare individuale (noduri) care împart
resursele de calcul într-un efort de creştere a puterii de calcul a tuturor
nodurilor. Nu toate nodurile trebuie să fie aceeaşi arhitectura, lucru care
face realizarea clusterelor mult mai uşoară.
Înainte de a începe
Ar trebui să fie instalat Gentoo pe calculatoarele care doriţi să facă parte din
cluster. Adiţional mai este necesar să aveţi sursele kernel-ului openMosix care
căruia i-au fost aplicate patch-uri de către Gentoo.
Pentru a instala sursele acestea folosiţi emerge:
Cod 1.1: Instalarea surselor de kernel cu patch-uri |
# emerge openmosix-sources
|
2.
Configurarea kernel-ului
Despre kernel-uri
Kernel-ul este acea aplicaţie care se află între partea hardware şi celelalte
aplicaţii care sunt încărcate în acel sistem, în esenţă, baza pentru un sistem
de operare bazat pe kernel. Când sistemul dumneavoastră este pornit, aplicaţia
BIOS execută o serie de instrucţiuni care sunt în spaţiul rezervat pentru boot
al discului dvs. Aceste instrucţiuni formează, practic, aplicaţia bootloader
care încarcă kernel-ul. După ce kernel-ul s-a încărcat toate procesele sunt
manipulate de kernel.
Pentru mai multe informaţii despre kernel şi configurarea acestuia ar trebui să
consultaţi pagina Ghidului pentru
kernel.
Configurarea kernel-ului
Kernel-ul poate fi cât de mare şi personalizat doriţi dumneavoastră, dar sunt
unele opţiuni necesare care trebuie a fi selectate.
Important:
Este foarte important să aveţi calea /usr/src/linux indicând către
sursele openmosix aşa cum este mai jos.
|
Cod 2.1: Setarea /usr/src/linux să indice către sursele openmosix |
# cd /usr/src
# rm linux
# ln -s linux-2.4.22-openmosix linux
|
Apoi, rulaţi configurarea kernel-ului:
Cod 2.2: Editarea configuraţiei kernel-ului |
# cd /usr/src/linux
# make menuconfig
|
Ar trebui să vi se afişeze o interfaţă albastru cu gri care oferă o alternativă
sigură pentru editarea fişierului /usr/src/linux/.config. Dacă
kernel-ul curent funcţionează corect ar trebui să faceţi o copie de siguranţă
la fişierul ce conţine configuraţia curentă.
Cod 2.3: Copie de siguranţă la configuraţia kernel-ului |
# cp .config .config_working
|
În meniul de sus ar trebui să fie afişat openMosix --->. Dacă nu
este, trebuie să instalaţi sursa kernel-ului cu patch-ul pentru openMosix
(consultaţi secţiunea Înainte de a începe).
Navigaţi în submeniurile următoare şi asiguraţi-vă că următoarele opţiuni sunt
selectate (dar NU ca modul):
Cod 2.4: Opţiuni menuconfig |
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
|
Notă:
Aceste configurări de kernel trebuie să fie adăugate la configuraţia specifică
sistemului dvs. şi nu intenţionate pentru a fi înlocuite definitiv cu opţiunile
specificate mai sus.
|
După ce aţi reconfigurat kernel-ul ar trebui să îl compilaţi:
Cod 2.5: Recompilarea kernel-ului şi a modulelor |
# make dep
# make clean bzImage modules modules_install
# cp arch/i386/boot/bzImage /boot/bzImage-openmosix
|
Apoi adăugaţi o intrare pentru noul kernel în lilo.conf sau
grub.conf (depinde ce aplicaţie bootloader folosiţi) şi faceţi
noul kernel să fie cel implicit. Acum, că aţi copiat bzImage în
directorul /boot trebuie doar să reporniţi sistemul.
Lipsesc Opţiuni
Dacă vă lipsesc opţiuni la configurarea kernel-ului aveţi grijă să fie selectat:
- Code maturity level options --->
- Prompt for development and/or incomplete code/drivers
3.
Configurarea nodurilor openMosix
Instalarea utilitarelor openMosix
Pentru ca sistemul cluster să poată migra procesele, sunt necesare să fie
instalate o serie de binare în zona utilizator. Adiţional, un server openMosix
trebuie pornit pentru ca un nod să intre în cluster şi să folosească
capabilităţile openMosix. Pentru a lua aceste binare şi fişiere, folosiţi
emerge:
Cod 3.1: Instalarea utilitarelor openMosix |
# emerge openmosix-user
|
Configurarea nodurilor openMosix
Editarea şi crearea /etc/openmosix.map nu mai este necesară. Noile
versiuni de utilitare au o aplicaţie daemon care află automat nodurile
disponibile din reţeaua dumneavoastră.
Creaţi un director /mfs în fiecare nod şi mount-aţi-l dacă doriţi
să folosiţi sistemul de fişiere openMosix (foarte recomandat) care permite
accesul la toate nodurile.
Cod 3.2: mkdir /mfs |
# mkdir /mfs
|
Cod 3.3: Exemplu de intrare în /etc/fstab |
none /mfs mfs noauto,dfsa=1 0 0
|
Notă:
Nu toate nodurile trebuie să ruleze pentru ca openMosix să funcţioneze corect.
|
Pornirea openMosix
Pornirea openMosix este foarte uşoară. Următoarea comandă va activa
funcţionalitatea openMosix în kernel şi va porni aplicaţia daemon care
descoperă nodurile disponibile şi ţine evidenţa lor.
Cod 3.4: Pornirea openMosix |
# /etc/init.d/openmosix start
|
4.
Utilitarele openMosix pentru zona utilizator
Utilitare din linia de comandă
openMosix-user instalează câteva instrumente utile în sistem. Pentru a numi
câteva:
-
mosmon - openMosix monitor. Vă permite să vedeţi starea curentă a
tuturor nodurilor cum ar fi: utilizarea procesorului, memoria instalată,
memoria disponibilă, etc.
-
mtop - Versiune îmbunătăţită a comenzii top care arată în ce nod
rulează un proces.
-
mps - Versiune îmbunătăţită a comenzii ps. Arătă şi numărul nodului.
-
mosctl whois - Este foarte util deoarece mosmon şi celelalte
instrumente arată numai numărul nodului. Cu mosctl whois nodenumber
vă puteţi da seama de adresa IP sau numele sistemului gazdă al unui nod.
openMosix stress test poate fi folosit pentru a testa dacă totul funcţionează
corect când clusterul este foarte încărcat. Pachetul se numeşte
openmosixtest:
Cod 4.1: Instalarea openmosixtest |
# emerge openmosixtest
|
Pachetul ebuild ar trebui să vă informeze cum să rulaţi testul.
Utilitare în mod grafic
Pentru a vedea grafic situaţia clusterelor şi a proceselor care sunt migrate,
puteţi folosi openmosixview.
Cod 4.2: Instalarea openmosixview |
# emerge openmosixview
|
Pentru a rula această aplicaţie tastaţi openmosixview:
Cod 4.3: Rularea openmosixview |
# openmosixview
|
5.
Resurse
openMosix
aplicaţii adiţionale openMosix (sunt disponibile pachete ebuild)
Conţinutul acestui document este publicat sub licenţa Creative Commons -
Attribution / Share Alike.
|