Ochrana operační paměti pro servery i pracovní stanice

Špatně přečtené bity nebo poškozená paměť vedoucí ke zhroucení systému a ztrátě dat to je hororový scénář, k...


Špatně přečtené bity nebo poškozená paměť vedoucí ke zhroucení systému a ztrátě
dat to je hororový scénář, který nedá spát žádnému systémovému
administrátorovi. Funkce pro detekci a opravu chyb v paměti se mají postarat o
zajištění a zabezpečení proti takovým situacím. Jedná se o technologie
implementované do paměťových modulů či řadičů, které nacházejí své uplatnění
především v oblasti serverů a pracovních stanic.
Žádná operační paměť počítače není 100% chráněná proti chybám avšak technicky
vyzrálé paměťové technologie jim aproximativně (přibližně) zabraňují. Jestliže
provoz paměťového modulu vyhovuje podmínkám specifikovaným výrobcem, je
pravděpodobnost poškození (převrácení) jednotlivých datových bitů nízká. Přesto
mohou vnější vlivy občas způsobit změnu logické jedničky na nulu či naopak.
Nechtěné převrácení bitu se obvykle označuje jako Soft Error (měkká chyba).
K těmto opravitelným chybám mohou přibýt ještě poruchy na fyzické úrovni. Vedle
projevů stárnutí způsobených difuzí, elektromagnetickým polem a radioaktivním
zářením vedou k neopravitelným poškozením paměťových modulů často také napěťové
špičky nebo elektrostatické náboje při nesprávné manipulaci.
Právě v oblasti serverů a pracovních stanic jsou chyby pamětí a jimi způsobené
pády systémů velmi bolestivým problémem, neboť jsou obvykle příčinou enormně
vysokých nákladů. Proto, aby se zamezilo špatnému přečtení a následnému
chybnému zápisu dat způsobenému poruchou v paměti, existuje několik různých
metod, které jsou závislé na použité čipové sadě. Čipsety společností IBM,
Intel nebo ServerWorks nabízejí paměťové funkce, jako jsou kupříkladu ECC,
Chipkill, Hot Swap, Hot Add nebo Memory Mirroring, zajišťující odolnost vůči
chybám.
Následující článek podrobněji popisuje různé technologie, které mohou
maximalizovat ochranu dat při jejich zpracování v rámci operační paměti systému.

Kontrola parity
Jestliže řadič paměti dané čipové sady a paměťový modul podporují techniku
ověřování parity, je při každé paměťové operaci provedeno vytvoření kontrolního
součtu. Každému bajtu (tj. 8 bitům) je při zapsání přidělen vlastní paritní
bit, který je spolu s ním uložen v DRAM. Při čtení daného bajtu je
prostřednictvím paměťového řadiče a příslušného protokolu provedeno porovnání s
příslušným paritním bitem. Tak je možné ihned po přečtení rozpoznat převrácený
bit.
Existují dva druhy paritních protokolů, které ověřují lichou nebo sudou paritu.
Oba postupy fungují na základě stejného principu a liší jen ve svých
atributech. Výpočet parity je prováděn následovně: V případě liché parity má
paritní bit hodnotu 1, sestává-li bajt ze sudého počtu jedniček, lichému počtu
odpovídá 0. U sudé parity je tomu obráceně jestliže se v bajtu nachází sudý
počet jedniček, příslušná parita je 0, při lichém počtu obdrží hodnotu 1.
Operace výpočtu je prováděna přes paměťový řadič. Při záznamu dojde k uložení
osmi datových bitů a korespondujícího paritního bitu do DRAM. A konečně při
čtecí operaci je nově vypočtený kontrolní součet srovnán s uloženým paritním
bitem. Data jsou platná při jejich shodě, při nerovnosti kontrolních součtů je
prostřednictvím paměťového řadiče provedeno hlášení o chybě.
Nevýhodou při kontrole parity je, že je chyba sice rozpoznána, nicméně nelze
provést její korekci. Tato metoda navíc spolehlivě funguje pouze tehdy,
jestliže dojde k převrácení pouze jediného bitu. Dojde-li však k převrácení
více bitů v jednom bajtu, může zůstat chyba pochopitelně skryta. Obsahuje-li
například bajt při kontrole sudé parity 4 jedničky, nabývá paritní bit hodnoty
0. Dojde-li při zápisu bajtu i paritního bitu do DRAM k převrácení dvou bitů,
při pozdějším čtení paměťový řadič zjistí, že počet jedniček je opět sudý a
uzná celý bajt díky porovnání s paritním bitem za platný.
Paměťové moduly s kontrolou parity jsou oproti modulům bez ní dražší. Paritní
moduly potřebují pro každý bajt 9 bitů, a s tím i větší paměťový prostor při
jinak stejné kapacitě pro ukládání dat. Takové moduly disponují dodatečným DRAM
čipem, který slouží pouze k ukládání informací o paritě.

ECC metoda
Vedle jednoduché detekce chyb je v oblasti elektroniky obecně používán bezpočet
algoritmů pro korekci chyb. Jeden z nich, který se dobře hodí speciálně pro
kontrolu a korekci jednobitových měkkých chyb (Soft Error) ve velkých
paměťových polích, je tzv. Hammingův kód. Kód může navíc rozpoznat i
dvoubitovou chybu, avšak nedokáže provést její korekci. Tato ECC metoda
potřebuje při 32bitové šířce dat dodatečných 7 kontrolních bitů. V případě
64bitových DIMM modulů je pro korekci chyb nezbytných 8 bitů. DIMM moduly
využívající ECC mají potom celkovou datovou šířku 72 bitů sběrnice mezi DIMM a
čipovou sadou je pak rovněž 72bitová.
Když procesor 64bitového výpočetního systému zapisuje svá data do DRAM,
vypočítá ECC řídicí obvod paměťového řadiče osm ECC bitů a připojí je k datům.
Nyní již 72 bitů široký údaj je uložen v DIMM modulu. Během čtecí operace
vypočítá čipset znovu ECC hodnotu z přečtených 64 datových bitů. Řadič pak
porovnává nově vypočtený kód s právě přečteným chybovým kódem, který byl
vygenerován při zápisu do paměti. Při shodě obou kódů je 64bitové datové slovo
považováno za správné, zatímco pokud se liší, je přesně lokalizována pozice, na
níž se nachází chybný bit. Paměťový řadič pak změní atribut tohoto bitu na jeho
původní hodnotu.
ECC metoda se dobře hodí obzvláště pro oblasti, kde je vyžadována vysoká
integrita dat. Proto nacházejí oproti normálním pamětem poměrně drahé ECC DRAM
moduly své uplatnění především v serverech a pracovních stanicích. Podle
interní laboratorní studie společnosti IBM dosahuje ECC paměť v časovém rámci 3
let spolehlivosti okolo 91 %.

Technologie Chipkill
Za účelem další maximalizace bezpečnosti dat v operační paměti představila IBM
na konci 90. let technologii Chipkill, označovanou také jako Advanced ECC. Tato
paměťová technologie byla původně vyvíjena výhradně pro NASA. Organizace
zabývající se kosmickým výzkumem nasadily Chipkill poprvé při projektu
souvisejícím s výzkumem Marsu označovaném Pathfinder. Zde by měly paměťové
chyby a jimi způsobené výpadky systému fatální následky a samozřejmě by se také
projevily v enormních škodách. Následně začala být technologie Chipkill
používána také pro komerční účely v serverech a pracovních stanicích.
Na rozdíl od korekce chyb pomocí ECC, která dokáže opravit pouze jednobitovou
chybu, může funkce Chipkill korigovat chyby až ve 4 bitech a rozpozná chyby v 8
bitech. Při shluku chyb v paměťovém čipu je může dokonce odstranit, aniž by
muselo dojít k přerušení provozu systému. Výhodou technologie Chipkill je, že
nevyžaduje žádné speciální paměťové moduly, postačují běžné ECC DIMM. Korekční
metoda navíc pracuje nezávisle na operačním systému její funkce závisí pouze na
čipsetu a BIOSu.
Technologie Chipkill funguje obdobně jako systém RAID 0, skládající se z
pevných disků na bázi stripingu s ověřováním parity. Musí-li například paměťový
řadič spravovat 4 DIMM moduly se 4bitovým uspořádáním, sestávají ukládaná data
ze 4 x 64 datových bitů a 4 x 8 ECC bitů. Dohromady tedy činí datová šířka 288
bitů a zahrnuje 4 ECC slova ke každým 72 bitům. Algoritmus Chipkill rozdělí
72bitové datové slovo systematicky po 18 bitech na 4 paměťové DIMM moduly
(striping). Současně jsou 18bitové segmenty opět stejnoměrně rozděleny na 18
DRAM čipů DIMM modulu. Výsledkem tohoto rozdělení je, že každý první bit
18bitového datového se nachází v prvním datovém bitu paměťového čipu. Toto
speciální rozložení jednotlivých datových bitů je důležité pro pozdější
rekonstrukci vícebitových chyb pomocí paměťového řadiče na základě ECC metody.
Podle laboratorní studie IBM dosáhla metoda Chipkill v časovém intervalu 3 let
míry spolehlivosti 99,94 %. Vyšší zabezpečení před chybami paměti je přitom
dosaženo pouze prostřednictvím kombinace s jinými paměťovými technikami.

Hot Swap a Hot Add
V podobě technologií Hot Swap a Hot Add mají administrátoři k dispozici dva
další mechanismy zajištění spolehlivosti pamětí v serverech. Tyto funkce mohou
být využity za probíhajícího provozu serveru.
Hot Swap umožňuje vyměnit paměťový modul, u kterého je zjištěna závada. Nový
modul však musí mít stejnou kapacitu, šířku pásma i identický typ paměti. Tato
funkce navíc vyžaduje aktivaci Memory Mirroringu (zrcadlení paměti), aby se
zamezilo ztrátě dat při výměně modulu. Velkou výhodou je, že funkce Hot Swap
bývá integrována v čipsetu, a pracuje proto nezávisle na používaném operačním
systému.
Funkce Hot Add dovoluje rozšiřování operační paměti bez toho, aby bylo nutné
přerušit provoz serveru. Dodatečné paměťové moduly mohou vloženy pouze do dosud
prázdných patic není možné například nahradit už existující modul v běžícím
serveru za jiný s vyšší kapacitou. Předpokladem pro využití funkce Hot Add je v
současnosti operační systém Windows Server 2003 (ve verzi Enterprise nebo
Datacenter), kromě toho musí být deaktivován Memory Mirroring.

Hot Spare Memory
U technologie Hot Spare Memory je dána určená paměťová banka k dispozici jako
záložní. Nahromadí-li se v některém modulu chyby, deaktivuje paměťový řadič
automaticky banku s defektní pamětí a aktivuje náhradní banku. Současně
upozorní systém administrátora o tomto výpadku paměti.
Připojení Hot Spare modulu proběhne automaticky a beze ztráty dat. Jestliže
systém nedisponuje Hot Spare technologií, musí administrátor vyměnit defektní
modul manuálně. To zpravidla vyžaduje vypnutí počítače, a tak dojde k
neplánovanému přerušení provozu, s nímž obvykle souvisí vysoké náklady. To
pochopitelně platí i pro ostatní paměťové "Hot" technologie.

Memory Mirroring
Metoda Memory Mirroring je přibližně srovnatelná s funkcionalitou diskových
polí typu RAID 1. Zrcadlení paměti zajišťuje redundanci 1 : 1 a v minimální
hardwarové konfiguraci proto vyžaduje dva identické paměťové moduly ve dvou
různých bankách. Z toho plyne i závažná nevýhoda této technologie: Vysoké
náklady na operační paměť při současném snížení celkové použitelné kapacity (či
rozšiřitelnosti) o polovinu.
Jsou-li například nainstalovány 2 GB paměti, identifikuje operační systém pouze
1 GB celkové kapacity, kterou je schopen využít. Zbytek paměti řadič
automaticky nedá k dispozici tato "skrytá" paměť obsahuje přesný odraz dat
"aktivní" paměti.
Funkci mirorringu řídí hardware implementovaný v čipové sadě, který je
aktivován BIOSem, a pracuje proto nezávisle na operačním systému. Kromě
kapacity použitých paměťových modulů musejí aktivní a zrcadlené moduly
disponovat i stejnými vlastnostmi a je třeba je nainstalovat do socketů
určených k tomuto účelu výrobcem základní desky.
Jestliže řadič zjistí výskyt chyb v aktivní paměťové oblasti, přepne se za
provozu a beze ztráty dat do zrcadlené oblasti. Současně spustí varování a
informuje správce o stavu operační paměti.

Memory Scrubbing
Technologie Memory Scrubbing ("vyčištění paměti") předpokládá, že je v čipsetu
aktivována funkce ECC, a je schopna provádět automatické testování paměti
nezávisle na operačním systému. Získané výsledky paměťového testu jsou
předávány vhodnému nadřazenému softwaru pro správu serverů.
Memory Scrubbing navíc zabraňuje serverovým výpadkům způsobeným závažnými
paměťovými poruchami, při nichž vyhledá chyby a eventuálně spustí relevantní
ochranné paměťové funkce, jako je Memory Mirroring nebo ProteXion (viz níže).
Jestliže tato opatření nejsou dostatečná, podá funkce Memory Scrubbing
systémovému administrátorovi zprávu s odpovídající diagnózou.
Tato metoda je nasazována preventivně a je automaticky spouštěna jen tehdy,
když to zatížení výpočetního systému a operační paměti dovoluje. Kromě toho
může Memory Scrubing ovládat samotný správce prostřednictvím softwaru pro
server management.

Technologie ProteXion
Technologie ProteXion (rovněž známá pod označením Redundant Bit Steering),
kterou vyvinula opět firma IBM, používá volné bity v paměťovém čipu pro
zajištění redundance, aby v případě porušeného bitu data přesměrovala.
V běžném případě používají současné standardní servery 8 bitů v 72bitových
datových paketech pro funkci ECC a zbylých 64 bitů pro samotná data. Ovšem
technologie ProteXion využívá metodu ECC, která pro správné fungování potřebuje
pouze šest namísto osmi bitů, neboť používá speciální výpočetní algoritmus.
Zbývající 2 bity v běžném ECC modulu zůstávají prozatím nevyužity.
Jestliže Memory Scrubbing zjistí bitovou chybu v paměťovém čipu na DIMM modulu,
aktivuje funkci ProteXion. O to se postará paměťový řadič, který chybu vynechá
a odpovídající data rozloží na volné bity (Hot Spare Bits). Dokud je k
dispozici dostatek volných bitů pro korektní fungování paměti, paměťový řadič
pouze zaznamenává vyskytující se výpadky v datech příslušného logu.
Pokud je chyba neopravitelná, pošle funkce Memory Scrubbingu upozornění
administrátorovi. Ten pak může na základě zaznamenaných dat chybu analyzovat a
za provozu provést vhodné protiopatření, jako například výměnu (Hot Swap) či
rozšíření (Hot Add) paměti samozřejmě za předpokladu, že čipová sada, potažmo
operační systém tyto funkce podporují.

Shrnutí
Aby bylo možné vyhnout se vysokým nákladům, které bývají důsledkem zhroucení či
výpadků serverů a pracovních stanic způsobených poruchovou či vadnou operační
pamětí, mají dodavatelé systémů k dispozici několik různých ochranných
mechanismů.
Metoda ECC patří k těm nejjednodušším korekčním funkcím odstraňuje jednobitové
chyby a detekuje dvoubitové poruchy. Jak bylo zmíněno, podle studie společnosti
IBM dosahuje operační paměť vybavená technologií ECC míry spolehlivosti
přibližně 91 %. Lepší zajištění proti výpadkům paměti nabízí podle IBM metoda
Chipkill, která dosahuje údajně až 99,94 % spolehlivosti. Tato funkce,
používaná kupříkladu v čipových sadách IBM nebo ServerWorks, je schopna
korigovat až čtyřnásobné chyby a je schopna rozpoznat i 8 chybných bitů.
Jestliže je nezbytné dále zvýšit integritu paměti a zabezpečení proti výpadku
výpočetního systému, nabízejí odpovídající čipsety a operační systémy další
technologie, jako je Hot Swap, Hot Add, Hot Spare Memory, Memory Mirroring nebo
ProteXion.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.