L I N U X V P R A X Iu Juraj: Èo je hlavný dôvod <strong>na</strong> používanie nieèoho takého?w Phillip: Ak neveríte vášmu hardvéru (nikdy neverte PC hardvéru!) alebo èastiam vášhosoftvéru, použite DRBD <strong>na</strong> zrkadlenie dôležitých dát. Ak chcete, aby bola vaša aplikáciavysoko dostupná (high available), použite klastrový ma<strong>na</strong>žér (<strong>na</strong>pr. Heartbeat, FailSafe,Piranha...) a DRBD <strong>na</strong> stavbu high-availability klastra.u Juraj: Myslíš si, že DRBD bude niekedy integrované do oficiálneho jadra?w Phillip: Neviem. Samozrejme, idem tým smerom, dokonca používam Linusov spôsobodsadzovania zdrojových textov (èo je prísne pravidlo). Ale teraz mám iný cie¾, <strong>na</strong>príkladvychytanie zostávajúcich chýb a pridávanie chýbajúcich funkcií.u Juraj: Existuje nejaká distribúcia, ktorá umožòuje jednoduché vytvorenie DRBD klastra?w Phillip: Existujú nejaké <strong>sk</strong>ripty (dodávané s DRBD), ktoré vám dovolia vytvori HA klastres heartbeatom. Pokia¾ viem, SuSE bude po<strong>sk</strong>ytova <strong>sk</strong>ripty pre FailSafe a RedHat budepo<strong>sk</strong>ytova <strong>sk</strong>ripty pre Piranhu. Takže máte <strong>na</strong> výber.Eric Bishoff prekladá jedálny lístok znemèiny do všetkých štyroch jazykov, ktorýmiaktívne hovorí. Tí, èo nejaký znich vedia, prekladajú do ïalších. Po chvíli všetci vieme,èo budeme jes .Záver7. Linux Kongress bol <strong>na</strong>ozaj ve¾mi zaujímavý. Samozrejme, prednášky a vedomosti nie súvšetko. Výborne sme sa porozprávali hlavne <strong>na</strong> veèerných spoloèen<strong>sk</strong>ých podujatiach (èoje to isté ako výlet do krèmy v KDE). Najväèšou zábavou bolo sledova , ako ¾udia z rôznychkrajín sveta komunikujú (<strong>na</strong>pr. ako Rus uèí pi vodku Japonca, ktorý v živote nepil alkohol,alebo ako si Talian objednáva milán<strong>sk</strong>u pizzu a potom sa èuduje, že tak v Milánepizzu nikto nikdy nejedol). Zaujímavé bolo aj sledova povahy rôznych ¾udí a myslím, žetakéto akcie by sa mali ko<strong>na</strong> èastejšie. Napriek všetkým rozdielom sme všetci boliobrov<strong>sk</strong>í fanúšikovia Linuxu a podarilo sa nám ho potlaèi o milimetrík bližšie k de<strong>sk</strong>topovýmpoužívate¾om...Interview s Phillipom ReisneromPhillip Reisner (autor clusteringovéhoriešenia DRBD) je 24-roèný Viedenèan,ktorý si práve dokonèil doktorát. Pracujepre firmu CUBit – consultingovúspoloènos v oblasti webového biznisu.Samozrejme, pracujú <strong>na</strong> platformeGNU/Linux a používajú Phillipov DRBD(http://<strong>www</strong>.com plang.tuwien.ac.at/reisner/drbd/) <strong>na</strong> databázovom klastri preich <strong>na</strong>jdôležitejšieho zákazníka. DRBD jenieèo ako distribuovaný RAID, schopnýpoèas behu mirrorova dáta po sieti a takvytvori High Availability Cluster – oblas ,do ktorej sa Linux pomalièky prebojúva.S Phillipom som sa stretol <strong>na</strong> LinuxKongresse pri jeho prednáške o DRBD.Samozrejme, nenechal som si ujs príležitos urobi s ním krátke interview.u Juraj: Kedy si zaèal s poèítaèmi a aké boli tvoje prvé <strong>sk</strong>úsenosti?w Phillip: Môj prvý poèítaè bol Commodore C64. V <strong>sk</strong>utoènosti to bol poèítaè môjhootca... Po tom, èo som koneène pochopil hexadecimálne èísla, dostal som sa ku „kostiam“toho poèítaèa. Myslím, že som mal vtedy desa rokov.u Juraj: Aké poèítaèe používaš teraz?w Phillip: Mám lacnú Alphu (PC164SX @ 533 MHz), èo je porov<strong>na</strong>te¾né s PIII @ 300MHz, a ešte jednu i386 @ 120 MHz. Mám dojem, že keï vyvíjam pod nezvyèajnou platformou,kvalita kódu sa zvyšuje, pretože musíte písa tak, aby všetko fungovalo aj <strong>na</strong>vašej (v mojom prípade Alpha) platforme, aj <strong>na</strong> platforme, ktorú má každý (i386).u Juraj: Preèo si sa rozhodol, že <strong>na</strong>píšeš DRBD?w Phillip: H¾adal som tému svojej diplomovej práce. Mal som dve požiadavky:– Malo to súvisie s jadrom Linuxu.– Malo to by nieèo užitoèné.Keïže <strong>na</strong> katedre operaèných systémov <strong>na</strong> univerzite sa nikto neob ažoval pomôc pritéme <strong>na</strong> diplomovú prácu súvisiacu s Linuxom, <strong>na</strong>šiel som pár ¾udí, èo sa zaujímali o Linux,v <strong>na</strong>šom inštitúte programovacích jazykov. Pretože mali problémy s ich Alphami, <strong>na</strong> ktorýchbežal Linux (padali asi 3-krát za pol roka), chceli nájs študenta, ktorý by pomohol obmedzimožnú stratu dát. Tému mojej diplomovej práce <strong>na</strong>zvali Zrkadlenie pevných di<strong>sk</strong>ov cez sie .Na zaèiatku som si myslel, že táto téma nesplní moju druhú požiadavku, ale po <strong>sk</strong>úmaníclusteringu som si uvedomil, že toto je <strong>sk</strong>utoène aktuál<strong>na</strong> otázka.u Juraj: Aké sú hlavné rozdiely medzi DRBD a inými klastrovými riešeniami?w Phillip: Väèši<strong>na</strong> komerèných HA klastrových riešení v unixovom svete je postavená <strong>na</strong>zdie¾anom di<strong>sk</strong>ovom priestore, <strong>na</strong>príklad zdie¾aný SCSI di<strong>sk</strong> alebo zdie¾ané di<strong>sk</strong>ové pole<strong>na</strong> báze optického kábla. Toto sa volá shared-di<strong>sk</strong> clustering. Na druhej strane existujetzv. shared-nothing clustering (nezdie¾a sa niè). DRBD po<strong>sk</strong>ytuje jednoduchý spôsob, akopostavi takýto klaster pod Linuxom.Myslím, že to má zmysel. Zatia¾ èo komerèné klastre sú ve¾mi drahé, sú teda zamerané<strong>na</strong> menší cie¾ový trh, clustering s DRBD je v <strong>sk</strong>utoènosti ve¾mi lacný (keï hovoríme o cenehardvéru). Linux a DRBD sú programy pod GPL, takže ce<strong>na</strong> softvéru je ïalšia výhoda tohtoriešenia.Ja len dúfam, že DRBD priblíži clustering k zákazníkom viac než všetci komerèní autorispolu.u Juraj: Pracuješ aj <strong>na</strong> nejakých iných projektoch?w Phillip: Vyvíjal som program mergemem pre ten istý inštitút. Momentálne <strong>na</strong> òomnepracujem, ale plánujem ho portova <strong>na</strong> 2.4 jadrá, len èo bude stabilná verzia 2.4. Zaurèitých podmienok vám mergemem dokáže <strong>na</strong> linuxovom serveri ušetri množstvopamäte.Napríklad si vezmime server, <strong>na</strong> ktorom beží tridsa kópií emacsu. Každá inštanciaemacsu bude èíta používate¾ove konfiguraèné súbory, <strong>na</strong>èíta množstvo lispového smetiaa po inicializácii budú dátové segmenty všetkých emacsov takmer rov<strong>na</strong>ké. Mergememvám dovolí urobi presný opak copy-on-write, spája pamä ové stránky programova <strong>na</strong>mapuje zvyšnú stránku virtuálnej pamäte programom v read-only móde. Nasledujúcezavolanie zapisovacieho procesu, samozrejme, spustí štandardný copy-on-write, a tak siproces ani nevšimne èinnos mergememu.u Juraj: Hmm, to znie zaujímavo. Dovolí mi to spusti KDE 2.0 <strong>na</strong> 32 mega {Žiadne„mega“ ;) MB} pamäte?w Phillip: Nie, pretože mergemem je <strong>na</strong>jefektívnejší, keï máte množstvo procesov rov<strong>na</strong>kéhoprogramu. Napríklad ti to dovolí spusti 20 inštancií KDE (myslím <strong>na</strong>príklad konfiguráciujeden server a 20 x-terminálov) <strong>na</strong> povedzme 512 MB RAM!u Juraj: To je úžasné, ale nebude mergemem potom príliš za ažova procesor?w Phillip: Samozrejme, je tam spomalenie. Vymieòaš trošku CPU èasu za nejakú fyzickúpamä . Ak tvoja fyzická pamä nie jedos ve¾ká, aby mohla drža všetky viacalebo menej aktívne procesy, potom systémzaène ve¾mi aktívne využíva swappriestor, to isté pocítiš, aj keï budešpoužíva mergemem – èas medzi dvomaspusteniami mergemem daemo<strong>na</strong> sa dá<strong>na</strong>stavi pre každý program zvláš (<strong>na</strong>pr.<strong>sk</strong>úsi zí<strong>sk</strong>a kúsok pamäte zo všetkýchxterm a bash procesov každé tri minúty)– vyh¾adávací proces používa kontrolnésúèty a jedno spustenie trvá zvyèajneokolo 500 ms. Je ve¾mi užitoèné spúš atento daemon s vyššiou hodnotou nice(nižšia priorita – pozn. redaktora).u Juraj: Videl si prednášku Rika van Riela<strong>na</strong> Linux Kongresse v Erlangene (pozrireportáž z Linux Kongressu – pozn. red.).On podstatne prepísal celú správupamäte v linuxovom jadre a plánujev tom pokraèova . Nevieš, èo si o tommyslí? Môj názor je, že nieèo ako mergememje dos potrebná vec.12/2000 PC REVUE 115
L I N U X V P R A X Iw Phillip: Poznám Rika van Riela z rôznych konferencií, pozná ma a pozná aj mergemem.Som si istý, že niekedy budeme ma všetky potrebné hooky pre mergemem v oficiálnomjadre a mergemem bude pravdepodobne samostatný modul pre jadrá 2.4 (momentálnevyžaduje patchovanie jadra – pozn. red.).u Juraj: Ïakujem za rozhovor.Juraj Bednár, Erlangenn Sie ové utilityV pokraèovaní tohto seriálu by som rád predstavil zopár sie ových utilít, ktoré súv <strong>sk</strong>úsených rukách dobrou diagnostickou pomôckou. Niektoré z nich možno budú priamnotoricky známe, iné menej populárne.Zaènime <strong>na</strong>jprv klasikou. Azda každý z nás pozná príkaz ping. Pomocou neho môžemepribližne odmera èas, za aký sa dáta z nášho Linuxu dostanú <strong>na</strong> nejaký iný server, nodajú sa pomocou neho hrubo detegova aj väèšie anomálie <strong>na</strong> sieti. Ale po poriadku.Podstata fungovania programu ping spoèíva priamo <strong>na</strong> protokole ICMP (InternetControl Message Protocol). Tento protokol slúži predovšetkým <strong>na</strong> sig<strong>na</strong>lizáciu medzidvoma uzlami v sieti. ICMP správy sa posielajú priamo v IP paketoch. Pomocou ICMPjeden uzol môže druhému uzlu oznámi , že <strong>na</strong>pr. nemožno doruèi nejaký datagram,pretože ho nevie ïalej smerova , alebo že nestaèí spracúva datagramy tak rýchlo, ako ichprvý uzol posiela, a podobne. ICMP teda spravidla prenáša informácie o tom, že poèasdoruèovania datagramu došlo k nejakej chybe. No súèas ou ICMP protokolu sú aj dvešpecifické správy ECHO_REQUEST (prezývaná ping) a ECHO_RESPONSE (niekedy sa hovoríaj ECHO_REPLY alebo pong). Správa ECHO_REQUEST je výzva pre príjemcu, abyobratom odpovedal odosielate¾ovi tejto výzvy, no a táto odpoveï má by práve ICMPspráva typu ECHO_RESPONSE (takéto správanie je odporúèané pod¾a RFC792). Pritom savo výzve ECHO_REQUEST môžu <strong>na</strong>chádza nejaké dáta a príjemca výzvy ich musív odpovedi ECHO_RESPONSE posla <strong>na</strong>spä odosielate¾ovi.Príkaz ping funguje presne <strong>na</strong> tom princípe, že posiela vybranému poèítaèu výzvyECHO_REQUEST a tým ho „núti“ odpoveda . Pritom zároveò odmeriava èas, ko¾ko príjemcovitrvá odpoveï, a vypoèítava z toho jednoduchú štatistiku.Ak chceme <strong>sk</strong>úsi , èi server XYZ „žije“ (teda èi je zapnutý a odpovedá <strong>na</strong> požiadavkyzo siete), staèí <strong>na</strong>písaping XYZNuž a <strong>na</strong> èo sú dobré tieto posledné dva privilegované parametre? Dajú sa pomocounich odhali slabé miesta <strong>na</strong> sieti. Chybné sie ové prvky, pridlhé segmenty, poškodenékonektory, vnútorné chyby v kábloch – to všetko sa zaène prejavova , len èo <strong>na</strong>pr.zvýšime ve¾kos paketu. Sám som zažil, že jeden starý repeater mal ve¾ké problémy priprenose väèších paketov, no obyèajný ping (s ve¾kos ou paketu 64 bajtov) to neodhalil.Staèilo však zvýši ve¾kos <strong>na</strong> 700 a viac bajtov a hneï sa ukázala chyba. Flood pingom sazase dajú nájs úzke miesta medzi sie ami – kde sa dáta strácajú, resp. spoma¾uje sa ichprechod.V dnešnej èasti len to¾ko, priatelia. Netajím sa, že som tentoraz dos struèný – no èosa dá robi , škola a iné povinnosti zase zaúradovali. Ale s¾ubujem, že v budúcich èastiachsa pousilujem doh<strong>na</strong> , èo som zameškal teraz.A samozrejme, aby som nezabudol: budú Vianoce, <strong>na</strong>jkrajší sviatok roka. Želám vámteda všetkým, aby tieto Vianoce boli pre vás <strong>na</strong>ozaj tie <strong>na</strong>jkrajšie a <strong>na</strong>jvysnívanejšie, ve¾adarèekov pod stromèekom, ale hlavne pokoj a pohodu – <strong>na</strong>jmä tú vnútornú. S òou mápotom èlovek Vianoce každý deò...Pe o Palúchn NovinkyPrajem vám krásny sviatoèný december. Hneï <strong>na</strong> úvod by som vám chcel prezentovaprojekt, ktorý by mal by oslavou open source myšlienok a možno poslúži ajako dobrá motivácia <strong>na</strong> vianoèný darèek. Nájdete ho <strong>na</strong> adrese http://geekshirts.sourceforge.net/. Ide o projekt, ktorý sa s<strong>na</strong>ží vytvori vo¾ne šírite¾né trièká s tematikouopen source. Takže už len nájs tlaèiareò trièiek a donies tam ten správnysúbor a budete vyzera k svetu.V dòoch 28. – 29. 10. 2000 sa ko<strong>na</strong>l tretí víkend s Linuxom, tentoraz vo Zvolene.Podarilo sa nám toho dos predebatova , tešila ma hlavne prítomnos zaèiatoèníkova množstva zaujímavých ¾udí. Naopak, neteší ma, že sa nám nepodarilo <strong>na</strong>vštívi mojuob¾úbenú èajovòu <strong>na</strong> Zvolen<strong>sk</strong>om zámku, ale <strong>na</strong>pravili sme to v Ban<strong>sk</strong>ej Bystrici.Jednou z hlavných tém, ktoré sa preberali, bolo aj použitie Linuxu <strong>na</strong> de<strong>sk</strong>tope.Samozrejme, v tomto èase už bola finál<strong>na</strong> verzia KDE 2.0 s krásnou zbierkoukancelár<strong>sk</strong>ych aplikácií. A do di<strong>sk</strong>usie sa zaradil aj fakt, že WINE dokáže spustiMicrosoft Excel (pozri obr.) a Microsoft Word 2000! Aj keï tu máme koffice, pre tých,èo sú <strong>na</strong>ozaj zvyknutí <strong>na</strong> MS Office, odporúèam <strong>na</strong>inštalova WINE. Nijaké zbytoènévýhovorky, meníme operaèný systém!Program ping bude teraz v sekundových intervaloch posiela <strong>na</strong> server XYZ výzvyECHO_REQUEST a bude oèakáva odpovede. Beh programu ping sa <strong>sk</strong>onèí až po stlaèeníklávesov . Na konci program vypíše krátku štatistiku.Toto poznáme všetci. Poïme sa teraz pozrie <strong>na</strong> niektoré prepí<strong>na</strong>èe programu ping.Prvý užitoèný prepí<strong>na</strong>è je –c a hovorí o tom, ko¾ko paketov ECHO_REQUEST samá príjemcovi odosla . Na rozdiel od predchádzajúceho príkladu teda príkazping -c 5 XYZnebude beža donekoneè<strong>na</strong>, ale pošle <strong>na</strong> server XYZ len 5 „pingov“ a potom automaticky<strong>sk</strong>onèí sám.Ïalší parameter, -i , <strong>na</strong>stavuje v sekundách interval posielania paketovECHO_REQUEST. Ako som už spomí<strong>na</strong>l, štandardne sa výzvy posielajú každú sekundu.Príkaz ping -i 3 XYZ bude odosiela výzvy za sebou v trojsekundových odstupoch.Posledné dva prepí<strong>na</strong>èe, ktoré opíšem, môže používa iba root a upozoròujem, žemusí pritom vedie , èo robí. Treba ich používa <strong>sk</strong>utoène len v oprávnených prípadoch,i<strong>na</strong>k budeme zbytoène pre ažova sie a <strong>na</strong>vyše môžeme proti sebe poštva niektoréhosprávcu, ktorého server nám padne za obe pri pokusoch.Prvý z privilegovaných parametrov je -s . Tento parameter eštenemá ve¾mi fatálne úèinky. Ním môžeme <strong>na</strong>stavi , aké ve¾ké (v bajtoch) majú by paketyECHO_REQUEST, ktoré budeme odosiela . Týmto parametrom sa vlastne mení objem dát,ktoré posielame vo výzve klientovi a ktoré nám on musí vo svojej odpovedi vráti . Celkováve¾kos výzvy ECHO_REQUEST bude o 8 bajtov väèšia, než uvedieme parametrom -s(z dôvodu, že sa k paketu pridáva ešte 8-bajtová ICMP hlavièka). Celková ve¾kos IP paketu,v ktorom je obsiahnutý ICMP paket, je ešte o 20 bajtov väèšia (pre hlavièku IP). Štandardnemajú výzvy ECHO_REQUEST ve¾kos 64 bajtov (56 bajtov dát a 8 bajtov hlavièka),takže výsledný IP paket má ve¾kos 84 bajtov. Príkaz ping je ochotný akceptova ve¾kosdátovej èasti približne do úrovne 65 464 bajtov, no ICMP pakety s takouto šialenouve¾kos ou sa <strong>na</strong>ozaj nevyužívajú.Ïalší privilegovaný parameter je -f (tzv. flood ping). Spôsobí, že ping bude posielapakety tak rýchlo, ako len vládze. Pritom za každý odoslaný paket vypíše <strong>na</strong> obrazovkujednu bodku a za každú správne prijatú odpoveï jednu bodku zase zmaže. Takto sa dáokamžite vidie , ko¾ko paketov sa stráca a ko¾ko sa vráti. Tento spôsob „pingovania“ jevšak dos drastický jed<strong>na</strong>k pre sie , jed<strong>na</strong>k pre server, ktorý je cie¾om <strong>na</strong>šich pingov.Parametre -f a -i nie sú <strong>na</strong>vzájom kompatibilné.Mnohí argumentujú, že ich systém funguje a že nepotrebujú open source operaènýsystém. Veï sami aj tak nevedia programova , <strong>na</strong>èo by teda mali ma zbytoènúslobodu nieèo meni ? Ako protiargument sa vy<strong>sk</strong>ytol ve¾mi zaujímavý projektBadRAM. Nájdete ho <strong>na</strong> adrese http://home.zonnet.nl/vanrein/badram/. Ide o patchdo jadra, ktorý urèite nenájdete v žiadnom operaènom systéme. Patch pridá dojadra podporu poruchových pamä ových modulov. Modul musí by chybný takýmspôsobom, že istá èas pamäte nefunguje, zvyšok je v poriadku (inými slovami,v pamä ovom module nefungujú niektoré pamä ové bunky). Modul BadRAM sichybné bajty oz<strong>na</strong>èí a jadro ich prestane používa . Naèo vyhadzova 512 MBpamä ový èip, ktorý má 20 KB zlých? Autor tohto modulu je takého názoru, žev budúcnosti budú existova bazáre s lacnými chybnými pamä ovými modulmi. Jejasné, že do servera také nieèo nikto nevloží, ale preèo pamä hneï vyhadzova ?Veï <strong>na</strong>koniec pamätníci, ktorí pracovali <strong>na</strong> ešte <strong>na</strong> Sinclairoch (ZX Spectrum), takistovedia, že v 48 KB verziách bývali pamä ové èipy, ktorých horná polovica nefungovala,a nikomu to pritom neprekážalo. Vivat recyklácia!Juraj Bednár116 PC REVUE 12/2000