■ ■ ■ PA152: Efektivní využívání DB 2. Datová úložiště Vlastislav Dohnal Poděkování ■ Zdrojem materiálů tohoto předmětu jsou: D Přednášky CS245, CS345, CS345 ■ Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom ■ Stanford University, California D Přednášky dřívější verze PA152 ■ Pavel Rychlý ■ Fakulta informatiky, Masarykova Univerzita PA152, Vlastislav Dohnal, Fl MUNI, 2009 2 Optimalizace přístupu na disk ■ Omezení náhodných přístupů ■ Velikost bloku ■ Diskové pole PA152, Vlastislav Dohnal, Fl MUNI, 2009 3 Omezení náhodných přístupů ■ Defrag mentace d Uspořádání bloků do pořadí jejich zpracování d Souborový systém ■ Řeší na úrovni souborů ■ Alokace více bloků naráz, nástroje pro defrag mentaci ■ Plánování přístupů (výtah) d Pohyb hlavičky pouze jedním směrem d Přeuspořádávání požadavků na disk ■ Při zápisu použití zálohované cache (nebo logu) ■ Prefetching, double buffering PA152, Vlastislav Dohnal, Fl MUNI, 2009 4 Single Buffer ■ Úloha: d Čti blok B1 -> buffer d Zpracuj data v bufferu d Čti blok B2 -> buffer d Zpracuj data v bufferu D ... ■ Náklady: d P = čas zpracování bloku d R = čas k přečtení 1 bloku d n = počet bloků ke zpracování ■ Single buffer time = n(R+P) PA152, Vlastislav Dohnal, Fl MUNI, 2009 Double Buffering ■ Dva buffery v paměti, používané střídavě Paměť Disk ABCDEFG PA152, Vlastislav Dohnal, Fl MUNI, 2009 6 Double Buffering Paměť A Disk A B C D E F G PA152, Vlastislav Dohnal, Fl MUNI, 2009 Double Buffering F F zpracovaní Paměť A bH Disk ABCDEFG PA152, Vlastislav Dohnal, Fl MUNI, 2009 Double Buffering F F zpracovaní Paměť C bH Disk A B C D E F G PA152, Vlastislav Dohnal, Fl MUNI, 2009 9 Double Buffering ■ Náklady: d P = čas zpracování bloku d R = čas k přečtení 1 bloku d n = počet bloků ke zpracování ■ Single buffer time = n(R+P) ■ Double buffer time = R + nP d Předpokládáme P > R PA152, Vlastislav Dohnal, Fl MUNI, 2009 Optimalizace přístupu na disk ■ Omezení náhodných přístupů ■ Velikost bloku ■ Diskové pole PA152, Vlastislav Dohnal, Fl MUNI, 2009 11 Velikost bloku ■ Velký blok -> amortizace I/O nákladů ALE ■ Velký blok -^ čtení více „nepotřebných" dat, čtení trvá déle ■ Trend: d cena pamětí klesá, bloky se zvětšují PA152, Vlastislav Dohnal, Fl MUNI, 2009 Optimalizace přístupu na disk ■ Omezení náhodných přístupů ■ Velikost bloku ■ Diskové pole PA152, Vlastislav Dohnal, Fl MUNI, 2009 13 Diskové pole ■ Více disků uspořádaných do jednoho logického Logical Physical D Paralelní čtení / zápis d Snížení průměrné doby vystavení hlaviček Metody d rozdělování dat (block striping) d zrcadlení dat (mirroring) PA152, Vlastislav Dohnal, Fl MUNI, 2009 14 Zrcadleni ■ Zvýšení spolehlivosti pomocí replikace d Logický disk je sestaven ze 2 fyzických disků d Zápis je proveden na každý z disků d Čtení lze provádět z libovolného disku ■ Data dostupná při výpadku jednoho disku d Ztráta dat při výpadku obou ->• málo pravděpodobné ■ Pozor na závislé výpadky d Požár, elektrický zkrat, zničení HW řadiče pole, ... PA152, Vlastislav Dohnal, Fl MUNI, 2009 Rozdělování dat ■ Cíle: D Zvýšení přenosové rychlosti rozdělením na více disků d Paralelizace „velkého" čtení ke snížení odezvy D Vyrovnání zátěže -» zvýšení propustnosti ■ Bit-level striping d Rozdělení každého bajtu na bity mezi disky d Přístupová doba je horší než u jednoho disku d Málo používané PA152, Vlastislav Dohnal, Fl MUNI, 2009 16 Rozdělování dat ■ Block-level striping n n disků, blok /je uložen na disk (i mod n)+1 d Čtení různých bloků lze paralelizovat ■ Pokud jsou na různých discích D „Velké" čtení může využít všechny disky PA152, Vlastislav Dohnal, Fl MUNI, 2009 17 RAID ■ Redundant Arrays of Independent Disks ■ Různé varianty d Různé požadavky d Různá výkonnost D Různé vlastnosti ■ Kombinace variant DRAID10 = RAID1,pal PA152, Vlastislav (a) RAID 0: nonredimdant striping (b) RAID 1: mirrored disks JJĽJU1 (c) RAID 2: memory-style error-correcting codes (d) RAID 3: bit-interleaved parity (e) RAID 4: block-interleaved parity RAIDO i' p (f) RAID 5: block-interleaved distributed parity (g) RAID 6: P + Q redundancy lal, Fl MUNI, 2009 18 RAID0,1 ■ RAIDO D Block striping, neredundantní d Velmi vysoký výkon, žádné zabezpečení dat d Nesnížená kapacita Qjc^pjízj g RA I D 1 ^RAID 0: nonredundant sniping DZrcadlení disků 99999996 ■ často s block-striping «mdi:».™*«*. d Poloviční kapacita, rychlé čtení d Vhodné pro databázové logy, atp. PA152, Vlastislav Dohnal, Fl MUNI, 2009 19 RAID2,3 RAID2 d Bit-striping, Hamming Error-Correcting-Code d Zotavení z výpadku 1 disku ljEzjlzj (c) RAID 2: memory-style error-correcting codes RAID3 d Bit-Interleaved Parity d 1 paritní disk d Zápis: spočítání a uložení parity d Obnova jednoho disku ■ XOR bitů z ostatních disků a (d) RAID 3: bit-interleaved parity PA152, Vlastislav Dohnal, Fl MUNI, 2009 20 RAID4 ■ Oproti RAID3 používá block-striping d Paritní blok na zvláštním disku d Zápis: spočítání a uložení parity d Obnova jednoho disku ■ XOR bitů z ostatních disků D Vyšší rychlost než RAID3 ■ Blok je čtený pouze z 1 disku -> paralelizace 90996 (e) RAID 4: block-interleaved parity PA152, Vlastislav Dohnal, Fl MUNI, 2009 21 RAID4 (pokrač.) ■ Zápis bloku -» výpočet paritního bloku d Vezmi původní paritu, původní blok a nový blok (2 čtení a 2 zápisy) d Nebo přepočítej paritu ze všech bloků (n-1 čtení a 2 zápisy) d Efektivní pro sekvenční zápis velkých dat ■ Paritní disk je úzké místo! d Zápis libovolného bloku vede k zápisu parity ■ RAID3,4 - minimálně 3 disky (2+1) d Kapacita snížena o paritní disk PA152, Vlastislav Dohnal, Fl MUNI, 2009 RAID5 Block-Interleaved Distributed Parity d Rozděluje data i paritu mezi n+1 disků D Odstranění zátěže na paritním disku RAID4 009 P ří k I íí H (^i H Í Q k M ^ ^ RAID 5: block-interleaved distributed parity D Paritní blok pro n bloků je uložen na disku (n mod 5) + 1 d Datové bloky uloženy na ostatních 4 discích I PO 4 8 12 16 0 PÍ 9 13 17 1 5 P2 14 18 2 6 10 P3 19 7 11 15 P4 | PA152, Vlastislav Dohnal, Fl MUNI, 2009 23 RAID5 (pokrač.) ■ Vyšší výkon než RAID4 d Zápis bloků je paralelní, pokud jsou na různých discích D Nahrazuje RAID4 ■ má stejné výhody a ruší nevýhodu paritního disku ■ Často používané řešení PA152, Vlastislav Dohnal, Fl MUNI, 2009 24 RAID6 ■ P+Q Redundancy scheme D Podobné RAID5, ale ukládá extra informace pro obnovu při výpadku více disků d Více disků pro paritu (dual distributed parity) ■ Min. 4 disky v poli (kapacity snížena o 2 disky) DSamoopravné Hammingovy kódy ■ Opraví výpadek 2 disků D Není příliš používaný (g) RAID 6: P + Q redundancy PA152, Vlastislav Dohnal, Fl MUNI, 2009 25 RAID shrnutí ■ RAIDO - bezpečnost dat není podstatná d Data lze snadno a rychle obnovit (ze záloh,...) ■ RAID2,4 jsou nahrazeny RAID3,5 DRAID3 se nepoužívá - bit-striping vede k využití všech disků při zápisu/čtení 1 bloku ■ RAID6 - nepoužívaný dRAID1,5 poskytují dostatečnou spolehlivost D Spíše kombinace- RAID 10, RAID50 ■ Vybíráme mezi RAID1 a RAID5 PA152, Vlastislav Dohnal, Fl MUNI, 2009 26 RAID shrnutí (pokrač.) ■ RAID1 d Mnohem rychlejší zápis než RAID5 d Použití pro aplikace s velkým množstvím zápisů d Dražší než RAID5 (má nižší kapacitu) ■ RAID5 d pro každý zápis vyžaduje min. 2 čtení a 2 zápisy ■ RAID1 vyžaduje pouze 2 zápisy D Vhodný pro aplikace s menším množstvím zápisů ■ Nároky dnešních aplikací na počet I/O d Velmi vysoké (např. WWW servery, ...) d Nákup množství disků pro splnění požadavků ■ Mají dostatečnou volnou kapacitu, pak RAID1 (nic nás dále nestojí) PA152, Vlastislav Dohnal, Fl MUNI, 2009 RAID shrnutí (pokrač.) ■ Nenahrazuje zálohování!!! ■ Implementace d SW - téměř každý OS podporuje d HW - speciální řadič ■ Nutné zálohování cache bateriemi nebo non-volatile RAM ■ Pozor na výkonnost procesoru řadiče - může být pomalejší než SWÜ! ■ Hot-swapping (výměna za provozu) d HW implementace většinou podporují d SW není problém, pokud HW podporuje ■ Spare disks d V poli jsou většinou přítomné náhradní disky PA152, Vlastislav Dohnal, Fl MUNI, 2009 Výpadky disků ■ Občasný výpadek d Chyba při čtení/zápisu -» opakování OK ■ Vada média d Trvalá chyba nějakého sektoru d Moderní disky samy detekují a opraví ■ z vlastní rezervní kapacity ■ Zničení disku d Totální výpadek ->• výměna disku PA152, Vlastislav Dohnal, Fl MUNI, 2009 29 Ošetření výpadků disků ■ Detekce D Kontrolní součty ■ Opravy DSamoopravné kódy (ECC) ■ Hammingovy kódy, ... d Stabilní uložení ■ Uložení na více místech stejného disku ■ Zurnálování (log změn) ■ Diskové pole PA152, Vlastislav Dohnal, Fl MUNI, 2009 Stabilní uložení ■ Operační systém Databáze zápis I Současná DB log Záložní DB PA152, Vlastislav Dohnal, Fl MUNI, 2009 Zotavení ze zničení ■ Pravděpodobnost výpadku d Mean time to failure (MTTF) ■ Někdy také Mean time between failures (MTBF) D Průměrná doba fungování mezi výpadky ■ Typicky 10a více let D MTTF se snižuje s věkem disku ■ Pozor: d Jeden disk má MTTF 10 let D Systém s 10 disky má MTTF 1 rok ■ Tj. průměrně každý rok jeden z disků vypadne PA152, Vlastislav Dohnal, Fl MUNI, 2009 32 Pravděpodobnost výpadku ■ Interpretace MTTF 10 let D Průměrně 50% disků vypadne za 10 let d 100% disků vypadne za 20 let D ^výpadku za rok = 1/20 = 0.05 = 5% D Lineární interpolace výskytu chyb ■ Obvykle pro výpočty dostatečná ■ V praxi jinak i více chyb na začátku a pak na konci životnosti PA152, Vlastislav Dohnal, Fl MUNI, 2009 33 Oprava chyby ■ Mean time to repair (MTTR) DČas od výpadku do obnovení činnosti DTj. čas výměny vadného disku ■ Mean time to data loss (MTTD) D Závisí na MTTF i MTTR d Průměrná doba mezi ztrátou dat PA152, Vlastislav Dohnal, Fl MUNI, 2009 34 64 Příklad výpadku RAID1 ■ 2 zrcadlené disky D Každý MTTF 10 let d Každých 5 let vypadne nějaký disk (10/2) ■ Výměna vadného do 3 hodin a MTTR = 3 hodiny ■ Pravděpodobnost ztráty dat: n "výpadku 1 disku = "20 TOkU, Pvýpadku 1 ze 2 = *'*v TOkU a MTTR = 3/24 dne = 1/2920 roku n "ztráty dat = "výpadku 1 ze 2 MTTR PVýpaciku 1disku=^'^°4000 D MTTD = 0.5 / P^h«. = 0.5 * 1/584000 = 292 000 let PA152, Vlastislav Dohnal, Fl MUNI, 2009 35 RAIDO a RAID4 ■ MTTF disku 10 let (Pvýpadku 1 disku=1/20=5%) ■ RAIDO - dva disky, striping n "ztráty dat = ^výpadku 1 ze 2 = *' * O DMTTD = 0.5/(1/10) = 5let ■ RAID4 - opravuje výpadek 1 disku d4 disky (3+1), MTTR = 3 hodiny n "ztráty dat = ^výpadku 1 ze 4 MTTR Pvýpac|ku 1 ze 3 DPztrátydat = 4/20 * 1/2920 * 3/20 = 3/292000 dMTTD = 0.5 * 292000/3=292000/6=48 667 let PA152, Vlastislav Dohnal, Fl MUNI, 2009 36