Nejprve obecný komentář. V počítači jsou jenom dvě mechanické součástky, ve kterých se něco točí – klasický pevný disk a ventilátor. Mechanická součástka se už z podstaty rozbíjí častěji než nemechanická a proto je třeba na ně dohlížet. Pokud jde o disky, mnohaletá zkušenost ukazuje, že odejde tak jednou za 5-10 let. To by nebylo mnoho, ale s rostoucím počtem počítačů v domácnosti se množství disků a potažmo frekvence výpadků zvyšuje. Proto kdykoliv mám možnost, používám dva paralelně, spojené do RAID 1 (=zrcadlení) pole.
Začalo to nenápadně, mdadm monitoring mi napsal mail, že detekoval chybu na prvním diskovém poli:
A Fail event had been detected on md device /dev/md0.
It could be related to component device /dev/sdb1.
Faithfully yours, etc.
P.S. The /proc/mdstat file currently contains the following:
Personalities : [raid1]
md0 : active raid1 sdc1[2] sdb1[0](F)
(atd.)
Se zájmem jsem si to prohlédl, řekl si, že by to mohl být nějaký výpadek, a zkusil restart. Po restartu ovšem mdadm přitvrdil ve formulacích a že prý to pole je degradované a co já s tím.
This is an automatically generated mail message from mdadm
A DegradedArray event had been detected on md device /dev/md0.
Faithfully yours, etc.
Co by, že. Zkontroloval jsem SMART diagnostiku disku, vše ok, takže pole znovu zkompletovat.
mdadm /dev/md0 -a /dev/sdb1
Začne synchronizace sektorů, sledovat se dá pomocí:
watch cat /proc/mdstat
a za necelou hodinu je hotovo.
Jenže za čtyři dny se to stalo podruhé. To už začalo být podezřelé, a protože jde o to nejcennější, co v počítači je (to jest data), nebylo nač čekat – rovnou jsem si objednal nový disk a pak zase zkoušel všemožné testy a diagnostiky. Dost zajímavé bylo, že snaha o výpis SMART diagnostiky končila chybou, to jsem ještě neviděl. Každopádně druhý den byl nový disk na stole a mohl jsem se pustit do výměny.
První krok je odebrání partition z pole. V mém případě ze dvou polí, protože disk mám rozdělený na dvě partition, sdb1 a sdb2.
Nejprve označit obě za vadné (faulty):
mdadm /dev/md0 -f /dev/sdb1
mdadm /dev/md1 -f /dev/sdb2
Následně z diskových polí odebrat:
mdadm /dev/md0 -r /dev/sdb1
mdadm /dev/md1 -r /dev/sdb2
A konečně jim vynulovat superblok, aby je linux už nezkoušel jako součást pole identifikovat:
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
Pak jsem musel pochopitelně rozebrat bednu a disk fyzicky vyměnit za nový; tady jsem si opět gratuloval, že jsem při minulém nákupu železa investoval do pořádného výrobku. Kryt je na dva šroubovací kolíčky (tj. bez šroubováku) a disk se díky nasazovacímu plastovému rámečku pouze zasune a zacvakne. Úžasné. Víc času než samotná výměna zabralo vytahání všech kabelů.
Pak jsem přemýšlel, jak nový disk rozdělím, aby měl stejné partitions stejného typu, odkud to přečtu a jak to budu v fdisku zadávat… Ani nápad! Fdisk má skriptovací verzi, která umí exportovat nastavení na výstup. A taky nastavení z výstupu přijmout. Přenést rozdělení z disku sdc na sdb je pak opravdu triviální:
sfdisk -d /dev/sdc | sfdisk /dev/sdb
Ještě kontrolní výpis
fdisk -l
A můžeme pokračovat.
(Zdroj informací Replacing A Failed Hard Drive In A Software RAID1 Array)
To už bylo jednoduché, do každého pole přidat příslušnou partition:
mdadm /dev/md0 -a /dev/sdb1
mdadm /dev/md1 -a /dev/sdb2
Okamžitě začne synchronizace sektorů (dělá se postupně, jednotlivá pole se řadí do fronty), kterou lze opět sledovat pomocí
watch cat /proc/mdstat
Pro jistotu jsem pak ještě udělal kontrolu celého povrchu (pokusným přečtením)
/usr/sbin/raid-check
A mohl jsem zase klidně spát.
Hodnocení hvězdičkami používá jako prevenci
opakovaného kliknutí anonymní cookie.
Pokud s tím nesouhlasíte, neklikejte.
Další podrobnosti k cookies zde.