कनवर्ट करें Linux सॉफ़्टवेयर raid5 से RAID 6 में छापा


11

मेरे पास वर्तमान में एक RAID5 सरणी में 3 1.5TB डिस्क के साथ एक फ़ाइल सर्वर है। चूंकि यह बहुत अधिक पूर्ण है, मुझे तीन अतिरिक्त डिस्क (प्रत्येक 1.5TB भी) मिले।

अब मैं RAID6 पर स्विच करना चाहूंगा क्योंकि 6TB स्पेस पर्याप्त है और मैं raid6 की बढ़ी हुई सुरक्षा चाहता हूं। जबकि मेरे पास एक पूर्ण बैकअप है - यानी मैं बस एक नया सरणी बना सकता हूं और बैकअप को पुनर्स्थापित कर सकता हूं - मैं बैकअप को पुनर्स्थापित किए बिना स्विच करना पसंद करूंगा। क्या यह संभव है और यदि हाँ, तो कैसे?

जवाबों:


9

आप जिस शब्दावली की तलाश कर रहे हैं, वह "RAID स्तर का प्रवासन" है।

के अनुसार इस , यह संभव है। मैंने ऐसा नहीं किया है, लेकिन यह प्रक्रिया ऐसी दिखती है कि आपको नई ड्राइव को मौजूदा सरणी में हॉटस्पेयर के रूप में जोड़ना चाहिए, फिर छापे के स्तर और छापे उपकरणों की संख्या को अद्यतन करने के लिए mdadm का उपयोग करें।

आपको ऐसा करने के लिए हाल ही के mdadm की आवश्यकता होगी: mdadm-2.6.9 (जैसे, centos 5.x) इसका समर्थन नहीं करता, लेकिन mdadm-3.1.4 (उदाहरण ubuntu 11.10) करता है:

   Grow   Grow (or shrink) an array, or otherwise reshape it in some way.  Currently supported growth options including changing the active size of component devices and
          changing the number of active devices in RAID levels 1/4/5/6, changing the RAID level between 1, 5, and 6, changing the chunk size and  layout  for  RAID5  and
          RAID5, as well as adding or removing a write-intent bitmap.

उदा, पहले RAID5 सरणी में एक नया हॉटस्पेयर उपकरण, / dev / sdg जोड़ें:

$ sudo mdadm --manage /dev/md/md0 --add /dev/sdg

फिर एक RAID6 सरणी में परिवर्तित करें और इसे एक स्वच्छ स्थिति में पुनर्निर्माण करें। Theraid-devices 4 बताता है कि आपके पास नई सरणी में कुल कितनी ड्राइव हैं।

$ sudo mdadm --grow /dev/md/md0 --raid-devices 4 --level 6

हालांकि इसमें कितनी जल्दी होगी, इसका मुझे कोई अंदाजा नहीं है। हार्डवेयर RAID नियंत्रकों पर छापे के स्तर का पलायन करने के साथ मेरे अनुभव में, यह नए सरणी को खरोंच से बनाने और इसके लिए अपने बैकअप को पुनर्प्राप्त करने के लिए तेज है।


3
RAID 5 से RAID 6 में माइग्रेट करने के दो धीमी गति से संचालन हैं - डिस्क के पार डेटा को फिर से छीनना और अतिरिक्त समता डिस्क के लिए दूसरी समता मान की गणना करना। वाइप / रिस्टोर संभवतया उतना ही समय लेगा जितना कि रिसाइज।
एंड्रयू

1
इसके लिए एक निश्चित कर्नेल संस्करण की भी आवश्यकता होती है। यह कठिन रास्ता मिल गया।
Sirex

चूँकि मैं gentoo पर हूँ, मेरे दोनों कर्नेल और mdadm बहुत हालिया संस्करण हैं - ताकि कोई समस्या न हो।
ThiefMaster

1
आपके द्वारा संदर्भित लिंक मेरे द्वारा लिखा गया था। कृपया ध्यान दें: मैंने वास्तव में डॉक्स के बारे में नहीं पढ़ा था कि यह वास्तव में कैसे किया जाता है। मैंने सिर्फ 30 ड्राइव (कुछ ऐसा) के साथ एक वर्चुअल मशीन बनाई और फ़िडलिंग शुरू की। तो नमक के दाने के साथ सभी पोस्ट ले लो, यह केवल एक बहादुरी है ...
मार्टिन एम।

1
@ServerHorror: नोट किया गया। Mdadm मैन पेज सहित व्यापक इंटरनेट का दावा है कि छापे स्तर का प्रवास हालांकि संभव है। :)
डेनियल लॉसन

7

अनिवार्य चेतावनी: विफलता के लिए योजना। बैकअप तैयार रखें और खाते में संभावित डाउनटाइम ले जाएं।

इसके अलावा, यह वीएम या पहले कुछ इसी तरह का परीक्षण करें, यह मेरे नोट्स से है और मैंने लंबे समय में ऐसा नहीं किया है। यह अधूरा हो सकता है।

  1. आपको addडिस्क के लिए डिस्क की आवश्यकता होगी:

    mdadm --manage /dev/md0 --add /dev/sdf  
    

    प्रत्येक तीन डिस्क के लिए यह करें और तदनुसार डिवाइस नामों को बदलें।

  2. सरणी बढ़ाएँ:

    mdadm --grow /dev/md0 --level 6 --raid-devices 6 
    

3

--backup-fileविकल्प का उपयोग करें , इसलिए बिजली हानि के मामले में आप रिबूट के बाद डिवाइस को विकसित करना जारी रख सकते हैं और कोई डेटा हानि सुनिश्चित नहीं कर सकते हैं।

mdadm --grow /dev/md0 --level=raid6 --raid-devices=6 --backup-file=/root/mdadm5-6_backup_md0

बैकअप-फाइल को उस फाइलसिस्टम पर सहेजा जाना चाहिए जो आपके द्वारा विकसित किए जा रहे सरणी का हिस्सा नहीं है।

--backup-file=जब की जरूरत है --growअगर वहाँ कोई अतिरिक्त उपकरणों उपलब्ध हैं एक RAID5 या RAID6 में छापे-उपकरणों की संख्या को बढ़ाने के लिए, या छोटा करने के लिए, परिवर्तन RAID स्तर या लेआउट प्रयोग किया जाता है। RAID-DEVICES CHANGES पर नीचे नीचे MODW अनुभाग देखें। फ़ाइल को एक अलग डिवाइस पर संग्रहीत किया जाना चाहिए, न कि RAID सरणी को फिर से आकार देने पर।

--continue--freeze-reshapeविधानसभा के लिए विकल्प के पूरक है । --growऑपरेशन बाधित होने पर इसकी आवश्यकता होती है और --freeze-reshapeसरणी असेंबली के दौरान उपयोग के कारण यह स्वचालित रूप से पुनरारंभ नहीं होता है । इस विकल्प का उपयोग एक लंबित फेरबदल के लिए -G( --grow) कमांड और डिवाइस के साथ मिलकर किया जाता है । पुनर्वसन निरंतरता के लिए आवश्यक सभी मापदंडों को सरणी मेटाडेटा से पढ़ा जाएगा। यदि प्रारंभिक --growकमांड को --backup-file=सेट करने के लिए आवश्यक विकल्प था , तो जारी रखने के विकल्प के लिए ठीक उसी बैकअप फ़ाइल की आवश्यकता होगी जो कि दी गई है।

--continueविकल्प के साथ पारित किसी भी अन्य पैरामीटर को नजरअंदाज कर दिया जाएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.