Linux yazılım baskını raid5'ten raid6'ya dönüştürme


11

Şu anda bir RAID5 dizisinde 3 1.5 TB diskli bir dosya sunucum var. Oldukça dolu olduğundan, üç ek diskim var (her biri 1.5 TB).

Şimdi 6 TB alan yeterli olduğundan RAID6'ya geçmek istiyorum ve raid6 güvenliğinin artmasını istiyorum. Ben tam bir yedekleme var - yani ben sadece yeni bir dizi oluşturmak ve yedeklemeyi geri - bir yedek geri yüklemek zorunda kalmadan geçiş tercih ederim. Bu mümkün mü ve evet ise nasıl?

Yanıtlar:


9

Aradığınız terminoloji bir "RAID düzeyinde taşıma" dır.

Göre bu , bu mümkün. Bunu yapmadım, ancak prosedür, mevcut diziye hotspare olarak yeni sürücüyü eklemeniz, ardından raid seviyesini ve raid cihazlarının sayısını güncellemek için mdadm'ı kullanmanız gerektiği gibi görünüyor.

Bunu yapmak için yakın zamanda bir mdadm'a ihtiyacınız olacak: mdadm-2.6.9 (örn. Centos 5.x) bunu desteklemiyor gibi görünüyor, ancak mdadm-3.1.4 (örn. Ubuntu 11.10):

   Grow   Grow (or shrink) an array, or otherwise reshape it in some way.  Currently supported growth options including changing the active size of component devices and
          changing the number of active devices in RAID levels 1/4/5/6, changing the RAID level between 1, 5, and 6, changing the chunk size and  layout  for  RAID5  and
          RAID5, as well as adding or removing a write-intent bitmap.

EG, önce RAID5 dizisine yeni bir hotspare aygıtı (dev / sdg) ekleyin:

$ sudo mdadm --manage /dev/md/md0 --add /dev/sdg

Ardından bir RAID6 dizisine dönüştürün ve temiz duruma getirmesini sağlayın. --Raid-Devices 4, yeni dizide toplam kaç sürücünüz olduğunu gösterir.

$ sudo mdadm --grow /dev/md/md0 --raid-devices 4 --level 6

Bunun ne kadar hızlı olacağına dair hiçbir fikrim yok. Donanım RAID denetleyicilerinde raid düzeyinde geçişler yapma deneyimimde, yeni diziyi sıfırdan oluşturmak ve yedeklemenizi kurtarmak daha hızlı oldu.


3
Bir RAID 5'i RAID 6'ya geçirmenin iki yavaş işlemi vardır - verileri diskler arasında yeniden şeritlemek ve ekstra eşlik diski için ikinci eşlik değerini hesaplamak. Silme / geri yükleme muhtemelen yeniden boyutlandırma ile aynı zaman alacaktır.
Andrew

1
Ayrıca belirli bir çekirdek sürümü gerektirir. Bunu zor yoldan buldum.
Sirex

Gentoo üzerinde olduğum için hem çekirdeğim hem de mdadm oldukça yeni sürümler - bu bir problem olmamalı.
ThiefMaster

1
Bahsettiğiniz bağlantı benim tarafımdan yazıldı. Lütfen dikkat: Gerçekten nasıl yapılacağı ile ilgili dokümanları gerçekten okumadım. 30 sürücülü (böyle bir şey) bir sanal makine oluşturdum ve uğraşmaya başladım. Yani, ... sadece bir braindump var inanmayarak ile yayınının tüm almak
Martin M.

1
@ServerHorror: Not edildi. Mdadm man sayfası da dahil olmak üzere daha geniş internet, baskın düzeyinde göçün mümkün olduğunu iddia ediyor. :)
Daniel Lawson

7

Zorunlu uyarı: Hata planlayın. Bir yedeği hazır tutun ve olası kesinti sürelerini dikkate alın.

Ayrıca, daha önce bir VM'de veya benzer bir şeyde test edin, bu benim notlarımdan ve bunu uzun zamandır yapmadım. Bu eksik olabilir.

  1. addDizinin disklerine ihtiyacınız olacak :

    mdadm --manage /dev/md0 --add /dev/sdf  
    

    Bunu üç diskin her biri için yapın ve aygıt adlarını uygun şekilde değiştirin.

  2. Diziyi büyütün:

    mdadm --grow /dev/md0 --level 6 --raid-devices 6 
    

3

Yararlanın --backup-fileBir yeniden başlatma sonrasında cihazı büyümek ve hiçbir veri kaybı sağlamak devam edebilmek için güç kaybı durumunda, opsiyon.

mdadm --grow /dev/md0 --level=raid6 --raid-devices=6 --backup-file=/root/mdadm5-6_backup_md0

Yedekleme dosyası, büyüyeceğiniz dizinin parçası olmayan bir dosya sistemine kaydedilmelidir.

--backup-file=ne zaman ihtiyaç vardır --grow, değişim RAID seviyesini veya düzenini hiçbir yedek cihazlar mevcut olup olmadığını bir raıd5 veya Raid6 baskın-cihazların sayısını artırmak için, ya da küçültmek için kullanılır. RAID-CİHAZLAR DEĞİŞİKLİĞİ hakkında aşağıdaki BÜYÜME MODU bölümüne bakın. Dosya, yeniden şekillendirilen RAID dizisinde değil, ayrı bir aygıtta saklanmalıdır.

--continue--freeze-reshapemontaj seçeneğini tamamlayıcı niteliktedir . --growİşlem kesildiğinde gereklidir ve --freeze-reshapedizi montajı sırasında kullanım nedeniyle otomatik olarak yeniden başlatılmaz . Bu seçenek, bekleyen bir yeniden şekillendirmeye devam etmek için -G, ( --grow) komutu ve cihazla birlikte kullanılır . Yeniden şekillendirme devamı için gereken tüm parametreler dizi meta verilerinden okunacaktır. İlk --growkomutun --backup-file=ayarlanması gerekiyorsa, devam seçeneği de tam olarak aynı yedekleme dosyasına sahip olmalıdır.

--continueSeçenekle birlikte iletilen diğer tüm parametreler yok sayılır.

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.