सवाल एक्सएफएस के साथ लिनक्स सॉफ्टवेयर RAID 5 का विस्तार करना आसान है। सर्वोत्तम प्रथाएं?


मैं अपने उबंटू मशीन को सांबा शेयर का उपयोग कर विंडोज / लिनक्स / मैक क्लाइंट्स के लिए फ़ाइल सर्वर के रूप में उपयोग करता हूं। मुझे किसी भी डेटा को आगे और आगे ले जाने के बिना बस अधिक हार्ड ड्राइव जोड़कर आसानी से विस्तार करने की आवश्यकता है।

इस तरह मैंने इसे अभी तक किया है। मैंने चौथी हार्ड ड्राइव सफलतापूर्वक जोड़ दी है। अब यह जानना अच्छा होगा कि यह कैसे किया जाना चाहिए? मैं क्या गलत कर रहा हूं या मैं बेहतर क्या कर सकता हूं?

प्रारंभिक 3 ड्राइव सरणी बनाना

मैंने तीन खाली ड्राइव के साथ शुरू किया: / dev / sdb, / dev / sdc और / dev / sdd।

सबसे पहले मैंने सभी ड्राइव में खाली विभाजन बनाए:

$ 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

जब खाली तीन विभाजन सभी तीन डिस्क पर बनाए गए हैं, तो मैंने RAID5 सरणी बनाई है:

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

अब RAID5 सरणी बनाई गई है, और यह पहले से ही बनाया जा रहा है। इसमें समय लगता है, लेकिन आप एक नई भौतिक LVM2 वॉल्यूम बनाने के साथ आगे बढ़ सकते हैं:

$ pvcreate /dev/md0

अब चलिए एक नया वॉल्यूम समूह बनाते हैं:

$ vgcreate vd_raid /dev/md0

फिर हमें उस वॉल्यूम समूह के अंदर एक नई लॉजिकल वॉल्यूम बनाने की जरूरत है। सबसे पहले हमें बनाए गए वॉल्यूम समूह के सटीक आकार को समझने की आवश्यकता है:

$ vgdisplay vg_raid

आकार पंक्ति से देखा जा सकता है जो भौतिक विस्तार में "कुल पीई" इंगित करता है। आइए कल्पना करें कि यह 50 9 है। अब एक नई लॉजिकल वॉल्यूम बनाएं जो सभी उपलब्ध स्थान लेता है:

$ lvcreate -l 509 vg_raid -n lv_raid

अंत में हम उस लॉजिकल वॉल्यूम के शीर्ष पर एक फाइल सिस्टम बना सकते हैं:

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

हमारे नव निर्मित RAID सरणी का उपयोग करने में सक्षम होने के लिए, हमें एक निर्देशिका बनाने और इसे माउंट करने की आवश्यकता है:

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

अब यह उपयोग करने के लिए तैयार है। लेकिन इसके लिए रीबूट के बाद स्वचालित रूप से माउंट करने के लिए, हमें RAID ज्यामिति को mdadm की कॉन्फ़िगरेशन फ़ाइल में सहेजने की आवश्यकता है:

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

फिर निम्न पंक्ति को / etc / fstab में जोड़ें जो स्वचालित रूप से RAID सरणी को माउंट करता है:

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

अब RAID सरणी उपयोग करने के लिए तैयार है, और प्रत्येक बूट के बाद स्वचालित रूप से / RAID निर्देशिका में घुड़सवार है।

सरणी में एक नया ड्राइव जोड़ना

आइए कल्पना करें कि अब आपके पास एक नया ड्राइव है, / dev / sde, जिसे आप पहले से बनाए गए सरणी में किसी भी डेटा को खोए बिना जोड़ना चाहते हैं।

सबसे पहले नए ड्राइव को अन्य सभी ड्राइव के रूप में विभाजित करने की आवश्यकता है:

$ 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

फिर इसे RAID सरणी में जोड़ा जाना चाहिए:

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

अब RAID5 सरणी में चार ड्राइव शामिल हैं, जो वर्तमान में केवल तीन उपयोग में हैं। सभी चार ड्राइव को शामिल करने के लिए सरणी को विस्तारित करने की आवश्यकता है:

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

फिर भौतिक LVM2 वॉल्यूम को विस्तारित करने की आवश्यकता है:

$ pvresize /dev/md0

अब RAID सरणी में सभी उपलब्ध स्थान को कवर करने के लिए डिफ़ॉल्ट रूप से भौतिक वॉल्यूम का आकार बदल दिया जाता है। हमें भौतिक विस्तार में नए आकार को खोजने की जरूरत है:

$ vgdisplay vg_raid

आइए कल्पना करें कि नया आकार अब 764 है ("कुल पीई" से देखा जा सकता है)। अब इसे कवर करने के लिए लॉजिकल वॉल्यूम का विस्तार करें:

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

फिर एक्सएफएस फाइल सिस्टम का विस्तार करें। फ़ाइल सिस्टम के दौरान यह किया जाना आवश्यक है और घुड़सवार है:

$ xfs_grow /raid

डिफ़ॉल्ट रूप से यह सभी उपलब्ध स्थान को कवर करने के लिए विस्तारित किया जाता है। अंत में RAID सरणी ज्यामिति को अद्यतन करने की आवश्यकता है क्योंकि सरणी में अब एक नई डिस्क शामिल है। पहले /etc/mdadm/mdadm.conf से जोड़ा गया लाइन हटाएं और फिर एक नया जोड़ें:

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

12
2018-02-18 22:24


मूल


अपने डिस्क पर विभाजन मत डालो। इसके लिए कोई ज़रूरत नहीं है - इन-कर्नेल RAID autodetect (विभाजन प्रकार fd) को बहिष्कृत किया गया है। - James
तो fdisk के साथ प्रकार 'fd' विभाजन बनाने के बजाय, मुझे बस / dev / md0 सरणी / dev / sdb, / dev / sdc और / dev / sdd उपकरणों को सीधे बनाना चाहिए? - Taskinen
मैंने सुना है कि सभी डिस्क एक ही आकार के नहीं हैं, इसलिए यदि मैं एक नई टेराबाइट डिस्क खरीदता हूं, तो यह बिल्कुल वही आकार नहीं हो सकता है। क्या इससे कुछ समस्याएं पेश होंगी? - Taskinen


जवाब:


मुझे लगता है कि आपको यह सही मिला है। सुनिश्चित करें कि आप बढ़ते RAID 5 के संबंध में चेतावनियों को समझते हैं और ध्यान देते हैं man 8 mdadm

व्यक्तिगत रूप से यदि मैं एक LVM वॉल्यूम बढ़ रहा था, तो मैं इसे करने के लिए मौजूदा RAID सरणी नहीं बढ़ाऊंगा। मैं एक और RAID सरणी बनाउंगा, इससे एक नया फिजवॉल बनाएं, और इसे उसी वॉल्यूम समूह में जोड़ें। यह एक अधिक सुरक्षित ऑपरेशन है (डिस्क के नए सेट में पूरे RAID5 सरणी को फिर से लिखना शामिल नहीं है) और आपके सरणी के आकार को नीचे रखता है।


5
2018-02-19 00:13



बिलकुल सहमत। vgextend यहाँ आपका दोस्त है। - Dan Andreatta
आम तौर पर मैं समझता हूं, लेकिन उस स्थिति के बारे में क्या है जहां मैं उपरोक्त तीन डिस्क सरणी को चार डिस्क सरणी में विकसित करना चाहता हूं। मैं अकेले चौथी डिस्क से एक नया RAID सरणी नहीं बना सकता। - Taskinen
मैं एक समय में एक स्टोरेज सर्वर की डिस्क सरणी एक डिस्क का विस्तार नहीं करूँगा। एक तीन डिस्क सरणी से चार डिस्क सरणी में जाने से आपको केवल 50% अधिक संग्रहण मिलेगा, क्योंकि आपको उसी आकार डिस्क का उपयोग करना होगा। - Kamil Kisiel
माना। जब तक आप अंतरिक्ष से बाहर निकलते हैं, तब तक बड़ी डिस्क ड्राइव कम हो जाएगी। बड़े ड्राइव के नए सेट पर एक दूसरी RAID सरणी बनाएं, फिर उस पर अपना पुराना डेटा pvmove करें और pvmove होने के बाद पुराने सेट को डिमोकेशन करें। यह सब किया जा सकता है जबकि pvmove द्वारा प्रभावित लॉजिकल वॉल्यूम्स में फाइल सिस्टम सक्रिय उपयोग में हैं। - flabdablet