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
Përditësimi i fundit: 12 janar 2026 në 8:50:15 e paradites, UTC
Nëse ndodheni në situatën e frikshme të një defekti të diskut në një varg RAID mdadm, ky artikull shpjegon se si ta zëvendësoni atë në mënyrë korrekte në një sistem Ubuntu.
Replacing a Failed Drive in an mdadm Array on Ubuntu
Informacioni në këtë postim bazohet në Ubuntu 18.04 dhe versionin e mdadm të përfshirë në depot e tij; në kohën e shkrimit të v4.1-rc1. Mund të jetë ose jo i vlefshëm për versione të tjera.
Kohët e fundit pata një defekt 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ë arrita të gjej shpejt një disk zëvendësues që më erdhi të nesërmen, në mënyrë që të mund të filloja rindërtimin.
Duhet pranuar se isha paksa shumë i kushtueshëm kur e instalova fillimisht serverin e skedarëve; vetëm dy nga disqet janë disqe të vërteta NAS (Seagate IronWolf), ndërsa pjesa tjetër janë disqe desktopi (Seagate Barracuda). Nuk është çudi që ishte një nga disqet e desktopit që kishte dështuar (megjithatë, pas pothuajse tre vitesh shërbimi). Ishte plotësisht i vdekur; pasi e zhvendosa në një kuti USB desktopi, e vetmja gjë që dëgjova prej tij ishte një tingull kërcitjeje shqetësues dhe as Ubuntu 20.04 dhe as Windows 10 nuk ishin në gjendje ta zbulonin.
Epo, le të kalojmë te pjesa zëvendësuese (dhe po, disku i ri që bleva ishte një IronWolf, mësim i nxjerrë) - sado e frikshme të jetë humbja e një disku në një matricë aktive, është edhe më e frikshme nëse nuk e dini procedurën e saktë për ta zëvendësuar atë. Nuk është hera e parë që më është dashur të zëvendësoj një disk të prishur në një matricë 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 email-in me ngjarjen e frikshme të dështimit nga mdadm, duhet të identifikoni se cili disk ka dështuar. Sigurisht, do t'ju tregojë emrin e pajisjes (në rastin tim /dev/sdf), por ndoshta nuk është e qartë se cili disk fizik është në të vërtetë, pasi këto emra mund të ndryshojnë kur makina të ngarkohet.
Nëse nuk jeni të sigurt se cili emër pajisjeje ka dështuar, mund të përdorni komandën e mëposhtme për ta zbuluar (zëvendësoni /dev/md0 me pajisjen tuaj RAID):
Siç u përmend, në rastin tim ishte /dev/sdf, kështu që le të vazhdojmë me këtë.
Pastaj, mund të provoni të gjeni numrin serial të diskut të dështuar duke lëshuar këtë komandë:
(nëse smartctl nuk gjendet, duhet të instaloni paketën smartmontools në Ubuntu)
Numri serial mund të krahasohet më pas me numrat serialë në etiketën fizike në disqe për të kuptuar se cili prej tyre ka dështuar.
Këtë herë, megjithatë, nuk pata aq fat. Disku ishte plotësisht i vdekur dhe madje refuzoi të jepte të dhëna SMART ose të dhëna të tjera, përfshirë numrin serial.
Meqenëse kisha akses fizik në server (gjë që ju nevojitet vërtet nëse do të zëvendësoni vetë një disk fizik, mendoj ;-)) dhe serveri në fakt po funksiononte kur disku dështoi (dhe vazhdoi të funksiononte mirë falë redundancës RAID-6), zgjodha metodën vërtet primitive, por në fakt shumë efektive dhe të dukshme, duke kopjuar thjesht një skedar të madh në server dhe duke parë se cili dritë HDD nuk dridhej. Brenda pak sekondash e kisha identifikuar fajtorin.
Tani, përpara se të hiqni diskun fizik, është një ide e mirë të informoni zyrtarisht mdadm për këtë qëllim, duke lëshuar këtë komandë (zëvendësoni emrat e pajisjeve me tuajt sipas rastit):
Nëse funksionon me sukses, mdadm do të përgjigjet me një mesazh që thotë se disku "e ka hequr menjëherë", me sa duket sepse pajisja virtuale e bastisjes është në funksion 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 si të dështuar plotësisht. Për ta bërë këtë, jepni këtë komandë (përsëri, mos harroni të zëvendësoni emrat e pajisjeve me tuajt sipas rastit):
Pas kësaj, duhet të jeni në gjendje ta hiqni pajisjen nga vargu me komandën e mëparshme.
Tani është koha për ta zëvendësuar diskun. Nëse jeni vërtet, vërtet - po, vërtet - të sigurt se makina dhe kontrolluesi juaj mbështesin ndërrimin e të nxehtit, mund ta bëni këtë pa e fikur makinën. Kjo do të ishte mënyra për të vepruar me sistemet kritike të prodhimit që funksionojnë në harduer serveri të vërtetë dhe të duhur, të cilin e dini me siguri se mund ta përballojë atë. Serveri im i skedarëve në shtëpi bazohet në një motherboard desktop të nivelit të konsumatorit me disa kontrollues SATA gjysmë-pa emër në slotet PCIe për të ofruar më shumë porta SATA.
Edhe pse SATA në përgjithësi duhet të mbështesë ndërrimin e menjëhershëm (hot swap), nuk doja të rrezikoja asgjë në këtë konfigurim, kështu që zgjodha ta fikja makinën gjatë zëvendësimit të diskut.
Përpara se ta bëni këtë, është mirë të komentoni pajisjen bastisëse në skedarin /etc/fstab në mënyrë që Ubuntu të mos përpiqet ta montojë automatikisht në nisjen tjetër, sepse mund të bllokohet dhe t'ju detyrojë të hyni në modalitetin e rikuperimit për shkak të grupit RAID të degraduar. Kjo mund të mos jetë një problem i madh nëse është një sistem desktop, por unë e përdor këtë server pa kokë pa monitor ose tastierë të lidhur, kështu që kjo do të ishte paksa bezdisëse.
Pasi ta keni nisur makinën me diskun e ri të shkëlqyeshëm 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ë marrë të njëjtin emër si disku që zëvendësuat. Në rastin tim, e mori, kështu që i riu quhet edhe /dev/sdf.
Meqenëse vargu im bazohet në ndarje dhe jo në pajisje fizike, më duhej ta kopjoja tabelën e ndarjeve nga një disk funksional në diskun e ri për t'u siguruar që ato janë saktësisht të njëjta. Nëse e ekzekutoni vargun tuaj në pajisje fizike, mund ta anashkaloni këtë hap.
Për këtë qëllim përdora sgdisk, duke kopjuar tabelën e ndarjeve nga /dev/sdc në /dev/sdf. Sigurohuni që të zëvendësoni emrat e pajisjeve që të përputhen me emrat tuaj, sipas rastit.
Vini re renditjen këtu: ju renditni diskun "për" të parin! Kjo është paksa kundër intuitës për mua, por sigurohuni që ta bëni siç duhet në mënyrë që të mos keni një tjetër dështim të diskut në varg ;-)
Pastaj, për të shmangur konfliktet UUID, gjeneroni UUID të reja për diskun e ri:
Dhe tani më në fund ka ardhur koha për të shtuar diskun e ri në grup dhe për të filluar rindërtimin! (Në rregull, nuk është realisht një festë, në fakt është një proces mjaft i ngadaltë dhe shqetësues, pasi me të vërtetë nuk doni që një disk tjetër të dështojë në këtë kohë. Megjithatë, birra mund të ndihmojë)
Sidoqoftë, për të shtuar diskun e ri në varg, jepni këtë komandë (përsëri, sigurohuni që të zëvendësoni emrat e pajisjeve me tuajin sipas rastit):
Nëse gjithçka shkon mirë, disku do t'i shtohet grupit pa probleme. Unë besoj se në fakt shtohet si një "rezervë e nxehtë" si parazgjedhje, por meqenëse këtij grupi i mungon një disk (ai që dështoi), ai vihet menjëherë në përdorim dhe do të fillojë procesi i rindërtimit.
Mund ta mbani nën vëzhgim si kjo:
Kjo ndoshta do të zgjasë pak; në serverin tim të thjeshtë (i bazuar kryesisht në harduer të nivelit të konsumatorit dhe disqe desktopi, kini parasysh) arriti pak më pak se 100 MB/sek. Mbani mend se ky është RAID-6, kështu që ka shumë llogaritje të paritetit të përfshira me një rindërtim; një RAID-10 do të kishte qenë shumë më i shpejtë. Kjo makinë e veçantë ka një CPU me katër bërthama AMD A10 9700E ("E" do të thotë se është një model me efikasitet energjetik të pamjaftueshëm, pra 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ë varg dhe ta përdorni si zakonisht nëse dëshironi, por unë preferoj ta lë rindërtimin deri sa të përfundojë. Mbani mend se nëse një disk dështon, një tjetër mund të ndodhë së shpejti, kështu që dëshironi që rindërtimi të bëhet sa më shpejt të jetë e mundur, pasi në të vërtetë nuk doni që një disk tjetër të dështojë gjatë kësaj kohe. Prandaj, mos e ngarkoni atë me hyrje të tjera hyrëse që nuk janë absolutisht të nevojshme.
Pasi të keni mbaruar, shtojeni përsëri në skedarin /etc/fstab, ristartoni dhe shijoni skedarët tuaj :-)
