Tento článek obsahuje informace o tom, proč se zařízení SSD opotřebovávají.
Přehled
Proč se zařízení SSD (Solid State Devices) opotřebovávají?
Abychom se dostali k tomu, proč má zařízení SSD s pamětí flash omezenou životnost zápisu, podívejme se nejprve jak paměť flash funguje, jak se její různé typy liší a jaké techniky se používají ke zlepšení její funkčnosti.
Paměťové zařízení flash se čte a zapisuje na stránky. Čtení je relativně jednoduché, jelikož se vydá příkaz ke čtení s adresou a vrátí se příslušná data. Zápis se může provádět pouze na stránkách, které jsou vymazány, proto je před zápisem do paměti flash nutné paměť pomocí příkazů zápisu hostitele vymazat. Tento cyklus zápisu/mazání způsobuje opotřebení buněk, což vede k omezené životnosti zápisu.
Zařízení NAND flash mohou být typu SLC (Single-Level Cell) nebo MLC (Multi-Level Cell). Typ SLC ukládá pouze jeden bit informací a k vyjádření 0 nebo 1 vyžaduje pouze dvě úrovně napětí. Jedná se o nejjednodušší implementaci NAND s nejvyšší odolností, která je přibližně 100 000 cyklů. Jak se geometrie budoucích generací pamětí flash zmenšují, zmenší se i odolnost (některé z nich už teď mají životnost 50 000 cyklů). Typ MLC obvykle ukládá dva bity informací a vyžaduje čtyři úrovně napětí k vyjádření 00, 01, 10 a 11. Opotřebení buňky je podobné u obou typů SLC a MLC, ale protože je nutné brát v potaz více úrovní napětí, výrazně se snižuje odolnost. Typ MLC nabízí obvykle kolem 10 000 cyklů, ale novější generace mají už kolem 3 000–5 000 cyklů.
Disk SSD flash se skládá z množství čipů flash, které umožňují dosáhnout vysoké kapacity. Ke zlepšení životnosti zařízení SSD se používá několik technik, které lze použít pro oba typy NAND. Hostitelský zápis může být vyvolán na libovolném místě. Mohou vzniknout aktivní body, které způsobují předčasné opotřebení těchto míst. K zabránění vzniku aktivních míst se používá technika zvaná wear-leveling (vyrovnávání opotřebení). Vyrovnávání opotřebení má za následek téměř rovnoměrné rozložení zápisu v rámci celkové kapacity zařízení SSD. Navýšení zápisu je míra poměru počtu zápisů do paměti flash vzhledem k zápisu hostitele. Pokud se například vygenerují 2 zápisy paměti flash na 1 hostitelský zápis, navýšení zápisu představuje rovněž 2. Ke snížení navýšení zápisu slouží metoda over-provisioning, která zlepšuje funkci „garbage collection“, a tím snižuje navýšení zápisu. A konečně, technika obvykle aplikovaná na typ MLC používá během cyklu zápisu nižší úrovně napětí, což vede ke zmírnění opotřebení buněk a zlepšení odolnosti zápisu.
I když by bylo obtížné přesně určit, jak dlouho zařízení SSD vydrží, existují postupy, které pomohou dobu životnosti odhadnout. Zařízení SSD používají metriku, kterou vyvinula organizace JEDEC, s názvem TBW (Terabytes Written). Skutečnou životnost zápisu ovlivňuje profil pracovního zatížení (například: náhodný či postupný zápis, velikost bloku nebo aktivita zápisu). Metrika TBW sice poskytuje určitý odhad, nicméně skutečný údaj se bude lišit. K určení očekávané životnosti je třeba údaj TBW rozdělit podle očekávaného průměru zápisů BW do jednotky. Životnost zařízení SSD by s výjimkou náročných aplikací měla být více než 3 roky.
Wear Leveling
Paměť NAND flash je náchylná k opotřebení způsobenému opakovanými cykly programování a mazání, ke kterým běžně dochází v aplikacích a systémech datových úložišť využívajících vrstvu Flash Translation Layer (FTL). Nepřetržité programování a mazání toho samého paměťového umístění nakonec danou část paměti opotřebuje a znehodnotí. V důsledku toho má paměť NAND flash omezenou životnost. Aby se zabránilo takovýmto scénářům, využívají se v rámci disku speciální algoritmy zvané wear leveling. Jak naznačuje samotný výraz (vyrovnávání opotřebení), poskytuje tato funkce způsob distribuování cyklů programování a mazání stejnoměrně po všech paměťových blocích na disku SSD. To zabraňuje neustálým cyklům programování a mazání na stejném paměťovém bloku, což vede k delší životnosti celé dané paměti NAND flash.
Existují dva typy vyrovnávání opotřebení – dynamické a statické. Dynamický algoritmus wear leveling zaručuje, že cykly programování a mazání budou distribuovány rovnoměrně mezi všemi bloky v rámci paměti NAND flash. Algoritmus je dynamický, protože se provádí pokaždé, když se data v zásobníku zapisování pročistí a zapíšou do paměti flash. Samotná dynamická metoda wear leveling nemůže zaručit, že se opotřebení vyrovnává stejnou měrou ve všech blocích. Existuje také speciální případ, kdy se data zapíšou a uloží do paměti flash na dlouhou nebo neurčitou dobu. Zatímco jiné bloky se aktivně přepínají, mažou a vkládají do fondu, tyto bloky zůstávají při procesu wear leveling neaktivní. Aby se zaručilo, že jsou tyto bloky do vyrovnávání opotřebení zahrnuty stejnou měrou, využívá se sekundární statický algoritmus. Statické vyrovnání opotřebení se zabývá bloky, které jsou neaktivní a mají v sobě uložená data.
Disky Dell SSD zahrnují statické i dynamické algoritmy vyrovnávání opotřebení, aby zajistily, že se bloky NAND opotřebovávají rovnoměrně, což prodlužuje životnost disku SSD.
Over Provisioning
Metoda Over Provisioning zlepšuje:
- Výkon při zápisu a IOPS
- Spolehlivost