MDADM एक टूल है जो Linux पर सॉफ्टवेयर RAID बनाने और प्रबंधित करने की अनुमति देता है। इस लेख में हम दिखाएंगे कि mdadm (मल्टीपल डिस्क एडमिन) का उपयोग करके RAID ऐरे स्टोरेज कैसे बनाएं, डिस्क जोड़ें और प्रबंधित करें, हॉट-स्पेयर जोड़ें और बहुत कुछ।
mdadm: सॉफ्टवेयर RAID प्रबंधन टूल कैसे इंस्टॉल करें?
mdadm इंस्टॉल करने के लिए, इंस्टॉलेशन कमांड चलाएं:
- CentOS/Red Hat के लिए (yum/dnf उपयोग किया जाता है):
yum install mdadm - Ubuntu/Debian के लिए:
apt-get install mdadm
mdadm और निर्भर लाइब्रेरी इंस्टॉल हो जाएंगी:
Running transaction Installing : libreport-filesystem-2.1.11-43.el7.centos.x86_64 1/2 Installing : mdadm-4.1-1.el7.x86_64 2/2 Verifying : mdadm-4.1-1.el7.x86_64 1/2 Verifying : libreport-filesystem-2.1.11-43.el7.centos.x86_64 2/2 Installed: mdadm.x86_64 0:4.1-1.el7 Dependency Installed: libreport-filesystem.x86_64 0:2.1.11-43.el7.centos Complete!
Linux पर 2 डिस्क का उपयोग करके RAID 1 (मिरर) बनाना
मेरे Linux सर्वर पर दो अतिरिक्त डिस्क इंस्टॉल हैं, और मैं उन पर एक सॉफ्टवेयर मिरर बनाना चाहता हूं (RAID1)। ड्राइव खाली हैं। सबसे पहले, आपको RAID में जोड़ी जाने वाली डिस्क पर सभी सुपरब्लॉक को शून्य करना होगा:
# mdadm --zero-superblock --force /dev/vd{b,c}
मेरे पास दो साफ डिस्क हैं: vdb और vdc।

mdadm: Unrecognised md component device - /dev/vdb mdadm: Unrecognised md component device - /dev/vdc
इस लिस्टिंग का अर्थ है कि कोई भी डिस्क कभी किसी ऐरे में नहीं जोड़ा गया है।
दो डिस्क से डिवाइस /dev/md0 पर सॉफ्टवेयर RAID1 बनाने के लिए, इस कमांड का उपयोग करें:
# mdadm --create --verbose /dev/md0 -l 1 -n 2 /dev/vd{b,c}
जहां '-l 1' ऐरे प्रकार है (हमारे मामले में RAID1,
और '-n 2' ऐरे में जोड़े गए डिस्क की संख्या है।
यदि आप RAID0 (स्ट्राइप) बनाना चाहते हैं ताकि कई भौतिक डिस्क के बीच कमांड को समानांतर करके पढ़ने/लिखने की गति में सुधार हो, तो इस कमांड का उपयोग करें:
# mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/vdb /dev/vdc
RAID 5 तीन या अधिक ड्राइव के लिए:
# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/vdb /dev/vdc /dev/vdd
कमांड दर्ज करने के बाद, कार्यों की पुष्टि करें और सॉफ्टवेयर RAID बन जाएगा:

यदि आप अपने डिस्क के बारे में जानकारी सूचीबद्ध करते हैं, तो आप अपना RAID md0 ड्राइव देखेंगे:
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 20G 0 disk ├─vda1 253:1 0 512M 0 part /boot └─vda2 253:2 0 19.5G 0 part / vdb 253:16 0 20G 0 disk └─md0 9:0 0 20G 0 raid1 vdc 253:32 0 20G 0 disk └─md0 9:0 0 20G 0 raid1
अपने RAID1 ड्राइव पर ext4 फाइल सिस्टम बनाने के लिए, यह कमांड चलाएं:
# mkfs.ext4 /dev/md0
एक बैकअप डायरेक्टरी बनाएं और RAID डिवाइस को उस पर माउंट करें:
# mkdir /backup
# mount /dev/md0 /backup/
# df -h
Filesystem Size Used Avail Use% Mounted on ............. ............. /dev/md0 20G 45M 19G 1% /backup
ऐरे बिना किसी त्रुटि के माउंट हो गया है। डिवाइस को हर बार मैन्युअली माउंट न करना पड़े, इसके लिए fstab में निम्न परिवर्तन करें:
# nano /etc/fstab
/dev/md0 /backup ext4 defaults 1 2

RAID ऐरे की स्थिति कैसे देखें या अखंडता की जांच कैसे करें?
ऐरे में डेटा अखंडता की जांच करने के लिए, निम्न कमांड का उपयोग करें:
# echo 'check' > /sys/block/md0/md/sync_action
फिर निम्न फाइल का आउटपुट देखें:
# cat /sys/block/md0/md/mismatch_cnt
यदि आपको 0 मिलता है, तो आपका ऐरे ठीक है:

चेक रोकने के लिए, निम्न चलाएं:
# echo 'idle' > /sys/block/md0/md/sync_action
सर्वर पर उपलब्ध सभी RAIDs की स्थिति जांचने के लिए, इस कमांड का उपयोग करें:
# cat /proc/mdstat
Personalities : [raid1] md0 : active raid1 vdc[1] vdb[0] 20954112 blocks super 1.2 [2/2] [UU]
आप इस कमांड का उपयोग करके विशिष्ट RAID के बारे में अधिक विस्तृत जानकारी देख सकते हैं:
# mdadm -D /dev/md0

आइए कमांड लिस्टिंग में मुख्य आइटम पर विचार करें:
- Version — मेटाडेटा संस्करण
- Creation Time — RAID निर्माण की तारीख और समय
- Raid Level — RAID ऐरे का स्तर
- Array Size — RAID डिस्क स्थान का आकार
- Used Dev Size — डिवाइस द्वारा उपयोग की जाने वाली स्थान का आकार
- Raid Device — RAID में डिस्क की संख्या
- Total Devices — RAID में जोड़े गए डिस्क की संख्या
- State — वर्तमान स्थिति (clean — यह ठीक है)
- Active Devices — RAID में सक्रिय डिस्क की संख्या
- Working Devices — RAID में कार्यशील डिस्क की संख्या
- Failed Devices — RAID में विफल डिवाइस की संख्या
- Spare Devices — RAID में स्पेयर डिस्क की संख्या
- Consistency Policy — वह पैरामीटर जो विफलता के बाद सिंक्रोनाइज़ेशन प्रकार सेट करता है, rsync RAID ऐरे रिकवरी के बाद पूर्ण सिंक्रोनाइज़ेशन है (bitmap, journal, ppl मोड उपलब्ध हैं)
- UUID — RAID ऐरे पहचानकर्ता
आप fdisk का उपयोग करके संक्षिप्त जानकारी देख सकते हैं:
# fdisk -l /dev/md0
Disk /dev/md0: 21.5 GB, 21457010688 bytes, 41908224 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
RAID में डिस्क विफलता से रिकवरी, डिस्क प्रतिस्थापन
यदि RAID में डिस्क में से एक विफल या क्षतिग्रस्त हो जाती है, तो आप इसे दूसरी से बदल सकते हैं। सबसे पहले, पता करें कि डिस्क क्षतिग्रस्त है और इसे बदलने की आवश्यकता है।
# cat /proc/mdstat
Personalities : [raid1] md0 : active raid1 vdb[0] 20954112 blocks super 1.2 [2/1] [U_]
पिछले कमांड से आप देख सकते हैं कि केवल एक डिस्क सक्रिय है। [U_] का अर्थ यह भी है कि कोई समस्या मौजूद है। जब दोनों डिस्क स्वस्थ होती हैं, तो आउटपुट [UU] होता है।
RAID के बारे में विस्तृत जानकारी भी दिखाती है कि कुछ समस्याएं हैं:
# mdadm -D /dev/md0
/dev/md0: Version : 1.2 Creation Time : Tue Dec 31 12:39:22 2020 Raid Level : raid1 Array Size : 20954112 (19.98 GiB 21.46 GB) Used Dev Size : 20954112 (19.98 GiB 21.46 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Tue Dec 31 14:41:13 2020 State : clean, degraded Active Devices : 1 Working Devices : 1 Failed Devices : 1 State : clean, degraded
— अंतिम लाइन दिखाती है कि RAID में एक डिस्क क्षतिग्रस्त है।
हमारे मामले में, /dev/vdc को बदला जाना चाहिए। ऐरे को पुनर्स्थापित करने के लिए, आपको क्षतिग्रस्त डिस्क को हटाना होगा और एक नई जोड़नी होगी।
विफल ड्राइव को हटाएं:
# mdadm /dev/md0 --remove /dev/vdc
ऐरे में एक नई डिस्क जोड़ें:
# mdadm /dev/md0 --add /dev/vdd
नई डिस्क जोड़ने के बाद डिस्क रिकवरी स्वचालित रूप से शुरू हो जाएगी:
# mdadm -D /dev/md0
/dev/md0: Version : 1.2 Creation Time : Tue Dec 31 12:39:22 2020 Raid Level : raid1 Array Size : 20954112 (19.98 GiB 21.46 GB) Used Dev Size : 20954112 (19.98 GiB 21.46 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Tue Dec 31 14:50:20 2020 State : clean, degraded, recovering Active Devices : 1 Working Devices : 2 Failed Devices : 0 Spare Devices : 1 Consistency Policy : resync Rebuild Status : 48% complete Name : host1:0 (local to host host1) UUID : 9d59b1fb:7b0a7b6d:15a75459:8b1637a2 Events : 42 Number Major Minor RaidDevice State 0 253 16 0 active sync /dev/vdb 2 253 48 1 spare rebuilding /dev/vdd rebuild Status : 48% complete shows the current array recovery state. spare rebuilding /dev/vdd shows which disk is being added to the array. After rebuilding the array, check its state: State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0
Linux पर सॉफ्टवेयर RAID में डिस्क कैसे जोड़ें या हटाएं?
यदि आपको पहले बनाए गए mdadm RAID डिवाइस को हटाने की आवश्यकता है, तो इसे अनमाउंट करें:
# umount /backup
फिर यह कमांड चलाएं:
# mdadm -S /dev/md0
mdadm: stopped /dev/md0
RAID ऐरे को नष्ट करने के बाद, इसका पता अलग डिस्क डिवाइस के रूप में नहीं लगाया जाएगा:
# mdadm -S /dev/md0
mdadm: error opening /dev/md0: No such file or directory
आप सभी कनेक्टेड ड्राइव को स्कैन कर सकते हैं और भौतिक ड्राइव पर मेटाडेटा के अनुसार पहले हटाए गए (विफल) RAID डिवाइस को पुनः बना सकते हैं। निम्न कमांड चलाएं:
# mdadm --assemble --scan

यदि आप एक ऑपरेबल ड्राइव को ऐरे से हटाना और बदलना चाहते हैं, तो पहले ड्राइव को विफल के रूप में टैग करें:
# mdadm /dev/md0 --fail /dev/vdc
फिर आप इसे इस कमांड का उपयोग करके हटा सकते हैं:
# mdadm /dev/md0 --remove /dev/vdc
आप एक नई डिस्क जोड़ सकते हैं, ठीक वैसे ही जैसे विफल ड्राइव के मामले में:
# mdadm /dev/md0 --add /dev/vdd
MDADM ऐरे में हॉट-स्पेयर ड्राइव कैसे जोड़ें?
यदि सक्रिय डिस्क में से एक विफल होती है तो RAID ऐरे को जल्दी से पुनर्निर्माण करने के लिए आप एक अतिरिक्त हॉट-स्पेयर ड्राइव जोड़ सकते हैं। जिस md डिवाइस को आप चाहते हैं उसमें एक फ्री डिस्क जोड़ें:
# mdadm /dev/md0 --add /dev/vdc
जब आप RAID स्थिति की जांच करते हैं, तो हम डिस्क को स्पेयर के रूप में देखेंगे:

यह सुनिश्चित करने के लिए कि हॉट-स्वैप काम करता है, किसी भी ड्राइव को विफल के रूप में चिह्नित करें और RAID स्थिति जांचें:
# mdadm /dev/md0 --fail /dev/vdb
जांच के बाद, आप देख सकते हैं कि ऐरे का पुनर्निर्माण शुरू हो गया है।

/dev/vdb डिस्क को विफल के रूप में चिह्नित किया गया है, और हॉट-स्पेयर डिस्क RAID डिस्क में से एक सक्रिय बन गई है। तो पुनर्निर्माण प्रक्रिया शुरू हो गई है।
RAID में एक अतिरिक्त ऑपरेबल डिस्क जोड़ने के लिए, आपको इन दो चरणों का पालन करना होगा।
ऐरे में एक खाली ड्राइव जोड़ें:
# mdadm /dev/md0 --add /dev/vdb
अब यह डिस्क हॉट-स्पेयर के रूप में प्रदर्शित होगी। इसे सक्रिय बनाने के लिए, md RAID डिवाइस का विस्तार करें:
# mdadm -G /dev/md0 --raid-devices=3
फिर ऐरे का पुनर्निर्माण होगा:

पुनर्निर्माण के बाद, सभी डिस्क सक्रिय हो जाती हैं:
Number Major Minor RaidDevice State 3 253 32 0 active sync /dev/vdc 2 253 48 1 active sync /dev/vdd 4 253 16 2 active sync /dev/vdb
MDADM RAID ऐरे कैसे हटाएं?
यदि आप अपने सॉफ्टवेयर RAID ड्राइव को स्थायी रूप से हटाना चाहते हैं, तो निम्न योजना का उपयोग करें:
# umount /backup — ऐरे को डायरेक्टरी से अनमाउंट करें
# mdadm -S /dev/md0 — RAID डिवाइस को रोकें
फिर उन डिस्क पर सभी सुपरब्लॉक साफ़ करें जिनसे यह बना था:
# mdadm --zero-superblock /dev/vdb
# mdadm --zero-superblock /dev/vdc
Mdmonitor: RAID स्थिति निगरानी और ईमेल सूचनाएं
mdmonitor डेमॉन का उपयोग RAID की स्थिति की निगरानी के लिए किया जा सकता है। सबसे पहले, आपको वर्तमान ऐरे कॉन्फ़िगरेशन वाली /etc/mdadm.conf फाइल बनानी होगी:
# mdadm --detail --scan > /etc/mdadm.conf
mdadm.conf फाइल स्वचालित रूप से नहीं बनती है। आपको इसे मैन्युअल रूप से बनाना और अपडेट करना होगा।
/etc/mdadm.conf के अंत में प्रशासक ईमेल पता जोड़ें जिस पर आप किसी भी RAID समस्या की स्थिति में सूचनाएं भेजना चाहते हैं:
MAILADDR raidadmin@woshub.com
फिर systemctl का उपयोग करके mdmonitor सेवा को रीस्टार्ट करें:
# systemctl restart mdmonitor
फिर सिस्टम आपको ईमेल द्वारा सूचित करेगा यदि कोई mdadm त्रुटि या दोषपूर्ण डिस्क हैं।
निष्क्रिय MDADM RAID
हार्डवेयर विफलताओं या आपातकालीन शटडाउन के मामले में, सॉफ्टवेयर RAID ऐरे निष्क्रिय हो सकता है। सभी ड्राइव को निष्क्रिय के रूप में चिह्नित किया जाता है, लेकिन उनमें कोई त्रुटि नहीं होती।
# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : inactive vdc[1] vdb[0] 20954112 blocks super unused devices: <none>
इस मामले में, आपको इस कमांड का उपयोग करके ऐरे को रोकना होगा:
# mdadm --stop /dev/md0
और इसे पुनः असेंबल करें:
# mdadm --assemble --scan --force
यदि md डिवाइस /etc/fstab में पंजीकृत है, तो इसे इस कमांड का उपयोग करके रीमाउंट करें:
# mount -a
पहले से इंस्टॉल OS में सॉफ्टवेयर RAID बनाने के कुछ तरीके हैं। इस मामले में, आपको मैन्युअली सभी पार्टीशन टेबल को नई डिस्क पर कॉपी करना होगा, और सिस्टम डिस्क की सामग्री को मैन्युअली उस RAID पर ले जाना होगा जिसमें एक डिस्क होती है। फिर पहली डिस्क को साफ़ करें और इसे अपने RAID में जोड़ें, initramfs और GRUB लोडर को संपादित करें। इसलिए सर्वर डिप्लॉयमेंट के दौरान सॉफ्टवेयर RAID पर CentOS इंस्टॉलेशन मोड का चयन करना बेहतर है।
mdadm Linux पर सॉफ्टवेयर RAIDs को प्रबंधित करना आसान बनाता है। इस लेख में मैंने टूल के साथ काम करते समय मुख्य चीजों का वर्णन किया है, और mdadm का उपयोग करके RAIDs के साथ काम करते समय उत्पन्न होने वाले सामान्य प्रश्नों को कवर किया है।