LVM RAID ne kadar olgun ve özellikli?
LVM-RAID, kapakların altında gerçekte saklanır. Temel olarak RAID cihazı başına iki mantıksal birim oluşturarak çalışır (biri "rimage" adı verilen, biri "rmeta" adı verilen meta veriler için). Daha sonra bunları mevcut mdraid sürücülerine aktarır. Bu nedenle, disk kullanımı gibi şeyler, G / Ç yük dengelemesi vb.
Bu iyi haber.
Araçlar
Üzerinde kullanamazsınız mdadm
(en azından hiçbir şekilde kolay olmaz¹) ve LVM RAID araçları hiçbir zaman bu kadar olgun değildir. Örneğin, Debian Wheezy'de, lvs
RAID5 senkronizasyon durumunu size söyleyemem. Onarım ve geri kazanımın (özellikle "asla gerçekleşmemesi gereken!" Durumlarından) mdadm kadar iyi bir yerde olduğundan şüpheliyim (ve yanlışlıkla testimde bunlardan birine rastladım ve nihayetinde iyileşmekten vazgeçtim - iyileşme ile) mdadm kolay olurdu).
Özellikle, tüm araçların en yeni sürümlerini kullanmıyorsanız, daha da kötüleşir.
Eksik Özellikler
Mevcut LVM-RAID sürümleri, lvreduce
RAID mantıksal biriminin küçülmesini ( ) desteklemez . Ayrıca, disk sayısının veya RAID seviyesinin değiştirilmesini de lvconvert
desteklemiyorlar (henüz desteklenmeyen bir hata mesajı veriyor). lvextend
çalışır ve RAID10 gibi sadece son zamanlarda destek kazandığı mdraid seviyelerini bile arttırabilir. Tecrübelerime göre, LV'leri genişletmek onları azaltmaktan çok daha yaygın, bu yüzden bu gerçekten makul.
Diğer bazı mdraid özellikleri mevcut değildir ve özellikle mdadm ile yapabileceğiniz tüm seçenekleri özelleştiremezsiniz.
Daha eski sürümlerde (örneğin Debian Wheezy'da olduğu gibi), LVM RAID, büyümeyi de desteklemez. Örneğin, Wheezy'de:
root@LVM-RAID:~# lvextend -L+1g vg0/root
Extending logical volume root to 11.00 GiB
Internal error: _alloc_init called for non-virtual segment with no disk space.
Genel olarak, Wheezy sürümlerini çalıştırmak istemezsiniz.
Yukarıdaki bir kez yüklü olsun. Bu da önemsiz bir süreç değil.
Takım problemleri
Jessie VM'imle oynayarak (neredeyse) bir diski çıkardım. İşe yaradı, makine çalışmaya devam etti. lvs
Bununla birlikte, dizilerin bozulduğuna dair hiçbir işaret vermedi. Diski tekrar taktım ve bir saniye çıkarttım. Çalışan kaldı (bu baskın6). Yeniden takıldı, hala hiçbir gösterge yok lvs
. lvconvert --repair
Ses seviyesini koştum , bana sorun olmadığını söyledi. Sonra üçüncü bir diski çektim ... ve makine öldü. Yeniden takıldı, yeniden başlatıldı ve nasıl düzeltileceğinden emin değilim. mdadm --force --assemble
bunu düzeltirdi; ne vgchange
de ne lvchange
bu seçeneğe sahip --force
görünmüyor (lvchange kabul ediyor , ancak hiçbir şey yapmıyor gibi görünüyor). dmsetup
Eşleştirme tablasını doğrudan çekirdeğe beslemeye çalışırken bile , nasıl kurtarılacağını çözemedim.
Ayrıca, mdadm
yalnızca RAID yönetimi için özel bir araçtır. LVM çok daha fazlasını yapıyor, ancak RAID işlevselliği orada bir nevi itilmiş gibi hissediyor (ve bunun oldukça öznel olduğunu kabul ediyorum); tam olarak uymuyor.
LVM RAID'li bir sistemi gerçekte nasıl kurarsınız?
İşte onu Debian Jessie veya Wheezy üzerine kurmanın kısa bir özeti. Jessie çok daha kolay; Bunu Wheezy'de deneyecekseniz, önce hepsini okuyun…
Netinst bir görüntü değil, yüklemek için tam bir CD görüntüsü kullanın.
Normal şekilde ilerleyin, disk bölümlemesine geçin, LVM fiziksel birimlerinizi ayarlayın. Sen olabilir koymak /boot
(aşağıda ayrıntılı bazı çalışma ile Jessie üzerinde ve Wheezy üzerine) LVM-RAID.
Birim gruplarınızı oluşturun. LVM menüsünde bırakın.
İlk eğlence biraz - yükleyicide dm-raid.ko
modül yüklü değil hatta mevcut! Böylece onu kurulacak olan linux-image paketinden alırsınız. Bir konsola geçin (örneğin, Alt- F2) ve:
cd /tmp
dpkg-deb --fsys-tarfile /cdrom/pool/main/l/linux/linux-image-*.deb | tar x
depmod -a -b /tmp
modprobe -d /tmp dm-raid
Yükleyici LVM-RAID LV'lerin nasıl oluşturulacağını bilmediğinden, bunu yapmak için komut satırını kullanmanız gerekir. Not Ben herhangi bir kıyaslama yapmadım; -I
Aşağıdaki şerit boyutu ( ) tamamen VM kurulumum için bir tahmindir:
lvcreate --type raid5 -i 4 -I 256 -L 10G -n root vg0
Jessie'da, takas için RAID10 kullanabilirsiniz. Wheezy'da, RAID10 desteklenmemektedir. Bunun yerine, her bir RAID1 olan iki adet takas bölümü kullanabilirsiniz. Ama gerekir onları koymak için fiziksel hangi birimlerin tam olarak anlatmak ya da aynı diskte aynanın iki yarıyı koyar . Evet. Ciddi anlamda. Neyse, şuna benziyor:
lvcreate --type raid1 -m1 -L 1G -n swap0 vg0 /dev/vda1 /dev/vdb1
lvcreate --type raid1 -m1 -L 1G -n swap1 vg0 /dev/vdc1 /dev/vdd1
Son olarak, yükleyiciye geri dönün ve LVM menüsünde 'Bitir'i tıklayın. Şimdi size gösterilen çok sayıda mantıksal hacim gösterilecek. Yükleyici, neler olduğunu anlamadı; adlarıyla rimage
veya rmeta
adlarıyla ilgili her şeyi dikkate almayın (bunların ne olduğunu açıklama için yukarıdaki ilk paragraf yoluna bakın).
Devam edin ve dosya sistemleri, takas bölümleri vb. Normal şekilde oluşturun. Temel sistemi, vb. Grub istemi alana kadar kurun.
Jessie’da, grub2 MBR’ye kurulduysa çalışacaktır (veya muhtemelen EFI’de, ancak bunu test etmedim). Wheezy'da yükleme başarısız olur ve tek çözüm Jessie'nin grub2'sini desteklemektir. Bu aslında oldukça kolaydır, Wheezy'den temiz bir şekilde derlenir. Her nasılsa, desteklenmiş grub paketlerini içine al /target
(ya da chroot'tan sonra bir saniye içinde yap) ve sonra:
chroot /target /bin/bash
mount /sys
dpkg -i grub-pc_*.deb grub-pc-bin_*.deb grub-common_*.deb grub2-common_*.deb
grub-install /dev/vda … grub-install /dev/vdd # for each disk
echo 'dm_raid' >> /etc/initramfs-tools/modules
update-initramfs -kall -u
update-grub # should work, technically not quite tested²
umount /sys
exit
Aslında, en son Jessie VM'mde grub-install askıda kaldı. F2'ye geçmek ve while kill $(pidof vgs); do sleep 0.25; done
aynısını yapmak için lvs
bunu yapmak grub kurulumundan geçti. Buna rağmen geçerli bir konfigürasyon oluşturduğu ortaya çıktı, ancak tam olarak yaptım chroot /target /bin/bash
, emin /proc
ve /sys
monte edildim ve bir update-grub
. O zaman tamamlandı. Daha sonra dpkg-reconfigure grub-pc
, tüm sanal disklerin MBR'lerine kurulum grubunu seçmeyi seçtim .
Wheezy'da yukarıdakileri yaptıktan sonra 'bootloader olmadan devam et' seçeneğini seçin.
Kurulumu tamamlayın. Önyüklenir. Muhtemelen.
Topluluk Bilgisi
Bunu bilen mdadm
ve onunla ilgili çok sayıda konuşlandırma deneyimi olan çok sayıda insan var. Google, bu konuda sahip olduğunuz soruların çoğuna cevap verebilir. Genellikle bir gün içinde cevaplar almak için bu konuda bir soru bekleyebilirsiniz.
LVM RAID için de aynı şey söylenemez. Rehber bulmak zor. Çalıştığım çoğu Google araması bunun yerine bana mdadm dizilerini PV olarak kullanma konusunda bir şeyler buldu. Dürüst olmak gerekirse, bu büyük olasılıkla, çünkü daha yeni ve daha az yaygın olarak kullanılıyor. Bir şekilde bunu buna karşı tutmak haksızlık ediyor - ama bir şeyler ters giderse, mdadm çevresindeki mevcut daha büyük topluluk benim verilerimi kurtarmayı daha olası kılıyor.
Sonuç
LVM-RAID oldukça hızlı ilerliyor. Wheezy'da gerçekten kullanılamaz (en azından LVM ve çekirdeği desteklemeden). Daha önce, 2014 yılında Debian testlerinde ilginç ama bitmemiş bir fikir gibi geldi. Temelde Jessie olacak olan güncel test, sıklıkla farklı RAID konfigürasyonları olan küçük dilimler oluşturmanız gerekirse (bununla birlikte idari bir kabus olan bir şey) gerçekten kullanabileceğiniz bir şey gibi hissediyor mdadm
.
Gereksinimleriniz, LVM kullanarak bölümlere ayrılmış birkaç büyük mdadm RAID dizisi tarafından yeterli düzeyde karşılanıyorsa, bunu kullanmaya devam etmeyi önerebilirim. Bunun yerine birçok dizi (hatta mantıksal hacimler dizisi) oluşturmak zorunda kalırsanız, bunun yerine LVM-RAID'e geçmeyi düşünün. Ancak iyi yedekler alın.
LVM RAID (ve hatta mdadm RAID) kullanımlarının çoğu, küme depolama / nesne sistemleri, ZFS ve btrfs gibi şeyler tarafından ele geçirilmektedir. Bunları araştırmanızı tavsiye ederim, ihtiyaçlarınızı daha iyi karşılayabilirler.
Teşekkür ederim
LVM-RAID durumunu tekrar ziyaret etmeme ve bu yazıyı güncellememe neden olduğum için psusi'ye teşekkür etmek istiyorum .
Dipnotlar
Meta veriyi ve verileri bir araya mdadm --assemble
getirecek şekilde yapıştırmak için aygıt eşleyicisini kullanabileceğinizi sanıyorum . Tabii ki, mdadm
sadece gayet mantıklı hacimlerde koşabilirsin ... ve bu daha akılcı olur.
Wheezy kurulumunu yaparken bunu ilk defa yapamadım ve grub konfigürasyonu olmadan yaralandım. Grubun istemindeki tüm bilgileri girerek sistemi başlatmak zorunda kaldım. Önyüklendikten sonra, bu işe yaradı, bu yüzden yükleyiciden sadece iyi çalışacağını düşünüyorum. Grubun istemine göre sarılırsanız yazmanız gereken sihirli satırlar:
linux /boot/vmlinuz-3.2.0-4-amd64 root=/dev/mapper/vg0-root
initrd /boot/initrd.image-3.2.0-4-amd64
boot
Not: Orijinal deneyleri yaptığımdan bu yana bir süre geçti. Benim yaptık orijinal notları mevcut. Şimdi, bu cevapta yer alan ve bu notlarda olmayan daha yakın zamanda yaptığımı unutmayın.