update/bdflush problem

Jan Kasprzak kas na informatics.muni.cz
Čtvrtek Červenec 24 12:30:51 CEST 1997


: Dolezite operacie byvaju vykonavane synchronne a s vyssou prioritou, na ukor
: rychlosti. Vo vacsine systemov si moete vybrat ci chcete "fast" alebo
: "fail-safe" operacie. synchronny okamzity zapis je bezpecny proti vypadku
: prudu (ale na to su UPS) aj proti padom systemu (system by padat nemal)...

	Tohle je prave nesmysl, i kdyz obecne rozsireny.

	Synchronni zapis metadat nema vliv na bezpecnost/konzistenci
dat na filesystemu, je-li zapis dat asynchronni a bez journalingu.
U asynchronniho zapisu cekate nejdele 30 sekund, nez se data i metadata
dostanou na disk. Data, zmenena v teto dobe, jsou nezabezpecena.
To jest ztracite data za nejvyse 30 sekund. U synchronniho
zapisu metadat a asynchronniho zapisu dat je tohle (prekvapive :-)
stejne: Datum trva az 30 sekund, nez se dostanou na disk.
A to, ze metadata se zapisuji driv, nema na nic vliv.

	Modelova situace: Pripojujete na konec souboru:
V pripade asynchronniho zapisu metadat je doba mezi upravou
tabulky bloku a delky souboru v I-uzlu a vlastnim zapisem na disk
minimalni. Zatimco u synchronniho zapisu metadat se prideli
novy blok, pripoji se na konec souboru, zvysi se delka souboru
vi I-uzlu, ale vlastni data se zapisi az pozdeji. Vysledek?
Po padu systemu je na konci souboru novy blok s uplne jinymi
daty. Mohou to byt treba citliva data, ktera nedavno nekdo jiny
smazal a o nichz si mysli, ze uz jsou bezpecne pryc.

	Dale: Zapis s prioritami je dost tezke udelat spravne
(starvation problem) -- predstavte si, ze pocitac ma databazi, ktera
se cela vejde do diskove cache. Nyni zatizite pocitac tak, aby veskery
cas travil (synchronni) upravou metadat. Vlastni data se pak nedostanou
nikdy na disk, i kdyz filesystem po padu systemu vyhlizi konzistentne.
Ted Ts'o na linux-kernel kdysi psal, ze takto v jedne firme ztratili
databazi za pul roku -- data se nedostala na disk.

	Zaver: Asynchronni zapis metadat je rychlejsi a neni
horsi co se tyce tolerance k padu systemu. Jedine opravdu vazne poskozeni
filesystemu nastane, kdyz dojde k preruseni dodavky proudu uprostred
zapisu metadat na disk. A to muze dojit u obou metod.

-Yenya





Další informace o konferenci Linux