Seberapa dewasa dan penuh fitur LVM RAID?
LVM-RAID sebenarnya mdraid di bawah selimut. Ini pada dasarnya bekerja dengan membuat dua volume logis per perangkat RAID (satu untuk data, yang disebut "rimage"; satu untuk metadata, yang disebut "rmeta"). Ini kemudian meneruskan ke driver mdraid yang ada. Jadi hal-hal seperti menangani kesalahan pembacaan disk, I / O load balancing, dll. Harus cukup matang.
Itu kabar baiknya.
Alat
Anda tidak dapat menggunakannya mdadm
(setidaknya, tidak dengan cara yang mudah¹) dan alat-alat RAID LVM sama sekali tidak matang. Misalnya, di Debian Wheezy, lvs
tidak dapat memberi tahu Anda status sinkronisasi RAID5. Saya sangat meragukan perbaikan dan pemulihan (terutama dari situasi "yang seharusnya tidak pernah terjadi!") Hampir sama baiknya dengan mdadm (dan saya secara tidak sengaja bertemu dengan salah satu dari mereka dalam pengujian saya, dan akhirnya menyerah untuk memulihkannya — pemulihan dengan mdadm akan mudah).
Terutama jika Anda tidak menggunakan versi terbaru dari semua alat, itu semakin buruk.
Fitur yang Hilang
Versi LVM-RAID saat ini tidak mendukung penyusutan ( lvreduce
) volume logis RAID. Mereka juga tidak mendukung perubahan jumlah disk atau level RAID ( lvconvert
memberikan pesan kesalahan yang mengatakan belum didukung). lvextend
tidak bekerja, dan bahkan dapat menumbuhkan level RAID yang mdraid hanya mendapatkan dukungan baru-baru ini, seperti RAID10 Dalam pengalaman saya, memperpanjang LV jauh lebih umum daripada menguranginya, jadi itu sebenarnya masuk akal.
Beberapa fitur mdraid lainnya tidak ada, dan terutama Anda tidak dapat menyesuaikan semua opsi yang Anda bisa dengan mdadm.
Pada versi yang lebih lama (seperti yang ditemukan di, misalnya, Debian Wheezy), LVM RAID juga tidak mendukung pertumbuhan. Misalnya, di Wheezy:
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.
Secara umum, Anda tidak ingin menjalankan versi Wheezy.
Di atas adalah setelah Anda menginstalnya. Itu juga bukan proses yang sepele.
Masalah alat
Bermain dengan Jessie VM saya, saya memutus satu (hampir) disk. Itu berhasil, mesin tetap berjalan. lvs
Namun, tidak memberikan indikasi susunan diturunkan. Saya memasang kembali disk, dan menghapus satu detik. Tetap berlari (ini raid6). Terlampir kembali, masih belum ada indikasi dari lvs
. Saya berlari lvconvert --repair
di volume, itu mengatakan kepada saya itu baik-baik saja. Lalu saya menarik disk ketiga ... dan mesin mati. Masukkan kembali, reboot, dan sekarang tidak yakin bagaimana cara memperbaikinya. mdadm --force --assemble
akan memperbaiki ini; keduanya tampaknya vgchange
tidak lvchange
memiliki opsi itu (lvchange menerima --force
, tetapi tampaknya tidak melakukan apa-apa). Bahkan mencoba dmsetup
untuk langsung memberi makan tabel pemetaan ke kernel, saya tidak tahu bagaimana cara memulihkannya.
Juga, mdadm
adalah alat khusus untuk mengelola RAID. LVM melakukan lebih banyak, tetapi rasanya (dan saya akui ini cukup subyektif) seperti fungsi RAID telah didorong di sana; itu tidak cukup pas.
Bagaimana Anda menginstal sistem dengan LVM RAID?
Berikut ini adalah garis besar singkat untuk menginstalnya di Debian Jessie atau Wheezy. Jessie jauh lebih mudah; perhatikan jika Anda akan mencoba ini pada Wheezy, baca semuanya terlebih dahulu ...
Gunakan gambar CD lengkap untuk menginstal, bukan gambar netinst.
Lanjutkan seperti biasa, pergi ke partisi disk, atur volume fisik LVM Anda. Anda dapat memakai /boot
LVM-RAID (pada Jessie, dan Wheezy dengan beberapa pekerjaan yang dirinci di bawah).
Buat grup volume Anda. Biarkan di menu LVM.
Sedikit kesenangan pertama — installer tidak memiliki dm-raid.ko
modul yang dimuat, atau bahkan tersedia! Jadi Anda bisa mengambilnya dari paket linux-image yang akan diinstal. Beralih ke konsol (misalnya, Alt- F2) dan:
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
Pemasang tidak tahu cara membuat LVM-RAID LVs, jadi Anda harus menggunakan baris perintah untuk melakukannya. Catatan saya tidak melakukan pembandingan; ukuran stripe ( -I
) di bawah ini sepenuhnya merupakan perkiraan untuk pengaturan VM saya:
lvcreate --type raid5 -i 4 -I 256 -L 10G -n root vg0
Di Jessie, Anda dapat menggunakan RAID10 untuk swap. Di Wheezy, RAID10 tidak didukung. Jadi, alih-alih Anda dapat menggunakan dua partisi swap, masing-masing RAID1. Tetapi Anda harus mengatakan dengan tepat pada volume fisik mana untuk meletakkannya atau meletakkan kedua bagian cermin pada disk yang sama . Iya. Serius. Bagaimanapun, itu terlihat seperti:
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
Akhirnya, kembali ke penginstal, dan tekan 'Selesai' di menu LVM. Anda sekarang akan disajikan dengan banyak volume logis yang ditampilkan. Pemasang tidak mengerti apa yang terjadi; abaikan segala sesuatu dengan rimage
atau rmeta
atas nama mereka (lihat paragraf pertama cara di atas untuk penjelasan tentang apa itu).
Silakan dan buat sistem file, swap partisi, dll seperti biasa. Instal sistem dasar, dll., Hingga Anda masuk ke prompt grub.
Di Jessie, grub2 akan berfungsi jika diinstal ke MBR (atau mungkin dengan EFI, tapi saya belum mengujinya). Pada Wheezy, instal akan gagal, dan satu-satunya solusi adalah dengan backport grub2 Jessie. Itu sebenarnya cukup mudah, itu dikompilasi dengan bersih di Wheezy. Entah bagaimana, masukkan paket grub yang di-backport ke /target
(atau lakukan dalam sedetik, setelah chroot) lalu:
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
Sebenarnya, di Jessie VM grub-install saya yang paling baru digantung. Beralih ke F2 dan melakukan while kill $(pidof vgs); do sleep 0.25; done
, diikuti oleh hal yang sama lvs
, mendapatkannya melalui grub-install. Tampaknya menghasilkan konfigurasi yang valid meskipun begitu, tapi kalau-kalau saya melakukan chroot /target /bin/bash
, memastikan /proc
dan /sys
dipasang, dan melakukan update-grub
. Waktu itu selesai. Saya kemudian melakukan dpkg-reconfigure grub-pc
untuk memilih menginstal grub pada semua MBR disk virtual.
Pada Wheezy, setelah melakukan hal di atas, pilih 'lanjutkan tanpa bootloader'.
Selesai instal. Itu akan boot. Mungkin.
Pengetahuan Komunitas
Ada cukup banyak orang yang tahu tentang mdadm
, dan memiliki banyak pengalaman penempatan dengannya. Google cenderung menjawab sebagian besar pertanyaan tentang hal yang Anda miliki. Anda biasanya dapat mengharapkan pertanyaan tentang hal ini di sini untuk mendapatkan jawaban, mungkin dalam sehari.
Hal yang sama tidak dapat dikatakan untuk LVM RAID. Sulit untuk menemukan pemandu. Sebagian besar pencarian Google yang saya jalankan malah menemukan saya hal-hal tentang menggunakan array mdadm sebagai PV. Sejujurnya, ini mungkin sebagian besar karena ini lebih baru, dan kurang umum digunakan. Agaknya, rasanya tidak adil untuk menentang hal ini — tetapi jika terjadi kesalahan, komunitas yang jauh lebih besar di sekitar mdadm membuat pemulihan data saya lebih mungkin.
Kesimpulan
LVM-RAID maju cukup cepat. Pada Wheezy, itu tidak benar-benar dapat digunakan (setidaknya, tanpa melakukan backports LVM dan kernel). Sebelumnya, pada tahun 2014, tentang pengujian Debian, rasanya seperti ide yang menarik, tetapi belum selesai. Pengujian saat ini, pada dasarnya apa yang akan menjadi Jessie, terasa seperti sesuatu yang Anda mungkin benar-benar gunakan, jika Anda sering perlu membuat irisan kecil dengan konfigurasi RAID yang berbeda (sesuatu yang merupakan mimpi buruk administratif dengan mdadm
).
Jika kebutuhan Anda cukup dilayani oleh beberapa array RAID mdadm besar, diiris menjadi partisi menggunakan LVM, saya sarankan terus menggunakannya. Jika Anda akhirnya harus membuat banyak array (atau bahkan array volume logis), pertimbangkan untuk beralih ke LVM-RAID sebagai gantinya. Tapi simpan cadangan yang bagus.
Banyak penggunaan LVM RAID (dan bahkan mdadm RAID) diambil alih oleh hal-hal seperti sistem penyimpanan cluster / objek, ZFS, dan btrfs. Saya sarankan juga menyelidiki mereka, mereka mungkin lebih baik memenuhi kebutuhan Anda.
Terima kasih
Saya ingin mengucapkan terima kasih kepada psusi karena membuat saya mengunjungi kembali LVM-RAID dan memperbarui pos ini.
Catatan kaki
Saya menduga Anda bisa menggunakan perangkat mapper untuk merekatkan metadata dan data bersama-sama sedemikian rupa sehingga mdadm --assemble
akan membawanya. Tentu saja, Anda bisa menjalankan mdadm
volume logis dengan baik ... dan itu akan lebih waras.
Ketika melakukan instalasi Wheezy, saya gagal melakukan ini pertama kali, dan berakhir tanpa konfigurasi grub. Saya harus mem-boot sistem dengan memasukkan semua info di grub prompt. Setelah di-boot, itu berhasil, jadi saya pikir itu akan berfungsi dengan baik dari installer. Jika Anda berakhir di prompt grub, berikut adalah garis ajaib yang harus diketik:
linux /boot/vmlinuz-3.2.0-4-amd64 root=/dev/mapper/vg0-root
initrd /boot/initrd.image-3.2.0-4-amd64
boot
PS: Sudah lama saya tidak melakukan eksperimen aslinya. Saya telah membuat catatan asli saya tersedia. Perhatikan bahwa saya sekarang telah melakukan yang lebih baru, tercakup dalam jawaban ini, dan tidak dalam catatan itu.