Disk vypadává z NAS, i když je zdravý: ERC/TLER

Odpověď hned: Když pole vyhodí disk, který se po restartu vrátí a normálně čte, bývá na vině nesoulad časových limitů. Linuxové jádro se vzdá čekání po třiceti sekundách, zatímco desktopový disk se u problémového sektoru pokouší číst i přes dvě minuty — a pole ho mezitím prohlásí za mrtvý. Disky určené do NAS proto mají zapnuté omezení chybového zotavení (ERC u Seagate, TLER u Western Digital) a nechají se přerušit po sedmi sekundách. U disku, který to neumí, se místo toho zvedá timeout na straně systému. Než ale cokoliv nastavíte, musíte vědět, jestli disk vypadl kvůli čekání, nebo proto, že opravdu odchází.

Co se v tom poli doopravdy stalo

Wiki linuxového RAIDu popisuje správný průběh takhle: disk narazí na sektor, který nejde přečíst na první pokus, chvíli se „snaží víc”, pak to vzdá a vrátí systému chybu. RAID kód dopočítá, jak měla data vypadat, a zapíše je zpátky na disk. Takový zádrhel je běžný provoz a pokud disk neumírá, sám se tím vyřeší — selhání čtení jednoho sektoru totiž neznamená, že na stejné místo nepůjde zapsat.

Rozbije se to ve chvíli, kdy disk chybu nevrátí včas. Jádro čeká třicet sekund a pak to vzdá. RAID kód si data dopočítá a chce je zapsat zpátky, jenže disk se pořád pokouší číst a neodpovídá — takže pole usoudí, že je mrtvý, a vyhodí ho ze svazku. Wiki to shrnuje bez obalu: takhle dokáže jediná chyba čtení u těchhle disků zabít celé pole.

Disk se přitom chová přesně podle návrhu. Osamocený disk v počítači nemá odkud data vzít, takže je správné zkoušet číst co nejdéle. V redundantním poli je to naopak: data leží i jinde, a disk držící požadavek dvě minuty je pro pole horší než disk, který rychle přizná neúspěch. Tentýž kus železa je tak v PC „v pořádku” a v NASu „vadný”.

Jak poznáte, že jde právě o tohle

Nesoulad timeoutů má několik dost charakteristických znaků:

  • disk zmizel z pole naráz, ne po týdnech postupného zhoršování výkonu,
  • po restartu nebo po vytažení a zasunutí do slotu se hlásí zpátky a dá se z něj normálně číst,
  • SMART na vyhozeném disku nevypadá jako na disku, který odchází (jak to rozlišit, rozebírá článek jak poznat, že HDD umírá),
  • v poli jsou desktopové disky, nebo aspoň jeden takový, který tam někdo doplnil při rozšiřování.

Rozhodující je ale jedna otázka: umí ten disk vůbec omezit dobu zotavení? Odpověď dá smartctl -l scterc /dev/sda. Když výpis ukáže, že SCT Error Recovery Control disk nepodporuje, máte příčinu na stole.

Zvlášť zákeřná je kombinace s technologií SMR. Wiki uvádí, že SMR disky se při přerovnávání dat zasekávají i na více než deset minut, takže žádné rozumné nastavení timeoutu je nezachrání. Jestli váš model do téhle skupiny patří, řeší přehled CMR a SMR.

Které disky limit mají a které ne

Tady se vyplatí nespoléhat na to, co je „obecně známo”, ale na to, co má výrobce napsané v dokumentaci.

Řada diskůCo k limitu uvádí výrobceZdroj
WD Red, WD Gold, UltrastarTLER je zapnuté, zotavení je omezené na sedm sekund a nejde vypnoutWD support, TLER on RAID edition internal drives
WD Red PlusProduct brief popisuje ladění NASware pro RAID NAS, slovo TLER v něm ale není — u konkrétního kusu je potřeba ověřit stav přes smartctlProduct brief WD Red Plus
WD Red ProTotéž: datasheet mluví o NASware, o TLER mlčí — ověřit na kusuData sheet WD Red Pro
Seagate IronWolfTabulka parametrů má přímo řádek „Error Recovery Control” s hodnotou Yes u všech modelůDatasheet IronWolf
Seagate IronWolf ProFirmware AgileArray podle datasheetu zapíná dual-plane balancing a time-limited error recoveryDatasheet IronWolf Pro
Levné desktopové řadyVětšina moderních levných desktopových disků chybové zotavení nastavit neumožňujeLinux RAID wiki, Timeout Mismatch

Pozor na to, co tabulka neříká. Že řada limit má, ještě neznamená, že ho váš konkrétní kus má nastavený na rozumné hodnotě — wiki upozorňuje, že i starší disky s podporou ERC mívají nastavení nevhodné. Spolehlivý zdroj pravdy je výpis z disku, který máte ve slotu. Při výběru nových kusů pomůže srovnání WD Red, IronWolf a Toshiba N300.

Co se dá nastavit

Na linuxovém serveru s mdadm jsou v zásadě dvě páky a používají se podle toho, co disk umí.

Disk ERC umí. Nastavíte dobu zotavení na sedm sekund:

smartctl -l scterc,70,70 /dev/sda

Hodnoty jsou v desetinách sekundy — tohle je nejčastější zdroj omylu, protože 70 vypadá jako sedmdesát sekund. Manuál smartctl to říká přesně: argumenty READTIME a WRITETIME jsou v desetinách sekundy, hodnota 0 funkci vypíná, hodnoty pod 65 nejspíš nebudou podporované a pro RAID se typicky nastavuje 70,70. Dvacet sekund by tedy bylo scterc,200,200.

Nastavení je ve výchozím stavu prchavé. Novější smartctl umí volbu ,p, po které hodnoty přežijí i vypnutí a zapnutí — vyžaduje ale disk podle ATA ACS-4 nebo novější. U ostatních disků platí, co doporučuje wiki: pustit nastavení při každém startu, protože levnější kusy si při vypnutí systému všechno zapomenou.

Disk ERC neumí. Pak se zvedá timeout na straně jádra, aby byl delší než to, co si disk dovolí:

echo 180 > /sys/block/sdX/device/timeout

Tři minuty stačí i na desktopový disk, který se zasekne přes dvě minuty. Hodnota v /sys restart nepřežije, takže i tohle patří do startovacího skriptu.

A jedna past, na kterou wiki upozorňuje zvlášť: u disků, které SCT nepodporují vůbec, pokus o nastavení ERC sice selže, ale vrátí nulový návratový kód. Skript, který se řídí jen návratovým kódem, tak takový disk vyhodnotí jako v pořádku. Po každém nastavení si proto hodnotu přečtěte zpátky.

Synology a QNAP: co je v ruce administrátora

U hotových NAS boxů se s timeouty nehraje — pracuje se s tím, co nabízí systém výrobce.

Na Synology shodí odstavený disk celý storage pool do stavu degraded. Pool přitom zůstává přístupný, protože nedošlo ke ztrátě dat. Reaktivace odstaveného disku je podle KB výrobce jednoduchá: vytáhnout ze slotu, pár sekund počkat a zasunout zpět. Než objednáte nový disk, projděte oficiální postup, jak rozlišit vadný disk od vadného slotu — je to přesně ta situace, kdy se zbytečně kupuje železo. Co které hlášky v DSM znamenají, rozebírá článek Storage Pool Degraded nebo Volume Crashed.

Na QNAP se stav RAID skupiny při odpojení disků změní na Error a svazky i storage pooly spadnou do stavu Inactive. Dokumentace QTS popisuje obnovu přes Storage & Snapshots a funkci Recover RAID, s podmínkou, kterou nelze obejít: každý disk musí jít zpátky do své původní pozice. Zároveň upozorňuje, že tahle obnova pomůže jen u dočasně odpojených disků, ne při skutečném selhání disku. Navazuje QNAP RAID Group Degraded nebo Volume Read-Only.

Kdy už nejde o timeout, ale o vadu

Nesoulad timeoutů je jenom jedno z vysvětlení. Vyhozený disk nevracejte do pole naslepo a nepouštějte rebuild, dokud nevíte, proč vypadl. Když je za tím opravdu nečitelné místo, rebuild přečte celou plochu ostatních disků, a to je přesně zátěž, po které se sype druhý disk. Mechaniku toho selhání rozebírá proč rebuild zabíjí RAID pole.

Nechte pole být, pokud disk cvaká, mizí ze seznamu i bez zátěže, vypadává opakovaně na stejném místě, nebo pokud už hlásí problém víc disků. Synology má k rostoucímu počtu vadných sektorů vlastní diagnostický postup a stojí za to jím projít dřív, než se cokoliv rozjede. Kdy je bezpečnější vytáhnout data mimo pole, popisuje jak vytáhnout data z NAS a záchrana dat z RAID pole.

Časté dotazy

Proč se disk po restartu vrátí, když je „vadný”?

Protože vadný být nemusí. Pole ho vyhodilo za to, že neodpověděl včas, ne za to, že by neuměl číst. To ale neznamená, že je vše v pořádku — příště se to zopakuje.

Můžu ERC nastavit i na disku, který ho podle výpisu nepodporuje?

Ne. Zbývá zvednout timeout jádra na 180 sekund a počítat s tím, že pole bude při chybě čtení minuty čekat. Trvalé řešení je výměna za kus, který limit má z výroby.

Platí to i pro SMR disky?

Na SMR to nestačí. Podle wiki se SMR disky zasekávají i na více než deset minut a skript na změnu timeoutu s tím nic neudělá.

Jak zjistím, jestli je problém v disku, nebo ve slotu?

Přehodit disk do jiné pozice a sledovat, jestli chyba jde s diskem, nebo zůstane ve slotu. Synology na to má vlastní návod a je rozumné ho projít dřív, než objednáte náhradu.

Můžu na hotovém NASu nastavit ERC ručně?

Uvedené příkazy počítají s přístupem do shellu na linuxovém serveru. U hotového NAS boxu je praktičtější zvolit disky s limitem zapnutým z výroby a držet se diagnostiky výrobce.

Zdroje

Vypadává vám disk z pole a nevíte, jestli je vadný, nebo jen pomalý? Projdeme s vámi logy a výpisy SMART dřív, než se spustí rebuild — v rámci správy IT pro firmy i jednorázově jako audit IT. Když už pole spadlo, navazuje záchrana dat z RAID a NAS. Ozvěte se přes kontakt, telefon +420 775 556 063 nebo e-mail info@ithope.cz. Disky ze slotů zatím nevytahujte a hlavně je nepřehazujte — pořadí je při obnově zásadní.