Miklix

Zëvendësimi i një disku të dështuar në një grup mdadm në Ubuntu

Publikuar: 15 shkurt 2025 në 10:03:54 e pasdites, UTC

Nëse jeni në situatën e frikshme për të pasur një dështim të diskut në një grup mdadm RAID, ky artikull shpjegon se si ta zëvendësoni saktë atë në një sistem Ubuntu.


Kjo faqe u përkthye me makinë nga anglishtja për ta bërë të aksesueshme për sa më shumë njerëz. Fatkeqësisht, përkthimi me makinë nuk është ende një teknologji e përsosur, kështu që mund të ndodhin gabime. Nëse preferoni, mund ta shikoni versionin origjinal në anglisht këtu:

Replacing a Failed Drive in an mdadm Array on Ubuntu

Informacioni në këtë postim bazohet në Ubuntu 18.04 dhe versioni i mdadm i përfshirë në depot e tij; në kohën e shkrimit të v4.1-rc1. Mund të jetë ose jo e vlefshme për versionet e tjera.

Kohët e fundit pata një dështim të papritur të diskut në serverin tim të skedarëve në shtëpi, i cili përbëhet nga nëntë disqe në një grup mdadm RAID-6. Kjo është gjithmonë e frikshme, por për fat të mirë isha në gjendje të siguroja shpejt një disk zëvendësues që u dorëzua tashmë të nesërmen, në mënyrë që të mund të filloja rindërtimin.

Unë padyshim që isha paksa shumë i lirë kur konfigurova fillimisht serverin e skedarëve; vetëm dy nga disqet janë disqe NAS aktuale (Seagate IronWolf), ndërsa pjesa tjetër janë disqe desktop (Seagate Barracuda). Jo çuditërisht, ishte një nga disqet e desktopit që kishte hequr dorë (megjithatë pas gati tre vjetësh shërbimi). Ishte krejtësisht i vdekur; pasi e zhvendosa në një mbyllje USB të desktopit, gjithçka që dola prej tij ishte një tingull shqetësues klikimi dhe as Ubuntu 20.04 dhe as Windows 10 nuk ishin në gjendje ta zbulonin atë.

Oh mirë, te pjesa zëvendësuese (dhe po, disku i ri që bleva ishte një IronWolf, mësimi i mësuar) - po aq e frikshme sa është humbja e një disku në një grup që funksionon, është edhe më e frikshme nëse nuk e dini procedurën e duhur për ta zëvendësuar. Nuk është hera e parë që më është dashur të zëvendësoj një disk të dështuar në një grup mdadm, por për fat të mirë është kaq e rrallë sa zakonisht më duhet të kërkoj komandat e duhura. Këtë herë vendosa të krijoj udhëzuesin tim të vogël për referencë në të ardhmen.

Pra, para së gjithash, kur merrni e-mailin e frikshëm të ngjarjes së dështimit nga mdadm, duhet të identifikoni se cili disku ka dështuar. Sigurisht, do t'ju tregojë emrin e pajisjes (në rastin tim /dev/sdf), por ndoshta nuk është e qartë se cila disku fizik është në të vërtetë pasi këta emra mund të ndryshojnë kur pajisja niset.

Nëse nuk jeni as të sigurt se cili emër i pajisjes ka dështuar, mund të përdorni komandën e mëposhtme për të zbuluar (zëvendësoni /dev/md0 me pajisjen tuaj RAID):

mdadm -–query -–detail /dev/md0

Siç u përmend, në rastin tim ishte /dev/sdf, kështu që le të vazhdojmë me këtë.

Pastaj, mund të përpiqeni të gjeni numrin serial të diskut të dështuar duke lëshuar këtë komandë:

smartctl -–all /dev/sdf | grep -i 'Serial'

(nëse smartctl nuk gjendet, duhet të instaloni paketën smartmontools në Ubuntu)

Më pas, numri serial mund të krahasohet me numrat serialë në etiketën fizike në disqet për të kuptuar se cili prej tyre ka dështuar.

Megjithatë, këtë herë nuk isha aq me fat. Disku ishte plotësisht i vdekur dhe madje refuzoi të jepte SMART ose të dhëna të tjera, përfshirë numrin serial.

Meqenëse kisha akses fizik në server (që ju duhet vërtet nëse do të zëvendësoni vetë një diskun fizik, supozoj ;-)) dhe serveri po funksiononte në të vërtetë kur disku dështoi (dhe vazhdoi të funksiononte mirë falë tepricës së RAID-6), unë shkova me metodën vërtet primitive, por në fakt shumë efektive dhe të dukshme, të thjesht kopjimit të një skedari të madh HDD në server dhe shikimit të dritës. Brenda pak sekondash e kisha identifikuar fajtorin.

Tani, përpara se të hiqni diskun fizik, është një ide e mirë që të informoni zyrtarisht mdadm për këtë qëllim, duke lëshuar këtë komandë (zëvendësoni emrat e pajisjeve me emrat tuaj sipas rastit):

mdadm -–manage /dev/md0 -–remove /dev/sdf1

Pas suksesit, mdadm do të përgjigjet me një mesazh duke thënë se "hoqi nxehtë" diskun, me sa duket sepse pajisja virtuale e bastisjes po funksionon në atë kohë.

Nëse dështon me një mesazh gabimi të ngjashëm me "pajisja ose burimi i zënë", mund të jetë që mdadm në fakt nuk e ka regjistruar diskun që të ketë dështuar plotësisht. Për ta bërë këtë, lëshoni këtë komandë (përsëri, mos harroni të zëvendësoni emrat e pajisjeve me tuajat sipas rastit):

mdadm --manage /dev/md0 --fail /dev/sdf

Pas kësaj, duhet të jeni në gjendje ta hiqni pajisjen nga grupi me komandën e mëparshme.

Tani është koha për të zëvendësuar në fakt diskun. Nëse jeni vërtet, me të vërtetë - si, vërtet - i sigurt se makina dhe kontrolluesi juaj mbështet shkëmbimin e nxehtë, mund ta bëni këtë pa e fikur pajisjen. Kjo do të ishte mënyra për të ecur në sistemet kritike të prodhimit që funksionojnë në harduer real, të duhur të serverit që ju e dini me të vërtetë se mund ta trajtojë atë. Serveri im i skedarëve në shtëpi bazohet në një pllakë amë të klasës së konsumatorit me disa kontrollues SATA gjysëm pa emër në foletë PCIe për të ofruar më shumë porte SATA.

Megjithëse SATA në përgjithësi duhet të mbështesë shkëmbimin e nxehtë, unë nuk do të rrezikoja asgjë në këtë konfigurim, kështu që zgjodha të fikja makinën gjatë zëvendësimit të diskut.

Përpara se ta bëni këtë, është mirë të komentoni pajisjen e bastisjes në skedarin /etc/fstab në mënyrë që Ubuntu të mos përpiqet ta montojë automatikisht në nisjen tjetër, sepse mund të varet dhe t'ju detyrojë në modalitetin e rikuperimit për shkak të grupit të degraduar RAID. Kjo mund të mos jetë një problem i madh nëse është një sistem desktop, por unë e drejtoj këtë server pa kokë pa monitor ose tastierë të bashkangjitur, kështu që kjo do të ishte pak e mundimshme.

Pas nisjes së makinës me diskun e ri me shkëlqim të instaluar, përdorni lsblk ose ndonjë mjet tjetër për ta identifikuar atë. Nëse nuk keni ndryshuar asgjë tjetër, ndoshta (por jo domosdoshmërisht ) do të ketë të njëjtin emër si disku që keni zëvendësuar. Në rastin tim ndodhi, kështu që e reja quhet gjithashtu /dev/sdf.

Meqenëse grupi im bazohet në ndarje dhe jo në pajisje fizike, më duhej të kopjoja tabelën e ndarjes nga një disk që funksionon në diskun e ri, në mënyrë që të sigurohem që ato janë saktësisht të njëjta. Nëse e përdorni grupin tuaj në pajisje fizike, mund ta kapërceni këtë hap.

Kam përdorur sgdisk për këtë qëllim, duke kopjuar tabelën e ndarjes nga /dev/sdc në /dev/sdf. Sigurohuni që të zëvendësoni emrat e pajisjeve që të përputhen me emrin tuaj sipas rastit.

Vini re rendin këtu: së pari renditni makinën "për"! Kjo është paksa kundërintuitive për mua, por vetëm sigurohuni që ta kuptoni siç duhet në mënyrë që të mos keni një dështim tjetër të diskut në grup ;-)

sgdisk -R /dev/sdf /dev/sdc

Pastaj për të shmangur konfliktet UUID, gjeneroni UUID të reja për diskun e ri:

sgdisk -G /dev/sdf

Dhe tani më në fund ka ardhur koha për të shtuar diskun e ri në grup dhe për të filluar festën e rindërtimit! (Mirë, nuk është në të vërtetë një festë, në fakt është një proces mjaft i ngadaltë dhe shqetësues pasi vërtet, vërtet nuk dëshironi që një tjetër makinë të dështojë në këtë kohë. Megjithatë, birra mund të ndihmojë)

Gjithsesi, për të shtuar diskun e ri në grup, lëshoni këtë komandë (përsëri, sigurohuni që të zëvendësoni emrat e pajisjeve me tuajat sipas rastit):

mdadm -–manage /dev/md0 -–add /dev/sdf1

Nëse gjithçka shkon mirë, disku do të shtohet në grup pa probleme. Unë besoj se në fakt është shtuar si "hot rezervë" si parazgjedhje, por meqenëse këtij grupi i mungon një disk (ai që dështoi), ai vihet menjëherë në përdorim dhe procesi i rindërtimit do të fillojë.

Ju mund ta mbani një sy në këtë mënyrë:

watch cat /proc/mdstat

Kjo ndoshta do të marrë pak kohë; në serverin tim të ulët (bazuar kryesisht në harduerin e konsumatorit dhe disqet desktop, ki parasysh) ishte në gjendje të arrinte pak më pak se 100 MB/sek. Mbani në mend se ky është RAID-6, kështu që ka shumë llogaritje të barazisë të përfshira me një rindërtim; një RAID-10 do të ishte shumë më i shpejtë. Kjo makinë e veçantë ka një CPU me katër bërthama AMD A10 9700E ("E" që do të thotë se është një model me efikasitet energjie me pak orë, dmth jo super i shpejtë), vetëm për t'ju dhënë një ide se çfarë të prisni. Me nëntë disqet 8 TB në konfigurimin tim, rindërtimi i plotë zgjati pak më shumë se 24 orë.

Gjatë rindërtimit, mund ta montoni sistemin e skedarëve në grup dhe ta përdorni si zakonisht nëse dëshironi, por unë preferoj ta lë në rindërtim derisa të përfundojë. Mbani në mend se nëse një makinë dështon, një tjetër mund të pasojë së shpejti, kështu që dëshironi që rindërtimi të bëhet sa më shpejt që të jetë e mundur pasi në të vërtetë nuk dëshironi që një makinë tjetër të dështojë gjatë kësaj. Prandaj, mos e ngarkoni me IO të tjera që nuk janë rreptësisht të nevojshme.

Pasi të ketë mbaruar, shtoni përsëri në skedarin tuaj /etc/fstab, rindizni dhe shijoni skedarët tuaj :-)

Shpërndaje në BlueskyShpërndaje në FacebookNdani në LinkedInShpërndaje në TumblrShpërndaje në XNdani në LinkedInPin në Pinterest

Mikkel Bang Christensen

Rreth Autorit

Mikkel Bang Christensen
Mikkel është krijuesi dhe pronari i miklix.com. Ai ka mbi 20 vjet përvojë si programues profesional kompjuteri/zhvillues softuerësh dhe aktualisht është i punësuar me kohë të plotë për një korporatë të madhe evropiane IT. Kur nuk bën blog, ai e kalon kohën e lirë në një gamë të gjerë interesash, hobish dhe aktivitetesh, të cilat mund të reflektohen në një farë mase në shumëllojshmërinë e temave të mbuluara në këtë faqe interneti.