cache na diskovem poli

Radomír Tománek rtomanek at epark.cz
Tue May 27 16:02:49 CEST 2008


Ahoj,

> Kdyz k "falesnemu" zapisu pridas "cteni z cache" (jednak data cekajici
> na zapis se, samozrejme, ctou z cache a ne stara verze z ploten; druhak,
> prectena data se ulozi do cache a druhy pozadavek na cteni tychz dat se
> uspokoji z cache), "zapis  inteligentnim poradi" - tj. data se z cache
> na plotny nezapisuji v tom poradi, v jakem prisla, ale tak, aby se
> minimalizovaly latence (seek, rotational delay a pod.) a nakonec
> read-ahead (z plotny se nectou jen pozadovana data, ale take nekolik
> sektoru po nich - predpoklada se, ze ty budou pravdepodobne pozadovany
> vzapeti) mas chovani celkem bezne diskove cache po kupe.
 
Jasne, to je chovani "bezne diskove cache", ale opravdu se tak logika disku
chova? Ja mam pocit, ze v logice disku (tedy v tom primarnim radici) az
tolik prostoru pro nejaky propracovany firmware a propracovany algoritmus
rizeni cache není.... V tom pripade by odpadlo to "cteni z cache" a disk by
poskytoval pouze "falesny zapis". Ale jak rikam,je to pouze muj pocit a muzu
se mylit.

 
> 	Ale nez to u "bezpecneho" systemu zakazes, je vhodne se zamyslet
> proti
> jakemu typu vypadku se tim snazis data chranit a zda je takovy vypadek u
> tveho systemu natolik pravdepodobny, ze to za tu ztratu vykomu stoji.
> Diskova cache je autonomni - takze na to, aby se na plotny nezapsala je
> treba bud' havarie disku jako takoveho (a tam je otazka, nakolik by ti
> pomohlo, ze by na mrtvem disku data na plotnach spolehlive byla) nebo
> vypadek napajeni. Pravdepodobnost vypadku napajeni vyznamne snizis
> UPSkou a prakticky eliminujes redundandnim zdrojem.

Samozrejme. Cela tato debata je ciste teoreticka. Je jasne, ze server bude
na upsce, ktera zajisti aby se server vcas korektne vypnul, tedy by nemelo
dojit k takove havarii, ze by se ztratila data z diskove cache. Ale třeba
desktopy dnes uz zpracovavaji také relativne dulezita data (treba jedinecne
video z dovolene na islandu :o) a malokdo na desktopu ma upsku. Takze je
dobre vedet, co muze takovato cache zpusobit i na desktopu.


> 	Muze jit take o polozku, ktera riak, zda ma RAID prepnout cache
> pripojenych disku z write-back to write-thru rezimu. Pak je to neco, co
> jen prenastavi vlastnosti pripojenych disku (na zacatku) a pri vlastnim
> provozu uz to "nic nedela".
> 
Ano, je pravda, že některé řadiče mají u cache tři stavy (disable,
write-thru a write-back). To je vpodstatě pochopitelné, ale zase, pokud si
pamatuji, tyto volby se týkaly pouze konfigurace řadiče, nikoli konfigurace
logických disků.


> 	Co presne takto oznacena polozka znamena v konfiguraci zcela
> konkretniho radice je treba si precist v manualu.
> 
No, manuál je právě většinou problém. Co jsem tak narazil, tak jsou tam
popsány položky stylem "volba write-thru zapíná model zápisu write-thru".
Toť vše :o(


> 	A ta zalozni baterka neni "automaticka soucast". Casto je to
> volitelna komponenta.

To je jasné. 

 
> 	Pokdu by se jednalo o skutecnou cache pak by jeji logika byla velmi
> podobna logice cache radice disku. V nekterych ohledech by byla dokonce
> hloupejsi - logika RAID radice (coz je v tomhle pripade radic vyssiho
> radu - prvni radic uz je uz soucasti elektroniky disku) nezna skutecnou
> geometrii fyzickeho media ani aktualni polohu hlav a tudiz v podstate
> nemuze optimalizovat poradi zapisu dat s ohledem na geometrii media a
> aktualni polohu.

Noo, nevím, ale raidový řadič by měl především vědet, jaké disky pod sebou
má, kolik jich je a jaké mají logické uspořádání (R0,R1,R5,Rxxxx) a podle
toho by měl s cache zacházet. Tomu by odpovídala i ta položka cache u
kofigurace log. disku. Vzhledem k tomu, že může mít několik logických volumů
a každý s jiným typem raidu měl by mít právě logiku ovládání cache dost
dobře propracovanou. Asi. 

> 	Ano, az na ten predpoklad. Cache nic nepredpoklada. Ona jen
> dodatecne
> zapise co se po ni stejne zapsat chtelo. Jaky je vyznam takto zapsanych
> dat z hlediska vyssich vrstev je zalezitosti vyssich vrstev.

Jasně že cache nic nepředpokládá. To předpokládá člověk, který tento
mechanizmus vymyslel. Proste se zapísou data z cache na disk a predpoklad je
ten, ze "vrchni vrstvy" budou konzitenti. Tedy zadne rollbacky databazi,
zadne kontroly konzistence a opravy fs. 

 
> 	Ja si myslim, ze prave tohle je cache radice (a to, o cem byla rec

No, to je právě ten problém, že tyhle věci si každý myslí tak nějak trošku
jinak....:o(

 
> 	Opravdu zalezi ceho se snazis dosahnout. Nikdy nestaci pouzit
Chci větět, jak funguje cachovani na jednotlivych urovnich diskoveho
subsystemu a v zavislosti na této zanlosti bych rad při implementaci
oprimalne nastavil server pro konkretni pripad. 


> 	Pokud ti jde o to pochopit jak to cele funguje - obecne principy
> nastudovat lze. Jiste nebude problem najit jak co je to "read-ahead",
> write-back a podobne terminy, se kterymi se setkas, kdyz budes
> zjistovat, co cache umi. Jestli ale doufas, ze najdes detailni informace
> o tom, jak tu-kterou vseobecne znamou vec konkretne implementoval ve
> zcela konkretnim radici zcela konkretni vyrobce, tak to se obavam, ze
> se nepodari - takove veci jsou, a to celkem logicky, soucasti obchodniho
> tajemstvi.

Ale jo, jednotlive zakladni algoritmy bych snad jaksi vedel, jak funguji,
ale uz nevim, jak se navzajem ovlivnuji jednotlive vrstvy v celem diskovem
subsystemu.


Díky

RaT





More information about the Users-l mailing list