openMosix Cluster på Gentoo
1.
Introduktion
Om denne HOWTO
Denne HOWTO vil hjælpe dig med at lave en openMosix cluster. Den vil
være baseret omkring Gentoo Linux distributionen. Vores intention er,
at lave dette så brugervenligt som muligt og hjælpe Linux
nybegynderen. Hvor en erfaren bruger nemt kunne flette de mange
HOWTO'er omkring openMosix, diskfri noder og netværk sammen, da håber
vi, at denne HOWTO kan lette proceduren for brugere med mindre erfaring.
Bemærk:
Hvis du planlægger at sætte din openMosix cluster op med diskfri
noder, så bør du læse kerne-sektionen nedenfor, og for at lære hvordan man
kompilerer en kerne med openMosix understøttelse, læs derefter vores
diskless HOWTO(engelsk), og kom
tilbage hertil for at fortsætte med den faktiske installation af clusteren.
|
Om openMosix
OpenMosix er en patch til Linux-kernen, der tillader flere værter at
virke, som et single system image (SSI). Dette resulterer i flere
værter, der virker som én stor vært med flere processorer. I
skrivende stund er den nyeste udgivelse af openMosix-kerne-patchen
version 2.4.22 og openMosix-brugerværktøjerne har version 0.3.4. Der
er et stort udvalg af information omkring openMosix på
http://openmosix.sourceforge.net. Det er ikke nemt at lave
clusters med forskellige versioner af patchet kerne-kildekoder, og vi
har fundet ud af, at de fleste patcher ikke er bagudkompatible. OpenMosix
migrerer tunge procesdelninger. Det vil ikke migrere lette processer
såsom p-tråde, eller tunge processer der bruger delt hukommelse.
For at få mere information omkring openMosix, besøg da deres hjemmeside.
Om clusteren
Vores cluster vil bestå af individuelle computere (noder), der deler
udregningsmæssige ressourcer i et forsøg på, at forhøje den
udregnigsmæssige kraft i alle noderne. Ikke alle noderne behøves at
have den samme arkitektur, men det gør opgaven, at samle dem i en
cluster, meget nemmere.
Før du starter
Du bør have Gentoo installeret på de computere, du ønsker at bringe ind
i din cluster. Derudover bør du have openMosix-kerne-kildekoden, som
belejligt er blevet patchet af Gentoo.
For at få denne kildekode, skal du bare bruge emerge:
Kode oversigt 1.1: At skaffe den patchede kerne kode |
# emerge openmosix-sources
|
2.
At opsætte kernen
Om kerner
Kernen er den software, der sidder mellem din hardware og alt andet
software du har kørende på din maskine, essentielt er det hjertet af
et kernebaseret operativsystem. Når din computer er startet,
eksekverer BIOS'en de instruktioner, der findes på den reserverede boot
plads af din harddisk. Disse instruktioner er typisk en boot-loader,
der henter din kerne. Efter at din kerne er blevet hentet, håndteres
alle processer af kernen.
For at få mere information omkring kerne og konfiguration af kerner
vil du måske ønske at tjekke kerne
HOWTO ud.
At opsætte kernen
Kernen kan være så stor og så tilpasset, som du ønsker den, men der er
et par kerne muligheder, der skal være valgt.
Vigtigt:
Det er ekstremt vigtigt at linke /usr/src/linux til
openmosix-kildekoden, som vist nedenfor.
|
Kode oversigt 2.1: At sætte /usr/src/linux til openmosix |
# cd /usr/src
# rm linux
# ln -s linux-2.4.22-openmosix linux
|
Gå derefter til opsætning af din kerne:
Kode oversigt 2.2: At ændre opsætningen af kernen |
# cd /usr/src/linux
# make menuconfig
|
Du bør få et grå og blåt GUI, der giver et sikkert alternativ til at
redigere /usr/src/linux/.config filen manuelt. Hvis din
kerne virker godt pt. vil du måske ønske at lave backup af din
nuværende opsætningsfil:
Kode oversigt 2.3: At lave backup af kerne-opsætningen |
# cp .config .config_working
|
Den allerøverste menu bør hedde openMosix --->. Hvis den
ikke gør det, bliver du nødt til at emerge kerne kildekoden med
openMosix patchen (se Før du
starter). Gå til den følgende undermenu og vær sikker på, at de
følgende ting er valgt som indbygget (og IKKE som modul):
Kode oversigt 2.4: Menuconfig muligheder |
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
|
Bemærk:
Disse kerne-opsætningsmuligheder bør kun blive tilføjet til din
systemsspecifikke opsætning og er ikke ment til at udskifte denne fuldstændigt.
|
Efter at du har opsat kernen igen, skal du også bygge den igen:
Kode oversigt 2.5: At kompilere kernen og moduler |
# make dep
# make clean bzImage modules modules_install
# cp arch/i386/boot/bzImage /boot/bzImage-openmosix
|
Tilføj så en indgang til den nye kerne i lilo.conf eller
grub.conf (afhængigt af hvilken boot-loader du bruger) og
gør den nye kerne til et standardvalg. Nu hvor det nye
bzImage er blevet kopieret ind i dit /boot-bibliotek,
så er det eneste du skal gøre, at genstarte dit system.
Manglende muligheder
Hvis du mangler muligheder i din kernes opsætning, så vær sikker
på at du vælger:
- Code maturity level options --->
- Prompt for development and/or incomplete code/drivers
3.
Opsætning af openMosix noderne
At installere openMosix-brugerværktøjer
For at clusteren er i stand til at migrere processer, skal nogle få
binære filer til brugerne være installeret. Derudover skal en openMosix-server
være startet for at en node kan tilføjes til en cluster og gøre
fuld brug af openMosix-egenskaberne. For at få disse binære filer skal
du bruge emerge:
Kode oversigt 3.1: At installere openMosix-brugerværktøjerne |
# emerge openmosix-user
|
At opsætte openMosix noder
At redigere eller lave /etc/openmosix.map er ikke længere
nødvendigt. De nyere udgaver af brugerværktøjerne har en daemon (baggrundsprocess), der
automatisk finder alle noder på dit netværk.
Lav biblioteket /mfs på hver node og mount det, hvis du
vil bruge openMosix filsystemet (anbefales klart), der tillader dig
adgang til alle dine noder.
Kode oversigt 3.2: mkdir /mfs |
# mkdir /mfs
|
Kode oversigt 3.3: Enkel indgang i /etc/fstab |
none /mfs mfs noauto,dfsa=1 0 0
|
Bemærk:
Ikke alle noder behøves at være oppe at køre for at openMosix fungerer korrekt.
|
At starte openMosix
At starte openMosix er meget simpelt. Den følgende kommando vil starte
openMosix funktionaliteten i din kerne og starte den daemon, der
automatisk holder styr på alle tilgængelige noder.
Kode oversigt 3.4: At starte openMosix |
# /etc/init.d/openmosix start
|
4.
openMosix-brugerværktøjer
Kommandolinie værktøjer
openMosix-user installerer adskillige brugbare værktøjer på dit
system. For at nævne nogle få:
-
mosmon - openMosix monitor. Tillader dig at se alle dine
noder, inklusiv brug af cpu, installeret hukommelse, brugt
hukommelse, osv.
-
mtop - Forbedret udgave af top der viser dig på hvilken
node en proces rent faktisk kører.
-
mps - Forbedret udgave af ps. Viser også nodens nummer.
-
mosctl whois - Denne er meget brugbar, da mosmon og de
andre værktøjer kun fortæller hvilket nodenummer, der kører. Med mosctl
whois nodenumber kan du finde ud af ip'en eller værtsnavnet på
den node.
openMosix-stresstesten kan bruges til at teste om alt på din cluster
virker som det skal og hvordan det opfører sig under belastning. Denne
pakke hedder openmosixtest:
Kode oversigt 4.1: At emerge openmosixtest |
# emerge openmosixtest
|
Denne ebuild bør informere dig om, hvordan du kører testen.
Grafiske værktøjer
For at få et grafisk overblik over din cluster og se hvilke processer
der bliver migreret kan du bruge openmosixview.
Kode oversigt 4.2: At emerge openmosixview |
# emerge openmosixview
|
For at køre denne vidunderlige applikation, skal du bare skrive openmosixview:
Kode oversigt 4.3: At starte openmosixview |
# openmosixview
|
5.
Ressourcer
openMosix
openMosix tilføjelser (ebuilds er tilgængelige)
Indholdet i dette dokument er autoriseret under en Creative Commons -
Attribution / Share Alike licens.
|