Zurnalovaci FS
Cejka Rudolf
cejkar at dcse.fee.vutbr.cz
Tue Jul 25 21:09:45 CEST 2000
Doufam, ze to muzu jeste trochu doplnit. Nemam rad,
kdyz se vsude mluvi jen o zurnalovani :-)
Na tema zurnalovacich FS (JFS), log-structured FS (LFS) a
softupdates (SU) se snapshoty (SS - ziskani zmrazeneho stavu FS)
se daji psat hodne dlouhe romany (a to jeste nezminuji [JL]FS
s podporou HW). Ja osobne verim mnohem vice SU se SS nez [JL]FS,
ale objektivni hodnoceni prinese pouze cas. Pokud se tedy setkate
s nekym, kdo bude tvrde prosazovat [JL]FS, hned se ho zeptejte na
SU - a pokud o nich nebude nic vedet, s usmevem mu vysvetlete, ze
ponekud zaspal dobu (priblizne sest roku - nekdy v te dobe byla
myslenka SU poprve zverejnena).
O co tady jde:
1) Vysoka rychlost: SU prakticky dosahuji rychlosti plne asynchronniho
(tj. velmi nebezpecneho) zapisu - nekdy jsou trochu lepsi a nekdy
trochu horsi. Podle vysledku, ktere jsem zatim videl, [JL]FS jsou
vzdy pomalejsi - nekdy o par procent, nekdy velmi vyrazne
(hlavne pri mazani souboru?)
2) Zajisteni co nejvetsi konzistence FS pri vypadku a zajisteni
co nejkratsi doby restartu systemu: SU umoznuji start systemu i
bez fsck. Opravu nekonzistenci lze teoreticky provadet i na zivem
FS, ale v praxi McKusick asi skonci s fsck pomoci SS. To sice bude
znamenat delsi dobu provadeni fsck, ale i tak by fsck pomoci SS melo
byt mnohem kratsi, nez fsck na klasickych FS, protoze diky SU staci
kontrolovat mene veci. Navic fsck pujde spustit kdykoli a navic
v pozadi na zivem fs, takze by to nemel byt zadny problem. Bohuzel
zatim existuje pouze prvni verze snapshotu v -currentu a na fsck na
pozadi si musime jeste nejakou dobu pockat. [JL]FS opravu konzistence
vyzaduji. Doba opravy muze byt velmi kratka, ale i podobna jako na
klasickych FS - zde hodne zavisi na konkretni implementaci.
3) Moznost zalohovani na zivem FS: Hlavnim problemem je vytvoreni
konzistentniho obrazu FS v dany casovy okamzik. Vlastni zaloha
se pak provadi klasickym zpusobem. U [JL]FS vytvoreni konzistentniho
obrazu FS vetsinou byva jednoduche. Jen je potreba si nejdrive overit,
zda to ma uvazovany [JL]FS implementovano ;-) O SS McKusick napsal,
ze implementace se ukazala byt primocara. Dodal uz i prvni informace
o rychlosti: U 8 GB FS mu vytvoreni SS trva priblizne 30 sekund
(z toho 25 sekund je priprava a na 5 sekund se zmrazi zapisove
operace na FS za ucelem okopirovani konzistentniho stavu). Je
dovoleno mit az 20 ruznych SS pro kazdy FS, ktere pak lze kamkoli
pripojit do adresaroveho stromu - to mi pripada hodne zajimave.
Martin Machacek wrote (2000/07/25):
> Na FreeBSD 4.0-STABLE a novejsich je mozne SOFTUPDATES povolit zkompilovanim
> noveho jadra s "option SOFTUPDATES"...
A od FreeBSD 4.1 jiz budou SU soucasti standardniho jadra GENERIC
(takze SU lze povazovat za stabilni).
> U starsich FreeBSD bylo pred kompilaci jadra jeste nezbytne vytvorit
> dva symlinky v adresari /usr/src/sys/ufs/ffs (viz README.softupdates
> v tomto adresari).
A kdo aktualizuje system pres CVSup a tyto symlinky si vytvoril, musi
je nyni zase rucne zrusit (!), protoze diky zmene na licenci BSD mohly
byt soubory presunuty na misto symlinku - a CVSup nahrazeni symlinku
za soubory neudela.
> SOFTUPDATES provadeji castecne prerovnavani zapisu tak...
Jo "castecne" :-) Ja ten paper cetl - a takhle slabe slovo bych
teda napsat nedokazal :-) Mozna "castecne", ale "silenym zpusobem" :-)
> ... byl vzdy na disku v nejhorsim pripade detekovatelne nekozistentni
> stav. To znamena, ze je zarucene, ze fsck po bootu bude umet
> nekonzistenci najit a pripadne i opravit. V 99% pripadu je na disku
> konzistenti stav, takze fsck nema moc prace.
U SU mohou vzniknout pouze tyto nekonzistence:
1) Volne datove bloky mohou byt v bitmape bloku oznacene jako obsazene.
2) V i-uzlech moze byt vyssi pocet odkazu, nez ve skutecnosti.
Fsck pro SU tedy muze resit pouze tyto problemy. Ale pokud vypadek
nastane napriklad v dobe "rm -r *", oprav bude urcite vic, nez
v pripade standardniho zapisu meta-sync-data-async.
> filesystemy jako je napr. Linuxovy ext2fs. Ten dela (defaultne) zapisy dat i
> metadat asynchronne a tudiz obecne nezarucuje, ze po havarii systemu
> bude fsck schopne detekovat pripadnou nekonzistenci a tak se muze
> klidne stat, ze dojde napr. ke spojeni dvou souboru...
:-) Skoro by se mi chtelo napsat, ze to "... obecne zarucuje, ze fsck
nebude schopne..." :-)
> Dochazi k tomu, ale pouze velmi zridka a to predevsim na systemech, ktere
> provadeji hodne operaci s metadaty (tedy vytvareji a rusi hodne souboru)
> jako jsou napr. mailservery nebo newsservery.
A v linuxove konferenci se o tezce ponicenych FS
psalo hlavne v souvislosti v bezicim mrtg.
> Rychlost fsck zavisi nejvice rychlosti IO systemu, dale na velikosti
> operacni pameti a trochu i na vykonnosti procesoru.
A dale na obsazenosti FS (na poctu obsazenych i-uzlu a na poctu
obsazenych datovych bloku).
--
Rudolf Cejka (cejkar at dcse.fee.vutbr.cz; http://www.fee.vutbr.cz/~cejkar)
Brno University of Technology, Faculty of El. Engineering and Comp. Science
Bozetechova 2, 612 66 Brno, Czech Republic
More information about the Users-l
mailing list