कुछ समय पहले मेरे पास घर में एक RAID5 प्रणाली थी। 4 डिस्क में से एक विफल रहा, लेकिन इसे हटाने और वापस डालने के बाद यह ठीक लग रहा था इसलिए मैंने एक रेसकंक शुरू किया। जब यह समाप्त हो गया, मुझे अपने डरावने होने का एहसास हुआ, कि 4 में से 3 डिस्क विफल रही। हालाँकि मैं ऐसा नहीं मानता। एक अलग RAID सरणी के प्रत्येक भाग के डिस्क पर कई विभाजन हैं।
- md0 एक RAID1 सरणी है जिसमें sda1, sdb1, sdc1 और sdd1 शामिल हैं।
- md1 एक RAID5 सरणी है जिसमें sda2, sdb2, sdc2 और sdd2 शामिल हैं।
- md2 एक RAID0 सरणी है जिसमें sda3, sdb3, sdc3 और sdd3 शामिल हैं।
md0 और md2 रिपोर्ट सभी डिस्क को हटाती है जबकि md1 रिपोर्ट 3 विफल (sdb2, sdc2, sdd2)। यह मेरी uderstanding है कि जब हार्ड ड्राइव विफल हो जाते हैं तो सभी विभाजन केवल मध्य वाले नहीं खोए जाने चाहिए।
उस समय मैंने कंप्यूटर को बंद कर दिया और ड्राइव को अनप्लग कर दिया। तब से मैं एक छोटी सी नई डिस्क के साथ उस कंप्यूटर का उपयोग कर रहा था।
क्या डेटा रिकवर होने की कोई उम्मीद है? क्या मैं किसी तरह mdadm को समझा सकता हूं कि मेरे डिस्क वास्तव में काम कर रहे हैं? एकमात्र डिस्क जिसमें वास्तव में कोई समस्या हो सकती है sdc है, लेकिन वह भी अन्य सरणियों द्वारा रिपोर्ट की गई है।
अपडेट करें
मुझे आखिरकार पुराने डिस्क को कनेक्ट करने और SystemRescueCd से इस मशीन को बूट करने का मौका मिला। ऊपर सब कुछ स्मृति से लिखा गया था। अब मेरे पास कुछ कठिन आंकड़े हैं। यहाँ का उत्पादन हैmdadm --examine /dev/sd*2
/dev/sda2:
Magic : a92b4efc
Version : 0.90.00
UUID : 53eb7711:5b290125:db4a62ac:7770c5ea
Creation Time : Sun May 30 21:48:55 2010
Raid Level : raid5
Used Dev Size : 625064960 (596.11 GiB 640.07 GB)
Array Size : 1875194880 (1788.33 GiB 1920.20 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 1
Update Time : Mon Aug 23 11:40:48 2010
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 1
Spare Devices : 1
Checksum : 68b48835 - correct
Events : 53204
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 0 8 2 0 active sync /dev/sda2
0 0 8 2 0 active sync /dev/sda2
1 1 8 18 1 active sync /dev/sdb2
2 2 8 34 2 active sync /dev/sdc2
3 3 0 0 3 faulty removed
4 4 8 50 4 spare /dev/sdd2
/dev/sdb2:
Magic : a92b4efc
Version : 0.90.00
UUID : 53eb7711:5b290125:db4a62ac:7770c5ea
Creation Time : Sun May 30 21:48:55 2010
Raid Level : raid5
Used Dev Size : 625064960 (596.11 GiB 640.07 GB)
Array Size : 1875194880 (1788.33 GiB 1920.20 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 1
Update Time : Mon Aug 23 11:44:54 2010
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 1
Spare Devices : 1
Checksum : 68b4894a - correct
Events : 53205
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 1 8 18 1 active sync /dev/sdb2
0 0 0 0 0 removed
1 1 8 18 1 active sync /dev/sdb2
2 2 8 34 2 active sync /dev/sdc2
3 3 0 0 3 faulty removed
4 4 8 50 4 spare /dev/sdd2
/dev/sdc2:
Magic : a92b4efc
Version : 0.90.00
UUID : 53eb7711:5b290125:db4a62ac:7770c5ea
Creation Time : Sun May 30 21:48:55 2010
Raid Level : raid5
Used Dev Size : 625064960 (596.11 GiB 640.07 GB)
Array Size : 1875194880 (1788.33 GiB 1920.20 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 1
Update Time : Mon Aug 23 11:44:54 2010
State : clean
Active Devices : 1
Working Devices : 2
Failed Devices : 2
Spare Devices : 1
Checksum : 68b48975 - correct
Events : 53210
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 2 8 34 2 active sync /dev/sdc2
0 0 0 0 0 removed
1 1 0 0 1 faulty removed
2 2 8 34 2 active sync /dev/sdc2
3 3 0 0 3 faulty removed
4 4 8 50 4 spare /dev/sdd2
/dev/sdd2:
Magic : a92b4efc
Version : 0.90.00
UUID : 53eb7711:5b290125:db4a62ac:7770c5ea
Creation Time : Sun May 30 21:48:55 2010
Raid Level : raid5
Used Dev Size : 625064960 (596.11 GiB 640.07 GB)
Array Size : 1875194880 (1788.33 GiB 1920.20 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 1
Update Time : Mon Aug 23 11:44:54 2010
State : clean
Active Devices : 1
Working Devices : 2
Failed Devices : 2
Spare Devices : 1
Checksum : 68b48983 - correct
Events : 53210
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 4 8 50 4 spare /dev/sdd2
0 0 0 0 0 removed
1 1 0 0 1 faulty removed
2 2 8 34 2 active sync /dev/sdc2
3 3 0 0 3 faulty removed
4 4 8 50 4 spare /dev/sdd2
ऐसा प्रतीत होता है कि अंतिम बूट के बाद से चीजें बदल गई हैं। अगर मैं इसे सही ढंग से पढ़ रहा हूँ sda2, sdb2 और sdc2 काम कर रहे हैं और इसमें सिंक्रनाइज़ डेटा है और sdd2 अतिरिक्त है। मुझे स्पष्ट रूप से 3 असफल डिस्क देखकर याद है लेकिन यह अच्छी खबर है। फिर भी सरणी अभी भी काम नहीं कर रही है:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md125 : inactive sda2[0](S) sdb2[1](S) sdc2[2](S)
1875194880 blocks
md126 : inactive sdd2[4](S)
625064960 blocks
md127 : active raid1 sda1[0] sdd1[3] sdc1[2] sdb1[1]
64128 blocks [4/4] [UUUU]
unused devices: <none>
md0 को md127 नाम दिया गया है। md125 और md126 बहुत अजीब हैं। वे दो नहीं एक सरणी होना चाहिए। जिसे md1 कहा जाता था। md2 पूरी तरह से चला गया है, लेकिन यह मेरी स्वैप था इसलिए मुझे परवाह नहीं है।
मैं अलग-अलग नामों को समझ सकता हूं और यह वास्तव में मायने नहीं रखता। लेकिन 3 "सक्रिय सिंक" डिस्क के साथ एक सरणी अपठनीय क्यों है? और क्या sdd2 एक अलग सरणी में होने के साथ है?
अपडेट करें
मैंने सुपरब्लॉक का समर्थन करने के बाद निम्नलिखित की कोशिश की:
root@sysresccd /root % mdadm --stop /dev/md125
mdadm: stopped /dev/md125
root@sysresccd /root % mdadm --stop /dev/md126
mdadm: stopped /dev/md126
अब तक सब ठीक है। चूंकि sdd2 स्पेयर है इसलिए मैं इसे अभी तक जोड़ना नहीं चाहता।
root@sysresccd /root % mdadm --assemble /dev/md1 /dev/sd{a,b,c}2 missing
mdadm: cannot open device missing: No such file or directory
mdadm: missing has no superblock - assembly aborted
जाहिर है मैं ऐसा नहीं कर सकता।
root@sysresccd /root % mdadm --assemble /dev/md1 /dev/sd{a,b,c}2
mdadm: /dev/md1 assembled from 1 drive - not enough to start the array.
root@sysresccd /root % cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : inactive sdc2[2](S) sdb2[1](S) sda2[0](S)
1875194880 blocks
md127 : active raid1 sda1[0] sdd1[3] sdc1[2] sdb1[1]
64128 blocks [4/4] [UUUU]
unused devices: <none>
यह भी काम नहीं किया। चलो सभी डिस्क के साथ प्रयास करें।
mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@sysresccd /root % mdadm --assemble /dev/md1 /dev/sd{a,b,c,d}2
mdadm: /dev/md1 assembled from 1 drive and 1 spare - not enough to start the array.
root@sysresccd /root % cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : inactive sdc2[2](S) sdd2[4](S) sdb2[1](S) sda2[0](S)
2500259840 blocks
md127 : active raid1 sda1[0] sdd1[3] sdc1[2] sdb1[1]
64128 blocks [4/4] [UUUU]
unused devices: <none>
कोई भाग्य नहीं। इस उत्तर के आधार पर मैं कोशिश कर रहा हूँ:
mdadm --create /dev/md1 --assume-clean --metadata=0.90 --bitmap=/root/bitmapfile --level=5 --raid-devices=4 /dev/sd{a,b,c}2 missing
mdadm --add /dev/md1 /dev/sdd2
क्या ये सुरक्षित है?
अपडेट करें
मैं अपनी टिप्पणी में उस तालिका को बनाने के लिए उपयोग की गई सुपरब्लॉक पार्सर स्क्रिप्ट प्रकाशित करता हूं। शायद किसी को यह उपयोगी लगेगा। आपकी सभी मदद का धन्यवाद।
mdadm -A /dev/md1 /dev/sd{b,c,d}2
(शायद --force
) के साथ एक नए को फिर से जोड़ना ? (यदि आप नहीं हैं, तो पहले सुपरब्लॉक का बैकअप लें।)
/dev/sdd2
यूयूआईडी के समान होने के बावजूद एक अलग सरणी में कैसे हो सकता है sd{a,b,c}2
।
mdadm --re-add
वह नहीं है जो आप खोज रहे हैं। क्या आपने हाल ही में मेमोरी टेस्ट किया? क्या आपके पास सरणी विफलता से संबंधित कोई लॉग संदेश है?