LVM RAID कितना परिपक्व और फीचरपूर्ण है?
LVM-RAID वास्तव में कवर के नीचे mdraid है। यह मूल रूप से प्रति RAID डिवाइस (डेटा के लिए एक, "रिमेज" नामक दो लॉजिकल वॉल्यूम बनाकर काम करता है; मेटाडेटा के लिए एक, जिसे "रिमाटा" कहा जाता है)। यह तब मौजूदा mdraid ड्राइवरों को बंद कर देता है। इसलिए डिस्क रीड एरर, I / O लोड बैलेंसिंग आदि को संभालने जैसी चीजें काफी परिपक्व होनी चाहिए।
यह अच्छी खबर है।
उपकरण
आप इस mdadm
पर उपयोग नहीं कर सकते (कम से कम, किसी भी आसान तरीके से नहीं) और LVM RAID उपकरण कहीं भी परिपक्व नहीं हैं। उदाहरण के लिए, डेबियन व्हीज़ी में, lvs
आपको RAID5 सिंक स्थिति नहीं बता सकते। मुझे मरम्मत और रिकवरी पर बहुत संदेह है (विशेष रूप से "जो कभी नहीं होना चाहिए!" स्थितियों में) कहीं भी mdadm जितना अच्छा है (और मैं गलती से मेरे परीक्षण में उन लोगों में से एक में भाग गया, और अंत में बस इसे ठीक करने पर छोड़ दिया - वसूली के साथ mdadm आसान होता)।
खासकर यदि आप सभी उपकरणों के नवीनतम संस्करणों का उपयोग नहीं कर रहे हैं, तो यह खराब हो जाता है।
गुम सुविधाएँ
LVM-RAID के वर्तमान संस्करण सिकुड़ते हुए समर्थन नहीं करते ( lvreduce
) RAID तार्किक आयतन। न ही वे डिस्क या RAID स्तर को बदलने का समर्थन करते हैं ( lvconvert
एक त्रुटि संदेश कहते हैं जो अभी तक समर्थित नहीं है)। lvextend
काम करता है, और यहां तक कि RAID स्तरों को भी बढ़ा सकता है जो केवल हाल ही में प्राप्त किए गए समर्थन जैसे md भय को RAID10 कहते हैं। मेरे अनुभव में, LVs का विस्तार उन्हें कम करने की तुलना में बहुत अधिक सामान्य है, इसलिए यह वास्तव में उचित है।
कुछ अन्य mdraid सुविधाएं मौजूद नहीं हैं, और विशेष रूप से आप उन सभी विकल्पों को अनुकूलित नहीं कर सकते हैं जो आप mdadm के साथ कर सकते हैं।
पुराने संस्करणों पर (जैसा कि पाया गया, उदाहरण के लिए, डेबियन व्हीज़ी), LVM RAID बढ़ते हुए का समर्थन नहीं करता है, या तो। उदाहरण के लिए, व्हीजी पर:
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.
सामान्य तौर पर, आप व्हीजी संस्करण को नहीं चलाना चाहते हैं।
एक बार आप इसे स्थापित कर लेते हैं। यह कोई तुच्छ प्रक्रिया नहीं है।
उपकरण की समस्याएं
अपने जेसी वीएम के साथ खेलते हुए, मैंने डिस्क को वस्तुतः डिस्कनेक्ट कर दिया। यह काम किया, मशीन चलती रही। lvs
हालांकि, कोई संकेत नहीं दिया कि सरणियों को नीचा दिखाया गया था। मैंने डिस्क को फिर से जोड़ा, और एक सेकंड को हटा दिया। चलता रहा (यह raid6 है)। पुनः संलग्न, फिर भी कोई संकेत नहीं lvs
। मैं lvconvert --repair
वॉल्यूम पर भागा , उसने मुझे बताया कि यह ठीक है। फिर मैंने एक तीसरी डिस्क खींची ... और मशीन मर गई। इसे फिर से डाला, रिबूट किया गया, और अब अनिश्चित हूं कि कैसे ठीक किया जाए। mdadm --force --assemble
इसे ठीक करेगा; न तो vgchange
है और न ही lvchange
(lvchange स्वीकार करता प्रतीत होता है कि विकल्प होता है करने के लिए --force
है, लेकिन यह कुछ भी नहीं लगता है)। यहां तक कि dmsetup
मानचित्रण तालिका को सीधे कर्नेल को खिलाने की कोशिश करते हुए, मैं यह पता नहीं लगा सका कि इसे कैसे पुनर्प्राप्त करना है।
इसके अलावा, mdadm
सिर्फ RAID प्रबंधन के लिए एक समर्पित उपकरण है। LVM और भी बहुत कुछ करता है, लेकिन यह महसूस करता है (और मैं मानता हूं कि यह बहुत व्यक्तिपरक है) जैसे कि RAID कार्यक्षमता वहाँ में छीनी गई है; यह काफी फिट नहीं है।
आप वास्तव में LVM RAID के साथ एक सिस्टम कैसे स्थापित करते हैं?
यह डेबियन जेसी या व्हीजी पर स्थापित होने की एक संक्षिप्त रूपरेखा है। जेसी अब तक आसान है; ध्यान दें कि अगर आप व्हीजी पर इस कोशिश करने जा रहे हैं, पहले पूरी बात पढ़ें ...
एक पूर्ण सीडी छवि का उपयोग करें, न कि एक netinst छवि।
सामान्य रूप से आगे बढ़ें, डिस्क विभाजन के लिए अपना LVM भौतिक वॉल्यूम सेट करें। आप LVM-RAID (जेसी पर और नीचे दिए गए कुछ काम के साथ व्हीज़ी पर) डाल सकते हैं/boot
।
अपना वॉल्यूम समूह बनाएं। इसे LVM मेनू में छोड़ दें।
मज़े की पहली बिट - इंस्टॉलर में dm-raid.ko
मॉड्यूल लोड नहीं है , या यहां तक कि उपलब्ध नहीं है! तो आपको इसे लिनक्स-इमेज पैकेज से हथियाना होगा जो इंस्टॉल किया जाएगा। कंसोल पर स्विच करें (जैसे, 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
जेसी पर, आप स्वैप के लिए RAID10 का उपयोग कर सकते हैं। व्हीजी पर, RAID10 समर्थित नहीं है। तो इसके बजाय आप दो स्वैप विभाजन का उपयोग कर सकते हैं, प्रत्येक 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
उनके बारे में सब कुछ अनदेखा करें (उन लोगों के विवरण के लिए ऊपर का पहला पैराग्राफ देखें)।
आगे बढ़ो और सामान्य रूप में फाइलसिस्टम, स्वैप विभाजन इत्यादि बनाएं। बेस सिस्टम इत्यादि को तब तक इंस्टाल करें, जब तक आपको ग्रब प्रॉम्प्ट न मिल जाए।
जेसी पर, ग्रब 2 एमबीआर (या शायद ईएफआई के साथ स्थापित होने पर काम करेगा, लेकिन मैंने इसका परीक्षण नहीं किया है)। व्हीजी पर, इंस्टॉल विफल हो जाएगा, और एकमात्र समाधान जेसी की ग्रब 2 को बैकपोर्ट करना है। यह वास्तव में काफी आसान है, यह व्हीजी पर सफाई से संकलित करता है। किसी तरह, अपने बैकग्राउंड किए गए ग्रब पैकेज को प्राप्त करें /target
(या एक सेकंड में करें, चुरोट के बाद):
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
वास्तव में, मेरे सबसे हाल ही में जेसी वीएम ग्रब-इन पर लटका दिया गया। F2 पर स्विच करना और करना while kill $(pidof vgs); do sleep 0.25; done
, इसके बाद उसी के लिए lvs
, इसे ग्रब-इंस्टॉल के माध्यम से मिला। यह उसके बावजूद एक मान्य कॉन्फ़िगरेशन उत्पन्न करने के लिए प्रकट हुआ, लेकिन सिर्फ मामले में मैंने एक किया chroot /target /bin/bash
, सुनिश्चित किया /proc
और /sys
माउंट किया गया, और एक किया update-grub
। उस समय, यह पूरा हुआ। मैंने तब dpkg-reconfigure grub-pc
सभी वर्चुअल डिस्क के एमबीआर पर ग्रब स्थापित करने का चयन किया ।
व्हीजी पर, उपरोक्त करने के बाद, 'जारी रखें बिना बूटलोडर के'।
इंस्टॉल पूरा करें। यह बूट होगा। शायद।
सामुदायिक ज्ञान
ऐसे लोगों की एक उचित संख्या है जो इसके बारे में जानते हैं mdadm
, और इसके साथ तैनाती का बहुत अनुभव है। Google आपके पास इसके बारे में अधिकांश प्रश्नों का उत्तर देने की संभावना है। आप आम तौर पर इसके बारे में एक सवाल की उम्मीद कर सकते हैं कि उत्तर पाने के लिए, शायद एक दिन के भीतर।
वही LVM RAID के लिए नहीं कहा जा सकता है। गाइड ढूंढना मुश्किल है। अधिकांश Google खोजों के बजाय मैंने पीवीडी के रूप में mdadm सरणियों का उपयोग करने के लिए सामान खोजा है। सच कहूँ तो, यह संभवतः काफी हद तक है क्योंकि यह नया है, और कम आमतौर पर इस्तेमाल किया जाता है। कुछ हद तक, इसके खिलाफ इसे पकड़ना अनुचित लगता है - लेकिन अगर कुछ गलत हो जाता है, तो mdadm के आसपास बहुत बड़ा मौजूदा समुदाय मेरे डेटा को पुनर्प्राप्त करने की अधिक संभावना बनाता है।
निष्कर्ष
LVM-RAID काफी तेजी से आगे बढ़ रहा है। व्हीजी पर, यह वास्तव में प्रयोग करने योग्य नहीं है (कम से कम, LVM और कर्नेल के बैकपार्ट के बिना)। इससे पहले, 2014 में, डेबियन परीक्षण पर, यह एक दिलचस्प, लेकिन अधूरा विचार जैसा लगा। वर्तमान परीक्षण, मूल रूप से जेसी बन जाएगा, ऐसा कुछ महसूस होता है जिसका आप वास्तव में उपयोग कर सकते हैं, यदि आपको अक्सर अलग-अलग RAID कॉन्फ़िगरेशन (कुछ ऐसा जो एक प्रशासनिक दुःस्वप्न है mdadm
) के साथ छोटे स्लाइस बनाने की आवश्यकता होती है ।
यदि आपकी आवश्यकताओं को कुछ बड़े mdadm RAID सरणियों द्वारा पर्याप्त रूप से परोसा जाता है, LVM का उपयोग करके विभाजन में कटा हुआ है, तो मेरा सुझाव है कि इसका उपयोग जारी रखना चाहिए। यदि इसके बजाय आप कई सरणियों (या तार्किक संस्करणों के सरणियों) बनाने के लिए हवा देते हैं, तो इसके बजाय LVM-RAID पर स्विच करने पर विचार करें। लेकिन अच्छा बैकअप रखें।
क्लस्टर संग्रहण / ऑब्जेक्ट सिस्टम, ZFS, और btrfs जैसी चीजों द्वारा LVM RAID (और यहां तक कि mdadm RAID) के बहुत सारे उपयोग किए जा रहे हैं। मैं उन लोगों की भी जांच करने की सलाह देता हूं, वे आपकी जरूरतों को बेहतर तरीके से पूरा कर सकते हैं।
धन्यवाद
मैं LVM की स्थिति को फिर से समझने के लिए मुझे इस पोस्ट को अपडेट करने के लिए psusi को धन्यवाद देना चाहता हूं ।
फुटनोट
मुझे संदेह है कि आप मेटाडेटा और डेटा को इस तरह से एक साथ गोंद करने के लिए डिवाइस मैपर का उपयोग कर सकते हैं जो mdadm --assemble
इसे ले जाएगा। बेशक, आप सिर्फ mdadm
लॉजिकल वॉल्यूम पर ही ठीक से चल सकते हैं ... और यह अच्छा होगा।
व्हीजी को स्थापित करते समय, मैं पहली बार ऐसा करने में विफल रहा, और कोई ग्रब कॉन्फिगरेशन नहीं हुआ। मुझे ग्रब प्रॉम्प्ट पर सभी जानकारी दर्ज करके सिस्टम को बूट करना पड़ा। एक बार बूट करने के बाद, यह काम किया, इसलिए मुझे लगता है कि यह इंस्टॉलर से ठीक काम करेगा। यदि आप ग्रब प्रॉम्प्ट पर हवा देते हैं, तो यहां टाइप करने के लिए मैजिक लाइनें हैं:
linux /boot/vmlinuz-3.2.0-4-amd64 root=/dev/mapper/vg0-root
initrd /boot/initrd.image-3.2.0-4-amd64
boot
पुनश्च: जब से मैंने वास्तव में मूल प्रयोग किए हैं तब से यह एक समय हो गया है। मैंने अपने मूल नोट्स उपलब्ध करा दिए हैं। ध्यान दें कि मैंने अब और अधिक हाल के काम किए हैं, इस उत्तर में शामिल हैं, और उन नोटों में नहीं।