mdadm - Diski RAID0'dan kaldır


11

Yani, bilmek istiyorum, mdadm ile aşağıdakileri yapmak mümkündür:

  1. 2 diskte RAID0 yapılandırmasıyla başlıyorum: sdave sdb.
  2. Diziye bir disk daha eklemek sdcve sdbondan tüm verileri taşımak istiyorum .
  3. Bağlantıyı kesin sdb.

Ben diziyi durdurmak kopya - Şu anda yalnızca bir seçeneği görmek sdbiçin sdcbirlikte ddveya herhangi bir diğer blok kopya aracı ve dizi geri başlatın.

Bir şey mi özledim? Bunu mdadm ile yapmak mümkün mü?


Geçici bir aynaya sdb yapabilir ve daha sonra arka planda sdc'yi senkronize edebilirsiniz - bu, gerekli arıza süresini azalttı, ancak bunu sizin yerinizde bir acemi olarak yapmadım.
peterh - Monica

Emin bir acemi değilim :) Bana geçici ayna hakkında daha fazla bilgi verebilir misiniz? Mdadm özelliği var mı?
manique

Hayır, basit bir baskın özelliğidir. Ben raid1 dizisinde sdb yerini almak olabilir geçici bir raid1 dizi düşündüm. Sdb'yi sdc ile senkronize ederken, raid0 dizinizin bir parçası olarak da kullanabilirsiniz.
peterh - Monica'yı geri yükle

Peki, seni doğru anladım mı? 1. Diziyi durdurun. 2. sbd ve sdc ile bir RAID1 dizisi daha oluşturun. 3. Ve mdadm'a nasıl RAD0'ımı sdb yerine md1 ile başlatabilirim?
manique

Çok fazla araştırma yapmadım, ama kesinlikle bir RAID0 -> RAID5'den büyüyebilmeniz gerekiyor gibi görünüyor. Ardından RAID0'a geri çekin.
Zoredache

Yanıtlar:


17

Her şeyden önce: hala "RAID0 etkin yedek yok" inananlara. RAID seviyelerini ve mdadm'ı anlayan insan tarafından yapılan manuel bir yedek olabilir. mdadm yazılım RAID, bu yüzden çok ilginç şeyler yapabilir.

Fikir için Zoredache'ye kredi !

Yani, durum:

  • iki diskten oluşan RAID0 diziniz var
  • bunlardan birini dizi kesinti süresi olmadan değiştirmek istersiniz

Arıza süresi kabul edilebilir durumdaysa, her zaman dd ile diskin bir blok kopyasını oluşturabilir ve diziyi yeniden birleştirebilirsiniz, mdadm TAMAM yapacaktır.

Çözüm: ara çözüm olarak RAID4 kullanın

RAID0 -> RAID4 -> RAID0

Yani, RAID4'ü hatırlamıyorsanız, basittir. Bir eşlik bloğu vardır, ancak RAID5'ten farklı olarak dizi boyunca dağıtılmaz, ancak BİR diskte bulunur. Mesele bu, bu önemlidir ve RAID5'in çalışmamasının nedeni budur.

Gerekenler: değiştirmek istediğiniz diskle aynı boyutta iki disk daha.

Çevre:

  • Ubuntu 14.04 Yapışkan Thar
  • mdadm - v3.2.5 - 18 Mayıs 2012
  • / dev / sdb - onunla başla, onun yerini alacak
  • / dev / sdc - onunla başla
  • / dev / sdd - geçici olarak kullanılacak
  • / dev / sde - sdb yerine kullanılacak

Nihai RAID0 etkin yedek mdadm kılavuzu;)

sudo mdadm -C /dev/md0 -l 0 -n 2 /dev/sd[bc]

md0 : active raid0 sdc[1] sdb[0]
      2096128 blocks super 1.2 512k chunks

Raid0 dizisi oluşturduk, tatlı görünüyor.

sudo md5sum /dev/md0

b422ba644a3c83cdf28adfa94cb658f3  /dev/md0

Bu bizim kontrol noktamız - sonuçta bir bit bile farklı olsa bile /dev/md0- başarısız olduk.

sudo mdadm /dev/md0 --grow --level=4

md0 : active raid4 sdc[1] sdb[0]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]

Bu yüzden dizimizi RAID4 olarak büyüttük. Eşlik diskini henüz eklemedik, hadi yapalım. Büyüme anında gerçekleşir - yeniden hesaplamak veya yeniden hesaplamak için hiçbir şey yoktur.

sudo mdadm /dev/md0 -a /dev/sdd

md0 : active raid4 sdd[3] sdc[1] sdb[0]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
      [===>.................]  recovery = 19.7% (207784/1048064) finish=0.2min speed=51946K/sec

sddEşlik diski olarak ekledik . Bunu hatırlamak önemlidir - ilk sıradaki disklerin sırası ikinci sıradaki resim ile senkronize değildir! [UU_]

sdd önce görüntülenir, ancak aslında sonuncudur ve verileri değil, paritesi tutar.

sudo mdadm /dev/md0 -f /dev/sdb

md0 : active raid4 sdd[3] sdc[1] sdb[0](F)
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]

Disk sdb dosyamızı sonraki adımlarda kaldırmak için hatalı hale getirdik.

sudo mdadm --detail /dev/md0

State : clean, degraded

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       32        1      active sync   /dev/sdc
       3       8       48        2      active sync   /dev/sdd

       0       8       16        -      faulty spare   /dev/sdb

Ayrıntılar bize ilk diskin kaldırıldığını gösterir ve burada dizideki disklerin gerçek sırasını görebiliriz. Diski eşlikli olarak izlemek önemlidir, RAID0'a geri dönerken dizide bırakmamalıyız.

sudo mdadm /dev/md0 -r /dev/sdb

md0 : active raid4 sdd[3] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]

sdb tamamen kaldırıldı, alınabilir.

sudo mdadm /dev/md0 -a /dev/sde

md0 : active raid4 sde[4] sdd[3] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]
      [==>..................]  recovery = 14.8% (156648/1048064) finish=0.2min speed=52216K/sec

Sdb diskimizin yedeğini ekledik. Ve işte başlıyoruz: şimdi sdb verileri parite kullanılarak kurtarılıyor. Sweeeeet.

md0 : active raid4 sde[4] sdd[3] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/3] [UUU]

Bitti. Şu anda tamamen güvendeyiz - sdb'deki tüm veriler kurtarıldı ve şimdi sdd'yi kaldırmalıyız (hatırlayın, eşlik tutar).

sudo mdadm /dev/md0 -f /dev/sdd

md0 : active raid4 sde[4] sdd[3](F) sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]

SDD arızalı.

sudo mdadm /dev/md0 -r /dev/sdd

md0 : active raid4 sde[4] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]

Sdd dizimizden kaldırıldı. Yine RAID0 olmaya hazırız.

sudo mdadm /dev/md0 --grow --level=0 --backup-file=backup

md0 : active raid4 sde[4] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
      [=>...................]  reshape =  7.0% (73728/1048064) finish=1.5min speed=10532K/sec

Aaaaaave patlama!

md0 : active raid0 sde[4] sdc[1]
      2096128 blocks super 1.2 512k chunks

Bitti. Md5 sağlama toplamına bakalım.

sudo md5sum /dev/md0

b422ba644a3c83cdf28adfa94cb658f3  /dev/md0

Başka soru? Yani RAID0 etkin bir yedek olabilir. Buna "kullanıcı" denir;)


1

Bir RAID0 kurduktan sonra bildiğim kadarıyla disklerden birini değiştiremezsiniz. Bir yedek alabilir ve diskleri değiştirebilir ve yedeklemeyi geri yükleyebilirsiniz. Sahip olduğunuz bu 3 diski RAID5 yapardım. Bu şekilde gelecekte bir diski bırakıp yine de yeniden oluşturabilirsiniz.


RAID5 ile bahsettiğim şeyi nasıl yapacağımı biliyorum - Diziye yeni bir disk ekleyebilirim (yedek olarak), sonra arızalı olarak taşımak istediğim diski işaretleyebilir ve diziden çıkarabilir, daha sonra süper bloğu silebilirim. Ama RAID0 ile aynı operasyonla ilgileniyorum :)
maniaque

@maniaque RAID 0 olarak adlandırılır, çünkü sıfır ne kadar RAID elde edeceğinizdir. Kesinlikle hiçbir şey RAID 0'a yerleştirilmemelidir
Michael Hampton

@MichaelHampton Sanırım RAID için fazlalık demek değil, ifadeniz% 100 doğru
joeg1ff

@MichaelHampton Lütfen cevabımı aşağıya bakın :)
maniaque

0

RAID 0 yedeklilik sağlamaz.

Bu nedenle, hot drive değiştirmeyi desteklemez.


1
Sadece aşağıya bakın, lütfen. RAID seviyelerini anladığınızda imkansız bir şey yoktur;)
manique
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.