Případ nakonec ukázal, že ne každá závada NAND flash musí nutně znamenat ztrátu dat nebo nákladnou opravu. S trpělivým přístupem a správnou kombinací čtecích metod jsme se dostali ke kompletní binární kopii.
Co je uvnitř Patriot P210
Po sundání krytu jsme našli kompaktní PCB s řadičem Silicon Motion SM2259XT a jedním paměťovým čipem NAND s označením 29RD4T2ANCQJ1. Pohled na tyto dvě komponenty hodně napovídá o tom, proč disk začal selhávat.
Otevřená PCB disku Patriot P210. Vlevo řadič Silicon Motion SM2259XT, vpravo paměťový čip NAND 29RD4T2ANCQJ1. Disk je osazený jen jedním NAND čipem, další pozice na desce zůstávají neosazené. / EN: Patriot P210 internal PCB. Silicon Motion SM2259XT controller on the left, NAND memory chip 29RD4T2ANCQJ1 on the right. Only one NAND chip is populated; the remaining pads are left empty.
SM2259XT je takzvaný DRAMless řadič, tedy řadič bez vlastní vyrovnávací paměti DRAM. Všechny SSD ukládají mapovací tabulku do NAND paměti jako trvalou kopii – bez toho by po vypnutí ztratily informaci o tom, kde fyzicky leží která data. Řadiče s DRAM si po zapnutí celou tabulku načtou do rychlé operační paměti a pracují s ní odtud. SM2259XT tuto možnost nemá – disponuje pouze malou interní pamětí SRAM přímo na čipu řadiče, kam se vejde jen zlomek mapovací tabulky. Zbytek musí průběžně číst z NAND za provozu, kdykoli přijde požadavek na adresu, jejíž mapování zrovna nemá v SRAM uložené. Více o funkci řadiče v SSD najdete v sekci Princip fungování SSD – řadič.
To znamená, že řadič je při každém přístupu přímo závislý na čitelnosti NAND – pokud se zhorší kvalita čtení v oblasti, kde jsou uloženy mapovací struktury, projeví se to okamžitě na funkci celého disku.
Detail řadiče Silicon Motion SM2259XT v pouzdře TFBGA. Označení PRKX09.00 odpovídá firmware. Kód 2006 značí výrobní šarži (rok 2020, týden 06). / EN: Close-up of the Silicon Motion SM2259XT controller in a TFBGA package. The PRKX09.00 marking refers to firmware. Code 2006 indicates the production batch (year 2020, week 06).
Druhá důležitá informace se skrývá v označení paměťového čipu. Prefix „29R“ v názvu 29RD4T2ANCQJ1 prozrazuje, že se jedná o čip s takzvaným SpecTek gradingem. SpecTek je dceřiná společnost Micronu, která prodává paměťové čipy, jež neprošly plným kvalitativním tříděním. V praxi to znamená potenciálně vyšší výchozí chybovost ve srovnání s plnohodnotně tříděnými čipy. Dekódování zbytku part numberu pak ukazuje na QLC NAND paměť Intel/Micron s 96 vrstvami. QLC znamená, že každá paměťová buňka ukládá 4 bity dat pomocí 16 různých napěťových úrovní. Pro srovnání – u TLC paměti je to 8 úrovní pro 3 bity. Čím více úrovní, tím citlivější je buňka na opotřebení – a tím snáze dochází k chybám při čtení. Podrobněji o typech NAND pamětí píšeme v sekci Kvalita NAND čipů – SLC/MLC/TLC/QLC.
Kombinace DRAMless řadiče, QLC paměti a SpecTek gradingu vytváří úložné médium s minimálními výrobními náklady – ale zároveň náchylnější k problémům s čitelností při opotřebení. A přesně to se v tomto případě stalo.
Diagnostika v PC-3000
Po připojení disku k PC-3000 Express se SSD korektně přihlásilo a identifikovalo. Diagnostika SMART parametrů potvrdila podezření – disk vykazoval chyby ukazující na problémy s NAND pamětí. Při pokusu o čtení se chování přesně shodovalo s popisem klienta: prvních několik set megabajtů se přečetlo v pořádku, poté se proces zastavil na nečitelných oblastech.
U QLC paměti je tento vzorec degradace očekávatelný. S přibývajícím opotřebením se napěťové distribuce jednotlivých buněk rozšiřují a překrývají, což vede k nárůstu bitových chyb. Řadič se snaží chyby opravovat pomocí zabudovaného ECC systému – SM2259XT používá technologii NANDXtend s víceúrovňovou LDPC korekcí. Nejprve zkusí rychlou „hard“ korekci, a pokud ta nestačí, přejde na pomalejší „soft“ dekódování s jemnějším rozlišením napěťových prahů. Když ale počet chyb překročí i korekční schopnosti soft dekódování, sektory se stávají nečitelnými.
Výsledek čtení v PC-3000 Data Extractor: všech 1 000 215 216 sektorů úspěšně přečtených, žádné chyby ECC. Stoprocentní binární kopie po několika týdnech práce. / EN: Read result in PC-3000 Data Extractor: all 1,000,215,216 sectors read successfully, no ECC errors. A complete binary image after several weeks of work.
Cesta k binární kopii
Klíčem k úspěchu byla trpělivost a systematický přístup. Namísto jednorázového čtení jsme využili kombinaci různých metod, které PC-3000 nabízí. Postupným střídáním čtecích režimů, opakovaným dočítáním problematických oblastí a aplikací pokročilých korekcí se podařilo postupně přečíst i oblasti, které při prvních průchodech selhávaly.
Celý proces trval několik týdnů. Disk jsme nechali pracovat v kontrolovaném režimu, kdy se po každém zaseknutí automaticky přešlo na alternativní metodu čtení. Výsledkem bylo kompletní přečtení všech 1 000 215 216 sektorů bez jediného výpadku – tedy stoprocentní binární kopie celého SSD.
Klient požadoval binární kopii celého disku, nikoli jen export souborového systému. Hotová kopie byla následně exportována na nový SSD, který nám klient dodal.
Médium: Patriot P210 512GB (2,5" SATA III SSD)
Řadič: Silicon Motion SM2259XT (DRAMless)
NAND: Intel/Micron 96L QLC (SpecTek grade)
Firmware: T0220A0
Kapacita: 476,94 GB (1 000 215 216 sektorů)
Problém: Disk se přihlásí, ale po přečtení cca 0,5 GB přestává reagovat – degradace NAND
Řešení: Kombinace různých čtecích metod, dočítání a pokročilých korekcí v PC-3000 Express
Výsledek: 100% binární kopie
Tento případ dobře ilustruje, že žádné úložné médium není stoprocentně spolehlivé, a to včetně SSD, která nemají mechanické části. Zároveň ale ukazuje, že ne každá závada paměťových čipů znamená katastrofu. Někdy se jedná o postupnou degradaci, kterou lze s profesionálním nástrojem a správným postupem překonat, aniž by bylo nutné sahat k náročným zásahům.
Pokud váš SSD začne vykazovat podobné příznaky – zpomalení, zamrzání nebo nedostupnost části dat – rozhodně ho nepřetěžujte opakovaným připojováním a pokusy o kopírování. Každý další pokus může degradaci zhoršit. Doporučení, jak postupovat v prvních okamžicích po selhání, najdete v sekci První kroky při selhání SSD. Raději disk odpojte a svěřte ho odborníkům s odpovídajícím vybavením.
Když selže samotný řadič
V tomto případě byl řadič SM2259XT funkční a problém spočíval v degradaci NAND paměti. Existují ale situace, kdy selže samotný řadič – disk se pak vůbec nepřihlásí, není detekován v BIOSu nebo se identifikuje s nesprávným názvem a nulovou kapacitou. U DRAMless řadičů je navíc tenká hranice mezi „řadič nefunguje“ a „řadič nedokáže načíst mapovací tabulku z poškozené NAND“, protože bez externí DRAM paměti závisí na čitelnosti NAND od prvního okamžiku po zapnutí.
Řešení selhání řadiče vyžaduje specializované postupy na úrovni firmwaru nebo v krajním případě výměnu řadiče za kompatibilní kus s následnou rekonstrukcí konfigurace. Tyto postupy ovládáme a dokážeme je aplikovat i na řadiče řady Silicon Motion SM2259. Pokud se tedy setkáte s Patriot P210 nebo jiným SSD s tímto řadičem, které nereaguje vůbec, nemusí to nutně znamenat konec dat.
Technické pojmy podrobněji
DRAMless řadič – Řadič SSD bez vlastního čipu operační paměti DRAM. Mapovací tabulku (FTL – Flash Translation Layer) ukládají do NAND všechny SSD jako trvalou kopii, ale řadiče s DRAM ji po startu celou načtou do rychlé vyrovnávací paměti a pracují s ní odtud. DRAMless řadiče mají k dispozici pouze malou interní SRAM paměť na čipu řadiče, kam se vejde jen část tabulky. Zbytek čtou přímo z NAND podle potřeby. Výhodou jsou nižší výrobní náklady, nevýhodou vyšší závislost na čitelnosti NAND při každém přístupu k datům.
QLC NAND – Typ paměti NAND flash, kde každá buňka ukládá 4 bity dat (Quad-Level Cell). K rozlišení 16 možných stavů používá 16 napěťových úrovní, což je dvakrát více než u TLC (8 úrovní pro 3 bity). Vyšší hustota zápisu umožňuje nižší cenu za gigabajt, ale za cenu nižší odolnosti – typicky kolem 1 000 zápisových cyklů oproti přibližně 3 000 u TLC. Užší rozestupy mezi napěťovými úrovněmi také znamenají, že se chyby při čtení projeví dříve.
ECC korekce (NANDXtend) – Mechanismus opravy chyb zabudovaný do řadiče SSD. Silicon Motion používá vlastní implementaci nazvanou NANDXtend, která pracuje ve třech úrovních. Nejprve zkusí rychlou „hard“ LDPC korekci, poté pomalejší „soft“ dekódování s jemnějším rozlišením napěťových prahů, a jako poslední záchrannou síť využije paritní data podobná principu RAID. Pokud ani třetí úroveň nestačí, sektor se stává nečitelným.
Binární kopie – Přesná kopie celého úložného média sektor po sektoru, bez ohledu na souborový systém nebo obsah dat. Na rozdíl od prostého kopírování souborů zachycuje i smazaná data, systémové struktury a skryté oblasti. Používá se tam, kde je potřeba zachovat kompletní obsah disku v původní podobě.
Fotogalerie: Patriot P210 512GB – záchrana dat z degradované QLC NAND