Skipt um bilað drif í mdadm fylki á Ubuntu
Birt: 19. mars 2025 kl. 21:33:56 UTC
Ef þú ert í þeirri hræðilegu stöðu að lenda í bilun í drifinu í mdadm RAID fylki, þá útskýrir þessi grein hvernig á að skipta um það rétt á Ubuntu kerfi.
Replacing a Failed Drive in an mdadm Array on Ubuntu
Upplýsingarnar í þessari færslu eru byggðar á Ubuntu 18.04 og útgáfu af mdadm sem er innifalin í gögnum þess; á þeim tíma þegar þetta var skrifað var útgáfa v4.1-rc1. Það er mögulegt að það sé ekki gilt fyrir aðrar útgáfur.
Ég lenti nýlega í snöggri bilun á harðadiski í heimaskipulagsþjóninum mínum, sem samanstendur af níu diskum í mdadm RAID-6 raðstillingu. Þetta er alltaf ógnvekjandi, en sem betur fer gat ég fljótt fengið afleysingardisk sem var sendur daginn eftir þannig að ég gat byrjað enduruppbygginguna.
Ég viðurkenni að ég var aðeins of sparsamur þegar ég sett upp þjóninn í upphafi; aðeins tveir diskarnir eru raunverulegir NAS diskar (Seagate IronWolf), en hinir eru skrifborðsdiskar (Seagate Barracuda). Ekki óvart, það var einn af skrifborðsdiskunum sem gaf upp andann (eftir næstum þrjú ár í þjónustu). Hann var alveg dauður; eftir að hafa flutt hann í USB umbúðir fyrir skrifborð, fékk ég aðeins óþægilegt smellihljóð og hvorki Ubuntu 20.04 né Windows 10 gátu fundið hann.
Jæja, áfram með varahlutann (og já, nýi diskurinn sem ég keypti var IronWolf, lærdómur tekinn) - jafn ógnvekjandi og það er að missa disk í virkum raðstillingum, það er enn ógnvekjandi ef þú veist ekki rétta ferlið fyrir að skipta honum út. Þetta er ekki í fyrsta sinn sem ég þarf að skipta um bilaðan disk í mdadm raðstillingu, en sem betur fer er það svo sjaldgæft að ég venjulega þarf að leita að réttum fyrirmælum. Í þetta sinn ákvað ég að búa til eigin litla leiðbeiningu fyrir framtíðarviðmið.
Svo, fyrst og fremst, þegar þú færð óhugnalega bilunar-e-ð póstinn frá mdadm, þarftu að finna út hvaða diskur hefur bilað. Auðvitað mun það segja þér heitið á tækinu (í mínu tilfelli /dev/sdf), en það er líklega ekki augljóst hvaða líkamlega diskur það er þar sem þessi nöfn geta breyst þegar vélin er ræst.
Ef þú ert ekki einu sinni viss um hvaða tækjaheiti hefur bilað, getur þú notað eftirfarandi fyrirmæli til að komast að því (skiptu út /dev/md0 með RAID tækinu þínu):
Þar sem ég var með /dev/sdf, skulum við halda áfram með það.
Þá getur þú reynt að finna raðnúmer bilaða disksins með því að keyra þetta fyrirmæli:
(ef smartctl finnst ekki, þarftu að setja upp smartmontools pakkann á Ubuntu)
Raðnúmerið getur síðan verið borið saman við raðnúmerin á líkamlegu merki disksins til að finna út hvaða einn hefur bilað.
Þessi sinn var ég ekki svo heppinn, þó. Diskurinn var alveg dauður og neitaði jafnvel að veita SMART eða aðra gögn, þar á meðal raðnúmerið.
Þar sem ég hafði líkamlega aðgang að þjóninum (sem þú þarft virkilega ef þú ætlar að skipta um líkamlegan disk sjálfur, held ég ;-)) og þjónninn var í raun að keyra þegar diskurinn bilaði (og hélt áfram að keyra vel þökk sé RAID-6 endurtekningunni), fór ég í mjög frumlega, en í raun mjög árangursríka og augljósa aðferð til að einfaldlega afrita stóran skrá á þjóninn og fylgjast með hvaða HDD-ljós blikkaði ekki. Á nokkrum sekúndum hafði ég fundið sekan.
Áður en þú teygir á líkamlega diskinn, er gott að formlega tilkynna mdadm um þessa áform, með því að keyra þetta fyrirmæli (skiptu út tækinöfnunum með þínum eigin eftir því sem við á):
Ef vel tekst, mun mdadm svara með skilaboðum sem segja að það hafi "heitt fjarlægt" diskinn, greinilega vegna þess að rafræna RAID tækið er í raun að keyra á þeim tíma.
Ef það bregst með villuboðum sem líklega segja "tæki eða auðlind í notkun", gæti það verið að mdadm hafi í raun ekki skráð diskinn sem alveg bilaðan. Til að láta það gera það, keyrðu þetta fyrirmæli (á ný, mundu að skipta út tækinöfnunum með þínum eigin eftir því sem við á):
Eftir það ættir þú að geta fjarlægt tækið úr raðstillingunni með fyrri fyrirmælunum.
Nú er kominn tími til að skipta út disknum. Ef þú ert virkilega, virkilega - eins og, virkilega - viss um að vélin þín og stjórntækið styðji heitt skipti, gætir þú gert þetta án þess að slökkva á vélinni. Það væri leiðin til að fara á mikilvægum framleiðslukerfum sem keyra á raunverulegum, réttum þjónarvélbúnaði sem þú veist fyrir víst að geti unnið það. Heimaskipulagsþjónninn minn er byggður á neytendavænum skrifborðsmóðurborði með nokkrum hálf-ónafngreindum SATA stjórntækjum í PCIe raufum til að bæta við fleiri SATA tengjum, þó.
Þó að SATA almennt ætti að styðja heitt skipti, var ég ekki tilbúinn að taka neina áhættu á þessari uppsetningu, svo ég valdi að slökkva á vélinni meðan ég skipti um diskinn.
Áður en þú gerir það, þá er góð hugmynd að athuga með að leggja út RAID tækið í /etc/fstab skrá til að Ubuntu reyni ekki að tengja það sjálfkrafa við viðnám við næsta upphaf, vegna þess að það gæti fest og neytt þig í bataham vegna lækkaðrar RAID gagnasafns. Það er kannski ekki mikið mál ef þetta er skrifborðskerfi, en ég rek þennan server án skjás eða lyklaborðs, svo þetta væri svolítið óþægilegt.
Á eftir að ræsa vélinni með nýja diskinn settan inn, notaðu lsblk eða einhverja aðra aðferð til að bera kennsl á hann. Ef þú hefur ekki breytt neinu öðru, þá mun hann líklega (en ekki nauðsynlega) fá sama heiti og diskurinn sem þú skiptir út. Í mínu tilfelli gerðist það, svo nýi diskurinn heitir einnig /dev/sdf.
Þar sem gagnasafnið mitt byggir á skiptingum fremur en líkamlegum tækjum, þurfti ég að afrita skiptingartöfluna frá virkum diski yfir á nýja diskinn til að tryggja að þeir væru nákvæmlega eins. Ef þú rekur gagnasafnið þitt á líkamlegum tækjum í staðinn, getur þú sleppt þessum skrefum.
Ég notaði sgdisk fyrir þetta, afritaði skiptingartöfluna frá /dev/sdc yfir á /dev/sdf. Gakktu úr skugga um að skipta út tæknanum til að passa við eigin tæki eftir þörfum.
Vinsamlegast athugaðu röðina hér: þú listar "til" diskinn fyrst! Þetta er svolítið óhefðbundið fyrir mig, en bara ganga úr skugga um að þú fáir það rétt svo þú fáir ekki annan diskbilun í gagnasafninu ;-)
Svo til að forðast UUID árekstra, búa til nýja UUID fyrir nýja diskinn:
Og nú loks er kominn tími til að bæta nýja disknum við gagnasafnið og byrja á uppbyggingarferlinu! (Allt í lagi, þetta er ekki raunveruleg partý, það er í raun mjög hægfara og kvíðvænlegt ferli þar sem þú vilt virkilega ekki að annar diskur fari út á þessu stigi. En bjór getur hjálpað)
Hvernig sem það er, til að bæta nýja disknum við gagnasafnið, útgáfa þessa fyrirmæla (og aftur, athugaðu að skipta út tæknunum fyrir þínar eigin eftir þörfum):
Ef allt fer vel, verður diskurinn bætt við gagnasafnið án vandræða. Ég trúi því að hann sé í raun bættur sem "hot spare" sjálfkrafa, en þar sem þetta gagnasafn vantar disk (þennan sem fór út), er hann strax settur í notkun og endurbygging ferlið byrjar.
Þú getur fylgst með því eins og svo:
Þetta mun líklega taka smá tíma; á mínu einföldu serveri (sem er að mestu byggður á neytendavara og skrifborðsdiskum, ef þú vilt vita) gat það náð rétt undir 100 MB/sek. Hafðu í huga að þetta er RAID-6, þannig að það eru mikið af jafnvægisútreikningum sem tengjast endurbyggingu; RAID-10 hefði verið miklu hraðari. Þessi sérstaki vélbúnaður hefur AMD A10 9700E fjögurra kjarna CPU (með "E" sem þýðir að það er orkufrekni útgáfa með lægri hraða, þ.e. ekki mjög hraður), bara til að gefa þér hugmynd um hvað þú getur búist við. Með níu 8 TB diskum í mínu uppsetningu tók heildarendurbyggingin rétt yfir 24 tíma.
Á meðan endurbyggingunni fer fram, getur þú tengt skráakerfið á gagnasafninu og notað það eins og venjulega ef þú vilt, en ég kýs að láta það vera að byggja þar til það er búið. Hafðu í huga að ef einn diskur fer út, þá gæti annar farið líka, svo þú vilt að endurbyggingin fari eins hratt og hægt er, því þú vilt ekki að annar diskur fari út á þessum tíma. Því ekki byrði það með öðrum IO sem er ekki algerlega nauðsynlegt.
Þegar það er búið, bættu því aftur við /etc/fstab skránna þína, ræstu upp og njóttu skráanna þinna :-)