XFS ile Linux yazılımı RAID 5'i genişletmek kolaydır. En iyi uygulamalar?


13

Ubuntu makinemi Samba paylaşımını kullanan Windows / Linux / Mac istemcileri için dosya sunucusu olarak kullanıyorum. Herhangi bir veriyi ileri geri taşımak zorunda kalmadan daha fazla sabit disk ekleyerek kolayca genişletilebilir olmam gerekiyor.

Şimdiye kadar böyle yaptım. Dördüncü bir sabit sürücüyü başarıyla ekledim. Şimdi bunun nasıl yapılması gerektiğini bilmek güzel olurdu? Ne yanlış yapıyorum ya da daha iyi ne yapabilirim?

İlk 3 sürücü dizisini oluşturma

Üç boş sürücü ile başladım: / dev / sdb, / dev / sdc ve / dev / sdd.

İlk olarak tüm sürücüler için boş bölümler oluşturdum:

$ fdisk /dev/sdX
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc

Her üç diske de boş RAID bölümleri oluşturulduğunda, bir RAID5 dizisi oluşturdum:

$ mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

Şimdi RAID5 dizisi oluşturuldu ve zaten oluşturuluyor. Zaman alır, ancak yeni bir fiziksel LVM2 birimi oluşturmaya devam edebilirsiniz:

$ pvcreate /dev/md0

Şimdi yeni bir birim grubu oluşturalım:

$ vgcreate vd_raid /dev/md0

O zaman bu birim grubunda yeni bir mantıksal birim yaratmamız gerekiyor. Öncelikle, oluşturulan hacim grubunun tam boyutunu bulmamız gerekiyor:

$ vgdisplay vg_raid

Boyut, fiziksel boyutlarda "Toplam PE" yi gösteren satırdan görülebilir. Şimdi 509 olduğunu düşünelim. Şimdi tüm kullanılabilir alanı kaplayan yeni bir mantıksal hacim oluşturun:

$ lvcreate -l 509 vg_raid -n lv_raid

Son olarak, bu mantıksal birimin üstünde bir dosya sistemi oluşturabiliriz:

$ mkfs.xfs /dev/mapper/vg_raid-lv_raid

Yeni oluşturulan RAID dizimizi kullanabilmek için, bir dizin oluşturmamız ve bağlamamız gerekir:

$ mkdir /raid
$ mount /dev/mapper/vg_raid-lv_raid /raid

Artık kullanıma hazır. Ancak yeniden başlattıktan sonra otomatik olarak bağlanabilmesi için RAID geometrisini mdadm'ın yapılandırma dosyasına kaydetmemiz gerekir:

$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf

Ardından, RAID dizisini otomatik olarak bağlayan / etc / fstab dosyasına aşağıdaki satırı ekleyin:

/dev/mapper/vg_raid-lv_raid /raid auto auto,noatime,nodiratime,logbufs=8 0 1

Artık RAID dizisi kullanıma hazırdır ve her önyüklemeden sonra / raid dizinine otomatik olarak bağlanır.

Diziye yeni bir sürücü ekleme

Şimdi önceden oluşturulmuş diziye herhangi bir veri kaybetmeden eklemek istediğiniz yeni bir sürücünüz olduğunu düşünelim.

İlk olarak, yeni sürücünün diğer tüm sürücüler gibi bölümlenmesi gerekir:

$ fdisk /dev/sde
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc

Ardından RAID dizisine eklenmesi gerekir:

$ mdadm --add /dev/md0 /dev/sde1

Şimdi RAID5 dizisi şu anda sadece üçü kullanımda olan dört sürücü içeriyor. Dizinin dört sürücüyü de içerecek şekilde genişletilmesi gerekir:

$ mdadm --grow /dev/md0 --raid-devices=4

Daha sonra fiziksel LVM2 hacminin genişletilmesi gerekir:

$ pvresize /dev/md0

Artık fiziksel birim, RAID dizisindeki tüm kullanılabilir alanı kapsayacak şekilde varsayılan olarak yeniden boyutlandırılır. Fiziksel boyutlarda yeni boyutu bulmamız gerekiyor:

$ vgdisplay vg_raid

Yeni boyutun şimdi 764 olduğunu düşünelim ("Toplam PE" den görülebilir). Şimdi mantıksal birimi genişletmek için aşağıdakileri kapsayabilir:

$ lvextend /dev/mapper/vg_raid-lv_raid -l 764

Sonra XFS dosya sistemini genişletin. Bunun, dosya sistemi çevrimiçi ve bağlı durumdayken yapılması gerekir:

$ xfs_grow /raid

Varsayılan olarak tüm kullanılabilir alanı kapsayacak şekilde genişletilir. Son olarak dizi artık yeni bir disk içerdiğinden RAID dizi geometrisinin güncellenmesi gerekiyor. Önce eklenen satırı /etc/mdadm/mdadm.conf dizininden silin ve ardından yeni bir satır ekleyin:

$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf

3
Disklerinize bölüm koymayın. Buna gerek yok - çekirdek içi RAID otomatik algılama (bölüm türü fd) kullanımdan kaldırıldı.
James

Yani fdisk ile tip 'fd' bölümleri oluşturmak yerine, sadece / dev / md0 dizisini doğrudan / dev / sdb, / dev / sdc ve / dev / sdd aygıtlarına mı oluşturmalıyım?
Taskinen

1
Tüm disklerin aynı boyutta olmadığını duydum, bu yüzden yeni bir terabayt disk satın alırsam, tam olarak aynı boyutta olmayabilir. Bu bazı sorunlar getirir mi?
Taskinen

Yanıtlar:


5

Bence doğru anladın. RAID 5'in büyümesiyle ilgili uyarıları anladığınızdan ve bunlara dikkat ettiğinizden emin olun man 8 mdadm.

Şahsen bir LVM birimi büyütüyorsam, bunu yapmak için mevcut bir RAID dizisini büyütmezdim. Başka bir RAID dizisi oluşturacağım, ondan yeni bir physvol oluşturacağım ve aynı birim grubuna ekleyeceğim. Bu çok daha güvenli bir işlemdir (tüm RAID5 dizisini yeni diskler arasında yeniden yazmayı içermez) ve dizilerinizin boyutunu küçültür.


Kesinlikle katılıyorum. vgextend burada senin arkadaşın.
Dan Andreatta

1
Genel olarak anlıyorum, ama yukarıda belirtilen üç disk dizisini dört disk dizisine dönüştürmek istediğim durum ne olacak. Yalnızca dördüncü diskten yeni bir RAID dizisi oluşturamıyorum.
Taskinen

1
Bir seferde bir depolama sunucusunun disk dizisini bir disk genişletmek olmaz. Üç disk dizisinden dört disk dizisine geçmek, aynı boyuttaki diskleri kullanmanız gerektiğinden, yalnızca% 50 daha fazla depolama alanı sağlar.
Kamil Kisiel

1
Kabul. Alanınız bittiğinde, daha büyük disk sürücülerinin fiyatı düşmüş olacaktır. Yeni bir büyük sürücü setinde ikinci bir RAID dizisi oluşturun, ardından eski verilerinizi buna aktarın ve pvmove tamamlandıktan sonra eski kümeyi devre dışı bırakın. Tüm bunlar pvmove'dan etkilenen mantıksal birimlerdeki dosya sistemleri aktif kullanımdayken yapılabilir.
flabdablet
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.