240 likes | 308 Views
Operációs Rendszerek II. 11. előadás 2007. április 21. RAID. Diszk (másodlagos tároló) problémák Teljesítményük növekedési rátája szignifikánsabban alacsonyabb a CPU növekedésnél a tárolt adatok fontossága miatt a nagy kapacitású diszkek hibája egyre nagyobb üzleti kockázattal járt
E N D
Operációs Rendszerek II. 11. előadás 2007. április 21.
RAID • Diszk (másodlagos tároló) problémák • Teljesítményük növekedési rátája szignifikánsabban alacsonyabb a CPU növekedésnél • a tárolt adatok fontossága miatt a nagy kapacitású diszkek hibája egyre nagyobb üzleti kockázattal járt • A nagy kapacitású diszkek sem „eléggé nagyok” • RAID koncepciója: nagy kapacitású és teljesítményű drága diszkek helyett kisebb (olcsóbb) diszkeket használva érjük el célunkat, azaz: • Kapacitás növelése • Teljesítmény növelése • Megbízhatóság növelése
RAID • Az elnevezés a Berkley egyetem kutatóitól származik (1988) – akkor ők ezt a „Redundant array of Inexpensive Disks” szavakból állították össze. A névben később az „Inexpensive” szó „Independent”-re változott… • Dióhéjban: úgy kapcsolunk össze több diszket, hogy • az operációs rendszer számára egy diszknek látszanak • az adatot szétosztjuk a diszkek között, • a diszk hibák ellen paritás információ tárolásával védekezzünk (ezt • két megoldás nem elégíti ki) • A szabvány 5+1 szintet definiál • a „+1” nem redundáns és 3 terjedt el • különböző gyártók további szinteket is definiálnak • szint-kombinációkat is alkalmazunk • A különböző megoldások a szükséges tárolóterület overhead-ben, a megoldás teljesítményigényében és a biztonság szintjében térnek el
RAID szintek • RAID-0 (striping) • Redundancia nélküli megoldás • RAID-1 (tükrözés) • Adatduplikáláson alapul (nem paritás alapú) • RAID-2 • Speciális, Hamming kód alapú • Gyakorlatilag kihalt • RAID-3 • Kizáró vagy műveletre épít, egy blokk az összes diszkre szét van osztva • Erős hardver támogatást igényel! • RAID-4 • Kizáró vagy műveletre épít, egy blokk csak egy diszken található • Dedikált paritás diszket használ • RAID-5 • Hasonló a RAID-4 megoldáshoz, de itt a paritás is szét van osztva a diszkek között
RAID – háttér információk • A diszkek átviteli jellemzőjének tényezői • a mechanikai működésből adódó késleltetés • az adatátvitel végrehajtásának teljesítménye (átviteli sebesség) • A terhelés jellege • Kevés számú, kis párhuzamosságú, de nagy mennyiségű adatot mozgató terhelése (pl. kötegelt feldolgozás) • Nagy számú, magas párhuzamosságú, de kicsi adatmennyiséget érintő terhelés (tranzakciós rendszerek) • Kapcsolat a fentiek között • Nagy mennyiségű adatot mozgató terhelésnél az adatátvitel teljesítménye domináns • Nagy tranzakciószámnál a késleltetések sokkal fontosabbak
RAID – háttér információk • Olvasás és írás műveletek különbsége redundáns tároláskor • olvasáskor csak annyi adatot kell beolvasni, ami elegendő a kért adatblokk biztosításához • íráskor az adatblokkhoz tartozó összes részt aktualizálni kell • Vizsgáljuk • Tárolás módja • Viselkedés íráskor és olvasáskor • Példák • Diszkek száma: N • Egy diszk átviteli sebessége: T
RAID-0 • Tárolás módja • Nagyméretű csíkok, egy blokk egyetlen diszken tárolódik. • Redundancia nincs a rendszerben. • Hasznos terület: N. • Olvasás • Egy időben ~N független olvasási tranzakció szolgálható ki. • Tranzakciónkénti átviteli sebesség: T • Hiba esetén: működésképtelen! • Írás • Egy időben ~N független írása tranzakció szolgálható ki. • Tranzakciónkénti átviteli sebesség: T • Hiba esetén: működésképtelen!
RAID-1 • Tárolás módja • Nagyméretű csíkok, egy blokk egyetlen diszken tárolódik. • A redundanciát a teljes adat duplikálása eredményezi. • Tipikusan N=2, hasznos terület: N/2. • Olvasás • Egy időben ~N független olvasási tranzakció szolgálható ki. • Tranzakciónkénti átviteli sebesség: T • Hiba esetén: egy időben ~(N-1) független olvasási tranzakció szolgálható ki. • Tranzakciónkénti átviteli sebesség: T • Írás • Egy időben 1 írási tranzakció szolgálható ki. • Tranzakciónkénti átviteli sebesség: =< T • Hiba esetén: Egy időben 1 írási tranzakció szolgálható ki. • Tranzakciónkénti átviteli sebesség: =< T
RAID-3 • Tárolás módja • Byte szintű csíkok, a blokkok az összes diszkre szét vannak osztva. • Byte szintű paritás képzés XOR művelettel történik, • a megoldás dedikált paritás diszket használ. N>2, hasznos terület: N-1. • Olvasás • Egy időben 1 olvasási tranzakció szolgálható ki • Tranzakciónkénti átviteli sebesség: (N-1)*T • Hiba esetén: egy időben 1 olvasási tranzakció szolgálható ki • Tranzakciónkénti átviteli sebesség: < (N-1)*T (számolni kell) • Írás • Egy időben 1 írási tranzakció szolgálható ki. • Tranzakciónkénti átviteli sebesség: <= (N-1)*T (számolni is kell) • Hiba esetén: egy időben 1 írási tranzakció szolgálható ki. • Tranzakciónkénti átviteli sebesség: <= (N-1)*T (számolni is kell)
RAID-4 • Tárolás módja • Nagyméretű csíkok, egy blokk egyetlen diszken tárolódik. • Blokk szintű paritás képzés XOR művelettel történik, a megoldás dedikált paritás diszket használ. • N>2, hasznos terület: N-1. • Olvasás • Egy időben (N-1) független olvasási tranzakció szolgálható ki. • Tranzakciónkénti átviteli sebesség: T • Hiba esetén: az olvasási tranzakciók száma akár egyre is lecsökkenhet, mert a hibás diszkeken található adatok előállításához az összes többi diszkblokk adata szükséges! • Írás • Egy időben 1 írási tranzakció szolgálható ki. • Tranzakciónkénti átviteli sebesség << T. Egy blokk kiírása után a teljes sor paritását újra kell számolni • Hiba esetén: 1 írási tranzakció szolgálható ki. • Tranzakciónkénti átviteli sebesség << T
RAID-5 • Tárolás módja • Nagyméretű csíkok, egy blokk egyetlen diszken tárolódik. • Blokk szintű paritás képzés XOR művelettel történik, a paritás blokkok is szét vannak osztva a diszkek között. • N>2, hasznos terület: N-1. • Olvasás • Egy időben (N-1)...(N) független olvasási tranzakció • Tranzakciónkénti átviteli sebesség: T • Hiba esetén: az olvasási tranzakciók száma akár egyre is lecsökkenhet, mert a hibás diszkeken található adatok előállításához az összes többi diszkblokk adata szükséges! • Írás • Egy időben 1 írási tranzakció szolgálható ki. • Tranzakciónkénti átviteli sebesség << T • Hiba esetén: 1 írási tranzakció szolgálható ki. • Tranzakciónkénti átviteli sebesség << T
További RAID szintek • Raid-6 • Két paritás blokk használatával (n+2 konfig) nagyobb hibatűrést biztosít • Az írás során jelentős overhead • Nem igazán terjedt el • Raid-S • EMC Symmetrix diszktömbökben használt technológia. • Raid-5 szerű, de speciális, teljesítményt növelő eljárásokat alkalmaz • Kombinált Raid: 1+0 és 0+1 • 0+1: összetükrözi a stripe-ot • 1+0: tükröket stripe-ol
Diszk cache • Gyorsítótár, a gyorsítótáraknál korábban megismert célokkal és problémákkal • Gyorsítótár: központi memória (drágább, kisebb kapacitású, de gyorsabb, mint a merevlemez) • Algoritmusok: gyorsítótár lehető legoptimálisabb használata
Diszk cache tervezési kérdések • Gyorsítás „iránya” • Csak olvasáskor (write through) • Mindkét irányban (write back) • Memória felhasználás módja • Fix (előre meghatározott) • Dinamikus (terheléstől függő) • Adat átadás a cache-területről (olvasáskor) • Másolás a felhasználói címtérbe • Osztott memória használata • Blokkcsere algoritmusa • LRU (least recently used) • LFU (least frequently used) • Frequency-based
Unix I/O (klasszikus) • Hozzáférés fájl-interfészen keresztül • Kétféle eszköz • Blokkos • Karakteres • Eredeti buffer cache fix
I/O eszközök a fájlrendszerben • Kernel tábla hivatkozások az i-node táblában • Major és minor numberek (eszköz, példány) drwx------ 16 bzso bzso 544 Mar 24 22:48 Documents drwx------ 35 bzso bzso 1190 Apr 3 18:24 Library -rwxr-xr-x 1 bzso bzso 99452 Nov 1 00:46 Google Earth -rwxr-xr-x 1 bzso bzso 92840 Nov 1 01:02 Google Earth Launcher crw-rw-rw- 1 root wheel 10, 6 Apr 18 23:20 tty.Bluetooth-Modem crw-rw-rw- 1 root wheel 10, 2 Apr 18 23:20 tty.Bluetooth-PDA-Sync crw-rw-rw- 1 root wheel 10, 4 Apr 18 23:20 tty.Hermione-Dial-upNetwork-2 brw-r----- 1 root operator 14, 0 Apr 18 23:19 disk0 brw-r----- 1 root operator 14, 1 Apr 18 23:19 disk0s1 crw-rw-rw- 1 root wheel 3, 2 Apr 19 00:20 /dev/null crw-rw-rw- 1 root wheel 3, 3 Apr 18 23:19 /dev/zero crw-rw-rw- 1 root wheel 8, 1 Apr 18 23:19 /dev/urandom
Unix I/O • Klasszikus: statikus táblázatok • Új hardver illesztéséhez új kernel kell (a meghajtó programok statikusan betöltve) • Sok esetben előre „belepakoltak” minden drivert a kernelbe • Modern: dinamikus kernelek • A különféle meghajtó programok futási időben is betölthetők (igény szerint) • Függőségek! • Lényegesen rugalmasabb és erőforrás takarékosabb működés – de a kernel sokkal bonyolultabb lesz
Fájlok, fájlrendszerek • Felhasználói szempontból az operációs rendszer (egyik) legfontosabb része • Ezzel közvetlen „találkozik” • A fájlok tárolása, hozzáférés alapvető • Teljesítmény szempontból kritikus
Alapvető elvárások • Hosszú távú tárolás • A fájlokat másodlagos tárolón (tipikusan merevlemezen) tároljuk • A fájlok tartalma a felhasználó kilépése, a gép kikapcsolását követően is megmarad • Megoszthatóság • Ugyanazt azt az adathalmazt több program is elérhesse – a fájlok egyértelmű azonosítása alapvető • Amennyiben igényelt, a fájlokat több felhasználó is elérhesse • Strukturáltság • A fájlok tartalmát (adatokat) jól ismert struktúrába kell szervezni • A fájlok között is célszerű struktúrát definiálni (sok fájl, átláthatóság)
Tipikus fájl műveletek • Általános modell • Létrehozás • Törlés • Megnyitás • Lezárás • Olvasás • Írás • Az egyes konkrét implementációk további műveleteket is definiálhatnak
Fájl struktúrák • Struktúra-elemek • Mező, alapelem • Rekord, összetartozó mezők gyűjteménye • Fájl, összetartozó rekordok • Adatbázis, összetartozó fájlok • Mai rendszerekben a struktúra meglehetősen egyszerű, az összetett(ebb) adatstruktúrák kezelését alkalmazás szintű komponensekre bízzák
Fájl menedzsment rendszer elvárások • Felhasználók (és alkalmazások) adattárolási, adatkezelési igényeinek kielégítése • Tárolt adatok validitásának biztosítása • Teljesítmény optimalizálás rendszer (globális) és felhasználói szempontból egyaránt • Különféle tároló eszközök támogatása • Adatvesztés kockázatának minimalizálása • Szabványos (programozói) interfész biztosítása • Többfelhasználós működés támogatása
Rétegek • Device driver: kommunikáció a különféle hardver elemekkel (eszközfüggő) • Basic FS (physical I/O): alacsony (blokk) szintű műveletek • Basic I/O supervisor: I/O sorbaállítás, ütemezés • Logical I/O: magas szintű file műveletek • File szervezés: NEM Unix/Win világban • Pile („struktúrálatlan”, ahogy jön) • Szekvenciális (rekord alapú) • Indexelt szekvenciális (rekord alapú) • Indexelt (rekord alapú) • Direct (hash) fájlok (rekord alapú)