Teorii máme z minulého článku za sebou, pojďme se tedy dnes podívat na pole obyčejně nijak oslnivě rychlá, ale zato levná na zaplacenou kapacitu. Řeč bude o polích RAID2 - RAID6.
Původně jsem se chtěl rovnou vnořit do myšlenkových vln a začít bouřit, ale nedá mi to, abych vám všem nepoděkoval za podporu, kterou mi vždy v diskuzi pod článkem vyjadřujete. Na rovinu přinávám, že mě to velmi motivuje v tom, se dále dělit o zkušenosti a vymýšlet, co ještě zpracovat tohle formou. Takže díky všem, ať už píšete věcné připomínky a nebo dotazy tam, kde jsem třeba věci napsal trochu nešikovně. G-Speed ES Pro - čtyřdisková RAID krabice pro použití s RAID 0, 1, 3, 5 a 6 - takový poslední "domácí" model
No ale zpět k diskovým polím. Hned na úvod, abych to pak nemusel psát u většiny zmíněných typů, vám vykecám, že jsem se za své praxe nesetkal s jinými typy z výše jmenovaných polí, než RAID5 a RAID6. Když jsem si doplňoval vzdělání, abych vám mohl napsat skutečně o všech typech aspoň princip fungování, pochopil jsem, že z mnoha důvodů tyto typy zapadnout zkrátka musely. Pokud mě napadne nějaký důvod, který mi přejde reálný, napíšu ho ke každému z daných typů. Chci slušnou rychlost a zároveň redundanci (RAID2)
O tom, že tenhle typ pole existuje jsem se skutečně jenom dočetl. Dokonce už v minulé diskuzi padlo z mé strany přiznání, že algoritmu generování parity u RAID2 prostě nerozumím. Nicméně praktické vlastnosti jsem snad pochopil správně. RAID2 je jakýsi předchůdce pole, o kterém si teprve budeme říkat - RAID10 s jedním důležitým, ale drahým rozdílem - kontrola kvality uložených dat. Jeho využitelná kapacita je 50%, skládá se ze sudého počtu stejných disků a kterýkoliv z nich může vypadnout až do počtu paritních disků. Navíc z výpočtu Hammingova kódu je vždy zřejmé, zda došlo k chybě při uložení a je nutné koncová data získat z paritních dat (tohle platí pro případ použití rozšířeného Hammingova kódu).
Jestli jsem správně pochopil výhody pole typu RAID2, bylo navrženo tak, aby bylo možné zatížit několik pomalých disků najednou a paralelizovat tak požadavky zápisu a čtení. Tím se docílí výrazně lepší rychlosti a navíc, díky vlastnostem výpočtu parity je vždy možné posoudit, zda již nedochází k deformaci dat na discích a pokud ano, dopočítat data proaktivně z parity. Cenou za to bude nicméně vysoká výpočetní náročnost, jelikož se s každým uložením dat musí spočítat dvojnásobný počet matic Hammingova kódu, než bylo uloženu bytů. Chci-li pak využít bezpečnosti dat při čtení, pak to platí i pro něj. Možná se mýlím, ale tohle mi spíš zavání armádou, než v naší praxi použitelným řešením.
Nechci platit zbytečně moc disků, nespěchám, ale redundance musi byt, protože tak je to spravne (RAID3 a RAID4) Tato dvě pole jsem vyčlenil, přestože se vlastně od RAID5 liší jenom minimálně. Pole mají z N použitých disků využitelnou kapacitu N-1, N-tý disk je použit jako dedikovaný pro paritu (viz předchozí díl našeho miniseriálku). Jediný rozdíl mezi RAID3 a RAID4 je, že RAID3 má data ukládána po bitech a RAID4 po blocích. U RAID3 si tedy šířku proužku zvolit nemůžete, u RAID4 ano.
Výhody těchto polí jsou v rozdělení zátěže na více disků pro čtení i pro zápis. RAID3 bude mít zatížení datových disků naprosto identické, u RAID4 už se stoupající velikostí proužku může docházet k fluktuaci zátěže a případně (například u špatně nastaveného EXT3 FS, používaného v Linuxu) k jednostrannému přetěžování jednoho disku neoptimální distribucí i-node databází pouze na tento jeden disk. Dokud jsou v pořádku datové disky, čtení probíhá z nich a zápis na všechny disky, na které vyjdou data. Dokud je u těchto typů polí v pořádku paritní disk, parita se spočítá a vždy se na něj zapíše. A to je zároveň i kamenem úrazu polí RAID3 i RAID4. Paritní disk je úzkým hrdlem celého systému, jelikož se na něj zapíše vždy, a dokud není dokončen zápis parity, nelze transakci považovat za ukončenou. Díky tomu se vám při použití těchto typů bude stávat, že datové disky budou v celku v pohodě, ale bude vám odcházet ten paritní. a to je také důvod, proč se spíše používají pole RAID5 a RAID6.
Nechci platit zbytečně moc disků a rád bych, aby trochu vydržely (RAID5 a RAID6)
Tenhle typ pole je pro svoji velkou cenovou výhodnost a slušný výkon asi nejpoužívanější. Stejně jako pole RAID3 a RAID4 má z N disků využitelnou kapacitu z N-1, ale na rozdíl od nich má paritu distribuovanou na všechny disky. Při vytváření pole tedy zadáte velikost proužku a data se zapíší postupně na všechny disky a spočtená parita na ten poslední. U dalšího proužku se ale jako paritní použije jiný disk.
Řekněme, že máme nejjednodušší pole ze 3 disků (A, B a C) s velikostí proužku 8kB a zapisujeme 36kB. Zápis bude vypadat takto: 8KB disk A, 8kB disk B, 8kB parita disk C, dále 8kB parita disk A, 8kB disk B, 8kB disk C, zbývají 4kB k zápisu na disk A a parita na disk B, takže se načtou 4kB z disku A (abychom měli celých 8kB) a 8kB z disku C a na disk B se spočítá parita.
Cenou za tento kapacitně velmi výhodný typ pole je pomalejší zápis. Nicméně třeba jako domácí úložiště filmů, fotek a hudby je toto pole perfektní. Rychlost čtení je optimálně rozložená na všechny disky, redundance je dostatečná, ale v okamžiku pádu jakéhokoliv disku se celé pole dost zpomalí z důvodu nutnosti počítat vždy data z parity. Pole typu RAID6 je ještě o něco spolehlivější, ale kapacitně méně výhodné, jelikož má na paritu dedikované dva disky namísto jednoho a parita je počítána dvěma algoritmy. Funkce je stejná a používá se předevší ve velkých diskových polích s mnoha desítkami disků a dedikovaným procesorem na výpočet parity (například Symmetrix, HP EVA a nebo IBM Shark). Zápis je ještě o něco pomalejší z důvodu výpočtu dvou typů parity, ale získáte o třídu lepší redundanci.
Abyste měli obraz velkých polí ucelený, používá se v těchto technologiích ještě termín hot-spare disk. To je disk, který za normálního stavu nic nedělá. Nic, ani se nehne a čeká, až nějaký disk z pole, kterému je hot-spare přiřazen, klekne a pak se ihned začne pole rekonstruovat (nejčastěji se tomu říká rebuild). Tím se zkrátí doba nebezpečného uložení dat na technologické minimum. Navíc lze u větších polí definovat tak zvaný globální hot-spare, tedy disk, který čeká na pád libovolného disku v jakémkoliv z definovaných polí a zaskočí ihned, jak je to třeba. Takže třeba slušný Symmetrix má pro vaši představu třeba 512 disků (kdysi ho měla třeba ČNB a je to bedna jako dvě 19" skříně standardní serverovny s hloubkou 100cm), tam můžete definovat desítky polí typu, který vám bude přesně vyhovovat. Klidně si uděláte z 30 disků RAID6 a pak dvěma diskům určíte, že jsou global hot-spare a víte, že jste udělali opravdu hodně pro bezpečnost vašich dat. Za domácí úkol si můžete spočítat, jak je asi tak pravděpodobné, že o data přijdete pádem disku.
No a na příště nám už zbývají jen kombinovaná pole RAID0+1, RAID10, RAID50 a RAID60.
AUTOR: Jan Kořínek |
---|
V IT jsem už 18 let a z toho jsem posledních 5 let vedl webhostingovou divizi. V tuto chvíli už působím jen jako externí konzultant - specialista na Linux, počítačové sítě a bezpečnost.
A jelikož si od IT odpočívám, otevřeli jsme si se ženou kavárničku. |
|