नॉलेजबेस · सर्वर डेडिकेटेड और VPS

Linux सॉफ़्टवेयर RAID का प्रबंधन (भाग I)

अंतिम अपडेट 2019-02-03

Linux सॉफ़्टवेयर RAID का प्रबंधन (भाग I)

रिडंडेंट ऐरे ऑफ़ इंडिपेंडेंट डिस्क्स (RAID) एक स्टोरेज और वर्चुअलाइजेशन तकनीक है, जिसने 1980 के दशक के अंत में लोकप्रियता पाई। यह कई फ़िज़िकल डिस्क ड्राइव को एक लॉजिकल वर्चुअल यूनिट में जोड़ती है, ताकि प्रदर्शन बेहतर हो और रिडंडेंसी मिल सके। डेटा को ड्राइव्स में बाँटा जाता है, जो इस पर निर्भर करता है RAID लेवलपर। हालाँकि यह बैकअप का विकल्प नहीं है, फिर भी RAID लेवल डिस्क फ़ेल होने से डेटा हानि या अपठनीय (सेक्टर) रीड एरर जैसी आम हार्डवेयर समस्याओं के बावजूद आपके सिस्टम को चालू रखने में मदद कर सकते हैं।

RAID को “ब्लॉक” डिवाइसों के माध्यम से लागू और प्रबंधित किया जा सकता है, जो सॉफ़्टवेयर RAID (जैसे Linux सॉफ़्टवेयर RAID का mdadm), हार्डवेयर RAID (यानी समर्पित हार्डवेयर कार्ड) या FakeRAID (जिसे BIOS या ऑनबोर्ड RAID भी कहते हैं) हो सकते हैं। यह लेख Linux सॉफ़्टवेयर RAID और उसके प्रबंधन टूल mdadm को इस्तेमाल करने के तरीकों पर केंद्रित है।
 
Linux सॉफ़्टवेयर RAID एक ब्लॉक डिवाइस है जो अधिकांश अन्य डिवाइसों पर काम कर सकता है—SATA, USB, IDE, SCSI या इनके संयोजन पर। ध्यान दें कि RAID लेयर फ़ाइल सिस्टम लेयर को बिल्कुल नहीं छूती । आप RAID डिवाइस पर फ़ाइल सिस्टम बना सकते हैं, ठीक वैसे ही जैसे किसी अन्य ब्लॉक डिवाइस पर।

 

सॉफ़्टवेयर RAID डिवाइस कैसे काम करते हैं

सॉफ़्टवेयर RAID डिवाइसों को सामान्य डिस्क या डिस्क पार्टीशन की तरह देखा जाना चाहिए। इन्हें कई अन्य ब्लॉक डिवाइसों से "बनाया" जा सकता है।

RAID लागू करने में स्पेयर डिस्क या हॉट स्पेयर होते हैं, जो किसी सक्रिय डिस्क के फ़ेल होने तक RAID सेट में भाग नहीं लेते। डिवाइस के फ़ेल होने का पता चलते ही उसे ‘faulty’ चिह्नित कर दिया जाता है और सेट उपलब्ध पहले हॉट स्पेयर पर तुरंत पुनर्निर्माण शुरू कर देता है। स्पेयर के उसकी जगह लेने से आपका सिस्टम खराब डिस्क के साथ भी कुछ समय तक चल सकता है। यदि कोई स्पेयर डिस्क उपलब्ध नहीं है, तो ऐरे 'degraded' मोड में चलता है।

ध्यान दें कि खराब डिस्क अब भी ऐरे के सदस्य की तरह दिखती हैं और वैसा ही व्यवहार करती हैं। RAID लेयर बस उन पर पढ़ने/लिखने से बचती है। साथ ही, यदि किसी डिवाइस को ऐरे से हटाना हो, तो हटाने से पहले उसे ‘faulty’ चिह्नित करना न भूलें।

 

SATA ड्राइव पर आधारित RAID डिवाइस बनाना

आप पूरी ड्राइव को RAID ऐरे के हिस्से के रूप में इस्तेमाल कर सकते हैं, लेकिन यदि आप ड्राइव को बूट करने योग्य बनाना चाहते हैं तो इससे बचना चाहिए। आपको ड्राइव में एक पार्टीशन बनाना होगा (इसके लिए fdisk या Parted) जिसका पार्टीशन टाइप ‘fd,’ यानी Linux Software RAID ऑटो-डिटेक्ट पर सेट हो।

हर संबंधित ड्राइव (sda1, sdb1) में पार्टीशन बनाने के बाद, अब आप ऐरे बना सकते हैं:

mdadm --create /dev/md0 -n 2 --level=1 /dev/sda1 /dev/sdb1

                जहाँ:

    • /dev/md0 - आपके नए ऐरे डिवाइस का पाथ
    • -n 2  - ड्राइव की कुल संख्या, जिन्हें स्पेयर, एक्टिव या मिसिंग के रूप में वर्गीकृत किया जा सकता है; ‘मिसिंग’ ड्राइव के काम करने के लिए अतिरिक्त विकल्प -f की आवश्यकता होती है
    • --level=<RAID level>- इनमें से कोई भी हो सकता है:
      • इनमें से एक: linear
      • raid0  या 0
      • stripe
      • raid1  या 1
      • mirror
      • raid4 OR 4
      • raid5 OR 5 
      • raid6 OR 6
      • raid10 OR 10
      • multipath OR mp
      • faulty
      • container
    • /dev/sda1, /dev/sdb1 - प्रत्येक कंपोनेंट डिवाइस का पाथ

महत्वपूर्ण सूचना: यदि आप किसी RAID डिवाइस से बूट करना चाहते हैं, तोबूटलोडर कोड को उस फिजिकल ड्राइव की शुरुआत में रखें जिसका उपयोग RAID डिवाइस के मूल कंपोनेंट के रूप में किया जाएगा। इसका अर्थ है कि यदि आप/dev/sda1 को ऐरे के सदस्य के रूप में उपयोग कर रहे हैं /dev/md0 और आपकी प्राइमरी HDD/SSD को इस रूप में सेट किया गया है BIOS बूट विकल्प, तो आपको चुनना होगा /dev/sda इसके लिए बूटलोडर कोड। ऐसा करने का एक तरीका यह कमांड चलाना है grub-install /dev/sda.

RAID डिवाइस बनाने के बाद, आप इसे सामान्य लोकल ड्राइव की तरह उपयोग कर सकते हैं। उदाहरण के लिए, आप इसे Linux कर्नेल के लॉजिकल वॉल्यूम मैनेजर (LVM) के लिए फिजिकल वॉल्यूम के रूप में उपयोग कर सकते हैं या इसमें फाइल सिस्टम बना सकते हैं।

हालांकि RAID मेटाडेटा प्रत्येक कंपोनेंट ड्राइव में संग्रहीत होता है, फिर भी आपको भविष्य के उपयोग के लिए अपना RAID कॉन्फ़िगरेशन सहेज लेना चाहिए। इससे आपको md-डिवाइस के नामों की निगरानी करने और उन्हें सही रखने में मदद मिलेगी, अन्यथा आपको md126 और md127 जैसे डिवाइस नाम मिलेंगे। आप निम्नलिखित कमांड चलाकर अपनी कॉन्फ़िगरेशन फाइल सहेज सकते हैं: 


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

Ubuntu के लिए:
/etc/mdadm/mdadm.conf

 

RAID डिवाइस की निगरानी

आप RAID डिवाइस की स्थिति की सक्रिय रूप से निगरानी कर सकते हैं, इसके लिए इसका उपयोग करें --monitor mdadm टूल में। यदि mdadm को किसी ऐरे की स्थिति में कोई समस्या मिलती है, तो वह कमांड लाइन में आपके बताए अनुसार कई कार्य कर सकता है। उदाहरण के लिए, वह ईमेल भेज सकता है, कोई निर्दिष्ट प्रोग्राम चला सकता है, या सिस्टम लॉग में संदेश भेज सकता है। विकल्पों की सूची देखने के लिए मैनुअल पढ़ें man mdadm (Monitor सेक्शन)।

अधिकांश Linux डिस्ट्रीब्यूशन mdadm के लिए रैपर उपलब्ध कराते हैं –monitor। उदाहरण के लिए, CentOS / RHEL में यह सुविधा उपलब्ध है mdmonitor सर्विस, जिसे आप सिस्टम के साथ अपने-आप शुरू होने के लिए सेट कर सकते हैं, इसके लिए चलाएँ chkconfig mdmonitor on.

डिवाइस की स्थिति जाँचने का एक और तरीका यह है कि आप इसे देखें /proc/mdstat टेक्स्ट फ़ाइल, ताकि पता चले कि आपका कर्नल कौन-से ऐरे पहचानता है और उनकी अपनी-अपनी स्थिति क्या है।

 

RAID डिवाइस की कंपोनेंट ड्राइव बदलना

किसी सक्रिय RAID ऐरे में ड्राइव (जैसे (/dev/sdb1) को बदलने के लिए, पहले कर्नल द्वारा उसे ‘faulty’ के रूप में चिह्नित किया जाना ज़रूरी है—यानी इसमें इस रूप में दिखना चाहिए (F) में /proc/mdstat। यदि उसे अभी तक faulty चिह्नित नहीं किया गया है, तो हटाने से पहले आपको यह टैग स्वयं लगाना होगा। इसके लिए चलाएँ mdadm /dev/md0 -f /dev/sdb1.

ड्राइव हटाने के बाद, आप इसके स्थान पर दूसरी ड्राइव जोड़ सकते हैं, इसके लिए उपयोग करें mdadm /dev/md0 -a /dev/sdc1। ध्यान दें कि आप इस एक कमांड से कई ऑपरेशन कर सकते हैं—जैसे mdadm /dev/md0 -f /dev/sdb1 -r /dev/sdb1 -a /dev/sdc1.

इसके बाद इसकी सामग्री जाँचें /proc/mdstat फ़ाइल को बाद में देखें कि सब कुछ अपेक्षा के अनुसार हुआ या नहीं। यदि बदलाव के दौरान mdadm ने कोई एरर आउटपुट नहीं दिया, तो ऑपरेशन सही ढंग से पूरा हुआ है।

 

RAID डिवाइस को नष्ट करना

कभी-कभी आपको किसी RAID डिवाइस को पूरी तरह नष्ट करने की आवश्यकता पड़ सकती है, ताकि उसके अंतर्गत आने वाले डिवाइस सिस्टम के लिए उपयोगी बन सकें। ऐसी स्थिति तब संभव है जब आपके पास पहले से कॉन्फ़िगर किए गए RAID मेटाडेटा वाली एक अतिरिक्त HDD हो और आपका कर्नेल उस ऐरे को पहचानता हो। इस स्थिति में ऐरे में केवल एक सदस्य होता है और उस अकेली ड्राइव को सीधे हटाना संभव नहीं होता।

RAID डिवाइस को नष्ट करने के लिए, सबसे पहले आपको ऐरे को इस कमांड से रोकना होगा: mdadm -S /dev/md0। अगला चरण है sda1 पार्टिशन से मेटाडेटा हटाना, जिसके लिए यह कमांड चलाएँ: mdadm --zero-superblock /dev/sda1। इस बात का ध्यान रखें कि मेटाडेटा को शून्य पर लाएँ,/dev/sda1 (न कि /dev/sda), यदि वह किसी ऐरे का हिस्सा है, तो उसे शून्य (0) पर सेट करें।

 

संदर्भ:

सभी ज्ञान आधारित लेख

Tell us what you need

Compare available plans or describe your workload so we can discuss a suitable starting point.