Miklix

Ubuntu-da mdadm massivində uğursuz diskin dəyişdirilməsi

Nəşr olundu: 15 fevral 2025 at 22:09:10 UTC
Son yeniləmə: 12 yanvar 2026 at 08:50:22 UTC

Əgər mdadm RAID massivində sürücünün sıradan çıxması kimi qorxulu vəziyyətdəsinizsə, bu məqalədə onu Ubuntu sistemində necə düzgün şəkildə əvəz edəcəyiniz izah olunur.


Bu səhifə mümkün qədər çox insan üçün əlçatan olması üçün ingilis dilindən maşın tərcümə edilib. Təəssüf ki, maşın tərcüməsi hələ mükəmməl texnologiya deyil, ona görə də səhvlər baş verə bilər. İstəyirsinizsə, orijinal ingilis versiyasına buradan baxa bilərsiniz:

Replacing a Failed Drive in an mdadm Array on Ubuntu

Bu yazıdakı məlumatlar Ubuntu 18.04 və v4.1-rc1 yazıldığı zaman onun depolarında olan mdadm versiyasına əsaslanır. Digər versiyalar üçün keçərli ola bilər və ya olmaya bilər.

Bu yaxınlarda mdadm RAID-6 massivində doqquz diskdən ibarət olan ev fayl serverimdə qəfil disk nasazlığı yaşadım. Bu, həmişə qorxulu olsa da, xoşbəxtlikdən yenidən qurmağa başlamaq üçün ertəsi gün çatdırılan əvəzedici diski tez bir zamanda tapa bildim.

Düzünü desəm, fayl serverini ilk dəfə quranda bir az çox ucuz idim; sürücülərdən yalnız ikisi əsl NAS sürücüləridir (Seagate IronWolf), qalanları isə masaüstü sürücülərdir (Seagate Barracuda). Təəccüblü deyil ki, bu, (təxminən üç illik xidmətdən sonra) sıradan çıxan masaüstü sürücülərdən biri idi. Tamamilə sıradan çıxmışdı; onu masaüstü USB korpusuna köçürdükdən sonra ondan yalnız əsəbiləşdirici bir klik səsi eşitdim və nə Ubuntu 20.04, nə də Windows 10 bunu aşkar edə bilmədi.

Hə, keçək əvəzedici hissəyə (bəli, aldığım yeni disk IronWolf idi, dərs çıxdı) - işləyən massivdə diski itirmək nə qədər qorxulu olsa da, onu dəyişdirmək üçün düzgün proseduru bilmirsinizsə, daha da qorxuludur. mdadm massivində sıradan çıxmış diski dəyişdirməli olduğum ilk dəfə deyil, amma xoşbəxtlikdən bu o qədər nadir hallarda olur ki, adətən düzgün əmrləri axtarmalı oluram. Bu dəfə gələcəkdə istinad üçün öz kiçik bələdçimi hazırlamağa qərar verdim.

Beləliklə, ilk növbədə, mdadm-dan qorxulu xəta hadisəsi e-poçtu aldığınız zaman hansı diskin xətaya uğradığını müəyyən etməlisiniz. Əlbəttə ki, cihazın adını (mənim vəziyyətimdə /dev/sdf) deyəcək, amma əslində hansı fiziki diskin olduğu bəlli deyil, çünki bu adlar maşın açıldıqda dəyişə bilər.

Hansı cihaz adının sıradan çıxdığından əmin deyilsinizsə, aşağıdakı əmrdən istifadə edərək bunu öyrənə bilərsiniz (/dev/md0-ı RAID cihazınızla əvəz edin):

mdadm -–query -–detail /dev/md0

Qeyd edildiyi kimi, mənim vəziyyətimdə bu /dev/sdf idi, ona görə də buna davam edək.

Daha sonra, bu əmri verərək uğursuz sürücünün seriya nömrəsini tapmağa cəhd edə bilərsiniz:

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

(əgər smartctl tapılmırsa, Ubuntu-da smartmontools paketini quraşdırmalısınız)

Seriya nömrəsi daha sonra hansının sıradan çıxdığını müəyyən etmək üçün sürücülərdəki fiziki etiketdəki seriya nömrələri ilə müqayisə edilə bilər.

Amma bu dəfə o qədər də şanslı deyildim. Sürücü tamamilə sıradan çıxmışdı və hətta SMART və ya seriya nömrəsi də daxil olmaqla digər məlumatları təqdim etməkdən imtina etdi.

Serverə fiziki girişim olduğundan (fiziki sürücünü özünüz dəyişdirmək istəyirsinizsə, bu, həqiqətən lazımdır ;-)) və disk sıradan çıxdığı zaman server əslində işləyirdi (və RAID-6 ehtiyatı sayəsində yaxşı işləməyə davam etdi), sadəcə böyük bir faylı serverə kopyalayıb hansı HDD işığının yanıb-sönmədiyini izləmək kimi çox ibtidai, lakin əslində çox təsirli və aşkar bir üsula keçdim. Bir neçə saniyə ərzində günahkarı müəyyən etdim.

İndi, fiziki sürücünü çıxarmazdan əvvəl, bu əmri verərək (cihaz adlarını uyğun olaraq öz adlarınızla əvəz edin) mdadm-ə bu niyyət barədə rəsmi olaraq məlumat vermək yaxşı olardı:

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

Uğur qazandıqda, mdadm, sürücünün "sıfırlandığını" bildirən bir mesajla cavab verəcək, çünki virtual reyd cihazı əslində həmin anda işləyir.

Əgər "cihaz və ya resurs məşğuldur" kimi bir səhv mesajı ilə uğursuz olarsa, bu, mdadm-in əslində sürücünü tamamilə uğursuz kimi qeyd etməməsi ola bilər. Bunu etmək üçün bu əmri verin (yenə də cihaz adlarını uyğun olaraq öz cihaz adlarınızla əvəz etməyi unutmayın):

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

Bundan sonra, əvvəlki əmrlə cihazı massivdən silə bilməlisiniz.

İndi sürücünü dəyişdirməyin vaxtıdır. Əgər həqiqətən də, həqiqətən də, həqiqətən də, həqiqətən də maşınınızın və nəzarətçinizin isti dəyişdirməni dəstəklədiyinə əminsinizsə, bunu maşını söndürmədən edə bilərsiniz. Bu, bunu idarə edə biləcəyini bildiyiniz real, düzgün server avadanlığında işləyən vacib istehsal sistemlərində gedəcəyiniz yol olardı. Mənim ev fayl serverim daha çox SATA portu təmin etmək üçün PCIe yuvalarında bir neçə yarı-adsız SATA nəzarətçisi olan istehlakçı səviyyəli masaüstü anakarta əsaslanır.

SATA ümumiyyətlə isti dəyişdirməni dəstəkləməli olsa da, bu quraşdırmada heç bir riskə getmək niyyətində deyildim, ona görə də sürücünü dəyişdirərkən maşını söndürməyi seçdim.

Bunu etməzdən əvvəl, Ubuntu-nun növbəti açılışda avtomatik olaraq quraşdırmağa çalışmaması üçün RAID massivinin pozulması səbəbindən donub qalması və sizi bərpa rejiminə keçirməsi üçün reyd cihazını /etc/fstab faylında şərh etmək yaxşı olardı. Əgər bu, masaüstü sistemdirsə, bu, böyük problem olmaya bilər, amma mən bu serveri monitor və ya klaviatura qoşulmadan başlıqsız işlədirəm, ona görə də bu, bir az çətinlik yarada bilər.

Parlaq yeni sürücü quraşdırılmış vəziyyətdə maşını işə saldıqdan sonra, onu müəyyən etmək üçün lsblk və ya başqa bir vasitədən istifadə edin. Başqa bir şey dəyişdirməmisinizsə, çox güman ki (amma mütləq deyil) dəyişdirdiyiniz sürücü ilə eyni adı alacaq. Mənim vəziyyətimdə dəyişdi, ona görə də yenisi də /dev/sdf adlanır.

Massivim fiziki cihazlara deyil, arakəsmələrə əsaslandığından, bölmə cədvəlinin tam eyni olduğundan əmin olmaq üçün onu işləyən diskdən yeni diskə kopyalamalı oldum. Bunun əvəzinə massivi fiziki cihazlarda işlətsəniz, bu addımı atlaya bilərsiniz.

Bu məqsədlə sgdisk-dən istifadə edərək bölmə cədvəlini /dev/sdc-dən /dev/sdf-ə kopyaladım. Cihaz adlarını uyğun olaraq öz cihaz adlarınızla əvəz etdiyinizə əmin olun.

Buradakı sıraya diqqət yetirin: əvvəlcə "to" sürücüsünü sadalayırsınız! Bu, mənim üçün bir az əks-intuitivdir, amma massivdə başqa bir sürücü xətası ilə qarşılaşmamaq üçün düzgün yazdığınızdan əmin olun ;-)

sgdisk -R /dev/sdf /dev/sdc

Daha sonra UUID münaqişələrinin qarşısını almaq üçün yeni sürücü üçün yeni UUID-lər yaradın:

sgdisk -G /dev/sdf

Və nəhayət, yeni diski massivə əlavə edib yenidən qurma qrupuna başlamağın vaxtı gəldi! (Tamam, bu, əslində bir qrup deyil, əslində olduqca yavaş və narahatedici bir prosesdir, çünki həqiqətən də, həqiqətən də bu zaman başqa bir diskin sıradan çıxmasını istəmirsiniz. Amma pivə kömək edə bilər)

Hər halda, yeni sürücünü massivə əlavə etmək üçün bu əmri verin (yenə də cihaz adlarını uyğun olaraq öz adlarınızla əvəz etdiyinizə əmin olun):

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

Əgər hər şey qaydasında gedərsə, sürücü heç bir problem olmadan massivə əlavə olunacaq. Düşünürəm ki, əslində o, standart olaraq "ehtiyat ehtiyat" kimi əlavə olunur, lakin bu massivdə bir disk (xəta edilən) çatışmadığı üçün dərhal istifadəyə verilir və yenidən qurma prosesi başlayacaq.

Bunu aşağıdakı kimi izləyə bilərsiniz:

watch cat /proc/mdstat

Bu, yəqin ki, bir az vaxt aparacaq; mənim aşağı səviyyəli serverimdə (əsasən istehlakçı səviyyəli aparat və masaüstü disklərə əsaslanaraq) bu, saniyədə 100 MB-dan bir az aşağı sürətə çata bildi. Nəzərə alın ki, bu, RAID-6-dır, ona görə də yenidən qurulma ilə bağlı bir çox paritet hesablamaları tələb olunur; RAID-10 daha sürətli olardı. Bu xüsusi maşında nə gözləməli olduğunuzu anlamaq üçün AMD A10 9700E dördnüvəli prosessor ("E" hərfi enerjiyə qənaət edən modelin saat sürətindən aşağı olduğunu, yəni super sürətli olmadığını bildirir) var. Quraşdırmamdakı doqquz 8 TB disklə tam yenidən qurulma 24 saatdan bir az çox vaxt apardı.

Yenidənqurma zamanı fayl sistemini massivə quraşdıra və istəsəniz, normal istifadə edə bilərsiniz, amma mən tamamlanana qədər yenidənqurmaya buraxmağı üstün tuturam. Nəzərə alın ki, bir disk sıradan çıxarsa, tezliklə digəri sıradan çıxa bilər, ona görə də yenidənqurmanın mümkün qədər tez edilməsini istəyirsiniz, çünki bu müddət ərzində başqa bir diskin sıradan çıxmasını istəmirsiniz. Buna görə də, onu ciddi şəkildə zəruri olmayan digər IO-larla yükləməyin.

Bitdikdən sonra onu /etc/fstab faylınıza əlavə edin, yenidən başladın və fayllarınızdan zövq alın :-)

Bluesky-də paylaşınFacebookda paylaşLinkedIn-də paylaşınTumblr-da paylaşınX-də paylaşınLinkedIn-də paylaşınPinterest-də Pin

Mikkel Christensen

Müəllif haqqında

Mikkel Christensen
Mikkel miklix.com saytının yaradıcısı və sahibidir. O, peşəkar kompüter proqramçısı/proqram təminatı tərtibatçısı kimi 20 ildən artıq təcrübəyə malikdir və hazırda böyük Avropa İT korporasiyasında tam iş günü işləyir. Bloq yazmayanda o, boş vaxtını geniş çeşidli maraqlara, hobbilərə və fəaliyyətlərə sərf edir ki, bu da müəyyən dərəcədə bu veb-saytda əhatə olunan müxtəlif mövzularda əks oluna bilər.