LVM RAID เป็นผู้ใหญ่และมีคุณสมบัติอย่างไร?
LVM-RAID เป็น mdraid จริง ๆ ภายใต้ฝาครอบ โดยทั่วไปแล้วจะทำงานโดยการสร้างโลจิคัลวอลุ่มสองตัวต่ออุปกรณ์ RAID หนึ่งรายการสำหรับข้อมูลเรียกว่า "rimage" หนึ่งรายการสำหรับข้อมูลเมตาเรียกว่า "rmeta" จากนั้นส่งต่อไปยังไดรเวอร์ mdraid ที่มีอยู่ ดังนั้นสิ่งต่าง ๆ เช่นการจัดการข้อผิดพลาดในการอ่านดิสก์การปรับสมดุลโหลด I / O เป็นต้นควรมีความเป็นผู้ใหญ่พอสมควร
นั่นเป็นข่าวดี
เครื่องมือ
คุณไม่สามารถใช้งานmdadm
ได้ (อย่างน้อยไม่ใช่ในวิธีที่ง่าย ๆ ) และเครื่องมือ LVM RAID นั้นใกล้จะครบกำหนดแล้ว ตัวอย่างเช่นใน Debian Wheezy lvs
ไม่สามารถบอกสถานะการซิงค์ RAID5 ให้คุณได้ ฉันสงสัยอย่างมากในการซ่อมแซมและการกู้คืน (โดยเฉพาะอย่างยิ่งจาก "ที่ไม่ควรเกิดขึ้น!") ทุกที่ใกล้และ mdadm (และฉันบังเอิญพบหนึ่งในผู้ทดสอบ) และสุดท้ายก็ยอมแพ้ในการกู้คืน - กู้คืนด้วย mdadm คงเป็นเรื่องง่าย)
โดยเฉพาะอย่างยิ่งถ้าคุณไม่ได้ใช้เครื่องมือทั้งหมดเวอร์ชันใหม่ล่าสุดมันจะแย่ลง
คุณสมบัติที่ขาดหายไป
LVM-RAID เวอร์ชันปัจจุบันไม่สนับสนุนการlvreduce
ย่อขนาด( ) โลจิคัลวอลุ่ม RAID และไม่สนับสนุนการเปลี่ยนจำนวนดิสก์หรือระดับ RAID ( lvconvert
ให้ข้อความแสดงข้อผิดพลาดว่ายังไม่รองรับ) lvextend
ทำงานได้และยังสามารถเพิ่มระดับ RAID ที่ md กลัวได้รับการสนับสนุนเมื่อเร็ว ๆ นี้เช่น RAID10 จากประสบการณ์ของฉันการขยายระดับ LVs เป็นเรื่องธรรมดามากกว่าการลดขนาดลงดังนั้นมันจึงสมเหตุสมผล
คุณสมบัติ mdraid อื่น ๆ ไม่มีอยู่และโดยเฉพาะคุณไม่สามารถปรับแต่งตัวเลือกทั้งหมดที่คุณสามารถทำได้ด้วย mdadm
สำหรับเวอร์ชันเก่า (ตามที่พบในตัวอย่างเช่น Debian Wheezy), LVM RAID ไม่รองรับการเติบโตเช่นกัน ตัวอย่างเช่นใน 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.
โดยทั่วไปคุณไม่ต้องการเรียกใช้เวอร์ชัน Wheezy
ข้างต้นคือเมื่อคุณติดตั้งแล้ว นั่นไม่ใช่กระบวนการที่ไม่สำคัญเช่นกัน
ปัญหาเครื่องมือ
เล่นกับ Jessie VM ของฉันฉันตัดการเชื่อมต่อ (จริง) หนึ่งดิสก์ ใช้งานได้เครื่องยังคงทำงานอยู่ lvs
แม้ว่าจะไม่ได้ระบุว่าอาร์เรย์มีการลดระดับลง ฉันแนบดิสก์อีกครั้งและลบหนึ่งวินาที พักการทำงาน (นี่คือ raid6) lvs
Re-แนบยังคงไม่มีข้อบ่งชี้จาก ฉันวิ่งlvconvert --repair
ตามปริมาตรมันบอกว่ามันโอเค จากนั้นฉันก็ดึงดิสก์ที่สาม ... และเครื่องก็ตาย ใส่ใหม่รีบูตเครื่องและไม่แน่ใจว่าจะแก้ไขได้อย่างไร mdadm --force --assemble
จะแก้ไขสิ่งนี้; ค่าvgchange
มิได้lvchange
ปรากฏจะมีตัวเลือกที่ (lvchange ยอมรับ--force
แต่ก็ดูเหมือนจะไม่ทำอะไร) แม้พยายามdmsetup
ป้อนตารางการแมปไปยังเคอร์เนลโดยตรงฉันไม่สามารถหาวิธีกู้คืนได้
นอกจากนี้ยังmdadm
เป็นเครื่องมือเฉพาะสำหรับจัดการ RAID LVM ทำอะไรได้มากกว่ามาก แต่รู้สึกว่า (และฉันยอมรับว่ามันเป็นเรื่องที่ค่อนข้างดี) เช่นเดียวกับการทำงานของ RAID ที่ถูกผลักดันเข้ามา มันค่อนข้างไม่พอดี
คุณจะติดตั้งระบบด้วย LVM RAID ได้อย่างไร?
นี่เป็นโครงร่างคร่าวๆของการติดตั้งบน Debian Jessie หรือ Wheezy เจสซี่ง่ายกว่ามาก ทราบว่าคุณจะลองใน Wheezy อ่านสิ่งทั้งหมดก่อน ...
ใช้อิมเมจซีดีแบบเต็มเพื่อติดตั้งไม่ใช่อิมเมจ netinst
ดำเนินการตามปกติไปที่การแบ่งพาร์ติชันดิสก์ตั้งค่าฟิสิคัลวอลุ่ม LVM ของคุณ คุณสามารถใส่/boot
LVM-RAID (ใน Jessie และ Wheezy โดยมีรายละเอียดงานด้านล่าง)
สร้างกลุ่มวอลุ่มของคุณ ทิ้งไว้ในเมนู LVM
ความสนุกนิดหน่อย - โปรแกรมติดตั้งไม่ได้dm-raid.ko
โหลดโมดูลหรือแม้กระทั่งใช้งาน! ดังนั้นคุณจะคว้ามันจากแพ็คเกจ linux-image ที่จะถูกติดตั้ง เปลี่ยนเป็นคอนโซล (เช่น, Alt- F2) และ:
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
โปรแกรมติดตั้งไม่ทราบวิธีสร้าง LVM-RAID LVs ดังนั้นคุณต้องใช้บรรทัดคำสั่งเพื่อดำเนินการ หมายเหตุฉันไม่ได้ทำการเปรียบเทียบ ขนาดสไทรพ์ ( -I
) ด้านล่างเป็นการคาดเดาทั้งหมดสำหรับการตั้งค่า VM ของฉัน:
lvcreate --type raid5 -i 4 -I 256 -L 10G -n root vg0
ใน Jessie คุณสามารถใช้ RAID10 เพื่อแลกเปลี่ยน บน Wheezy ไม่รองรับ RAID10 ดังนั้นคุณสามารถใช้สอง swap swap พาร์ติชั่นแต่ละ RAID1 แต่คุณต้องบอกว่าที่ปริมาณทางกายภาพจะนำพวกเขาหรือมันทำให้ทั้งสองของกระจกบนดิสก์เดียวกัน ใช่. อย่างจริงจัง. อย่างไรก็ตามดูเหมือนว่า:
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
สุดท้ายสลับกลับไปที่ตัวติดตั้งและกด 'เสร็จสิ้น' ในเมนู LVM ตอนนี้คุณจะนำเสนอกับจำนวนมากของปริมาณตรรกะแสดง นั่นคือตัวติดตั้งที่ไม่เข้าใจว่าเกิดอะไรขึ้น เพิกเฉยทุกสิ่งที่มีrimage
หรือrmeta
ในชื่อของพวกเขา (ดูวรรคแรกข้างต้นสำหรับคำอธิบายของสิ่งเหล่านั้น)
ไปข้างหน้าและสร้างระบบไฟล์สลับพาร์ติชัน ฯลฯ ตามปกติ ติดตั้งระบบฐานเป็นต้นจนกว่าคุณจะได้รับพรอมต์ด้วง
ใน Jessie, grub2 จะทำงานถ้าติดตั้งไปยัง MBR (หรืออาจจะเป็นกับ EFI แต่ฉันยังไม่ได้ทดสอบ) บน Wheezy การติดตั้งจะล้มเหลวและทางออกเดียวคือ backport ของ Jessie grub2 ที่จริงแล้วค่อนข้างง่ายมันรวบรวมอย่างหมดจดใน Wheezy ยังไงก็เอาแพ็คเกจด้วง backported ของคุณเป็น/target
(หรือทำในไม่กี่วินาทีหลังจาก chroot) แล้ว:
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
ที่จริงแล้วเมื่อเร็ว ๆ นี้ Jessie VM ติดตั้งด้วงแขวนของฉัน สลับไปที่ F2 และทำwhile kill $(pidof vgs); do sleep 0.25; done
ตามด้วยสิ่งเดียวกันเพื่อlvs
รับมันผ่านการติดตั้งด้วง มันปรากฏตัวเพื่อสร้างการตั้งค่าที่ถูกต้องแม้จะมี แต่เพียงในกรณีที่ฉันได้chroot /target /bin/bash
ทำแน่ใจ/proc
และถูกติดตั้งและได้อย่าง/sys
update-grub
เวลานั้นมันเสร็จ จากนั้นฉันได้dpkg-reconfigure grub-pc
เลือกที่จะติดตั้งด้วงบน MBRs ของดิสก์เสมือนทั้งหมด
บน Wheezy หลังจากทำตามข้างบนให้เลือก 'ดำเนินการต่อโดยไม่ใช้ bootloader'
เสร็จสิ้นการติดตั้ง มันจะบู๊ต อาจ.
ความรู้ชุมชน
มีคนจำนวนพอสมควรที่รู้mdadm
และมีประสบการณ์ในการติดตั้งมากมาย Google น่าจะตอบคำถามส่วนใหญ่ของคุณได้ โดยทั่วไปคุณสามารถคาดหวังคำถามได้ที่นี่เพื่อรับคำตอบอาจจะภายในหนึ่งวัน
ไม่สามารถพูดแบบเดียวกันสำหรับ LVM RAID ได้ มันยากที่จะหาคำแนะนำ การค้นหาของ Google ส่วนใหญ่ฉันใช้แทนที่จะค้นหาสิ่งที่ฉันใช้ mdadm อาร์เรย์เป็น PVs พูดตามตรงนี่อาจเป็นเพราะส่วนใหญ่มันใหม่กว่าและใช้กันน้อยกว่า ค่อนข้างมันไม่ยุติธรรมเลยที่จะเก็บเรื่องนี้ไว้ - แต่ถ้ามีอะไรผิดพลาดชุมชนที่มีขนาดใหญ่กว่าเดิมรอบ mdadm ทำให้การกู้คืนข้อมูลของฉันมีโอกาสมากขึ้น
ข้อสรุป
LVM-RAID ใกล้เข้ามาอย่างรวดเร็ว บน Wheezy มันใช้ไม่ได้จริง ๆ (อย่างน้อยโดยไม่ต้องทำ backport ของ LVM และเคอร์เนล) ก่อนหน้านี้ในปี 2014 การทดสอบเดเบียนรู้สึกเหมือนเป็นแนวคิดที่น่าสนใจ แต่ยังไม่เสร็จ การทดสอบในปัจจุบันโดยทั่วไปสิ่งที่จะกลายเป็นเจสซีรู้สึกเหมือนสิ่งที่คุณอาจใช้จริง ๆ ถ้าคุณต้องสร้างชิ้นเล็ก ๆ ด้วยการตั้งค่า RAID ที่แตกต่างกัน (สิ่งที่เป็นฝันร้ายในการบริหารmdadm
)
หากความต้องการของคุณได้รับการบริการอย่างเพียงพอจากอาร์เรย์ RAID ขนาดใหญ่สองสาม mdadm ที่แบ่งเป็นพาร์ติชันโดยใช้ LVM ฉันขอแนะนำให้ใช้งานต่อไป หากคุณต้องการสร้างอาร์เรย์จำนวนมาก (หรือแม้กระทั่งอาร์เรย์ของโลจิคัลวอลุ่ม) แทนให้ลองเปลี่ยนไปใช้ LVM-RAID แทน แต่ให้สำรองข้อมูลที่ดี
การใช้งาน LVM RAID จำนวนมาก (และแม้แต่ mdadm RAID) กำลังถูกครอบงำโดยสิ่งต่าง ๆ เช่นระบบจัดเก็บข้อมูล / วัตถุคลัสเตอร์, ZFS และ btrfs ฉันขอแนะนำให้ตรวจสอบเหล่านั้นพวกเขาอาจตอบสนองความต้องการของคุณได้ดีขึ้น
ขอบคุณ
ฉันอยากจะขอบคุณpsusi ที่พาฉันไปทบทวนสถานะของ LVM-RAID และอัปเดตโพสต์นี้
เชิงอรรถ
ฉันสงสัยว่าคุณสามารถใช้อุปกรณ์ทำแผนที่เพื่อกาวข้อมูลเมตาและข้อมูลร่วมกันในลักษณะที่mdadm --assemble
จะใช้ แน่นอนคุณสามารถรันmdadm
บนโลจิคัลวอลุ่มได้ดี ... และนั่นจะเป็นเรื่องที่น่ายินดี
เมื่อทำการติดตั้ง Wheezy ฉันไม่สามารถทำสิ่งนี้เป็นครั้งแรกและปิดท้ายด้วยการตั้งค่าด้วง ฉันต้องบูทระบบด้วยการป้อนข้อมูลทั้งหมดที่ด้วงพรอมต์ เมื่อบูตแล้วใช้งานได้ฉันจึงคิดว่ามันจะใช้ได้ดีจากตัวติดตั้ง หากคุณไขลานที่พรอมต์ด้วงนี่คือสายเวทย์ที่จะพิมพ์:
linux /boot/vmlinuz-3.2.0-4-amd64 root=/dev/mapper/vg0-root
initrd /boot/initrd.image-3.2.0-4-amd64
boot
ป.ล. : มันผ่านมาซักพักแล้วตั้งแต่ที่ฉันได้ทำการทดลองดั้งเดิม ฉันทำบันทึกดั้งเดิมของฉันแล้ว โปรดทราบว่าตอนนี้ฉันได้ทำสิ่งที่ใหม่กว่าไปแล้วซึ่งครอบคลุมในคำตอบนี้ไม่ใช่ในบันทึกย่อเหล่านั้น