kexec: csökkentsük a Linux kernel boot idejét

Címkék

Talán nincs messze az idő, amikor reboot nélkül tudunk kernelt cserélni...

Andy Pfiffer egy érdekes dokumentumot postázott az LKML-re. A dokumentum a kexec patch-ről szól, amely lehetővé teszi, hogy úgy cseréljük ki a Linux kernelünket, hogy nem bootolunk újra a szó szoros értelmében. A kexec rendszerhívás (syscall, system call) egy fejlesztés alatt álló projekt, amely a 2.5-ös kernelhez készül, és amely lehetővé teszi, hogy az x86 Linux kernel egy másik kernelt bootoljon. Azaz a "bootolás" folyamatából kimarad a platform BIOS és a bootloader rész. Mivel kihagyjuk a BIOS-t a bootolási folyamatból, lényegesen lecsökkenthetjük a bootolási időt a vállalati szintű, többprocesszoros gépek esetében. Az ilyen szervereken a bootfolyamat több percet is igénybe vehet. A kexec hasznos lehet a kernelfejlesztőknek is, mert a tesztelés idejéből jelentős rész esik az állandó újrabootolásra.Andy összeállított egy papírt, amelyben bemutatja, hogy milyen mértékben lehet csökkenteni a bootolási időt különböző rendszereken. A papírt megtalálod itt (PDF).

Andy levele itt.

Kapcslódó levelek:

Patch: kexec for 2.5.46

Patch: kexec for 2.5.45

Andrew Morton legújabb -mm szériájában már be is mutatkozik a kexec. A 2.5.68-mm4 changelog-ját megtalálod itt.

Hozzászólások

gyu-hoz csatlakozva: egyszer láttam egy IA64 gépet mindenféle scsi trutyival, a bekapcsoló gomb megnyomásától számítva 4 perc telt el a boot promptig, ahol az oprendszert lehetett kiválasztani.

Mindenki iszonyú büszke arra, hogy a Linuxot nem kell újraindítani. Ez valóban így van, csomó mindent át lehet állítani menet közben is, csakhogy általában az éppen aktuális értéket teljesen másképp állítod be, mint a boot során érvényre jutó értéket (például az egyiket a hostname paranccsal, a másikat az /etc/hostname vagy ilyesmi fájl megszerkesztésével). A mindkettőt beállító programok meg sokszor igen gyatra minőségűek, az ember nem bízik meg bennük.

Na most amikor a rendszer indításával vagy főbb paramétereivel kapcsolatos dolgokat állítod át, akkor eldöntheted, mennyire bízol meg saját magadban. Én még ha 99%-ig meg is bízom magamban, hogy jót cselekedtem, akkor is inkább megeresztek egy rebootot 99% eséllyel fölöslegesen, hazavágva a szép nagy uptime-ot, minthogy azt kockáztassam, hogy 1% eséllyel majd fél év múlva amikor vmi miatt (pl. áramszünet) leállt a gép, akkor a nyaralásom közepén hívjanak fel, hogy sürgősen be kell jönni, mert nem indul a gép. Szóval én például a szerver gépeken is a kritikusabb változtatások után rebootolok, nem azért, mert a Linuxban nem bízom meg, hanem mert magamban nem bízom meg, legalábbis nem akarom a sorsot kísérteni.

És ha mondjuk direkt az init szkriptek kisebb átdolgozásával kísérletezek, akkor lehet, hogy rebootolok 5-ször vagy 10-szer is egymás után. Ilyenkor azért picit számít az ennyiszer 4 perc.

Olvasd el az eredeti cikket. Nem a Desktop felhasználók a célközönség!


Igaz..

Korabbi verziokhoz letezik a kernel monte (modul),

ami elvileg ugyanezt tudja.

Van tobb ilyen project is... pl a fluxbox! ;]

Pedig egyszeru:

megfeleloen kigyilkolaszod az /etc/init.d konyvtarad tartalmat

ezt konnyen el lehet kerulni: beallitod az ip cimet! ;) (es ez most komoly -- azert nem megy, mert 1 percig probal automatikusan ip-t szerezni, de ha megadsz neki egyet, akkor maris minden ok)

Nem tudom miert porognek az emberek ezen a teman.

lehet hogy lassabban bootol a linux, ellenben nem kell urjainditani:)

Eleg nehezen tudom elkepzelni, hogy ez valos problemat jelenthet valakinek...

Nem kimondottan ertem miert baj a sok symbol es a PIC..

Mindketto runtime overhead.

igazabol nekem sem problema.. (megeri kivarni :)

de azert tenyleg eszreveheto a kulonbseg.. (foleg most, amikor mar kezd az init.d konyvtaram telitodni.. bar szerencsere gentoo alapbol nem pakolja tele.. :)

nalam is van 2 gep: egyik sokhetes uptime-mal, a masik meg allandoan ki-be kapcsolodik.. lehet, hogy en allok roszul a dolgokhoz, de a desktop gepem altalaban ki szoktam kapcsolni, mivel eleg sokat fogyaszt..

szerintem egy igazi suspend (to ram/disk) tamogatasra lenne szukseg.. de lehet, hogy csak en vagyok a hulye, hogy nem sikerult megoldani..