mdadm - RAID0 से डिस्क निकालें


11

इसलिए, मैं जानना चाहूंगा, निम्नलिखित को mdadm के साथ करना संभव है:

  1. मैं 2 डिस्क पर RAID0 कॉन्फ़िगरेशन के साथ शुरू करता हूं: sdaऔर sdb
  2. मैं सरणी में एक और डिस्क जोड़ना चाहूंगा, और उसमें से sdcसभी डेटा को स्थानांतरित करूंगा sdb
  3. डिस्कनेक्ट करें sdb

अभी मैं केवल एक विकल्प दिखाई - मैं सरणी बंद करो, नकल sdbकरने sdcके साथ ddया किसी अन्य ब्लॉक प्रति उपकरण और सरणी वापस शुरू करते हैं।

क्या मुझे कुछ याद है? क्या mdadm के साथ ऐसा करना संभव है?


आप sdb को एक अस्थायी दर्पण में बना सकते हैं, और फिर इसे sdc को बैकग्राउंड में सिंक कर सकते हैं - इससे आवश्यक डाउनटाइम कम हो जाता है, हालाँकि मैंने आपकी जगह एक शुरुआत के रूप में ऐसा नहीं किया।
पीटर - मोनिका

मैं निश्चित रूप से शुरुआत नहीं कर रहा हूं :) क्या आप मुझे अस्थायी दर्पण के बारे में अधिक बता सकते हैं? क्या यह mdadm फीचर है?
उन्माद जूल

नहीं, यह एक साधारण छापे की विशेषता है। मुझे लगा कि एक अस्थायी raid1 सरणी है, जो आपके raid1 सरणी में sdb का स्थान प्राप्त कर सकता है। जब आप sdb को sdc में सिंक कर रहे हैं, तो आप इसे अपने raid0 सरणी के भाग के रूप में भी उपयोग कर सकते हैं।
पीटर - मोनिका जूल

तो, क्या मैं आपको सही समझ रहा हूं? 1. सरणी रोकें। 2. sbd और sdc के साथ एक और RAID1 सरणी बनाएँ। 3. और मैं mdadm कैसे पूछ सकता हूं इसलिए sdb के बजाय md1 के साथ अपने RAID0 को शुरू करें?
जूल

बहुत शोध नहीं किया गया है, लेकिन यह निश्चित रूप से ऐसा लगता है कि आपको RAID0 -> RAID5 से बढ़ने में सक्षम होना चाहिए। फिर वापस नीचे एक RAID0 करने के लिए हटना।
Zoredache

जवाबों:


17

सबसे पहले: उन लोगों के लिए, जो अभी भी "RAID0 में कोई गर्म स्पेयर नहीं है" मानते हैं। यह मानव द्वारा किया जाने वाला मैनुअल स्पेयर हो सकता है, जो RAID स्तर और mdadm को समझता है। mdadm सॉफ्टवेयर RAID है, इसलिए यह बहुत सारी दिलचस्प चीजें कर सकता है।

विचार के लिए Zoredache को श्रेय !

तो, स्थिति:

  • आपके पास दो डिस्क की RAID0 सरणी है
  • आप सरणी डाउनटाइम के बिना उनमें से एक को बदलना चाहेंगे

यदि डाउनटाइम स्वीकार्य है, तो आप हमेशा dd के साथ डिस्क की एक ब्लॉक कॉपी बना सकते हैं और सरणी को पुन: इकट्ठा कर सकते हैं, mdadm ठीक करेगा।

समाधान: मध्यवर्ती समाधान के रूप में RAID4 का उपयोग करें

RAID0 -> RAID4 -> RAID0

इसलिए, यदि आपको RAID4 याद नहीं है, तो यह सरल है। इसमें एक समता खंड है, लेकिन RAID5 के विपरीत यह सरणी में वितरित नहीं है, लेकिन वन डिस्क पर रहता है। यह मुद्दा है, यह महत्वपूर्ण है और यही कारण है कि RAID5 काम नहीं करेगा।

आपको क्या चाहिए: एक ही आकार के दो और डिस्क, जिस डिस्क को आप बदलना चाहते हैं।

वातावरण:

  • उबंटू 14.04 थ्रस्टरी थार
  • mdadm - v3.2.5 - 18 मई 2012
  • / dev / sdb - इसके साथ शुरू करें, इसे बदल देगा
  • / dev / sdc - इसके साथ शुरू करें
  • / dev / sdd - अस्थायी रूप से उपयोग किया जाएगा
  • / dev / sde - sdb के बजाय उपयोग किया जाएगा

अंतिम RAID0 हॉट-स्पेयर mdadm गाइड;)

sudo mdadm -C /dev/md0 -l 0 -n 2 /dev/sd[bc]

md0 : active raid0 sdc[1] sdb[0]
      2096128 blocks super 1.2 512k chunks

हमने raid0 सरणी बनाई है, यह मीठा लगता है।

sudo md5sum /dev/md0

b422ba644a3c83cdf28adfa94cb658f3  /dev/md0

यह हमारा चेक पॉइंट है - यदि एक बिट भी परिणाम में भिन्न होगा /dev/md0- हम विफल रहे हैं।

sudo mdadm /dev/md0 --grow --level=4

md0 : active raid4 sdc[1] sdb[0]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]

इसलिए, हमने RAID4 होने के लिए अपनी सरणी बढ़ाई है। हमने अभी तक पैरिटी डिस्क नहीं जोड़ी है, तो चलिए इसे करते हैं। विकास तुरंत होगा - पुनर्मूल्यांकन या पुनर्गणना के लिए कुछ भी नहीं है।

sudo mdadm /dev/md0 -a /dev/sdd

md0 : active raid4 sdd[3] sdc[1] sdb[0]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
      [===>.................]  recovery = 19.7% (207784/1048064) finish=0.2min speed=51946K/sec

हमने sddसमता डिस्क के रूप में जोड़ा है । यह याद रखना महत्वपूर्ण है - पहली पंक्ति में डिस्क के क्रम को दूसरी पंक्ति में चित्र के साथ संरेखित नहीं किया गया है! [तुम तुम_]

sdd पहले प्रदर्शित किया जाता है, लेकिन वास्तव में यह अंतिम है, और डेटा नहीं, बल्कि समता है।

sudo mdadm /dev/md0 -f /dev/sdb

md0 : active raid4 sdd[3] sdc[1] sdb[0](F)
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]

हमने अपनी डिस्क sdb को दोषपूर्ण बना दिया है, इसे अगले चरणों में हटाने के लिए।

sudo mdadm --detail /dev/md0

State : clean, degraded

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       32        1      active sync   /dev/sdc
       3       8       48        2      active sync   /dev/sdd

       0       8       16        -      faulty spare   /dev/sdb

विवरण हमें पहली डिस्क को हटाने को दिखाता है और यहां हम सरणी में डिस्क का सही क्रम देख सकते हैं। यह समता के साथ डिस्क को ट्रैक करना महत्वपूर्ण है, हमें RAID0 पर वापस जाने पर इसे सरणी में नहीं छोड़ना चाहिए।

sudo mdadm /dev/md0 -r /dev/sdb

md0 : active raid4 sdd[3] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]

sdb पूरी तरह से हटा दिया है, दूर ले जाया जा सकता है।

sudo mdadm /dev/md0 -a /dev/sde

md0 : active raid4 sde[4] sdd[3] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]
      [==>..................]  recovery = 14.8% (156648/1048064) finish=0.2min speed=52216K/sec

हमने अपनी sdb डिस्क के लिए प्रतिस्थापन जोड़ा है। और यहां हम चलते हैं: अब समानता का उपयोग करके एसडीबी के डेटा को पुनर्प्राप्त किया जा रहा है। Sweeeeet।

md0 : active raid4 sde[4] sdd[3] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/3] [UUU]

किया हुआ। अभी हम पूरी तरह से सुरक्षित हैं - sdb से सभी डेटा रिकवर हो गए हैं, और अब हमें sdd को हटाना होगा (याद रखें, यह समता रखता है)।

sudo mdadm /dev/md0 -f /dev/sdd

md0 : active raid4 sde[4] sdd[3](F) sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]

खराबी बना दी।

sudo mdadm /dev/md0 -r /dev/sdd

md0 : active raid4 sde[4] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]

हमारे सरणी से sdd निकाला गया। हम फिर से RAID0 बनने के लिए तैयार हैं।

sudo mdadm /dev/md0 --grow --level=0 --backup-file=backup

md0 : active raid4 sde[4] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
      [=>...................]  reshape =  7.0% (73728/1048064) finish=1.5min speed=10532K/sec

आआआआआआआआआआआआआआआआआआआआआआआआआआआआअः- आअहह आआआआआआआआआआआआआआआआआआन्न्न्ह और हमे आअहह आआआआआआआआआआआआआआआआआन्चंद और फिर आआआआआआआआआआआआआआआन्!

md0 : active raid0 sde[4] sdc[1]
      2096128 blocks super 1.2 512k chunks

किया हुआ। Md5 चेकसम पर नजर डालते हैं।

sudo md5sum /dev/md0

b422ba644a3c83cdf28adfa94cb658f3  /dev/md0

कोई और प्रश्न? तो RAID0 एक गर्म अतिरिक्त हो सकता है। इसे "उपयोगकर्ता" कहा जाता है;)


1

जहाँ तक मुझे पता है एक बार जब आप एक RAID0 सेट करते हैं तो आप एक डिस्क को नहीं बदल सकते। आप एक बैकअप ले सकते हैं और डिस्क को स्विच कर सकते हैं और बैकअप को पुनर्स्थापित कर सकते हैं। मैं सिर्फ RAID5 उन 3 डिस्क आपके पास होगा। भविष्य में इस तरह आप एक डिस्क को छोड़ सकते हैं और फिर भी इसका पुनर्निर्माण कर सकते हैं।


खैर, मुझे पता है कि मैं RAID5 के साथ जिस चीज के बारे में बात करता हूं - मैं सरणी (स्पेयर के रूप में) में नई डिस्क जोड़ सकता हूं, फिर जिस डिस्क को मैं दोषपूर्ण के रूप में बाहर निकालना चाहता हूं उसे चिह्नित करता हूं और बाद में सुपरब्लॉक पोंछते हुए इसे सरणी से हटा देता हूं। लेकिन मुझे RAID0 :)
maniaque

@maniaque इसे RAID 0 कहा जाता है क्योंकि शून्य कितना RAID है जो आपको मिलता है। महत्व का कुछ भी कभी भी एक RAID 0. पर नहीं रखा जाना चाहिए
माइकल हैम्पटन

@ मिचेल हैम्पटन मुझे लगता है कि आप का मतलब अतिरेक नहीं है RAID लेकिन आपका कथन 100% सही है।
१४:१४ को जोग


0

RAID 0 अतिरेक प्रदान नहीं करता है।

इसलिए यह हॉट ड्राइव रिप्लेसमेंट का समर्थन नहीं करता है।


1
कृपया नीचे देखें। असंभव कुछ भी नहीं है, जब आप RAID स्तर को समझते हैं;)
उन्माद जूल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.