HIGH PERFORMANCE SOLID STATE DRIVES V SERVERECH
Obsah 3| SSD disky pro použití v serverech
4| Čerstvé čipy – tak fungují SSD disky
Srovnání pevných disků Konstrukce Techniky zápisu Write Amplification Životnost Oblasti použití Shrnutí
9| Optimalizace výkonu SSD disku – rychlost nejsou žádné čáry
Aktivace AHCI Zvětšení Spare Area Secure Erase Partition Alignment ATA TRIM Shrnutí
14| Stohy flash pamětí s funkcí turbo – provoz SSD disků v polích RAID
s optimálním výkonem SSD a RAID řadiče Výkon: IOPS, latence a propustnost Měření výkonu pomocí FIO Určení Baseline výkonu Účinná opatření ke zvýšení výkonu Sledování stavu SSD disků a polí RAID Kontrola konzistence RAID Kontrolní seznam pro SSD disky v polích RAID Shrnutí
24| Glosář
thomas-krenn.cz | 3
SSD disky pro použití v serverech SSD disky se šíří neuvěřitelnou rychlostí a již brzy vytlačí klasické pevné disky snad ve všech oblastech. Tyto populární zázraky o vysokém výkonu slibují podstatně vyšší I/O výkon než běžné pevné disky – a to při nízké spotřebě elektrické energie. Díky tomu je možné dosáhnout vyššího výkonu a efektivnější spotřeby energie. Vzhledem k tomu, že se tato technologie těší stále větší popularitě, přispívají i autoři společnosti Thomas-Krenn AG k vysvětlení nových trendů a poskytují další užitečné tipy. Ve spolupráci s časopisy ADMIN Magazin a ITAdministrator již proto v průběhu času vyšla řada informativních odborných článků. Pro čtenáře
Tento e-book vznikl ve spolupráci s:
zajímající se o tuto problematiku přinášíme tyto články v podobě kompaktního e-booku. Pro usnadnění orientace jsme tento e-book rozdělili na tři kapitoly: Na počátku se zabýváme vysvětlením technologie SSD disků, abychom již předem vyloučili případné nejasnosti. Ve druhé části e-booku naleznete informace k navýšení výkonu jednotlivých SSD disků a upozornění na problémy, se kterými se v této souvislosti můžete setkat. Vylepšení výkonu u SSD disků v polích RAID tvoří třetí a poslední kapitolu. Jako malý doplněk se na konci e-booku nachází i glosář s nejdůležitějšími hesly k tématu SSD.
thomas-krenn.cz | 4
Čerstvé čipy
Tak fungují SSD disky První kapitola tohoto e-booku se zabývá principem fungování SSD disků. Současně objasňuje, odkdy se vyplatí takový SSD disk použít. SSD disky mají totiž s klasickými pevnými disky společnou jen jednu věc: Obě média ukládají data. SSD disky však uvnitř pracují zcela jinak než běžné pevné disky. Zatímco pevné disky zapisují data na
několik magnetických kotoučů, využívají SSD disky k ukládání dat několik flashových paměťových čipů – u kapacit kolem 200 GB mezi 10 a 20 kusy. Vzhledem k tomu, že u SSD disků se nepohybují žádné mechanické části jako u klasických disků, jsou zejména náhodné přístupy k datům podstatně rychlejší.
Srovnání pevných disků Pro srovnání výkonu SSD disků s klasickými pevnými disky je nutné se nejprve podívat na vnitřní konstrukci klasických pevných disků, které ukládají data na několika rotujících magnetických discích. Data jsou prostřednictvím čtecích/zapisovacích hlav ukládána na tyto disky, resp. jsou z nich čtena. Pokud se tedy má přečíst náhodný sektor pevného disku, musí disk přesunout čtecí/zapisovací hlavu na správné místo (Seek Time), a poté čekat, až požadovaný sektor na rotujícím kotouči projede pod čtecí/zapisovací hlavou (Latency Time). Tento Latency Time (latenční čas) zahrnuje v průměru dobu, která je potřebná pro půl otáčky. Součet vyhledávacích a latenčních časů (Seek Time
a Latency Time) se nazývá Random Access Time (průměrná přístupová doba). Ta se v závislosti na disku a jeho otáčkách pohybuje v rozsahu pět až 15 milisekund, což odpovídá 200 respektive 66 IOPS (I/O operacím za sekundu). SSD disky v porovnání s tím dosahují několik desítek tisíc náhodně rozdělených IOPS. U plynulých přenosů dat však klasický pevný disk drží krok mnohem lépe. V závislosti na typu dosahuje přenosové rychlosti v rozsahu 60 až 150 MB/s. SSD disky jsou sice na počátku schopny dosahovat rychlosti více než 250 MB/s, nicméně s tím, jak se zaplňuje jejich kapacita, tato hodnota klesá. Jak velký je tento pokles, to záleží mimo jiné i na algoritmech v SSD řadiči.
Konstrukce Nejmenší jednotkou ve flash čipu u SSD disku je paměťová buňka. V závislosti na typu ukládá tato paměťová buňka jeden nebo několik bitů:
_SLC (Single Level Cell) 1 bit _MLC (Multi Level Cell) 2 bity _TLC (Triple Level Cell) 3 bity
Disk typu SLC rozlišuje dva stavy nabití, disk typu MLC čtyři a disk typu TLC osm. Napětí vznikající při
zápisu do jedné paměťové buňky je ovšem pevné. Proto musí u typu MLC napětí pro zápis působit až čtyřikrát, aby bylo dosaženo maximálního stavu nabití. U disku typu SLC postačí nejvýše dva takové procesy – výkon při zápisu je díky tomu vyšší. Disky typu TLC vyžadují až osminásobné napětí. V současné době SSD disky typu TLC pronikly již na podnikové trhy (např. Samsung PM835T).
thomas-krenn.cz | 5
Při každém působení napětí dochází k malému opotřebení izolační vrstvy paměťové buňky. Vzhledem k tomu, že pro jeden jediný zápis na disku typu MLC je nutné aplikovat napětí častěji než u disku typu SLC, zvládne MLC menší počet zápisů (tzv. Program/Erase Cycles nebo také P/E cyklů). MLC vykazují nejčastěji životnost mezi 10 000 a 30 000 P/E cykly, SLC téměř 100 000 P/E cyklů. Modely typu TLC se pohybují na podstatně nižší úrovni v rozsahu cca 1 000 P/E cyklů. Několik paměťových buněk tvoří tzv. stránku. Ta je nejmenší strukturou, kterou je SSD řadič schopen číst nebo na ni zapisovat. Nicméně SSD řadič není schopen smazat nebo měnit obsah již popsané stránky. Tato stránka má zpravidla velikost čtyř kibibajtů (KiB) (= 4 096 bajtů). U MLC disků to odpovídá počtu 16 384 paměťových buněk. Flash čipy se šířkou výrobní struktury 25 nm mají stránky o velikosti osmi KiB.
Několik takových stránek je sdruženo do bloků. Takový blok se například skládá ze 128 stránek a obsahuje díky tomu 512 kB dat. Bloky o výrobním rozměru 25 nm využívají 256 stránek à osm KiB, v součtu tedy 2 MiB. Jeden blok je nejmenší jednotka, kterou je SSD řadič schopen mazat, a to tak, že přivede mazací napětí na celý blok. Teprve po smazání bloku je SSD řadič schopen nového zápisu na jednotlivé stránky. 1 024 bloků tvoří jeden sektor. Čtyři sektory jsou např. umístěny na jednom plátu, jak je zobrazeno na obr. 1. Jeden plát je velký zhruba jako nehet (167 mm2). Ve výrobě se z jednoho waferu získá cca 200 až 300 plátů. V závislosti na požadované kapacitě nakonec skončí jeden až osm plátů v tzv. thin small outline package (TSOP) – ano, to jsou ony černé čipy, které se nacházejí rovněž na paměťových modulech. Jeden SSD disk se nakonec skládá z jednoho až deseti TSOP a jednoho SSD řadiče.
Obr. 1: Plát na fl ash čipu se 4 sektory. Zdroj: Intel https://download.intel.com/pressroom/images/25mm_die.jpg
Techniky zápisu Popsaný princip interní funkce SSD disku vyžaduje speciální techniky zápisu, aby bylo dosaženo jak vysokého výkonu, tak i dlouhé životnosti SSD disku. Prvotní zápis na SSD disk je přitom ještě jednoduchý. Všechny bloky (a tím i všechny stránky) jsou
smazané. Nová data zapisuje SSD řadič přímo na příslušné stránky. Horší je to ve chvíli, kdy se mají již existující data měnit.
thomas-krenn.cz | 6
Bez přídavných mechanismů by SSD řadič musel veškeré stránky jednoho bloku nejprve načíst do cache, následně smazat celý blok, aby poté zapsal v mezipaměti uložená a změněná data zpět do bloku. Změna jednoho jediného bitu by tak čtením, smazáním a novým zápisem vytvořila 512 KiB dat. Tomu SSD řadič zabrání jednoduchým trikem. Pokud změní data jedné stránky, jednoduše nová data zapíše na jinou stránku, která je dosud smazaná. V interní tabulce přiřazení při tom SSD řadič poznamená, že data s logickou LBA adresou již nelze nalézt na stránce X, nýbrž na stránce Y. Původní stránku X označí jako neplatnou. Aby tato metoda fungovala, potřebuje SSD řadič dodatečnou paměťovou kapacitu. Jinak by totiž nemohl na zcela zaplněném SSD disku měnit žádná data. Z tohoto důvodu má každý SSD disk tzv. Spare Area (rezervní prostor). Typická velikost tohoto rezervního prostoru činí sedm až 41 procent (Intel DC S3700) jmenovité kapacity SSD disku. Jeden 200 GB SSD disk může tedy ve skutečnosti disponovat velikostí až 283 GB, nicméně 83,5 GB SSD disk před operačním systémem „schová“ a využívá tuto kapacitu jako rezervní prostor. S postupem času se mění čím dál více existujících dat. Další a další stránky SSD řadič označuje jako neplatné. Jednotlivé bloky nyní obsahují 40 až 60 procent skutečných dat,
zbývající stránky v nich jsou neplatné a nelze je zatím používat. Než se tedy rezervní prostor zcela vyčerpá, provede SSD řadič úklid. Během této tzv. Garbage Collection (sběr odpadků) zkopíruje SSD řadič dosud platné stránky jednoho bloku na volný blok, který tak bude naplněn jen zčásti. Zbylé stránky tohoto nového bloku zůstanou nepopsané a lze je využít pro další zápis. Původní blok poté SSD řadič smaže, a díky tomu jsou všechny stránky tohoto smazaného bloku schopné nového zápisu. Na obr. 2 je znázorněn příklad této funkce. Jak již bylo zmíněno v úvodu, je počet možných zápisů (P/E cyklů) na jednu paměťovou buňku omezený. Pokud je tedy nutné ukládat nová data, zapisuje je SSD řadič vždy nejprve na stránky, které jsou nejméně opotřebované. Tento proces je označován jako Dynamic Wear Leveling (dynamické rozdělení opotřebení). Dynamické proto, že jsou rozdělována jen nová nebo změněná data. V příkladu na obr. 2 je mnoho stránek neplatných, neboť jejich data byla změněna a uložena jinam. Při Garbage Collection se neplatné oblasti stanou znovu použitelnými. Tato metoda prodlužuje životnost SSD disku. Data, která se zapíší jen jednou a poté už se nemění, však na svých stránkách zůstanou. Static Wear Leveling jde pak ještě o krok dále a přesouvá periodicky i taková data na jiné stránky, které jsou již více opotřebované. Díky tomu se všechny stránky SSD disku skutečně opotřebovávají rovnoměrně a životnost SSD disku se znovu zvyšuje.
Obr. 2: Řada stránek je neplatných, neboť jejich data byla změněna a uložena jinam. Při Garbage Collection se neplatné oblasti stanou znovu použitelnými.
thomas-krenn.cz | 7
Write Amplification Prostřednictvím popsaných algoritmů se již zapsaná data, ačkoliv se nemění, kopírují do jiných stránek (buď funkcí Garbage Collection nebo Static Wear Leveling). Jeden zapsaný bajt tak může být SSD řadičem v průběhu času kopírován několikrát, a tím vést k několika procesům zápisu. Koeficient, který udává, jak často statisticky dochází k takovému kopírování, se označuje jako Write Amplification. Vysoká Write Amplification přirozeně vede k vysokému opotřebení, a tím i zkrácení životnosti.
Některé SSD řadiče (např. od společnosti Sandforce) se prostřednictvím komprimace dat v SSD řadiči snaží snížit počet potřebných procesů zápisu, aby se tak snížilo i opotřebení SSD disku. Další možností je rozšíření rezervního prostoru. Tím sice klesne použitelná kapacita disku, ale prodlouží se jeho životnost, neboť proces Garbage Collection bude nutné provádět méně často.
Životnost Životnost SSD disků je omezena životností paměťových buněk. S postupujícím používáním může docházet k výpadku většího počtu bloků. Pojem „výpadek“ je však v tomto případě relativní. Čím více proběhne P/E cyklů, tím déle trvá smazání jednoho bloku. Pokud tato doba potřebná ke smazání překročí určitou hranici, označí SSD řadič tento blok jako „Bad Block“ a namísto něho využije náhradní blok z rezervního prostoru. Tím sice nedojde ke ztrátě dat, nicméně klesne počet rezervních bloků. Může sice dojít ke vzniků jednotlivých chyb bitů (raw bit error rate, RBER), ty jsou však opraveny prostřednictvím ECC mechanismů. Až v případě velkého množství chyb bitů již ECC nemá možnost zasáhnout a dojde k neopravitelné chybě (uncorrectable bit error rate, UBER).
Aby byla v budoucnu životnost různých SSD disků snadno porovnatelná, schválila JDEC Solid State Technology Association oba standardy JESD218 (SSD Requirements and Endurance Test Method) a JESD219 (SSD Endurance Workloads). Díky tomu mohou výrobci udávat životnost svých SSD disků v TBW (Terabytes written, zapsané terabajty). Některé SSD disky již nyní prostřednictvím funkce SMART poskytují informaci o zbývající životnosti (Media Wearout Indicator) [1]. Obecně je však očekávaná životnost SSD disků při běžných počtech zápisů v zásadě srovnatelná s životností pevných disků, a nezřídka je i vyšší, neboť u SSD disků nedochází k mechanickým výpadkům (jako např. kolize zapisovacích hlav s „plotnou“).
thomas-krenn.cz | 8
Oblasti použití SSD disky se díky svým vlastnostem hodí k použití v řadě oblastí. Následující seznam je setříděný podle stoupajících investičních nákladů. Již SSD disky s menší kapacitou v rozsahu mezi 40 a 80 GB přináší u stolního PC výrazné výhody, co se týče produktivity. Při nízkých investičních nákladech slouží vedle pevného disku, který obsahuje uživatelská data, jako instalační médium pro operační systém a programy. Start počítače se tím výrazně zrychlí, jednotlivé aplikace se spouštějí rychleji a práce na počítači je plynulejší. SSD disky o vyšších kapacitách od 160 GB mohou v počítači klasický pevný disk zcela nahradit. O něco vyšší pořizovací náklady jsou v současné době již zanedbatelné a větší SSD disk mimo jiné zrychlí i přístup k uživatelským datům.
Další výhodou absence klasického pevného disku je i nepřítomnost jeho provozního hluku a výrazně nižší spotřeba elektrické energie. U notebooků tím lze prodloužit provozuschopnost baterie o 20 až 30 minut. Rovněž v serverech má použití SSD disků své opodstatnění. Zejména u databází s velkým počtem náhodných I/O přístupů se plně projeví výhody SSD disků. Zrcadlení SSD disků prostřednictvím RAID 1 chrání před ztrátou dat v případě výpadku jednoho SSD disku. SSD disky lze kromě toho využít i v diskovém poli RAID společně s klasickými pevnými disky jako zrychlenou paměť cache pro zápis/čtení. U Adaptecu se tato technologie nazývá maxCache a LSI ji označuje jako CacheCade.
Shrnutí SSD disky jsou sice stále ještě spojeny s vyššími pořizovacími náklady, nicméně se díky svému vyššímu I/O výkonu velmi často rychle vyplatí. Pro dobrý výkon je však rozhodující kvalita, s jakou výrobce implementoval algoritmy do SSD řadiče.
Poté, co jsme prošli základy SSD technologie, nám následující kapitola ukáže, jak lze pomocí AHCI, ATA TRIM, zvětšeného rezervního prostoru a správného přiřazení oddílů optimalizovat výkon SSD disku.
1 SMART Attribute u SSD disků společnosti Intel (https://www.thomas-krenn.com/de/wiki/SMART_Attribute_von_Intel_SSDs)
thomas-krenn.cz | 9
Optimalizace výkonu SSD disku Rychlost nejsou žádné čáry
SSD disky se stejně jako řada běžných pevných disků propojuje s počítačem přes rozhraní SATA. Pokud je počítač alespoň částečně aktuální, je schopen při startu SSD disk rozpoznat a je schopen jej ihned
používat. Poté, co jsme se v předchozí kapitole seznámili se základy SSD disků, se nyní dočteme, jak lze před použitím SSD disku dosáhnout kontrolou několika nastavení jeho optimálního výkonu.
Aktivace AHCI První krok na cestě k optimálnímu I/O výkonu SSD disku spočívá v tom, že se aktivuje režim Advanced Host Controller Interface (AHCI) v BIOSu. Ten na rozdíl od režimu IDE umožňuje Native Command Queuing (NCQ). Díky tomu dostává SSD disk od operačního systému hned několik I/O požadavků současně a nemusí po každém jednotlivém požadavku čekat na další. Vedení v SSD disku zůstává plné, SSD řadič může průběžně zpracovávat I/O požadavky, výkon stoupá. Kromě NCQ režim AHCI navíc nabízí i Device Initiated Power Management (DIPM) pro rozhraní SATA, jež významnou měrou redukuje spotřebu proudu
SSD disků v režimu spánku. To sice nezvýší výkon, ale prodlouží dobu provozu na baterii notebooku. Funkce DIPM je podporována jak ovladačem MSAHCI od Microsoftu, tak i operačním systémem Linux od verze jádra 2.6.24. Ovladač MSAHCI standardně používá funkci DIPM pouze v režimu úspory elektrické energie. Prostřednictvím nástroje Windows »powercfg« lze využití DIPM aktivovat i v jiných režimech. Pod Linuxem lze DIPM aktivovat pomocí Sysfs (listing 1). Třetí výhodou AHCI je, že lze vyměňovat mechaniky za provozu v režimu HotPlug.
Zvětšení Spare Area Jak již bylo zmíněno v první kapitole tohoto e-booku, není SSD řadič schopen měnit data již jednou popsané stránky (skládající se z několika paměťových buněk). Před opětovným zapsáním stránky by řadič musel vymazat celý blok, v němž se stránka nachází. Aby se tomu zabránilo, zapíše v takovém případě řadič změněná data jednoduše na jinou, dosud nepoužitou stránku, a odpovídajícím způsobem zaktualizuje svou interní tabulku přiřazení (obr. 3). Pokud je na SSD disku zpočátku uloženo málo dat, je množství volných stránek dostatečné. Kromě toho má každý SSD disk rezervní prostor, jehož stránky řadič pro tyto účely rovněž využije. Než se stránky zcela vyčerpají, provede SSD řadič pomocí nástroje „Garbage Collector“ potřebný úklid. Při tom zkopíruje roztroušené obsazené stránky z různých bloků do dosud volných stránek. Takto uvolněné
bloky pak může smazat. Tím získá k dispozici opět větší množství nepoužitých stránek. Tento „sběr odpadků“ však stojí čas, a tím i výkon. Kromě toho se interním kopírováním zvyšuje počet zápisů do jednotlivých paměťových buněk (stoupá Write Amplification). V důsledku toho klesá životnost těchto paměťových buněk. Jednoduchým trikem lze častému vyvolání Garbage Collection zabránit: Pokud během prvního použití SSD disku dojde k rozdělení asi jen 90 procent disponibilní paměti (Over-Provisioning), nebude se na zbývajících deset procent provádět žádný zápis. Příslušné stránky zůstanou nepoužité a SSD řadič může tyto stránky použít jako stránky z rezervního prostoru. Průzkumy společnosti Intel ukazují, že při takové úspoře deseti procent datového množství stoupá náhodný I/O výkon na dvouapůlnásobek. [2] (obr. 4).
2 Zvětšení Spare Area (https://www.thomas-krenn.com/de/wiki/SSD_Performance_optimieren)
thomas-krenn.cz | 10
Listing 1: DIPM konfigurace v systému Linux root@ubuntu:~# hdparm -I /dev/sda | grep Device-initiated Device-initiated interface power management root@ubuntu:~# echo min_power > /sys/class/scsi_host/host0/link_power_management_policy root@ubuntu:~# hdparm -I /dev/sda | grep Device-initiated * Device-initiated interface power management
Tabulka přiřazení:
Obr. 3: Řada stránek (označené červeně) je neplatných, neboť jejich data byla změněna a uložena jinam. SSD řadič odpovídajícím způsobem zaktualizuje svou tabulku přiřazení.
Secure Erase Jak již bylo vysvětleno, není SSD řadič schopen změnit data na již jednou popsané stránce, nýbrž musí napřed smazat celý blok s několika stránkami. Pro opětovné použití již jednou použitého SSD disku se proto doporučuje nejprve smazat všechny jeho bloky. U většiny SSD disků toho lze dosáhnout jednoduchou funkcí Secure Erase. [3] Takový způsob mazání má dle specifikace ATA zajistit bezpečné smazání všech dat uložených na datovém nosiči. U většiny SSD disků, jež funkci Secure Erase podporují, to vede k fyzickému smazání všech bloků na SSD disku. SSD disk pak lze opět využít s původním optimálním výkonem, neboť na všechny stránky lze znovu přímo zapisovat. U některých nových SSD
disků však je funkce Secure Erase implementována jinak. Tyto SSD disky automaticky šifrují všechna zapisovaná data. V případě Secure Erase se pak jednoduše bezpečně smaže celý klíč – data pak již nelze rozšifrovat, i když jsou stále ještě fyzicky přítomna. U takových SSD disků nedojde ke smazání všech bloků. V tomto případě musí být bloky smazány pomocí funkce TRIM, aby bylo dosaženo optimálního výkonu pro nové použití SSD disku. Windows 7 provádí funkci TRIM při formátování automaticky. V Linuxu k tomu sice »hdparm« nabízí volbu »‐‐trim‐sector‐ranges«-, stránka s manuálem pro hdparm 9.43 (Ubuntu 14.04) však od jejího použití stále ještě odrazuje.
3 SSD Secure Erase (https://www.thomas-krenn.com/de/wiki/SSD_Secure_Erase)
thomas-krenn.cz | 11
Partition Alignment Pod pojmem Partition Alignment chápeme vyrovnání oddílů na určitých hranicích datového nosiče [4]. Správné přiřazení oddílů zaručuje optimální výkon přístupu k datům. Speciálně u SSD disků (s velikostí stránky o např. 4 096 nebo 8 192 bajtech), pevných disků se sektory po 4 KiB (4 096 bajtů) a RAID polí vede chybné vyrovnání oddílů ke sníženému výkonu. [5] V minulosti začínal první oddíl vždy na LBA adrese 63 (odpovídá 64. sektoru), aby byl kompatibilní se systémem DOS a starým adresováním CHS (Cylindr/ Hlava/Sektor). Velikost takového (logického) sektoru činí 512 bajtů. U běžných pevných disků (s fyzickou velikostí sektorů 512 bajtů) to s sebou nenese žádné nevýhody. Novější pevné disky s fyzickou velikostí sektorů 4 096 bajtů (4 KiB) sice směrem ven emulují velikost sektoru 512 bajtů, interně však pracují s 4 096 bajty. Také SSD disky pracují s velikostí stránky 4 KiB resp. 8 KiB. U těchto nových pevných a SSD disků je však proto rozdělení oddílů počínající na LBA adrese 63 velmi problematické. Pokud uživatel takový oddíl naformátuje typickou velikostí bloku po 4 KiB, nevejdou se 4 KiB bloky systému souborů přímo do stránek SSD disku o velikosti 4 KiB nebo 8 KiB (obr. 5). Při zápisu jednoho jediného 4 KiB bloku systému souborů pak je nutné změnit dvě 4 KiB stránky. Vše se ještě komplikuje
tím, že příslušné sektory o velikosti 512 bajtů musí zůstat zachovány, a tím dochází k Read/Modify/ Write (Čtení/Modifikace/Zápis). Následkem je až o 25 násobek horší výkon při zápisu u malých přístupů k datům, jak ukazují analýzy společnosti IBM. [6] Aby se těmto problémům zabránilo, doporučuje se zarovnání na 1 MiB – tím se zajistíme na dlouhou dobu. Při adresování logických sektorů o velikosti 512 bajtů to odpovídá 2 048 sektorům (obr. 6). Aktuální verze Windows (Windows 7, Windows 8) u oddílů větších než 4 GiB provádějí takové přiřazení na 1 MiB. Starší verze (Windows XP, Windows Server 2003) vyžadují ruční přiřazení. Aktuální distribuce Linuxu při instalaci rovněž používají přiřazení o velikosti 1 MiB. Při pozdějším zřizování oddílů pomocí příkazu »fdisk« jsou potřebné možnosti »c« (deaktivace režimu kompatibility se systémem DOS) a »u« (používá jako jednotky sektory namísto cylindrů), aby bylo dosaženo správného přiřazení. Pro kontrolu ukáže »fdisk ‐l ‐u« spouštěcí sektory všech oddílů. Pokud jsou tyto sektory dělitelné číslem 2 048, jsou všechny oddíly vyrovnány správně (listing 2). LVM verze od 2.02.73 používají díky patchi od Mike Snitzera rovněž přiřazení 1 MiB. [7]
Obr. 4: O něco větší rezervní prostor má pozitivní účinky. Pokud se zvýší úroveň Over-Provisioningu o 20 %, vzroste I/O výkon o 2,5 násobek. Navýšení na 40 % však nepřinese žádný výrazný nárůst.
4 přiřazení oddílů (https://www.thomas-krenn.com/de/wiki/Partition_Alignment) 5 Ben Martin, RAID-Systeme unter Linux optimal konfigurieren (Optimální konfigurace RAID systémů pod Linuxem), ADMIN 02/2011, S. 80
thomas-krenn.cz | 12
ATA TRIM Další funkcí k navýšení výkonu a prodloužení životnosti je ATA TRIM. Příkazem TRIM operační systém SSD disku sdělí, které datové oblasti (například datové oblasti smazaného souboru) již nepotřebuje. SSD řadič díky tomu může příslušné bloky smazat, což má podobně jako zvětšený rezervní prostor zvýšit výkon a použitelnost SSD disku. Aby funkce ATA TRIM fungovala, musí být podporována jak SSD diskem, tak i operačním a souborovým systémem. Windows 7 s NTFS nebo Linux od verze jádra 2.6.33 s Ext4 s opcí Discard tyto požadavky splňují. V případě Windows 8 je prostřednictvím automatické optimalizace
Storage Optimizeru zaslán SSD disku příkaz TRIM a defragmentace se automaticky deaktivuje. Od verze jádra 2.6.38 podporují Ext4 a XFS navíc i Batched Discard s časovým posunem, jenž je důležitý u SSD disků s pomalou funkcí TRIM. Na skutečně získaný výkon díky použití funkce ATA TRIM panují různé názory. Pravdou však je, že funkci ATA TRIM lze použít jen pro jednotlivé SSD disky. RAID řadiče tuto funkci nepodporují. Mírně zvětšený rezervní prostor využitím 90 procent kapacity SSD disku pro jednotku RAID by v tomto případě měl absenci funkce TRIM vyrovnat.
Listing 2: Přiřazení oddílů pomocí fdisk: root@ubuntu: ~# fdisk -l -u /dev/sda Disk /dev/sda: 240,1 GB, 240057409536 bajtů 255 hlav, 63 sektorů/stopu 29 185 cylindrů, celkem 468 862 128 sektorů jednotky = sektory po 1 × 512 = 512 bajtů Sector size (logical/physical): 512 bajtů / 512 bajtů I/O size (minimum/optimal): 512 bajtů / 512 bajtů Identifikace pevného disku: 0xf9ef975a
Zařízení boot.
Počátek
Konec
Bloky
Id
Systém
/dev/sda1 * /dev/sda2
2048 718848
718847 468858879
358400 234070016
7 7
HPFS/NTFS/exFAT HPFS/NTFS/exFAT
LBA-Address Obr. 5: Oddíly kompatibilní s DOS, jež začínají na adrese LBA 63, mají za následek značné snížení výkonu u přístupů k datům.
LBA-Address Obr. 6: Správně vyrovnaný oddíl přináší optimální výkon u operací spojených se zápisem a čtením.
6 Linux on 4KB-sector disks (https://www.ibm.com/developerworks/linux/library/l-4kb-sector-disks) 7 LVM Alignment Patch (https://www.redhat.com/archives/linux-lvm/2011-July/msg00063.html
thomas-krenn.cz | 13
Shrnutí Použití SSD disků nabízí mnoho možností úprav výkonu. Tato nastavení mohou přinést výrazné zlepšení rychlosti a prodloužení životnosti. Aby bylo možné si dlouhodobě užívat výhod SSD disků, jejichž pořizovací hodnota přepočtená na gigabajt
je v porovnání s běžným HDD stále ještě dost vysoká, měli byste mít neustále na zřeteli správná nastavení. Třetí kapitola tohoto e-booku vysvětluje, jak lze optimálně provozovat SSD disky spojené do diskového pole RAID.
thomas-krenn.cz | 14
Stohy flash pamětí s funkcí turbo Optimální výkon SSD disků v polích RAID V předchozích kapitolách jsme si vysvětlili stavbu a funkce SSD disku a optimalizování provozu jednotlivých SSDs. V této kapitole půjde o správná
nastavení softwarového a hardvarového RAIDu pro optimální provoz s využitím SSD disků.
SSDs a RAID řadiče Až do nedávné doby se v diskových polích RAID používaly výhradně klasické pevné disky. Hardwarové RAID řadiče tak byly dosud optimalizovány výlučně na I/O charakteristiky pevných disků. Odlišné vlastnosti I/O u SSD disků však vyžadují optimalizaci RAID řadiče a nastavení RAID. Jak získat optimální výkon SSD disků v polích RAID vám ukážeme v tomto workshopu. Běžné pevné disky ukládají data na jeden nebo několik magnetických disků, jež jsou popisovány a čteny zapisovací/čtecí hlavou. Na rozdíl od nich si SSD disky zcela vystačí bez mechanických součástí. Data se na nich ukládají do flashových paměťových buněk. Čipy s SLC (Single Level Cell) ukládají 1 bit do jedné paměťové buňky, čipy MLC (Multi Level Cell) 2 bity, a čipy s TLC (Triple Level Cell) ukládají 3 bity. Několik paměťových buněk je v jednom flash čipu sdruženo do podoby jedné stránky (například 8 KiB). Několik stránek pak tvoří blok (cca 2 MiB). Na této úrovni se již projevuje jedna zvláštnost flash pamětí: Nová data lze sice zapisovat do nepoužitých stránek – dodatečná změna však není
možná. To znovu funguje až tehdy, když SSD řadič nejprve smaže celý příslušný blok. Aby byl neustále k dispozici dostatečný počet nepoužitých stránek, disponují SSD disky dodatečnými paměťovými buňkami (rezervní prostor). V závislosti na SSD se velikost rezervního prostoru pohybuje v rozsahu 7 a 78 procent nominální kapacity. Funkce TRIM umožňuje sdělit SSD disku, které oblasti dat se již nepoužívají, a je tedy možné je smazat. V tomto případě operační systém SSD řadiči sdělí, které datové oblasti je možné smazat. Funkci TRIM lze jednoduše implementovat pro jednotlivý SSD disk, pro paritní RAID by však byla realizace značně náročná. Proto dosud žádný hardwarový RAID řadič funkci TRIM nepodporuje. Tento nedostatek však lze relativně snadno obejít: Většina Enterprise SSD disků je z výroby dodávána se srovnatelně velkým rezervním prostorem, a proto podpora funkce TRIM nehraje v podstatě žádnou roli. A pokud by někomu výkon stále ještě nestačil, má možnost dodatečně využít funkce Over-Provisioning – k tomu si však řekneme víc později.
thomas-krenn.cz | 15
Výkon: IOPS, latence a propustnost Při měření výkonu SSD jsou rozhodující především tři měřené veličiny: IOPS, latence a propustnost. Pojem IOPS (Input/Output Operations Per Second) popisuje počet vstupních/výstupních operací za sekundu. Čtecí IOPS se konkrétně týkají výstupů za sekundu, zápisové IOPS vstupů. Velikost takové I/O operace činí 4 KiB (není-li uvedeno jinak). IOPS se většinou měří v režimu „random“, tedy prostřednictvím náhodně rozdělených přístupů, aby byly zjištěny skutečně ty nejhorší možné hodnoty. Zatímco běžné pevné disky zvládnou jen cca 100– 300 IOPS, nabízejí aktuální Enterprise SSD disky až 36 000 zápisových a 75 000 čtecích IOPS (například 800GB model Intel DC S3700 SSD). Latence popisuje čekací dobu v ms, než bude provedena jedna samostatná I/O operace. Typická
průměrná latence se u SSD disků pohybuje v rozsahu 0,1 až 0,3 ms, u pevných disků mezi 5 a 10 ms. Zde je nutné si uvědomit, že výrobci pevných disků popisují latencí jen čas jedné poloviční otáčky „plotny“. Ke skutečné latenci, tedy průměrné přístupové době, je zde nutné připočíst i dobu změny stopy (Seek Time). A propustnost následně označuje přenosovou rychlost dat v megabajtech za sekundu (MB/s). Ta se obvykle měří pomocí větších a sekvenčních I/O operací. SSD disky zpravidla dosahují dvou- až trojnásobné propustnosti než pevné disky. U SSD disků s nižším počtem flash čipů (SSD disky s nižší kapacitou) je zapisovací výkon poněkud omezený a pohybuje se zhruba na úrovni pevných disků.
Výkon SSD disku ovlivňují následující faktory: _Read/Write Mix: U SSD disků se na hardwarové úrovni operace čtení a zápisu značně liší. Na základě vyššího overhead řadiče pro zápisové operace dosahují SSD disky zpravidla vyššího počtu čtecích IOPS než zápisových IOPS. Tento rozdíl je zvlášť vysoký u SSD disků pro běžné spotřebitele. U profesionálních (Enterprise) SSD disků výrobci vylepšují zapisovací výkon prostřednictvím většího rezervního prostoru a optimalizovaného firmwaru řadiče. _Random/Sequential Mix: Počet možných IOPS závisí kromě toho na tom, zda jsou přístupy rozdělené na celou datovou oblast (oblast LBA) nebo zda se provádějí sekvenčně. U náhodných přístupů roste náročnost na management SSD řadiče a počet možných IOPS z tohoto důvodu klesá.
_Queue Depth: Pojem Queue Depth označuje délku fronty v I/O cestě k SSD. V případě větší fronty (např. 8, 16 nebo 32) operační systém nakonfigurovaný počet I/O operací shrne, než je pošle do SSD řadiče. Větší Queue Depth zvyšuje počet možných IOPS, neboť SSD disk může své požadavky zasílat souběžně na flash čipy. Současně však zvyšuje průměrnou latenci, a tím i čekací dobu na jednu jedinou I/O operaci – právě proto, že ne každá operace je ihned zaslána na SSD disk, nýbrž teprve tehdy, až se fronta naplní. _Spare Area: Velikost rezervního prostoru má přímý vliv na výkon náhodného zápisu (Random Write) SSD disku (a tím i na kombinaci výkonu čtení/zápisu). Čím větší je rezervní prostor, tím méně často musí SSD řadič provádět interní restrukturalizaci dat. SSD řadič tak má více času na požadavky hosta – roste výkon Random Write.
thomas-krenn.cz | 16
Měření výkonu pomocí FIO Propustnost čtení fio --name=readTP --rw=read --size=5G --bs=1024k –direct=1 --refill_buffers
--ioengine=libaio --iodepth=16
Propustnost zápisu fio --name=writeTP --rw=write --size=5G --bs=1024k –direct=1 --refill_buffers
--ioengine=libaio --iodepth=16
IOPS čtení fio --name=readIOPS --rw=randread --size=1G --bs=4k –direct=1 --refill_buffers
--ioengine=libaio --iodepth=16
IOPS zápisu fio --name=writeIOPS --rw=randwrite --size=1G --bs=4k –direct=1 --refill_buffers
--ioengine=libaio --iodepth=16
IOPS Mixed Workload, 50 procent čtení a 50 procent zápisu fio --name=mixedIOPS --rw=randrw --size=1G --bs=4k –direct=1 --refill_buffers
--ioengine=libaio --iodepth=16
Určení Baseline výkonu Výše uvedené vlastnosti SSD disků vyžadují speciálně vyladěné výkonnostní testy. Konkrétně pak určení stabilních hodnot výkonu ztěžuje jak FOB stav (Fresh out of the Box), tak i přechodové fáze mezi zatížením. Výsledné hodnoty jsou tak závislé na následujících faktorech: _Zapisující přístupy a předpříprava – stav SSD disku před testem. _Workload Pattern – I/O Pattern (Read/Write Mix, velikosti bloků) během testu. _Data Pattern – zapisovaná data. Požadavky na testy SSD disků s vypovídající hodnotou dokonce přiměly organizaci SNIA k tomu, aby zveřejnila vlastní „Enterprise Performance Test Specification“ (PTS).
Ve většině případů však není dána možnost realizovat testy v takovém rozsahu. V první fázi často stačí určit pomocí několika prostředků tzv. „Baseline Performance“ SSD disku. Jejím prostřednictvím obdržíte ve formě MB/s a IOPS parametry střižené na míru vašemu systému. Tabulka „Měření výkonu pomocí FIO“ se podrobněji zabývá výkonnostním nástrojem „Flexibilní IO tester“ (FIO). FIO je rozšířený především pod Linuxem, nicméně je k dispozici i pro Windows a VMware ESXi. Byl vyvinut zakladatelem Linux Block Layeru, Jensem Axboeem, a skrývá v sobě značné znalosti a funkce. Využijte tuto tabulku pro jednoduchý test výkonu vašeho SSD disku pod Linuxem. Uživatelé Windows musí odstranit parametry „libaio“ a „iodepth“.
thomas-krenn.cz | 17
Obr. 7: Overhead pro latence v HWR činí cca 0,04 ms. RAID 1 jako SWR zvyšuje latence na rozdíl od jednotlivého SSD disku jen minimálně.
RAID 1, RAID 5 a RAID 10 s SSDs Naše analýza SSD disků spojených v diskovém poli RAID ukazuje, jak se vyvíjejí hodnoty výkonu v souvislosti s navyšováním počtu SSD disků. Kromě toho se testy soustřeďují i na různé charakteristiky jednotlivých úrovní polí RAID. Nastavení hardwaru pro testy RAID se skládá z SSD disku Intel řady DC S3500, RAID řadiče Avago (dříve LSI) MegaRAID 9365 a základní desky Supermicro X9SCM-F. Velikost SSD disku činí 80 GB. Mějte na paměti, že výkon SSD disku v rámci řady je závislý
i na jeho kapacitě. Model o velikosti 240 GB vykazuje oproti modelu o kapacitě 80 GB vyšší výkon. Jako software pro měření výkonu používáme TKperf běžící na Ubuntu 14.04. Tkperf realizuje PTS organizace SNIA s využitím FIO. Od verze 2.0 vytváří disková RAID pole pod Linuxem (SWR) automaticky pomocí mdadm, hardwarová pole RAID (HWR) pro řadič Avago MegaRAID pomocí storcli. Plánovaná je také podpora pro RAID řadič od Adaptecu.
RAID 1 RAID 1 je značně rozšířený díky existující odolnosti vůči výpadkům. V případě čtecích přístupů lze navíc profitovat z toho, že se přistupuje na oba SSD disky současně. Jak SWR, tak i HWR tuto domněnku potvrzují a při náhodném čtení pomocí bloků o velikosti 4 K poskytují 107 000 a 120 000 IOPS – tedy přece jen více než 1,4 násobek oproti
samostatnému SSD disku. Náhodné přístupy se zápisem by mělo diskové pole RAID zpracovat stejně rychle jako SSD disk. Testy však v oblasti SWR a HWR ukazují na pokles výkonu o cca 30 procent při náhodném zápisu a 50/50 Mixed Workloads. Potěšujících výsledků je dosaženo v testu latence pro SWR. Latence se u všech tří zatížení pohybují
thomas-krenn.cz | 18
jen minimálně nad hodnotami samostatného SSD disku. Ve vztahu k HWR řadič RAID latenční čas
zvyšuje. Konstantní overhead v rozsahu cca 0,04ms se zobrazuje u všech zatížení (obr. 7).
RAID 5 Znakem RAID úrovně 5 jsou paritní data, jež při zápisu dat mají za následek zvýšenou náročnost. Ta se výrazným způsobem projevuje ve výsledcích testů IOPS. Diskové pole RAID 5 se třemi SSD disky dosahuje při náhodném zápisu prostřednictvím 4 K stejného počtu IOPS, jako samostatný SSD disk. Kdo věří tomu, že doplnění dalšího SSD disku do pole RAID 5 zvýší výkon zápisu, je vedle. Intel tuto okolnost podrobně analyzuje ve svém whitepaperu „Intel SSD DC S3500 Series Workload Characterization in RAID Configurations“. [8] Teprve při zapojení osmi SSD disků v poli RAID 5 je dosahováno dvojnásobných IOPS oproti třem SSD diskům. Při porovnání HWR a SWR jsou u obou výsledky se třemi SSD disky stejné. Sestava se čtyřmi SSD disky v poli RAID 5 má u SWR lepší výsledky. Mixed Workloads a čisté zápisy se 4 K leží cca 4 000 IOPS nad HWR. Obrázek 8 shrnuje výsledky jediného SSD disku, a dále HWR a SWR se třemi a čtyřmi SSD disky v poli RAID 5.
Čím náročnější na čtení zátěž je, tím méně se projevují výpočty parity. HWR dodává se čtyřmi SSD disky v RAID 5 téměř 180 000 IOPS – to je více než dvojnásobek jednotlivého SSD disku. SWR této úrovně nedosahuje a těsně překračuje hranici 150 000 IOPS. Test latence ještě více zdůrazňuje rozdíl mezi přístupy pro čtení a zápis. Od čtení přes 65/35 mixed k zápisu se v případě HW přičte ještě 0,12 ms. SWR vykazuje na jeden workload nárůst v rozsahu cca 0,10 ms. Žádné slabiny nevykazuje RAID 5 při propustnosti čtení prostřednictvím 1 024 K bloků. HWR zpracovává při čtyřech SSD v poli RAID 5 více než 1,2 Gbit/s, SWR jen mírně zaostává s hodnotou 1,1 GBit/s. Propustnost zápisu je omezena 80 GB modelem, který dle specifikace končí při zápisu na hranici 100 MBit/s. Čtyři SSD disky v poli RAID dosahují v testu HWR téměř 260 MBit/s, SWR zvládá 225 Mbit/s.
Obr. 8: Nápadné jsou nízké hodnoty IOPS u náhodného zápisu v RAID 5. Ve srovnání HWR se SWR hraje workload roli. 8 Whitepaper k měření výkonu u SSD disků (http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/ssd-dc-s3500-workload-raid-paper.pdf)
thomas-krenn.cz | 19
RAID 10 Jak již název naznačuje, je diskové pole RAID 10 kombinací polí RAID 1 a RAID 0. Díky nasazení čtyř SSD disků se nabízí přímé srovnání výkonu s polem RAID 5. Co se týče kapacity, je u diskového pole RAID 10 k dispozici sice jen 50 procent čisté kapacity, přináší ale vůči RAID 5 řadu výhod především pro uživatele, kteří mají mnoho náhodných zápisů.
Obrázek 9 jednoznačně znázorňuje slabiny zápisu pole RAID 5 s ohledem na IOPS. Rovněž lze vidět i zvýšené latence u pole RAID 5 vznikající v důsledku potřebných výpočtů parity. RAID 10 naproti tomu dosahuje latencí, jež se řídí časy jednotlivých SSD disků. Komu na výkonu při zápisu a latencích nezáleží, může přesto s klidem vsadit na RAID 5.
Obr. 9: Výkon polí RAID 5 a RAID 10 značnou měrou závisí na účelu použití. IOPS při náhodném čtení jsou u pole RAID 5 výrazně vyšší. Čím víc je náhodných zápisů, tím lepších výsledků dosahuje RAID 10. Latence na úrovni SSD získáte jen díky poli RAID 10.
Účinná opatření ke zvýšení výkonu Při použití hardwarových řadičů RAID pro SSD disky v polích RAID platí následující doporučení: Používejte pokud možno aktuální řadiče RAID! Firmware novějších řadičů RAID je podstatně lépe optimalizován pro SSD disky než starší modely. V případě řadičů Avago MegaRAID mají například nové 12 GBit SAS řadiče nyní standardně integrovánu funkci k optimalizaci výkonu SSD disků v polích RAID (FastPath). Pro navýšení výkonu HDD disků
v polích RAID byly v nedávné době hardwarové řadiče RAID vybaveny vyrovnávací pamětí. Aktuální řadiče disponují vyrovnávací pamětí v rozsahu 512 MB až 1 GB. Tu lze využít jak pro zápis (Write Cache), tak i pro čtení (Read Ahead). V případě SSD disků v polích RAID byste se však měli použití této vyrovnávací paměti z níže popsaných důvodů vyhnout.
Deaktivace Write Cache V případě HDD disků v polích RAID poskytuje vyrovnávací paměť pro zápis (Write Back Policy) výrazný nárůst výkonu. Především malé a náhodné přístupy se zápisem je řadič RAID schopen optimálně ukládat do mezipaměti, než je zapíše na pomalé pevné disky. Počet možných zápisů IOPS stoupá odpovídajícím způsobem z několika málo
set až na několik tisíc IOPS. Kromě toho citelně klesá latence – z 5 až 10 ms na méně než 1 ms. V případě polí RAID 5 a 6 s disky typu HDD přináší vyrovnávací paměť pro zápis další výhodu: Bez mezipaměti by potřebná operace čtení pro výpočet parity (heslo Read-Modify-Write) představovala totiž dodatečné zpoždění.
thomas-krenn.cz | 20
Díky mezipaměti se tak může stát s časovým odstupem. Aby v případě výpadku proudu nedošlo ke ztrátě dat, musí být použitá vyrovnávací paměť pro zápis chráněná modulem BBU nebo modulem pro ochranu flash paměti (LSI CacheVault nebo Adaptec ZMCP). V případě SSD disků je vše jinak: Jejich výkon je již tak vysoký, že vyrovnávací paměť pro zápis působí jako brzda. To potvrzují i naše výsledky měření
na obrázku 10: U pole RAID 5 se čtyřmi SSD disky klesají zapisovací IOPS při aktivovaném Write Back ze 14 400 na 3 000 – to je o téměř 80 procent méně IOPS. Jedinou výhodou vyrovnávací paměti pro zápis jsou nízké latence zápisu u sad diskových polí RAID 5. Vzhledem k tomu, že však jsou u polí RAID 1 (bez výpočtu parity a vyrovnávací paměti pro zápis) ještě nižší i tato výhoda velmi rychle odpadá. Doporučení proto zní: Provozovat SSD disky v polích RAID bez vyrovnávací paměti pro zápis (tedy „Write-Through“ namísto „Write-Back“). Tím můžete ušetřit cca 150 až 200 euro za modul BBU nebo modul flash ochrany.
Obr. 10: Avago MegaRAID 9361 podává bez vyrovnávací paměti pro zápis a bez Read Ahead nejlepší IOPS výkon pro pole SSD RAID.
Vypnutí Read Ahead Read Ahead – tedy čtení datových bloků, jež se skrývají za aktuálně dotazovanými daty – představuje rovněž optimalizací výkonu, jež přináší skutečné výhody pouze ve spojení s pevnými disky. U pole RAID 5 se čtyřmi SSD disky brzdí aktivovaný Read Ahead čtecí IOPS v našem testu o 20 procent (z původních 175 000 na 140 000 čtecích IOPS). U propustnosti nejsou při čtení pomocí 64 K nebo
1 024 K bloků žádné rozdíly ve výkonu. Jedině u propustnosti pomocí 8 K bloků vykazuje Read Ahead v našich testech výhody. Kromě toho může Read Ahead přinést výhody pouze u testů čtení jednotlivých vláken (například pomocí dd pod Linuxem). Oba vzory přístupů jsou však v provozu na serverech netypické. Naše doporučení proto zní: Provozujte SSD disky v polích RAID bez Read Ahead.
Over-Provisioning Jak již bylo zmíněno, má velikost rezervního prostoru přímý vliv na výkon Random Write na SSD disku. Již malé zvětšení rezervního prostoru může výraznou měrou zvýšit výkon Random Write a trvanlivost (endurance) SSD disku. Toto doporučení z počátků éry SSD disků neztratilo svou platnost ani do dnešního dne. U aktuálních SSD disků je však jejich životnost již natolik dostačující, že zvětšení rezervního prostoru má smysl v první řadě z důvodů souvisejících s výkonem. Velikost rezervního prostoru můžete velmi snadno zvýšit
ručně provedenou funkcí Over-Provisioning, a to tak, že pro sadu polí RAID nakonfigurujete pouze část kapacity SSD disku (cca 80 procent) a zbytek necháte volný. Pokud jste SSD disk používali již dříve, proveďte ještě Secure Erase – tím vymažete veškeré flash buňky. Teprve pak může řadič SSD tyto volné oblasti využít jako rezervní prostor. Jak ukazuje obrázek 4, Write IOPS se při 20 procentech OverProvisioningu téměř ztrojnásobí (na příkladu Intel DC S3500 800 GB SSD).
thomas-krenn.cz | 21
Poznámka pod čarou: Over-Provisioning nemá vliv na čistý výkon čtení nebo sekvenční výkon zápisu
– přináší tedy výhodu výkonu pouze u náhodného zatížení mixed read/write nebo čistě zápisového.
Použití pod Linuxem: Deadline I/O Scheduler U SSD disků a polí RAID s disky SSD přináší Deadline I/O Scheduler dle zkušeností nejvyšší výkon. Ubuntu od verze 12.10 Deadline Scheduler standardně používá. Ostatní distribuce zčásti sázejí na CFQ Scheduler, ten je však optimalizován především pro pevné disky. Pomocí jednoduchého cat /sys/ block/sda/queue/scheduler zkontrolujte, jaký plánovač (scheduler) (v tomto případě pro Device sda) bude použit. Až do dalšího restartu můžete v rootu
nastavit Scheduler pomocí echo deadline > /sys/ block/sda/queue/scheduler na Deadline. Informace o permanentní změně plánovače naleznete v dokumentaci k použité distribuci Linuxu. Ve střednědobém horizontu nahradí mechanismus řazení do front Linux Multi-Queue Block IO (blk- mq) tradiční I/O plánovače pro SSD disky. Než však dojde na použití blk-mq i u distribucí Long-Term-Support Enterprise, bude to ještě nějakou dobu trvat.
Sledování stavu SSD disků a polí RAID Flash buňky v SSD disku zvládnou jen omezený počet zapisovacích cyklů. Konečná životnost je dána interní konstrukcí paměťových buněk, jež během přístupů se zápisem podléhají tzv. cyklům Program/ Erase (P/E). Floating Gate v buňkách, jež se používá k zápisu do buňky, se s každým cyklem opotřebovává. Pokud opotřebení buňky překoná jistou mez, řadič SSD disku tuto buňku označí jako Bad Block a nahradí ji jiným blokem z rezervního prostoru. Z tohoto způsobu fungování SSDs je možné odvodit minimálně dva indikátory: Opotřebení flash buněk, tzv. Media Wearout Indicator. Počet zbývajících bloků rezervního prostoru, zvaný též Available Reserved Space. V ideálním případě výrobce tyto dva údaje poskytne uživateli prostřednictvím atributů SMART. Pro bezvadný dozor nad atributy je nezbytná podrobná specifikace SMART pro SSD disk. Důvodem je to, že interpretace hodnot není standardizovaná a u různých výrobců se liší. Jako příklad zde slouží Intel a Samsung. Jejich atributy se sice liší v oblasti ID a názvu, použitá hodnota je však přinejmenším stejná. Pomocí nástroje smartctl spuštěného v příkazovém řádku vyvolejte SMART atributy pro SSD disk, pomocí megaraid- a sg-Devices také pro řadiče Avago MegaRAID a Adaptec:
smartctl -a /dev/sda smartctl -a -d megaraid,6 /dev/sda smartctl -a -d sat /dev/sg1 To ukazuje, jak důležitá je výrobci poskytnutá specifikace pro spolehlivé sledování stavu. Společnost Intel je mimochodem u svých SSD disků pro datová centra vzorem a poskytuje detailní specifikaci včetně SMART atributů. Integrace SMART sledování do monitorovacího frameworku, jako je Icinga, je dalším krokem. V tomto případě musí zásuvný modul využít specifikace výrobců a správně interpretovat hodnoty atributů. Tým Thomas-Krenn za tím účelem pomocí check_smart_attributes [9] vyvinul zásuvný modul, jenž v databázi JSON zobrazuje specifikaci atributů. Od verze 1.1 tento zásuvný modul sleduje také SSD disky na řadičích RAID. SMART atributy jednoznačně určují opotřebení flash buněk, a z toho vyplývá životnost SSD disku. Další atributy doplňují kontrolu „zdravotního“ stavu SSD disku pro použití ve firmách. U společnosti Intel je takovým příkladem atribut Power_Loss_Cap_Test pro funkčnost integrované ochrany mezipaměti SSD disku. Ochrana mezipaměti zajišťuje, že při přerušení napájení nedojde ke ztrátě dat. Tento atribut ukazuje, jak důležitá je kontrola SMART atributů SSD disku. V každém případě se proto ujistěte, že máte k dispozici podrobné informace o SMART atributech, než použijete SSD disky ve větším rozsahu. Kontrole stavu vašeho SSD disku pak již nestojí nic v cestě.
thomas-krenn.cz | 22
Kontrola konzistence RAID Kromě kontroly SMART atributů jsou kontroly konzistence další součástí optimálního provozu diskového pole RAID. Výrobci hardwarových polí RAID používají pro kontrolu konzistence také pojem „Verify“. Linuxový software pro RAID tuto funkci vykonává prostřednictvím vlastního skriptu nazvaného checkarray. Bez ohledu na to, jakou technologii použijete, pravidelné kontroly konzistence odhalí nekonzistence dat nebo kontrolních součtů. Proto zajistěte, aby na vašich systémech pravidelně běžely kontroly konzistence: Mdadm ve většině případů zřídí Cronjob v /etc/ cron.d/mdadm. Úloha spustí každou první neděli v měsíci kontrolu konzistence pro všechna zřízená softwarová pole RAID. Ovšem pozor – po kontrole je bezpodmínečně nutné prověřit, zda je příslušné počítadlo v sysfs rovno 0: $ cat sys/block/md0/md/ mismatch_cnt 0 Skript checkarray sice zkontroluje konzistenci pole
RAID, nicméně sám od sebe neprovede žádné opravy. U diskových polí RAID úrovně 4, 5 a 6 jsou tzv. mismatches známkou problémů s hardwarem. RAID 1 a 10 za určitých okolností také produkují odchylky, aniž by došlo k chybě, zejména pokud se na nich nacházejí zařízení systému SWAP. V případě chyby skript mdadm zasílá e-maily jen tehdy, pokud v souboru mdadm.conf v položce „MAILADDR“ uvedete správnou adresu. Megaraid Storage Manager (MSM) je u LSI prvním místem, kde se provádějí pravidelné kontroly konzistence. Jasnou výhodou je, že MSM běží pod Windows, Linuxem a VMware ESXi. Sekce „Controller“ vede ke kartě „Schedule Consistency Check“. Zde určíte, kdy a jak často se má kontrola provádět. Nástroj příkazového řádku od Adaptecu umožňuje provést kontroly konzistence prostřednictvím příkazu datascrub. Data Scrubbing se často používá ve spojení s kontrolou konzistence, neboť označuje proces opravy chyb. Následující příklad zřídí pravidelnou kontrolu v rozmezí 30 dnů: $ arcconf datascrub 1 period 30
Kontrolní seznam pro SSD disky v polích RAID U hardwarového pole RAID použijte aktuální řadič pole RAID. Pod Linuxem použijte u hardwarového pole RAID a softwarového pole RAID Deadline I/O Scheduler. Nastavení mezipaměti HWR: Write-Through, žádný Read Ahead. Over-Provisioning u vyšších požadavků na Random Write. Použijte SSD disky, pro něž jsou SMART atributy veřejně zdokumentované. Write Endurance určuje životnost SSD disku, SMART atributy zobrazují aktuální stav.
thomas-krenn.cz | 23
Shrnutí Aktuální řadiče RAID nemají problémy s SSD disky. Kromě toho se nemusíte bát srovnání výkonu s linuxovým softwarem pro disková pole RAID. Volba technologie RAID je proto především otázkou použitého operačního systému a osobních preferencí. Linux má však díky aktuálním jádrům a mdadm v každém případě pohromadě všechny nástroje pro SSD disky v polích RAID. Příznivci řadičů RAID si nemusí lámat hlavu s operačním systémem. Jedno je ale jasné: Mezipaměť řadiče a Read-Ahead nemají u SSD disků v polích RAID co dělat. Rovnou tak ušetříte i BBU nebo ochranné moduly založené na flash mezipaměti.
Sami se však musíte rozhodnout pro správnou úroveň diskového pole RAID. Zde musíte i vy přiložit ruku k dílu a analyzovat své aplikace, resp. systémy. Provádíte ve vašem I/O systému převážně čtení nebo zápis? Pokud je prioritou náhodné čtení, pak je RAID 5 dobrá volba, u níž je omezení kapacity minimální. Klasický RAID 1 ani ve spojení s SSD disky nevyjde z módy. Slušné latence a o 40 procent více čtecích IOPS než u SSD hovoří samy za sebe. Ztráty u zapisovacích IOPS naleznete jak u RAID 5, tak u RAID 1. Pokud pořizujete SSD disky ve velkém stylu a chcete dosáhnout vyváženého výkonu, pak se neobejdete bez polí RAID 10. Výkon při zápisu, latence a čtecí IOPS u RAID 10 vám zrychlí tep.
thomas-krenn.cz | 24
Glosář ATA TRIM Prostřednictvím příkazu ATA TRIM sděluje operační systém SSD disku, jaké datové oblasti již nejsou potřebné a díky tomu je možné je považovat za smazané. Tím řadič nebude zbytečně uchovávat na SSD data, jež byla v systému souborů smazána,
nicméně stále fyzicky na SSD disku existují (neboť v systému souborů byl odstraněn Inode). Pokud jsou všechna data jednoho bloku stará, může řadič SSD disku tento blok ihned smazat a nemusí provádět delší Read-Modify-Write.
Available Reserved Space SMART atributy SSD disku obsahují mimo jiné i atribut s názvem Available Reserved Space (disponibilní rezervní prostor). Ten udává počet zbývajících rezervních bloků. Pokud se však hodnota
blíží nastavené mezní hodnotě, je nutné SSD disk vyměnit. Pomocí příkazu smartctl lze tuto hodnotu zobrazit.
Blok Stránky jsou zase shrnuté do bloků. Většinou tvoří 128 stránek jeden blok (jenž tak obsahuje 512 KiB = 524 288 bajtů), u 25nm čipů od společnosti Intel/Micron tvoří 256 stránek po 8 KiB jeden blok o velikosti 2 MiB.
Jeden blok je nejmenší jednotkou, kterou lze smazat. Tak je sice možné číst nebo zapisovat jednotlivé stránky, při mazání však je nutné smazat 128 resp. 256 stránek (1 blok) najednou.
Garbage Collection Řada výrobců do řadičů SSD disků integruje funkci Garbage Collection (sběr odpadků). V časech bez
I/O přístupů shrnuje řadič částečně popsané bloky do plných bloků. Uvolněné bloky následně vymaže.
Konstrukce SSD disku SSD disk se skládá z čipu řadiče, několika flashových pamětí (většinou deset kusů) a zčásti i vyrovnávací paměti DRAM (cache). Řadič je schopen se s těmito
flash pamětmi spojovat paralelně, a tím znásobit datovou propustnost v porovnání s USB diskem (jenž obsahuje jen jednu flash paměť).
Over-Provisioning SSD disky mají tzv. Spare Area (rezervní prostor) – tedy datovou oblast, která není pro operační systém přímo viditelná. Tento rezervní prostor používá SSD disk především pro Wear Leveling. Zvětšení
rezervního prostoru (Over-Provisioning) může zvýšit výkon a prodloužit životnost SSD disku. Tím se sníží použitelná čistá kapacita SSD disku.
thomas-krenn.cz | 25
Paměťová buňka Nejmenší jednotkou ve flash čipu u SSD disku je paměťová buňka. V závislosti na typu ukládá jedna jediná paměťová buňka jeden nebo několik bitů v jedné buňce:
_SLC (Single Level Cell) ukládá 1 bit na jednu buňku _MLC (Multi Level Cell) ukládá 2 bity na jednu buňku _TLC (Triple Level Cell) ukládá 3 bity na jednu buňku
Použitelnost/životnost Životnost SSD disku je závislá na provozních podmínkách. Převážné přístupy se čtením opotřebovávají SSD disk méně než náhodné úlohy čtení/zápisu. Stav SSD disku lze zjistit pomocí různých hodnot. Jednak pomocí hodnoty Available Reserved Space (zbývající rezervní prostor), jenž udává, kolik rezervních bloků je ještě k dispozici.
Dále pak hodnota TBW (Terabytes Written). Každý SSD disk má určitý garantovaný zapisovací výkon. Pokud dojde k jeho překročení, měl by se SSD disk vyměnit. Jako třetí hodnotu je nutné ještě uvést Media Wearout Indicator. Ten udává opotřebení flashových buněk.
Přístup se zápisem Aby bylo možné popsat jednotlivé stránky v rámci jednoho bloku, je nutné nejprve smazat celý blok. U nového SSD disku z výroby jsou všechny bloky smazané. Tím je k dispozici i dostatek místa pro přímý zápis. S rostoucí mírou zaplnění SSD disku se může stát, že řadič SSD musí nejprve načíst celý blok o velikosti až
2 MB, ačkoliv se mění jen několik málo bajtů tohoto bloku (Read-Modify-Write). Tato skutečnost může u více zaplněných SSD disků vést k nižším rychlostem zápisu a vyšším zápisovým latencím. Vyrovnávací paměť DRAM a NCQ však tento efekt vyrovnají.
Secure Erase Pokud chcete využít použitý SSD disk pro nové účely, můžete jej pomocí funkce Secure Erase (bezpečné mazání) zcela vymazat. Při tom řadič SSD smaže všechny bloky, a vy tak můžete opět využít plného výkonu SSD disku. Pokud znovu formátujete použitý SSD disk (např. systémem NTFS od Windows 7, Ext4 od mke2fs
1.41.10 nebo XFS od xfsprogs 3.1.0), není provedení bezpečného mazání nutné. Formátovací rutina provede ATA Trim pro nepoužité oblasti, díky čemuž může SSD disk opět pracovat na optimální výkon. Výstraha: Provedením Secure Erase nenávratně smažete všechna data na SSD disku.
thomas-krenn.cz | 26
Sektor, plát, balík (TSOP) Několik bloků je spojeno do sektoru (např. 1 sektor = 1 024 bloků = 512 MiB). Několik sektorů se nachází
na jednom plátu. A několik plátů tvoří TSOP (Thin small-outline package).
Souborové systémy Při použití SSD disků by se mělo využívat moderních souborových systémů, neboť s sebou přinášejí
optimalizace pro SSD disky. Pod Windows je jasnou volbou NTFS a pod Linuxem Ext4.
Spare Area SSD disky mají tzv. Spare Area (rezervní prostor) – tedy datovou oblast, která není pro operační systém přímo viditelná. Tento rezervní prostor používá SSD pro:
Velikost rezervního prostoru se v závislosti na modelu disku obvykle pohybuje mezi 7 % (SSD disky Intel X25-M G2 Postville) a 78 % (SSD disky Intel 710 Series).
_Read-Modify-Write _Wear Leveling a _Bad Block Replacement
Stránka Několik paměťových buněk je seřazeno do podoby jedné stránky. Stránka je nejmenší strukturou, kterou je SSD řadič schopen číst nebo na ni zapisovat.
Tato stránka má zpravidla velikost čtyř kibibajtů (kB) (= 4 096 bajtů). U 25nm flash čipů od společnosti Intel/Micron činí velikost stránky 8 KiB.
Šifrování Moderní SSD disky disponují integrovaným šifrováním AES 256 bitů. Toto šifrování je v zásadě aktivované, nicméně v menu UEFI/BIOS je nutné nastavit ATA heslo. Pouze tehdy je SSD disk chráněn před neoprávněným přístupem. Při startu systému je nutné zadat ATA heslo.
To, zda je ATA heslo nastavené či nikoliv, lze zobrazit pomocí příkazu hdparm -I /dev/sdX. Na konci výstupu je nutné nalézt blok Security. _not enabled: není zašifrováno _enabled: zašifrováno prostřednictvím ATA hesla
Šířka struktury Šířka struktury s pokračujícím vývojem technologie flash neustále klesá. V roce 2008 byla u SSD disků společnosti Intel X25-E použita šířka struktury 50 nm
(SLC). V roce 2013 se tato šířka víceméně snížila na polovinu (20 nm u SSD disků Intel DC S3500).
thomas-krenn.cz | 27
Vyrovnávací paměť (mezipaměť) DRAM Některé SSD disky disponují vyrovnávací pamětí DRAM, která slouží ke zrychlení operací zápisu nebo pro interní účely řadiče. Za účelem ochrany obsahu mezipaměti při výpadku proudu disponují
především průmyslové SSD řadiče integrovaným kondenzátorem, aby byl při přerušení dodávky proudu umožněn zápis dat na nevolatilní flash čipy.
Wear Leveling Flash paměti mají jen omezený počet zápisů, neboť buňky v závislosti na typu zvládnou mezi 3 000 a 100 000 mazacích cyklů. Mazání po blocích (jež je nutné pro opětovný zápis) tedy vede k opotřebení (to wear out). Wear leveling („vyrovnání opotřebení“) má toto opotřebení pokud možno rovnoměrně rozdělit na všechny buňky SSD disku, aby bylo dosaženo co nejdelší životnosti disku. Za tímto účelem funkce Wear Leveling používá tabulku přiřazení logických adres operačního systému k adresám v SSD disku. Pokud operační systém neustále mění data na určité logické adrese, došlo by bez funkce Wear Leveling u příslušného bloku na SSD disku k rychlejšímu vzniku chyby než u jiných bloků. Prostřednictvím funkce Wear Leveling zapisuje řadič SSD tato změněná data (jež se
nacházejí na stejné logické adrese operačního systému) vždy na různé fyzické bloky SSD disku. Při tom řadič SSD neustále aktualizuje tabulku přiřazení. Díky tomu se na všechny bloky SSD disku bude zapisovat rovnoměrněji – SSD disk vydrží déle. Wear Leveling se dělí na: _dynamický Wear Leveling (rozděluje jen dynamická data, tedy taková, co se mění) _statický Wear Leveling (přesouvá do jiných bloků i statická data – to sice vyžaduje vyšší výkon, zabrání však, aby buňky byly popsány statickými daty jen 1x během celé životnosti SSD disku, zatímco jiné buňky již vykazují výpadky – životnost SSD disku je v tomto případě delší než u dynamického Wear Levelingu)
Write Amplification Write Amplification (rozšířený zápis) označuje poměr dat, která mají být zapsána, vůči skutečně zapsaným datům.
[1] SMART Attribute von Intel SSDs (SMART Attribute u SSD disků společnosti Intel, https://www.thomas-krenn.com/de/wiki/SMART_Attribute_von_Intel_SSDs) [2] Spare-Area vergrößern (Zvětšení rezervního prostoru, https://www.thomas-krenn.com/de/wiki/SSD_Performance_optimieren) [3] SSD Secure Erase (https://www.thomas-krenn.com/de/wiki/SSD_Secure_Erase) [4] Partition Alignment (Přiřazení oddílů, https://www.thomas-krenn.com/de/wiki/Partition_Alignment) [5] Ben Martin, RAID-Systeme unter Linux optimal konfigurieren (Optimální konfigurace RAID systémů pod Linuxem), ADMIN 02/2011, str. 80 [6] Linux on 4KB-sector disks (https://www.ibm.com/developerworks/linux/library/l-4kb-sector-disks) [7] LVM Alignment Patch (https://www.redhat.com/archives/linux-lvm/2011-July/msg00063.html) [8] Whitepaper k měření výkonu u SSD disků (http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/ssd-dc-s3500-workload-raid-paper.pdf) [9] Plug-In „SMART Attributes Monitoring“ (https://www.thomas-krenn.com/de/wiki/SMART_Attributes_Monitoring_Plugin)
HIGH PERFORMANCE SOLID STATE DRIVES V SERVERECH
Thomas-Krenn.AG Speltenbach-Steinäcker 1 D-94078 Freyung thomas-krenn.cz