Testování nových HDD, SSD a paměťových karet před uvedením do provozu

Když už na to na twitteru přišla řeč, rámcově jsem se rozhodl sepsat, jak přistupuju k novým pevným diskům (a paměťovým kartám), a proč.

Proč vlastně nová média testovat

Jednoduché. Občas člověk může dostat zmetek z výroby, a je lepší ho donutit se prozradit během prvotního testování, než při rebuildu RAID pole, nebo obecně během provozu.

Nové disky disky a obecně hardware jsem aspoň nějak testoval vždycky (do roku cca 2010 to byla v podstatě nutnost), ale časem se spolehlivost tak zvýšila, že už jsem si začal říkat: „Tyjo, už roky jsem žádný zmetek neměl, já na to kašlu, zabírá to čas, atd.“

Samozřejmě přesně v ten moment se mi při rebuildu RAD1 pole z 1. nového disku na 2. nový disk se ten první nový rozhodl vypovědět službu (menší ven, nový větší dovnitř, rebuild OK, druhý starý ven, druhý nový dovnitř, první nový failnul).

Není to problém z pohledu dat (zálohovat už jsem se naučil dávno), ale už jenom ta zbytečná dvojitá práce člověka tak nějak sere. Tohle bylo v roce 2017, od té doby nekompromisně testuju všechno. Při mém objemu disků (osobní + firemní použití, nové i staré disky, občas poskládání NASu pro někoho dalšího) a použití se to ještě dá reálně zvládat (nižší desítky disků ročně)

Paměťové karty – stejná story. Koupil jsem si v létě 2016 na roadtrip 2 ks nových 32 GB SD karet. Věděl jsem že bych neměl neotestovanou kartu zhurta začít používat, ale 5 let předtím ani jeden problém (ono se mi totiž něco dost podobného stalo o 5 let dříve)… Jedna karta měla takovou chybu, že všechna data kromě prvních 8 GB z ní mizela, ale vcelku nenápadně. Než jsem si toho všiml, tak dobrých 250 fotek bylo nadobro fuč. A dodnes jsem to bohužel nedotáhl k profi foťáku, který by ty sloty na paměťové karty měl dva. :D Soon.

Takže za mně – testovat se rozhodně vyplatí.

Schválně jsem teď projel reklamace na Alze, TSBohemii a CZC, a ze posledních 6 let jsem takto ještě před zařazením do provozu reklamoval 4 disky: 3x Seagate IronWolf (2 TB a 4 TB), 1x WD Red (4 TB). Vadné disky se projevovaly vždy tím, že během testování začaly splašeně (po stovkách) přemapovávat sektory, jeden přestal odpovídat.

Zatím se mi nestalo, že bych měl disk, který by prošel tímto testem a potom spadnul třeba po týdnu. Když už, tak jednotky disků odpadly po 2-4 letech v rámci běžného provozu opotřebení, a dnešní 24/7 disky mi bez problémů dávají 60-80 tis. provozu a jedou pořád dál. Je to v situaci, kdy je potřeba disk měnit kvůli nedostatečné kapacitě, než kvůli selhání, which is nice.

Testování plotnových pevných disků: badblocks

Obecně se mi osvědčila linuxová utilitka badblocks. Ta velmi zjednodušeně disk otestuje 4x úplným přepsáním a následným kontrolním čtením: poprvé zapíše na všechny sektory 0, kontrolně celý povrch disku přečte, ze jsou skutečně všude nuly; a tohle zopakuje třikrát, jenom s jedničkami, potom na střídačku 10101010 a 010101. V praxi by to mělo znamenat, že každý sektor během testu 4x změní svoji hodnotu a testuje se, že si ji udrží…

Na závěr na disk ještě pustím integrovaný dlouhý SMART Self-Test, a pokud vše vyjde bez chyb, považuju disk dostatečně v kondici pro další provoz.

Spousta lidí spoléhá jenom na prvotní pomalé zformátování, což u úplných zmetků stačí, ale už jsem měl dva disky, kde začala vypadávat tisíce vadných sektorů až při třetím zápisu/čtení při badblocks testu, proto tuhle metodu považuju za spolehlivější.

Nevýhodou je jen to, že tohle otestování poměrně dlouho trvá, je to prostě 4x zápis a 4x čtení celého povrchu disku omezené maximální rychlostí čtení a zápisu.

Stejný testovací „setup“ potom používám i na použité disky: a to jak na ty, které jsem použité koupil (občas se takto dají sehnat super dealy), tak na ty které se chystám prodat:

  • zjistím, že disk je dostatečně v kondici a novému majiteli s vysokou pravděpodobností ještě nějaký čas poslouží
  • zcela bezpečně ho vymaže (pro bezpečné vymazání pevného disku jej 1x – ano, jedenkrát – přepsat nulami, při badblocks se vše přepíše 4x, a ještě k tomu napřeskáčku)

Pokud není disk na odchodu úplně, tak naopak toto čtyčnásobné přepsání jej donutí přemapovat všechny sektory, které přemapovat jdou. Mám stále v provozu několik disků, kde už to vypadalo bledě (pravidelně chodily emaily ze SMART monitoringu o přibývajících sektorech), ale úplný přepis disku donutil firmware všechny tyto sektory skutečně přemapovat, a potom fungovaly dál, některé i několik desítek tisíc hodin. Samozřejmě už to pak není asi moc vhodný na mission critical použití.

Mám to zautomatizované pomocí bash scriptu, který dělá toto:
– uloží úplný SMART výpis disku před testem (smartctl -a /dev/sdxxx)
– spustí badblocks test (badblocks -vsw /dev/sdxxx)
– spustí dlouhý SMART Self-Test (smartctl -t long /dev/sdxxx)
– znovu uloží SMART výpis
– odešlě mi na Telegram notifikaci, že je hotovo
– todo: ještě tam chci zařadit nějaký benchmark test, který by v rychlosti otestoval čtení a zápis, ale popravdě mě tak nějak tyhle parametry v dnešní době až zas tak moc nezajímají.

smartctl -a $device >/tmp/smart-before.txt
badblocks -wsv $device 
smartctl -t short $device >/dev/null
smartctl -t long $device >/dev/null
smartctl -a $device >/tmp/smart-after.txt

 

 

Testování paměťových karet a SSD disků: f3write + f3read

Nevím, jestli je nějaký pokročilejší způsob, jak testovat SSD disky a paměťové karty. Bez keců se přiznám, že na úrovní bloků a sektorů už se začínám ztrácet, co přesně se tam hardwarově děje, proto se tady spokojím s jednoduším testem s využitím f3write a f3read.

f3 utilitka originálně slouží k otestování flash médií na falešnou kapacitu: na úrovni filesystému (nikoliv na úrovni bloků jako badblocks) zapisuje data, „dokud je místo“, a když místo dojde, ověří, že všechna zapsaná data lze přečíst zpátky. Otestuje tak skutečnou kapacitu a rychlost zápisu a čtení. Pokud nastane problém, je něco špatně.

Tohle spustím třikrát po sobě a pokud je vše OK, fixou si na paměťovku udělám tečku a jde do provozu. Zmetek jsem zatím chytil jen jednou a nebyla to zrovna ani paměťovka, ale SSD disk. 1 TB disk se po zapsání cca 600 GB dat zpomalil, až se zcela kousnul (opět jsem měl 2 ks do RAID1, ten první to nedělal a v plné rychlosti projel zápis i čtení přes celou kapacitu).

Pokud by někdo znal nějaký spolehlivější test flash pamětí a SSD disků na nižší úrovni, klidně se podělte. Já si pokaždé, když dělám tento „jednoduchý“ test říkám, že si to pořádně nastuduju, a pak se na to vždy vykašlu. :D

Zároveň jsem tenhle test použil na všechny svoje SD a microSD karty, kterých jsem za 15 let nasbíral asi 30 ks. Až jsem se divil, kolik i velkých karet (16 GB), které ale měly maximální rychlost zápisu třeba jen 8 MB/s jsem doma vlastně měl. Všechno pod 30 MB/s čtení a 20 MB/s zápis jsem prostě vyhodil do koše. :D

Flash média obecně nechci moc trápit opakovaným přepisováním, vzhledem k tomu, jak já chápu, že fungují, to asi není úplně efektivní způsob. Vadné sektory se rovnou mapují na ty ze záložního poolu, takže mi tam prostě stačí, že zapíšu a přečtu data přes celou kapacitu disků bez nějakých hiccupů (třeba jsem měl nějaký SATA SSD, kde rychlost po vyčerpání cache spadla pod úroveň HDD a navíc při větším množství operací začalo být nepoužitelné úplně, což byla trochu zrada :D).

Postup je rovněž jednoduchý:

# f3write 
f3write /Volumes/EOS_DIGITAL/ | tee ~/tmp/f3write.txt
f3read /Volumes/EOS_DIGITAL/ | tee ~/f3read.txt
f3readspeed=$(cat ~/f3read.txt | grep Average | awk '{print $4}')

Nevytřízené poznámky, co jsem měl u článku:

https://gist.github.com/ilyaigpetrov/e451200ea9b59e8c348422a8f9c5e8e5

https://forum.level1techs.com/t/reliable-hard-drive-test/169181

# from [forums](https://forum.level1techs.com/t/reliable-hard-drive-test/169181/13)
Usually I mostly follow the steps from this guide 11, especially when dealing with 2nd hand drives:

SMART short test
SMART conveyance test
SMART long test
badblocks
SMART long test
For new drives I might do only 1, 2 and 3, depending on time.

This script 5 (from TheArtOfServer) is useful to test big batches btw. It can send you a mail when done, which is nice as badblocks runs can take a while…