Asigurați-o casa de cluster

Lucrările la o mașină nu mai este la modă
sau sunt grupate în casă.

Mulți dintre voi aveți o rețea locală de mai multe mașini de Linux, cu aproape întotdeauna procesor gratuit. De asemenea, mulți au auzit de sistemele în care aparatul unește într-un singur supercomputer. Dar, în realitate, puțini oameni au încercat să efectueze astfel de experimente la locul de muncă sau acasă. Să încercăm să colecteze un mic grup. Prin construirea unui cluster, puteți accelera cu adevărat până la executarea sarcinilor. De exemplu, compilarea sau funcționarea simultană a mai multor procese intensive. In acest articol voi încerca să-ți spun cum vă puteți îmbina fără efort mașini pe LAN într-un singur cluster cu MOSIX.







La începutul instalării pe care doriți să recomande să ia cu nodul MOSIX nu numai el, ci și a utilităților aferente - mproc, mexec și altele.
În arhiva MOSIX este script-ul de instalare mosix_install. Nu uitați să despachetați neapărat sursele kernel în /usr/src/linux-*.*.*, cum ar fi am făcut - în continuare /usr/src/linux-2.2.13 mosix_install alerga și să răspundă la toate întrebările sale prin specificarea său de manager propriu de boot (LILO), calea de la codul sursă al kernel-ului și nivelurile rula.
La configurarea opțiunilor de kernel includ CONFIG_MOSIX, CONFIG_BINFMT_ELF și CONFIG_PROC_FS. Toate aceste opțiuni sunt descrise în detaliu în manualul de instalare MOSIX.
Stabilit? Ei bine - supraîncărcați Linux cu noul nucleu, numele care va fi foarte similar cu mosix-2.2.13.

Acum, când reporniți mașina dvs. deja mosix va lucra într-un cluster care poate fi văzut prin rularea mon comanda monitorului. Dacă vedeți pe monitor doar mașina lui sau nu văd pe nimeni, atunci, așa cum se spune - trebuie să sapi. Cel mai probabil ai un bug în ea /etc/mosix.map.
Ei bine, vezi tu, dar nu a castigat. Ce urmează? Un :-) suplimentar foarte simplu - aveți nevoie pentru a colecta instrumente pentru lucrul cu schimbat / proc din pachetul mproc. În special, acest pachet este un bun top modificare - mtop, la care sa adăugat capacitatea de a afișa nod (nod), nodurilor proces de transfer de la nodul curent la altul de sortare și de stabilire a unui sarcină minimă a procesorului nodului, după care procesele încep să migreze către alte MOSIX - noduri .
Rulați mtop, pentru a alege un proces favorit nu dormi (Vă recomandăm să înceapă bzip) și îndrăzneală apăsăm butonul „g“ de pe tastatură, apoi introduceți PID-ul este solicitat selectat ca o victimă a procesului, și apoi - numărul de nod în cazul în care vrem să-l trimită. Și doar apoi uita-te atent la rezultatele afisate echipa mon - că mașina ar trebui să înceapă să-și asume sarcina procesului selectat.
Și, de fapt, mtop - #N în domeniu pentru a afișa numărul de nod în cazul în care acesta este efectuat.
Dar asta nu e tot - de fapt, tu chiar nu doresc să trimită la alte procese noduri manual? N-am vrut. MOSIX Am construit un bun echilibru în cadrul cluster, care permite mai mult sau mai puțin distribuie uniform sarcina în toate nodurile. Ei bine, aici trebuie să lucrăm din greu. Pentru a începe, vă voi arăta cum să facă un reglaj fin (ton) pentru un cluster de două noduri? în timpul căreia MOSIX primește informații despre viteza procesorului și a rețelei:
Amintiți-vă o dată pentru totdeauna - melodie poate fi efectuată numai într-un singur mod. În caz contrar, fie veți obține un rezultat care nu destul de corect, sau mașina poate pur și simplu închide.
Deci, efectuați ton. După ce sistemul de operare într-un singur - modul de comandă, de exemplu, 1 sau inițializare de inițializare S lansare script prep_tune, care crește în rețea
interfețele și lansarea MOSIX. Apoi, pe una dintre mașinile rula ton, introducând-l la un alt număr de nod pentru setarea și de așteptare pentru rezultatul - utilitatea ar trebui să fie rugat să introduceți cele șase numere obținute de la comanda -a ton <узел> pe un alt nod. De fapt, trebuie să repetați operația pe o altă comandă ton -a nod <узел>, iar rezultatul a șase numere pe primul nod. După o astfel de tuning sistemul dvs. ar trebui să fișier / etc / vor apărea cheltuieli generale, care conține informații pentru MOSIX ca unele date numerice. Dacă, din anumite motive, nu a putut să-l facă să ton, pur și simplu copiați directorul fișierul curent mosix.cost în / etc / cheltuieli generale. Acest lucru va ajuta ;-).






Atunci când tuning grup de mai mult de două mașini trebuie să utilizați un instrument care, de asemenea, vine cu MOSIX - tune_kernel. Acest utilitar vă permite să
vă într-o formă simplă și familiară configurați cluster, răspunzând la câteva întrebări și a petrecut cu două mașini de tuning din cluster.
Apropo, din propria mea experiență pot spune că, atunci când configurați un cluster, vă recomandăm să nu încărcați de rețea, și vice-versa - pentru a opri toate operațiile active de pe rețeaua locală.

Pentru a controla nod de cluster există un mic set de comenzi, inclusiv:

mosctl - unitate de control. Permite pentru a modifica parametrii de nod - cum ar fi bloc, stați, lstay, întârziere etc.
Să ne uităm la câteva opțiuni această utilitate:
ședere - vă permite să oprească migrarea proceselor de la alte noduri din aparatul curent. Anulată sau -Stai parametru nostay
lstay - interzice doar procesele de migrație locale și procese cu alte mașini pot continua să facă acest lucru. Anulată sau -lstay parametru nolstay.
bloc - dezactivează procesele de la distanță / clienți executate la acel nod. Anulată parametrul noblock sau -bloc.
aduce - aduce înapoi toate procesele cu nodul curent care rulează pe o altă mașină din cluster. Această opțiune poate să nu funcționeze până când procesul de migrare nu primește o întrerupere de sistem.
setdelay setează timpul după care procesul începe să migreze.
Trebuie de acord - în cazul în care executarea procesului de mai puțin de un al doilea sens să-l transfere la alte mașini din rețea dispare. Este acel moment și este expus la parametrul de utilitate mosctl setdecay. exemplu:
mosctl setdecay 1500200
stabilește momentul trecerii la alte noduri de 500 milisecunde, dacă procesul se execută la fel de lent și 200 milisecunde pentru procese rapide. Rețineți că opțiunea lent ar trebui să fie întotdeauna mai mare sau egală cu parametrul rapid.

mosrun - pornește aplicația în cluster. de exemplu mosrun -e -j5 face de lansare a face nod de cluster, 5-lea, în care toate procesele sale de copii sunt, de asemenea, executate pe al 5-lea nod. Adevărul este că există un avertisment, la ceea ce este destul de semnificativ:
în cazul în care procesele de copil alerga mai repede decât presetată mosctl de utilitate latență (întârziere), procesul nu va migra la alte noduri din cluster. mosrun au încă destul de o mulțime de opțiuni diferite interesante, dar pentru a afla mai în detaliu
pentru ei te va din conducerea acestui utilitar. (Mosrun Man)

mon - după cum știm deja, acest lucru este monitorul de cluster, care afișează o sarcină pseudo al fiecărei unități de lucru al cluster-ului dumneavoastră, numărul de unități de memorie libere și utilizate și oferă o mulțime de alte informații, nu mai puțin interesant.

mtop - modificate pentru a fi utilizate în nodurile versiunii de cluster a echipelor de top. Se afișează informațiile dinamice despre procesele care rulează pe acel nod și nodul în cazul în care procesele de migrare.

mps - este, de asemenea, o versiune modificată a PS comandă. Adăugat încă un domeniu - numărul de nod pe care procesul de migrare.

Că, în opinia mea, si toate utilitatile de baza. De fapt, desigur, eu pot face chiar și fără ele. De exemplu, folosind panoul de control / proc / mosix.
Acolo, cu excepția faptului că puteți găsi informații de bază despre setările site-ului, procesele care rulează cu alte noduri, etc, precum și schimbarea parametrilor.

Din păcate, nu am putut sa executat orice proces unul simultan pe mai multe noduri. Maximul pe care l-am realizat în cursul experimentelor cu utilizarea unor procese intensive cluster pentru a rula pe un nod diferit.
Să ne uităm la un exemplu:
Să presupunem că avem un cluster care rulează două mașini (două unități), unul cu numărul 1 (Celeron 366), celălalt - cu numărul 5 (PIII450). Experiment vom fi pe al cincilea nod. Prima unitate a fost inactiv în acest timp. ;-)
Deci, vom începe de la al 5-lea utilitate nod crark de a ghici parolele pentru arhivu.Esli RCR cineva dintre voi încercat să lucreze cu un astfel de program, el ar trebui să știe că procesul de selecție a parolei „mânca“ de până la 99 la suta din CPU. Ei bine - după lansare, am văzut că procesul rămâne în acest sens, al cincilea nod. Rezonabil - a fost la acest site depășește performanța prima unitate aproape sa dublat.
Apoi am început doar de asamblare kde 2.0. Bucurându-se de masa de proces și a vedea că crark migrat cu succes la primul nod, eliberând procesorul și memoria (da, da - la fel ca memoria este eliberată) pentru a face. De îndată am terminat fac munca sa - crark întors înapoi la nodul său natal cincea.
Un efect interesant este obținut în cazul în care crark rula la un nod mai lent primul.
Acolo vedem aproape efectul opus - procesul de exact aceleași migrator al 5-lea, asamblarea mai repede. Când se întoarce, atunci când computerul gazdă începe a cincea o acțiune cu sistemul.

Să înțelegem în cele din urmă, de ce și cum putem folosi clusterul în viața lor de zi cu zi.
Mai întâi trebuie să o dată pentru totdeauna să-și amintească - cluster este benefică numai dacă rețeaua are un anumit număr de mașini, care sunt de multe ori inactiv și doresc să utilizeze resursele lor, cum ar fi KDE sau de asamblare pentru orice procese grave. Într-adevăr, datorită unui grup de 10 de mașini pot fi simultan
compila până la 10 programe grele pe aceeași C ++. Sau ridica unele parola
fără să se oprească pentru un moment al procesului, indiferent de sarcina pe computer.
Și, în general - este doar interesant ;-).

În concluzie, vreau să spun că acest articol nu se referă la toate posibil un MOSIX, deoarece Trebuie doar sa nu a fost încă atins. Dacă veți obține - se așteaptă să continue. -)