Portál AbcLinuxu, 5. května 2025 08:59
dd
prečítať od začiatku po koniec a potom sledovali, či sa nezhoršili niektoré vybrané SMART parametre. Toto fungovalo celkom dobre, pri 146GB a 300GB diskoch to bolo prakticky hneď. Ale disky sú stále väčšie. Už pri 2TB to je na hranici únosnosti, čítanie trvá celý víkend. A teraz prechádzame na 8TB disky, kde by prečítanie celého disku trvalo týždeň a to by kolidovalo s normálnou prevádzkou.
Je pokus o testovanie disku čítaním celého jeho povrchu zbytočný overkill? Je nejaký iný spôsob, ako disk trochu vystresovať a donútiť ho pozrieť sa aj na sektory, ktoré za normálnych okolností nenavštívi?
Řešení dotazu:
Osobne spúšťam dlhú kontrolu S.M.A.R.T na pevných diskoch 500GB po približne tísíc hodinach a v nepravidelných intervaloch pozriem atribúti.
Možno by niečo odhalilo aj badblocks
. Lenže tento typ testu je čítaci čo nemusí odhaliť problémy pri zápise.
Tento spôsob môže aj nemusí byť správny.
dd
je len taký dodatok, aby disk naozaj ukázal, že funguje v celom svojom úložnom rozsahu.
Pri 500GB disku trvá bacblocks -w asi päť a pol hodiny len prvý krok zápis reťazca. je možné, že to robí redukcia ktorá je len SATA1. Inak disk je schopný SATA3.
badblocks -w -f -vvv disk
. Celé to bolo napojené cez USB adaptér pre SATA1/2/3, veľke PATA a malé PATA. Disk WDC black mal len Raw Error Rate 16 a približne osem rokov.
Určite je rozdiel keď ide disk priamo na radič SATA a tiež keď to ide cez USB v čitačke kariet. Inými slovami radič SATA má vlastné IRQ ako USB spoločné pre všetky zariadenia.
A není to i kontraproduktivní? Pokud to tak pouštíš na nějaký disk např. 7 let, tak je to docela dost zbytečného zapisování a čtení. Netrpí tím ten disk? Já třeba zapíšu za měsíc ~ 3 GB dat. Short jede myslím 1 dokola. U 1 TB disku je to za měsíc 4 TB a long mi jel myslím 4 x dokola. To jsou další 4 TB. Takže běžným používáním zapíšu za měsíc 3 GB a testy by zapsali 8 TB. To je za těch 7 let 252 GB běžných dat a 672 TB testů. Nedostává ten disk takhle zbytečně na frak?
Netrpí tím ten disk?Ne, číst a zapisovat data je úkol toho disku.
Short jede myslím 1 dokola.Nejede. SMART Short test jede 1 minutu.
Please wait 1 minutes for test to complete. Test will complete after Fri Dec 11 21:10:20 2020 CET
long mi jel myslím 4 x dokolaNe. SMART Long test jede tak dlouho, dokud nepřečte celý disk nebo dokud nenarazí na první nečitelný sektor.
Please wait 636 minutes for test to complete. Test will complete after Sat Dec 12 07:45:58 2020 CET
Takže běžným používáním zapíšu za měsíc 3 GBTo je asi zcela mimo scope dotazu a použití v serveru. Ale 100MB za den? 12MB za hodinu, uvažujeme-li 8h provozu? Really?
dd
a preto sme to tak začali preventívne robiť. Ale ako tak premýšľam, to bolo ešte v dobách PATA diskov. U SATA/SCSI/SAS diskov som asi takéto kompletné vytuhnutie ešte nevidel.
systémové súboryVidíš, ještě můžeš dělat debsums -c.
Ano, mismatch_cnt. Ano, falešné poplachy se bohužel vyskytují a nevím co s tím.Falošné poplachy mismatch_cnt u SW RAID-1 sú jednoducho vlastnosť. Vzniká to, keď sa požadovaný zápis stane nadbytočným, ale jeden z diskov ho už stihol realizovať, ako som písal vyššie. Chvíľu sme to skúšali a nakoniec sme to používali len pre SW RAID-5 polia. Tie sme nedávno nahradili Ceph clustermi, takže MD RAID check už nepoužívame.
Vidíš, ještě můžeš dělat debsums -c.Nie na Gentoo linuxe, obávam sa. :)
dd
na rozdíl třeba od offline SMART testů nevyžaduje, aby disk nic nedělal, proto na strojích, které nejsou kriticky zatíženy, lze často strpět test disku bez odstávky. Je možné tomu ddčkování nastavit nižší (io)prioritu, je možné testovat po nějakých blocích (seek
), apod.
3. Těžko říct, zda existuje nějaký vhodný interval. Kontroly vždy přidělávají práci a obtěžují. Je vhodné nemít disky v prašném prostředí, nepřehřívat je, moc nevypínat, nepřekračovat odhadovanou živostnost, ale to jsou samozřejmosti. Ale stejně nikdo neví, kdy to disk vzdá.
Jde samozřejmě o to, jak cenná jsou data, jak velká je úroveň redundance atd. V zásadě je Váš způsob velmi dobrý:Nuž, ako IT firma, ktorá okrem dát a ľudí nemá prakticky žiadne iné aktíva, dáta sú veľmi cenné. Rovnako cenná je aj schopnosť preklenúť hardvérové poruchy bez dlhšieho narušenia prevádzky. Čo z toho, že má firma zálohu, ak obnovenie prevádzky z tej zálohy bude trvať viac ako týždeň? Taký výpadok môže byť likvidačný.
1. Při čtení si disk nemůže vymýšlet. Buď (alespoň na několik pokusů) přečte, nebo musí přiznat chybu.Rovnako sme aj my uvažovali.
2.I/O prioritu škrtíme už teraz, ale ten seek, to je niečo, nad čím rozmýšľam - keby sa namiesto jedného dlhého čítania celého disku od začiatku po koniec rozdelila táto operácia na kratšie úseky, dali by sa robiť samostatne, mimo špičky, každú noc, a než prejde mesiac, celý disk by sa prečítal takto. To nie je zlý nápad!dd
na rozdíl třeba od offline SMART testů nevyžaduje, aby disk nic nedělal, proto na strojích, které nejsou kriticky zatíženy, lze často strpět test disku bez odstávky. Je možné tomu ddčkování nastavit nižší (io)prioritu, je možné testovat po nějakých blocích (seek
), apod.
3. Těžko říct, zda existuje nějaký vhodný interval. Kontroly vždy přidělávají práci a obtěžují. Je vhodné nemít disky v prašném prostředí, nepřehřívat je, moc nevypínat, nepřekračovat odhadovanou živostnost, ale to jsou samozřejmosti. Ale stejně nikdo neví, kdy to disk vzdá.Svätá pravda.
Pššt, nebo přijde ten jehož jméno se nevyslovuje, vytáhne, že disk si data může vymyslet, a nebude mít žádnou analýzu jestli je to jeden bitflip, celý blok je nesmyslný a je to náhodná kolize CRC32, nebo je pokažených více bloků za sebou, ale děje se to, věřte mi.1. Při čtení si disk nemůže vymýšlet. Buď (alespoň na několik pokusů) přečte, nebo musí přiznat chybu.Rovnako sme aj my uvažovali.
A jaka je asi tak pravdepodobnost, ze (kdyz uz to ten disk neumi opravit) to zaroven neumi ani detekovat (tzn neopravitelna chyba = badko). Skoro bych rek, ze zadna.Niesom jediný, čo zažil že mu disk namiesto prečítaného dát vrátil blok prázdnych núl. Keby sa to nedialo aj ostatným, tak BTRFS, ZFS (a asi aj Hammer2 a ReFS) vypnú checksumming na dáta ak majú k dispozícii len jeden disk bez redundancie. Čítanie z disku by tak či tak vyhodilo I/O error, a proces by sa to tak dozvedel.
Jak rikam, pravdepodobnost, ze k chybe dojde na urovni HW je naprosto miziva, a dost pochybuju, ze tu je clovek, kterej by se s takovou setkal.Ehm, čo dodať. Ak si si to ešte nevšimol, tak to neznamená že sa to nestalo aj tebe. Mne sa to už stalo, a nebol som sám. V opačnom prípade by neexistoval pojem Silent Data Corruption a CERN by o tom nenapísal štúdiu ktorej výsledky by nepotvrdil Amazon. Odporučím k tomu pozrieť aj výsledky kolektované firmou Greenplum alebo štúdie NetApp. BTW to ECC na RAM odchytáva firmware dosky, a OS sa dozvie až keď nastane neopraviteľná chyba (ak sa doska pri takej chybe rovno nevypne). Takže by som odporučil skontrolovať log z ECC v UEFI cez remote kartu.
Observation 9 The probability of a disk developing a checksum mismatch is not independent of that of other disks in the same storage system.Jasně, to úplně vypadá jako chyba disku. A je to nakažlivé.
Observation 13 Checksum mismatches correlate with system resets. The conditional probability of a system reset at some point of time, given that one of the disks in the system has a checksum mismatch, is about 3.7 times the unconditional probability of a system reset. After a system reset, the system performs higher-level recovery operations; for example, a thorough file system integrity check may be run.Jako že hnití magnetického záznamu na disku je způsobeno resety elektroniky?
Tohle myslis vazne? Takze zadny zalohy nemas, takhle to je treba chapat. ...Komponenty sú samozrejme zdvojené a dáta replikované v rámci serverovne. Vypadne primárny databázový server? Prehodíme to na sekundárny. Vypadne jeden z aplikačných serverov? Spustíme aplikáciu na ďalšom serveri. Vypadne súborový server? Tam vlastne Ceph nemá nikde single point of failure, takže sa (z pohľadu aplikácií a používateľov) nič nestalo. Čo ale vo chvíli, keď na serverovňu napadne kalamitné množstvo snehu a preborí strechu? Búdu fuč primárne aj sekundárne servery. Práve na to existuje záloha dát v inej lokalite, aby sa prevádzka dala obnoviť na novom železe. Tam je limitujúcim faktorom práve obstaranie nových databázových a aplikačných serverov, čo aj pri maximálnych kompromisoch neviem si predstaviť, že bude trvať kratšie než týždeň.
pv /dev/sdX > /dev/nullPustim vecer a rano mrknu zda se povedlo veskera data na disku precist. Totiz SMART porad tvrdi ze PASSED ale pak narazim na disky ktery proste v urcitych oblastech nejdou precist, rychlost klesne radove na kB/s a pak cteni skonci OI errorem. Na takoveto necitelne disky je vsak mozne (samozrejme destruktivne vuci obsahu) zapsat data z /dev/zero Pri moji praxi se jedna hlavne o disky 2.5" o kapacite 1TB.
find / | xargs cat
.
…cez príkaz dd…
Tohle podivné a zbytečné používání dd
místo pv
nebo cat
mi přijde malinko úsměvné. No, co už.
…či sa nezhoršili niektoré vybrané SMART parametre.
Mně se například žádné parametry nezhoršily, jenom se najednou z počítače ozval zvuk podobný broušení a obrábění, z disku se vyvalila náhodná data (která Btrfs bravurně ustál a „opravil“ (tedy, neměl je jak zapsat zpátky na původní disk, to už nešlo a došlo na to až po výměně disku, ale aspoň vůči čtenářům je opravil)) a po odpojení a opětovném připojení disku už o něm nebylo na sběrnici SATA ani vidu ani slechu; asi se někam schoval.
S.M.A.R.T. předtím nehlásil NIC. Fakt nic. Reallocated_Sector_Ct byl 0 atd. No, disk jsem vyměnil a život šel dál.
Je pokus o testovanie disku čítaním celého jeho povrchu zbytočný overkill?
Podle mě ne. Je to dobrý experiment. Ale spíš než na S.M.A.R.T. bych se soustředil na to, jak dlouho čtení trvá a jak se během něj mění throughput. Očekávaný průběh je nějaká konkávní parabola, kdy je to ze začátku (vnější okraj disku) velmi rychlé a postupně se to zpomalí tak na 2/3 až 3/4 maxima (vnitřní okraj). Pokud tam jsou nějaké výpadky typu 1 MB/s po dobu několika (se)kund nebo minut (!) a pak zase návrat do normálu, je dobré o tom vědět. Jinými slovy, může se hodit nastavit například pv
tak, aby zapisoval rychlost čtení každou (se)kundu někam do souboru, a pak to celé nějak vyhovnotit.
A sorry jako, čtení 8 TB netrvá celý víkend. Na 8TB disku (což je celkem malý disk, třeba ve srovnání s těmi 18TB novinkami), i kdyby byl průměr jenom 100 MB/s, vyjde přečtení celého disku na 80000 (se)kund, což je pořád méně než 86400 (se)kund za den. Takže ne, netrvá to celý víkend. A pokud jo, může být disk kandidátem na vyhození. (Nebo je fakt hodně vytížený.)
Jednou z možností by bylo přečíst každý víkend během nějaké klidné noci 10% toho disku. Další týden dalších 10% atd. A sledovat, jestli to odpovídá ostatním diskům (a LBA), co do rychlosti. Každých 10 týdnů by tak disk byl kompletně přečtený, v rámci téhle kontroly, ale nenakumulovalo by se to všechno na jeden jediný den.
Done /dev/sdc - 1863.0GB in 130585 secondsPrečo tak pomaly? Lebo ten disk musí robiť aj iné veci, takže toto "preventívne" čítanie má u nás najnižšiu možnú prioritu.
Kontrolujete pravidelne svoje rotačné disky?Ano.
Ak áno - ako?SMART short testy každý den. SMART long testy každý týden. BTRFS scrub každý týden. ZFS dtto.
My sme zatiaľ robili kontroly mesačne, takým spôsobom, že sme fyzické disky nechali cez príkaz dd prečítať od začiatku po koniec a potom sledovali, či sa nezhoršili niektoré vybrané SMART parametre.To je rozhodně zajímavý přístup, ale smart parametry patří do monitoringu + nastavit si ve
smartd.conf
posílání emailů.
Obecně k "ručnímu" čtení celých disků nevidím důvod. Od toho jsou technologie, které dokážou buď automaticky (smart testy), nebo si umí poradit i s případným problémem (scrub). Nebo v nejhorším jen oznámit nekonzistenci (mdadm check)
A teraz prechádzame na 8TB disky, kde by prečítanie celého disku trvalo týždeň a to by kolidovalo s normálnou prevádzkou.To mi nevycházda. Vůbec se zde v diskusi vyskytují zajímavé počty.
dd
je len príklad, v skutočnosti na to používame interne vyvinutý tool, ktorý číta celý disk, ako by to robil dd
, ale rýchlosť čítania obmedzuje podľa nejakých ďalších parametrov, aby nepreťažoval I/O. Preto nedá 8TB disk za deň. Ten disk by to síce zvládol, ale klienti a zamestnanci by nás medzitým zožrali.
dd
, potom sa prešlo na ionice -c 3 dd
, ale aj to bolo príliš invazívne v niektorých vyťažených momentoch, takže sme sa potom rozhodli nakódovať vlastné riešenie.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.