Hlavní navigace

MOSIX - Počítejte rychleji! (3)

Michal Ludvig 2. 10. 2001

Pokud jste svědomitě splnili, co jsem vám uložil na konci minulého dílu, máte teď několik počítačů, na nichž běží kernel 2.4.9-mosix a kde jsou nainstalovány potřebné Mosixí programy.

Konfigurační soubor

Základem konfigurace je soubor mosix.map, obvykle uložený v adresáři /etc, který má následující strukturu:

# MOSIX-id      IP-adresa       počet-uzlů
  1             10.0.0.1        4
  100           10.0.0.100      1

Každý řádek definuje jednu skupinu, skupin může být maximálně 256 a význam jednotlivých položek je tento:

MOSIX-id
Číslo prvního uzlu ve skupině. Může být v rozmezí 1–65535.
IP-adresa
IP adresa prvního uzlu ve skupině.
počet-uzlů
Touto položkou systému oznamujeme, jak již název napovídá, kolik uzlů která skupina má.

V našem případě tedy máme čtyři uzly s ID od 1 (s adresou 10.0.0.1) až po ID=4 (s adresou 10.0.0.4) a jeden uzel s ID=100 s adresou 10.0.0.100. Před­pokládejme tedy, že každý z našich pěti počítačů má jedno síťové rozhraní s jednou z těchto adres (pokud možno každý s jinou).
Tento soubor musí být na všech uzlech shodný, takže je dobré ho z jednoho uzlu exportovat např. přes NFS a na ostatních na něj jen udělat symlinky. Bohužel není možné tento soubor získávat přes MFS (Mosix File System), protože ho potřebujeme ještě před vlastním spuštěním Mosixových služeb, kdy MFS pochopitelně neběží.

Spuštění clusteru

Spuštění clusteru je nyní již jen otázkou napsání jednoho příkazu na každém z uzlů. Ten magický příkaz zní:

/sbin/setpe -w -f /etc/mosix.map

Může se stát, že například uzel s ID=100 má více síťových karet. V tom případě program setpe nemusí v mosix.map najít žádnou platnou (jelikož setpe vezme adresu první síťovky, kterou najde, a podle mosix.map se snaží přiřadit odpovídající číslo uzlu) a ohlásí chybu. Pokud se tak stane, máme dvě možnosti – buď do mosix.map dopsat další řádek ve formátu

# MOSIX-id      IP-adresa       počet-uzlů
  100           192.168.0.100   ALIAS

nebo spustit setpe -w -f /etc/mosix.map -p 100, čímž programu řekneme, o který node se jedná.
Nyní již také můžeme přimountovat Mosix File System (MFS) s podporou Direct FileSystem Access (DFSA):

mount -t mfs -o dfsa=1 mfs /mfs

Voila, máme běžící cluster. Až ho jednou budete chtít vypnout, stačí zadat příkaz setpe -off a tím daný uzel z clusteru vyjmout.

Spouštění aplikací

Nejprve si spustíme monitorování zátěže uzlů příkazem mon -d. Během chvíle bychom měli dostat „graf“ s tolika sloupci, kolik máme nakonfigurovaných uzlů v mosix.map. V případě, že konkrétní uzel právě neběží, bude u jeho sloupečku napsáno DEAD.
Nyní si dáme zátěžový test. Pokud máte jednoprocesorový stroj, spusťte alespoň dvakrát následující program:

awk 'BEGIN {while(1);}'&

V první chvíli by se mělo zatížení vašeho uzlu zvýšit, ovšem již během pár sekund by měl Mosix zjistit, že jeden uzel je nepřiměřeně zatížen, zatímco ostatní se flákají, a jeden z těchto nekonečných procesů by měl odmigrovat pryč. Postupně přidávejte další a další nekonečné cykly a programem mon sledujte, co se bude dít.

Pomocné programy

Uzel, na kterém spouštíte vaše programy, se v terminologii Mosixu nazývá home-node. U některých programů je vhodné, aby nemigrovaly, a tedy aby celý svůj „život“ strávily na svém home-node. Příkladně se jedná o startovací skripty, programy spouštěné přes inetd a podobné kritické procesy. Jsou dvě možnosti, jak toto zajistit. Buď to necháme na tom konkrétním programu, nebo naše přání Mosixu oznámíme při spouštění. První možnost s hodí například v shell-scriptech, kdy stačí na začátku vykonat příkaz

if [ -w /proc/$$/lock]; then echo -n 1 > /proc/$$/lock; fi

Toto nastavení dědí všechny procesy následně spuštěné z daného skriptu, a tím pádem i ty, pokud si explicitně neurčí jinak, zůstanou na domácím uzlu.

Druhá, univerzálnější možnost je použití programu mosrun. Tímto programem je možné zajistit například: ať se program spustí na domácím uzlu a nikam nemigruje, ať se spustí na kterémkoliv jiném uzlu a tam zůstane, ať se spustí na jednom z několika definovaných uzlů, ale pak ať z něj klidně odmigruje atd. Kombinací je nepřeberné množství. Vhodným parametrem tohoto programu můžeme dále Mosixu napovědět, o jaký druh procesu se jedná – zda výpočetní, nebo spíše na disk stále hrabající. Uveďme si jeden příklad:

mosrun -j1-2,4 -F -l -c -r muj_program

Tímto Mosixu oznamujeme, že chceme spustit muj_program na uzlu 1, 2, nebo 4 (-j1–2,4), případně kdekoliv jinde, pokud žádný z preferovaných uzlů není právě dostupný (-F). Proces pak může svobodně migrovat po ostatních uzlech (-l). Dále Mosixu říkáme, že se jedná o výpočetně náročný proces (-c), což však nemusí platit o jeho eventuálních potomcích (-r). Zdaleka jsme zde nevyčerpali všechy přepínače. V podrobné manuálové stránce se dočtete o spoustě dalších možností, které tato pomocná utilitka pro spouštění programů v prostředí Mosixu poskytuje. Při jejím čtení se také dozvíte, že pro nejobvyklejší situace existují snadno zapamatovatelné aliasy (např. runon pro mosrun -j)

Administrace

Pro administraci clusteru existuje program mosctl, s jehož pomocí lze jednotlivým uzlům zakázat či povolit přijímání cizích procesů, odmigrovávání vlastních procesů či „povolávání“ zpět vlastních procesů, které se potulují po clusteru. Také je možné zapínat a vypínat MFS na jednotlivých uzlech a nastavovat parametry, kterými se řídí rozhodování o migraci procesů. Dále je mosctl schopen zjistit zatížení, stav, volnou a dostupnou paměť atd., a to jak vlastního, tak i vzdálených uzlů.
Pokud se nechcete trápit s parametry tohoto příkazu a máte rádi „klikavější“ prostředí, poohlédněte se po balíčku MosixView, který vám administraci poněkud usnadní a zároveň poskytne přehledné a lehce ovladatelné prostředí, v němž budete moci jediným dvojklikem poslat nějaký proces z uzlu 1 na uzel 2, případně vypnout uzel 3.
A až se vám počítání bude zdát pomalé, přečtěte si manuálovou stránku programu tune a vyzkoušejte si, co se z ní dozvíte. V ideálním připadě byste s jeho pomocí měli cluster vyladit na vyšší výkon.

Protože se s vaším fungl novým clusterem jistě chcete více sžít, doporučuji vám přečtení manuálových stránek – zejména té s názvem mosix (překvapivě), kde se dozvíte, jaké zajímavé informace o běžících procesech a konfiguraci systému můžete nalézt v adresáři /proc, kam Mosix po svém startu přidá několik položek (jak globálně platných, tak také do adresáře každého procesu). Spoustu dalších informací samozřejmě naleznete na oficiálních stránkách Mosixu, kde se též dočtete postup, jak se přihlásit do e-mailové konference zabývající se vším kolem Mosixu. Takže nyní již víte všechno potřebné, abyste váš nový cluster mohli začít trápit náročnými početními úlohami.

Našli jste v článku chybu?

15. 1. 2004 0:09

spac (neregistrovaný)

taaaaaaak, ted sem si to precet, a du na to. Skoda, ze sem si na to neprivstal o 3 roky driv, moch sem toho vic zpocytat!!
diky za peknej clnek, tri dily mam jednim dechem a tesim se na zejtra, a ty svy hajtry poradne hytnu pod krkem:)))


2. 10. 2001 13:23

Michal Ludvig (neregistrovaný)

Ciste teoreticky by to s VMware chodit melo. Ciste prakticky by to ovsem asi bylo dost k nicemu. Ale jelikoz se v podstate jedna pouze modifikovane jadro, tak neni duvod (alespon me ted zadny nenapada), proc by to s VMware chodit nemelo.

Co se tyka webserverove farmy, tak to je spis otazka High-Availability clusteru. Viz prvni dil tohoto serialu, nebo http://www.linux-ha.org/



Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Root.cz: Pinebook: linuxový notebook za 89 dolarů

Pinebook: linuxový notebook za 89 dolarů

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá