यह जानने की आवश्यकता है कि RAID-10 सरणी के भीतर कौन से ड्राइव मिरर किए गए हैं


9

मेरे पास एक होम मीडिया सर्वर है जो 12.2 पर खुला है। मैं एक RAID-10 कॉन्फ़िगरेशन में आठ 2TB ड्राइव का उपयोग कर रहा हूं। मैंने जानबूझकर दो अलग-अलग प्रकार की ड्राइव खरीदी: चार सीगेट बाराकुडा ग्रीन और चार वेस्टर्न डिजिटल रेड। मेरा लक्ष्य RAID को कॉन्फ़िगर करना है जैसे कि सरणी के भीतर प्रत्येक प्रतिबिंबित जोड़ी में डिस्मिलर ड्राइव (यानी, एक सीगेट ड्राइव और एक डब्ल्यूडी ड्राइव) शामिल होंगे। YaST2 पार्टिशनर ने दुर्भाग्य से मुझे सरणी की संरचना में पसंद का यह स्तर नहीं दिया, इसलिए अब मैं यह पता लगाने की कोशिश कर रहा हूं कि डिफ़ॉल्ट RAID10 संरचना कैसी दिखती है।

मुझे निम्नलिखित पता है:

  • sdc, sdd, sde, और sdf सभी WD ड्राइव हैं
  • sdg, sdh, sdi, और sdj सभी सीगेट ड्राइव हैं

RAID बनाते समय मैंने डिफ़ॉल्ट 'n2' लेआउट चुना। इन दो स्रोतों से मिली जानकारी के आधार पर मेरा अनुमान है कि आसन्न ड्राइव मिरर किए गए हैं (जैसे, sdc == sdd, sde == sdf, आदि), लेकिन मैं निश्चित रूप से जानना चाहता हूं:

यहाँ 'mdadm --detail / dev / md0' का आउटपुट दिया गया है:

/dev/md0:
        Version : 1.0
  Creation Time : Sat Mar 16 12:55:11 2013
     Raid Level : raid10
     Array Size : 7814045696 (7452.05 GiB 8001.58 GB)
  Used Dev Size : 1953511424 (1863.01 GiB 2000.40 GB)
   Raid Devices : 8
  Total Devices : 8
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Sat Mar 16 13:09:37 2013
          State : active, resyncing
 Active Devices : 8
Working Devices : 8
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 2048K

  Resync Status : 1% complete

           Name : aldaris:0  (local to host aldaris)
           UUID : c6cc3943:97394500:b77d44cd:f02ed876
         Events : 149

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       49        1      active sync   /dev/sdd1
       2       8       65        2      active sync   /dev/sde1
       3       8       81        3      active sync   /dev/sdf1
       4       8       97        4      active sync   /dev/sdg1
       5       8      113        5      active sync   /dev/sdh1
       6       8      129        6      active sync   /dev/sdi1
       7       8      145        7      active sync   /dev/sdj1

और यहाँ / proc / mdstat की सामग्री हैं:

Personalities : [raid10] md0 : active raid10 sdj1[7] sdi1[6] sdh1[5] sdg1[4] sdf1[3] sde1[2] sdd1[1] sdc1[0]
      7814045696 blocks super 1.0 2048K chunks 2 near-copies [8/8] [UUUUUUUU]
      [>....................]  resync =  4.8% (375163456/7814045696) finish=1206.5min speed=102751K/sec
      bitmap: 57/59 pages [228KB], 65536KB chunk

unused devices: <none>

तो मेरे सवाल हैं:

  1. मैं कैसे बताऊं कि कौन से ड्राइव एक दूसरे के दर्पण हैं?
  2. क्या इसे बदलने का कोई तरीका है, या क्या मुझे बस तारों को चारों ओर स्वैप करना चाहिए (क्योंकि इससे ड्राइव अक्षर स्वैप होंगे) और फिर RAID को फिर से बनाना होगा?

अग्रिम में धन्यवाद।


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


1
होम मीडिया सर्वर सर्वरफॉल्ट के लिए ऑफ टॉपिक हैं। उस ने कहा, आपने स्पष्ट रूप से इसमें कुछ प्रयास किया है और मैं इसे यूनिक्स में प्रवास के लिए ध्वजांकित करने जा रहा हूं ।
एंड्रयू बी

@AndrewB, ऐसा क्यों है?
19

यह एक बहुत ही दिलचस्प सवाल है और इसके पीछे का तर्क इतनी अच्छी तरह से समझा गया है। आपको तारों को बदलने की ज़रूरत नहीं है क्योंकि डिस्क को निर्दिष्ट करने के लिए जब (पुनः) RAID बनाना अधिक सरल है।
poige

@poige यह एक घर की सेटिंग में किसी भी चीज़ के अंतर्गत आता है । मैंने यह स्पष्ट करने की कोशिश की कि मैंने इसके बावजूद पर्याप्त रूप से शोध किए गए प्रश्न पर विचार किया।
एंड्रयू बी

अगर मैं बेतहाशा सट्टा लगाता, तो मुझे लगता था कि आप RaidDeviceकॉलम देख सकते हैं । यह (0,1), (2,3), (4,5), (6,7) जितना सरल हो सकता है। इससे मुझे लगता है कि आपको RAIDDevice को WD / Sea / WD / Sea / etc जैसे बनाने की जरूरत है ... लेकिन मैं इसके बारे में 100% निश्चित नहीं हूं।
ज़ाराडैच

जवाबों:


6

हाल के संस्करण mdadmइस विवरण को सरणी के विवरण में दिखाते हैं। उदाहरण सेmdadm v3.3 - 3rd September 2013

 $ mdadm --detail /dev/md1

/dev/md1:
        Version : 1.1
  Creation Time : Tue Aug 23 11:45:41 2016
     Raid Level : raid10
     Array Size : 3864803328 (3685.76 GiB 3957.56 GB)
  Used Dev Size : 1932401664 (1842.88 GiB 1978.78 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Fri Aug 26 09:39:28 2016
          State : active
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 512K

           Name : px4-300r-THXOAP:1  (local to host px4-300r-THXOAP)
           UUID : 5ee06437:83dfdb64:808feaa2:5d57b1e6
         Events : 620

    Number   Major   Minor   RaidDevice State
       4       8       50        0      active sync set-A   /dev/sdd2
       1       8       34        1      active sync set-B   /dev/sdc2
       2       8       18        2      active sync set-A   /dev/sdb2
       3       8        2        3      active sync set-B   /dev/sda2

नोट नोट करें set-Aया set-B। उपरोक्त मामले में, sddऔर sdbडेटा हानि के बिना एक साथ विफल हो सकते हैं। यह संभव है कि यह डेटा उपलब्ध नहीं है जबकि सरणी पुनर्निर्माण कर रही है।


2

मेरे पास एक ही मुद्दा था और थोड़ी देर गुगली करने के बाद मुझे एक विश्वसनीय उत्तर नहीं मिला। इसे कुछ विचार देने के बाद, मुझे लगा कि दर्पण में समान डेटा है और इसलिए हम इसके कुछ भाग की तुलना कर सकते हैं।

ध्यान दें: सावधान रहना, अगर आप एक ही चरित्र के साथ 2 से अधिक ड्राइव हैं, तो आप पूरी तरह से आकर्षक प्रदर्शन, विकल्प की सूची (छोड़ें विकल्प) की तुलना कर रहे हैं।

इस कुछ आदेशों के साथ, आप इसका पता लगा सकते हैं:

for disk in sda sdb sdc sdd
do
  echo -n "$disk = ";
  dd if=/dev/$disk skip=1M bs=1M count=1 2>/dev/null | md5sum;
done

यह कुछ इस तरह का उत्पादन करेगा:

sda = 7c4ef0f3e0143b35e044d5d65908a3a2  -
sdb = 7c4ef0f3e0143b35e044d5d65908a3a2  -
sdc = e02f7d61ad3791bd691da5b7516928a5  -
sdd = e02f7d61ad3791bd691da5b7516928a5  -

अब हम जानते हैं कि sda / sdb एक दर्पण है और sdc / sdd एक दूसरे को। प्रत्येक को डेटा हानि से बचने के लिए रहना चाहिए।

"Dd" कमांड डिस्क स्टार्ट (स्किप = 1 एम) से एक मेगाबाइट ऑफसेट पर एक बार (काउंट = 1) एक मेगाबाइट (bs = 1M) पढ़ रहा है। = 0 न छोड़ें, क्योंकि डिस्क के भीगने में अलग-अलग जानकारी होती है। डेटा आमतौर पर 1MB के बाद शुरू होता है।


dd if=/dev/$disk skip=1M bs=1M count=1मेरे लिए काम नहीं किया। dd (coreutils) 8.23डेबियन 8 (जेसी) skipएक इकाई के साथ समर्थन नहीं करता है । इसके बजाय मैं इस्तेमाल किया skip=1जहां 1रिश्तेदार है bs। संभवतः एक टाइपो?
डैनियल बॉमर

FYI करें यदि आप MD5 योग देख रहे हैं तो d41d8cd98f00b204e9800998ecf8427eआपकी ddकॉल विफल हो जाती है। यह खाली स्ट्रिंग का हैश है :-)
डैनियल बॉमर

0

मुझे लगता है कि आप एक वास्तविक छापे के बारे में बात कर रहे हैं 10 सरणी (1 + 0 धारीदार मिररिंग)

sdc/sdg = md0 raid1 2TB |
sdd/sdh = md1 raid1 2TB |_  md4 raid0 8TB
sde/sdi = md2 raid1 2TB |
sdf/sdj = md3 raid1 2TB |

1. अपने 4 raid1 सरणियों बनाएँ:

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/{sdc,sdg}
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/{sdd,sdh}
mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/{sde,sdi}
mdadm --create /dev/md3 --level=1 --raid-devices=2 /dev/{sdf,sdj}

इस समय आपके पास प्रत्येक पर 2TB स्थान के साथ 4 छापे हैं,

2. चलो उन्हें इकट्ठा करो!

mdadm --create /dev/md4 --run --level=0 --raid-devices=4 /dev/md{0,1,2,3}

-run विकल्प उपयोगी है क्योंकि कुछ घटक दूसरे सरणी में सक्रिय हैं

3. अपने mdadm.conf फ़ाइल को एडॉप्ट करें

हमारे नए सरणी (/ dev / md4) के परिवर्तनों को प्रतिबिंबित करने के लिए आपको इस फ़ाइल को अनुकूलित करने के लिए (आपके कॉन्फ़िगरेशन के आधार पर) की आवश्यकता हो सकती है।

4. आनंद लें .. अपने नए DIY r1010 सरणी!


नहीं, वह linux के mdadm raid10 व्यक्तित्व के बारे में बात कर रहे हैं। मेरा मानना ​​है कि आपका उत्तर लागू नहीं होता है (हालाँकि, निष्पक्ष होना, यह ओपी को एक विकल्प प्राप्त करने के लिए देता है कि उसे क्या करना है)
GnP

प्रदर्शन और समर्थित सुविधाएँ भिन्न होती हैं।
जोकिम वैगनर

0

आप हमेशा यह सत्यापित कर सकते हैं कि डेटा की तुलना करने के कच्चे तरीके से दर्पण क्या हैं, उदाहरण के लिए:

# dd if=/dev/sda1 bs=1M skip=10 count=50 2> /dev/null | md5sum -
7c01afa434fc74aeddc8ec0546e4c332  -
# dd if=/dev/sdb1 bs=1M skip=10 count=50 2> /dev/null | md5sum -
1f0f8166857710d555cb35db4a23891a  -
# dd if=/dev/sdg1 bs=1M skip=10 count=50 2> /dev/null | md5sum -
7c01afa434fc74aeddc8ec0546e4c332  -
# dd if=/dev/sdf1 bs=1M skip=10 count=50 2> /dev/null | md5sum -
1f0f8166857710d555cb35db4a23891a  -

(यदि आपको कोई मैच नहीं मिलता है, तो आपको स्किप = को बढ़ाने की आवश्यकता हो सकती है , क्योंकि आप RAID सुपरब्लॉक पर स्किप नहीं कर रहे हैं, और यदि आपको 2 से अधिक डिस्क के लिए एक ही md5sum मिलता है, तो आपको गिनती बढ़ाने की आवश्यकता हो सकती है , जैसा कि आप। 'शायद रीडिंग और m5summing शून्य - को रोकने के लिए कि आपको पहले छापे पर कुछ डेटा डालना चाहिए, अन्यथा वे शून्य से भरे हो सकते हैं)

चारों ओर स्वैपिंग तारों के लिए, आपको ऐसा करने की आवश्यकता नहीं है - mdadm को mdadm --create में कमांड लाइन पर निर्दिष्ट उपकरणों के साथ छापे बनाने चाहिए , इसलिए आप कमांड लाइन पर अलग-अलग क्रम में ड्राइव निर्दिष्ट करेंगे।


0

प्रत्येक घटक डिवाइस (यानी / dev / sda1, / dev / sdb1, आदि) पर "mdadm --examine डिवाइस" चलाएँ। वहां की जानकारी आपको यह निर्धारित करने में मदद करनी चाहिए कि कौन से घटक एक-दूसरे के दर्पण हैं।

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