Ubuntu'da mdadm Dizisindeki Arızalı Bir Sürücüyü Değiştirme
Yayınlandı: 15 Şubat 2025 22:02:36 UTC
Son güncelleme: 12 Ocak 2026 08:50:04 UTC
Eğer mdadm RAID dizisinde bir sürücü arızası gibi istenmeyen bir durumla karşı karşıyaysanız, bu makale Ubuntu sisteminde sürücüyü doğru şekilde nasıl değiştireceğinizi açıklıyor.
Replacing a Failed Drive in an mdadm Array on Ubuntu
Bu yazıda yer alan bilgiler Ubuntu 18.04 ve depolarında bulunan mdadm sürümüne (yazım anında v4.1-rc1) dayanmaktadır. Diğer sürümler için geçerli olmayabilir.
Yakın zamanda, mdadm RAID-6 dizisinde dokuz sürücüden oluşan ev tipi dosya sunucumda ani bir sürücü arızası yaşadım. Bu her zaman korkutucu bir durum, ancak neyse ki ertesi gün teslim edilen bir yedek sürücüyü hızlıca temin edebildim ve yeniden kurulum işlemine başlayabildim.
Dosya sunucusunu ilk kurduğumda biraz fazla cimri davrandığımı itiraf etmeliyim; sürücülerin sadece ikisi gerçek NAS sürücüsü (Seagate IronWolf), geri kalanı ise masaüstü sürücüsü (Seagate Barracuda). Şaşırtıcı olmayan bir şekilde, (neredeyse üç yıllık hizmetten sonra) bozulan masaüstü sürücülerinden biri oldu. Tamamen çalışmaz hale gelmişti; onu bir masaüstü USB kutusuna taşıdıktan sonra ondan sadece rahatsız edici bir tıklama sesi alabildim ve ne Ubuntu 20.04 ne de Windows 10 onu algılayabildi.
Neyse, yedek parçaya geçelim (ve evet, aldığım yeni sürücü bir IronWolf'tu, dersimi aldım) - çalışan bir dizide bir sürücüyü kaybetmek ne kadar korkutucuysa, doğru değiştirme prosedürünü bilmiyorsanız daha da korkutucu. mdadm dizisinde arızalı bir sürücüyü değiştirmek zorunda kaldığım ilk sefer değil, ancak neyse ki o kadar nadir oluyor ki genellikle doğru komutları aramak zorunda kalıyorum. Bu sefer, ileride başvurmak üzere kendi küçük kılavuzumu hazırlamaya karar verdim.
Öncelikle, mdadm'den o korkunç hata olay e-postasını aldığınızda, hangi sürücünün arızalandığını belirlemeniz gerekiyor. Elbette, size aygıt adını söyleyecektir (benim durumumda /dev/sdf), ancak bu adlar makine başlatıldığında değişebileceğinden, bunun aslında hangi fiziksel sürücü olduğunu anlamak muhtemelen kolay değildir.
Hangi aygıt adının arızalandığından emin değilseniz, aşağıdaki komutu kullanarak bunu öğrenebilirsiniz (/dev/md0 yerine RAID aygıtınızı yazın):
Daha önce de belirttiğim gibi, benim durumumda bu /dev/sdf idi, o yüzden onunla devam edelim.
Ardından, şu komutu vererek arızalı sürücünün seri numarasını bulmayı deneyebilirsiniz:
(Eğer smartctl bulunamazsa, Ubuntu'da smartmontools paketini yüklemeniz gerekir.)
Seri numarası daha sonra sürücüler üzerindeki fiziksel etiketlerdeki seri numaralarıyla karşılaştırılarak hangi sürücünün arızalı olduğu belirlenebilir.
Bu sefer o kadar şanslı değildim. Sabit disk tamamen bozulmuştu ve seri numarası da dahil olmak üzere SMART veya diğer verileri sağlamayı bile reddediyordu.
Sunucuya fiziksel erişimim olduğu için (ki bence fiziksel bir sürücüyü kendiniz değiştirecekseniz buna gerçekten ihtiyacınız var ;-)) ve disk arızalandığında sunucu çalışır durumda olduğu için (ve RAID-6 yedeklemesi sayesinde sorunsuz çalışmaya devam ettiği için), oldukça ilkel ama aslında son derece etkili ve açık bir yöntem olan, sunucuya büyük bir dosya kopyalayıp hangi HDD ışığının yanıp sönmediğini izlemeye karar verdim. Birkaç saniye içinde suçluyu tespit ettim.
Fiziksel sürücüyü çıkarmadan önce, bu niyetinizi mdadm'ye resmi olarak bildirmek iyi bir fikirdir; bunun için şu komutu verin (cihaz adlarını uygun şekilde kendi adlarınızla değiştirin):
İşlem başarılı olursa, mdadm sürücünün "çalışır durumdayken çıkarıldığını" belirten bir mesajla yanıt verecektir; bunun nedeni, sanal RAID aygıtının o anda gerçekten çalışıyor olmasıdır.
Aygıt veya kaynak meşgul" benzeri bir hata mesajıyla başarısız olursa, mdadm'nin sürücünün tamamen arızalandığını kaydetmemiş olması mümkündür. Bunu sağlamak için şu komutu verin (yine, aygıt adlarını uygun şekilde kendi adlarınızla değiştirmeyi unutmayın):
Bundan sonra, önceki komutu kullanarak cihazı diziden kaldırabilirsiniz.
Şimdi sıra sürücüyü değiştirmeye geldi. Makinenizin ve kontrolcünüzün çalışır durumdayken disk değiştirmeyi desteklediğinden gerçekten, gerçekten eminseniz, makineyi kapatmadan bunu yapabilirsiniz. Bu, gerçek, düzgün sunucu donanımı üzerinde çalışan ve bunu kaldırabileceğinden emin olduğunuz kritik üretim sistemlerinde izlenecek yol olacaktır. Ancak benim evdeki dosya sunucum, daha fazla SATA portu sağlamak için PCIe yuvalarında birkaç yarı isimsiz SATA kontrolcüsüne sahip, tüketici sınıfı bir masaüstü anakartına dayanıyor.
SATA genellikle çalışır durumdayken disk değiştirmeyi desteklese de, bu kurulumda herhangi bir risk almak istemediğim için, diski değiştirirken makineyi kapatmayı tercih ettim.
Bunu yapmadan önce, Ubuntu'nun bir sonraki önyüklemede otomatik olarak bağlamaya çalışmaması için /etc/fstab dosyasındaki RAID aygıtını yorum satırı haline getirmek iyi bir fikirdir; çünkü bozulmuş RAID dizisi nedeniyle sistem donabilir ve kurtarma moduna geçmenize neden olabilir. Masaüstü bir sistem için bu büyük bir sorun olmayabilir, ancak ben bu sunucuyu monitör veya klavye bağlı olmadan, başsız modda çalıştırıyorum, bu yüzden bu biraz zahmetli olurdu.
Yeni sürücüyü takıp makineyi başlattıktan sonra, lsblk veya başka bir yöntem kullanarak sürücüyü tanımlayın. Başka hiçbir şeyi değiştirmediyseniz, büyük olasılıkla (ama mutlaka değil) değiştirdiğiniz sürücüyle aynı adı alacaktır. Benim durumumda öyle oldu, bu yüzden yenisi de /dev/sdf olarak adlandırılıyor.
Dizim fiziksel aygıtlar yerine bölümlere dayalı olduğundan, tam olarak aynı olduklarından emin olmak için bölüm tablosunu çalışan bir sürücüden yeni sürücüye kopyalamam gerekti. Diziminizi fiziksel aygıtlar üzerinde çalıştırıyorsanız, bu adımı atlayabilirsiniz.
Bu işlem için sgdisk kullandım ve bölüm tablosunu /dev/sdc'den /dev/sdf'ye kopyaladım. Cihaz adlarını kendi cihaz adlarınızla uygun şekilde değiştirdiğinizden emin olun.
Buradaki sıraya dikkat edin: "hedef" sürücüyü ilk sıraya koyuyorsunuz! Bu benim için biraz sezgisel olmayan bir durum, ancak dizide başka bir sürücü arızası yaşamamak için doğru yaptığınızdan emin olun ;-)
Ardından, UUID çakışmalarını önlemek için yeni sürücü için yeni UUID'ler oluşturun:
Ve nihayet yeni sürücüyü diziye ekleme ve yeniden oluşturma işlemine başlama zamanı geldi! (Tamam, aslında bu bir parti değil, oldukça yavaş ve sinir bozucu bir süreç çünkü bu aşamada başka bir sürücünün arızalanmasını gerçekten istemezsiniz. Ama bira yardımcı olabilir.)
Her neyse, yeni sürücüyü diziye eklemek için şu komutu verin (yine, cihaz adlarını uygun şekilde kendi adlarınızla değiştirdiğinizden emin olun):
Her şey yolunda giderse, sürücü sorunsuz bir şekilde diziye eklenecektir. Sanırım varsayılan olarak "yedek disk" olarak ekleniyor, ancak bu dizide bir disk eksik olduğu için (arızalanan disk), hemen kullanıma alınıyor ve yeniden oluşturma işlemi başlıyor.
Şöyle takip edebilirsiniz:
Bu işlem muhtemelen biraz zaman alacak; benim mütevazı sunucumda (çoğunlukla tüketici sınıfı donanım ve masaüstü sürücülerden oluşuyor, unutmayın) 100 MB/sn'nin biraz altında bir hıza ulaşabildi. Bunun RAID-6 olduğunu, dolayısıyla yeniden oluşturma işleminde çok fazla eşlik hesaplaması olduğunu unutmayın; RAID-10 çok daha hızlı olurdu. Bu özel makinede AMD A10 9700E dört çekirdekli bir CPU ( "E" harfi, düşük saat hızına sahip enerji verimli bir model olduğunu, yani süper hızlı olmadığını gösteriyor) bulunuyor, bu da ne bekleyeceğiniz konusunda size bir fikir veriyor. Kurulumumdaki dokuz adet 8 TB'lık sürücüyle, tam yeniden oluşturma işlemi 24 saatten biraz fazla sürdü.
Yeniden oluşturma işlemi sırasında, isterseniz dosya sistemini diziye bağlayabilir ve normal şekilde kullanabilirsiniz, ancak ben yeniden oluşturma işlemi tamamlanana kadar beklemeyi tercih ederim. Bir sürücünün arızalanması durumunda, diğerinin de kısa süre sonra arızalanabileceğini unutmayın; bu nedenle yeniden oluşturma işleminin mümkün olduğunca hızlı tamamlanmasını istersiniz, çünkü bu sırada başka bir sürücünün arızalanmasını gerçekten istemezsiniz. Bu nedenle, kesinlikle gerekli olmayan diğer G/Ç işlemleriyle onu aşırı yüklemeyin.
İşlem tamamlandığında, dosyayı /etc/fstab dosyasına geri ekleyin, bilgisayarınızı yeniden başlatın ve dosyalarınızın keyfini çıkarın :-)
