क्या RAID1 लिनक्स mdadm के साथ प्रदर्शन बढ़ाता है?


26

मेरे पास 2TB HDD के साथ एक सस्ता 2-बे NAS है। डिस्क विफलता के खिलाफ मजबूत होने के लिए, मैं एक दूसरे 2TB HDD को खरीदने और लिनक्स mdadm के साथ RAID1 में डालने के बारे में सोच रहा हूं। फ़ाइल सिस्टम ext4 है।

क्या यह एनएएस के प्रदर्शन को बढ़ाएगा या घटाएगा? क्या सिर्फ पढ़ने या लिखने के प्रदर्शन के बारे में?

इस ऑनलाइन के बारे में बहुत सारी राय है लेकिन कोई आम सहमति नहीं है।

धन्यवाद।

संपादित करें:

तो पहले से ही मुझे तीन अलग-अलग उत्तर मिले हैं: "एक निष्पक्ष रूप से तेज़", "आप नोटिस नहीं करेंगे" और "कुछ भी होने पर प्रदर्शन को कम कर देगा"। (मुझे मुख्य रूप से पढ़ने के प्रदर्शन में दिलचस्पी है।) विकिपीडिया का कहना है कि "पढ़ा गया प्रदर्शन लगभग कई प्रतियों की रैखिक संख्या के रूप में बढ़ सकता है।" इनमें से कौनसा?

2 संपादित करें:

मुझे एमडी मैनपेज सहित RAID1 के बढ़ते पठन प्रदर्शन के समर्थन में बढ़ते प्रमाण मिले हैं:

समानांतर में सभी उपकरणों में परिवर्तन लिखे गए हैं। डेटा को किसी एक डिवाइस से पढ़ा जाता है। ड्राइवर प्रदर्शन को अधिकतम करने के लिए सभी उपकरणों में रीड अनुरोधों को वितरित करने का प्रयास करता है।

मैंने एमडी के RAID10 की भी खोज की --layout=f2, जो RAID0 के रीड परफॉर्मेंस के साथ RAID1 की अतिरेक प्रदान करता है, और इसे दो ड्राइव के साथ इस्तेमाल किया जा सकता है। हालांकि, लेखन प्रदर्शन कम हो जाता है, क्योंकि अनुक्रमिक लेखन में ड्राइव के दूर के हिस्सों के बीच आगे और पीछे दोनों ड्राइव शामिल होते हैं। man mdब्योरा हेतु।


2
लिखते हैं; थोड़ा धीमा। पढ़ता है; एक तेजी से थोड़ा। मैं जो समझता हूं, उससे लेखन अंतर लगभग शून्य है, और पढ़ा बहुत ध्यान देने योग्य है।
सेरेक्स

बस क्या sirex कहता है .. आप नंगे आंखों से प्रदर्शन के अंतर को महसूस नहीं करेंगे .. न ही इसे दोगुना करने की उम्मीद करते हैं और न ही इसे आधा करते हैं।
पायोतर कुला


1
मुझे एक भाग याद आता है: NAS की पहुँच कितनी तेज़ है। यदि एक डिस्क पहले से ही नेटवर्क कनेक्शन को भरती है तो अधिक आंतरिक गति आपकी बहुत मदद नहीं करेगी।
हेयनेस

जवाबों:


39

हां, RAID1 के लिनक्स कार्यान्वयन डिस्क रीड ऑपरेशंस को दो बार गति देता है जब तक कि दो अलग-अलग डिस्क रीड ऑपरेशन एक बार में किए जाते हैं । इसका मतलब है कि एक 10GB फ़ाइल को पढ़ने से सिंगल डिस्क की तुलना में RAID1 पर कोई तेज़ी नहीं आएगी, लेकिन दो अलग-अलग 10GB फ़ाइलों को पढ़ने पर * तेज़ी से लगेगा।

इसे प्रदर्शित करने के लिए, बस कुछ डेटा के साथ पढ़ें dd। कुछ भी करने से पहले, डिस्क को कैशे के साथ पढ़ें sync && echo 3 > /proc/sys/vm/drop_caches। अन्यथा hdparmसुपर फास्ट रीड्स का दावा करेगा।

एक दस्तावेज:

# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 65,9659 s, 159 MB/s

दो फाइलें:

# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT skip=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 64,9794 s, 161 MB/s
10485760000 bytes (10 GB) copied, 68,6484 s, 153 MB/s

10 जीबी डेटा पढ़ने में 65 सेकंड का समय लगता है जबकि 10 जीबी + 10 जीबी = 20 जीबी डेटा को पढ़ने में कुल 68.7 सेकंड का समय लगता है, जिसका अर्थ है कि लिनक्स पर RAID1 से कई डिस्क रीड को बहुत फायदा होता हैskip=$COUNTहिस्सा बहुत महत्वपूर्ण है। दूसरी प्रक्रिया में 10 जीबी ऑफसेट से 10 जीबी डेटा पढ़ा जाता है।

जेरेड के जवाब और http://www.unicom.com/node/459 के संदर्भ में ssh की टिप्पणियां गलत हैं। वहाँ से बेंचमार्क साबित होता है डिस्क पढ़ता है RAID1 से लाभ नहीं है। हालाँकि, परीक्षण बोनी ++ बेंचमार्किंग टूल के साथ किया गया था जो एक समय में दो अलग-अलग रीड नहीं करता है। लेखक ने बताया कि बोनी ++ बेंचमार्किंग RAID सरणियों ( रीडमी को देखें ) के लिए प्रयोग करने योग्य नहीं है ।


5

हां, आपको रीडिंग परफॉर्मेंस बूस्ट + अतिरेक मिलेगा। आप आसानी से कल्पना कर सकते हैं कि जैसे ही आप दो अलग-अलग एचडीडी से एक ही समय पर फाइलों के हिस्सों को पढ़ सकते हैं, क्योंकि दोनों एचडीडी पर फाइलें हैं।

तो सैद्धांतिक रूप से, यदि RAID नियंत्रक अपना काम सही करता है, तो आप O (n) का स्पीडअप प्राप्त कर सकते हैं।


5
mdadm सॉफ्टवेयर RAID है, इसलिए वास्तव में कोई "RAID नियंत्रक" नहीं है, लेकिन जब मल्टीप्ले समानांतर में पढ़ता है तो यह एक अच्छा रीड बूस्ट प्रदान करेगा, इस मामले में इतना नहीं कि मुझे लगता है कि एनएएस बॉक्स के रूप में शायद ही कभी संक्षिप्त रूप से acccessed है। विवरण के लिए यहां देखें: freebsdwiki.net/index.php/…
Shadok

1
व्यवहार में लिनक्स सॉफ्टवेयर एमडी छापे से पढ़ने के लिए प्रदर्शन कम हो जाता है। Unicom.com/node/459 देखें (उस परीक्षण में रीड की गति 77 एमबी / एस से घटकर 74 एमबी / एस हो गई)।
शश

2
@ssh unicom.com/node/459 पूरी तरह से गलत है। bonnie ++ RAID दर्पणों के परीक्षण के लिए प्रयोग करने योग्य नहीं है, जिसे स्पष्ट रूप से रीडमी में कहा गया है। अधिक जानकारी के लिए मेरा जवाब देखें। superuser.com/a/757264/68978
नाऊकेर

4
  • man 4 mdकहता है: "... ध्यान दें कि ड्राइवर द्वारा किया गया रीडिंग बैलेंसिंग RAID1 प्रदर्शन प्रोफ़ाइल को RAID0 के समान नहीं बनाता है ; इनपुट की एक भी स्ट्रीम त्वरित नहीं होगी (उदाहरण के लिए एक एकल dd), लेकिन कई अनुक्रमिक धाराएँ या एक यादृच्छिक वर्कलोड एक से अधिक स्पिंडल का उपयोग करेगा। सिद्धांत में , एन-डिस्क RAID1 होने से एन अनुक्रमिक धागे सभी डिस्क से पढ़ने की अनुमति देगा।

  • इसे बंद करने के लिए - व्यवहार में , iostatआउटपुट के आधार पर एक विशिष्ट 2 HDDs सॉफ़्टवेयर RAID सेट-अप पर देखा जा रहा है, कोई भी संतुलन नहीं है । वास्तव में यह प्रभावी रूप से ऐसा लगता है कि mdadmविकल्प --write-mostlyहमेशा चालू है।


3

नहीं, आपको mdadm RAID1 से पढ़ते समय कोई लाभ नहीं मिलेगा। मैं कुछ समय पहले खुद से इस बारे में पूछ रहा था।

dstatडिस्क का उपयोग दिखाता है, bwm-ngवास्तव में इस मामले में भी विशेष रूप से मदद करता है, क्योंकि यह अलग-अलग mdadm RAID सदस्यों पर रीड / राइट उपयोग दिखा सकता है। बस nकुछ समय बाद (अगला) धक्का दें , यह इंटरफ़ेस आँकड़ों से डिस्क आँकड़ों पर स्विच हो जाएगा। फिर tप्रत्येक डिस्क से अधिकतम रीड / राइट देखने के लिए अधिकतम मानों पर स्विच करें । आप निम्नलिखित देखेंगे:

RAID1 वॉल्यूम bwm-ng शो 2 x लिखता है, एक ही समय में 2 डिस्क पर लिख रहा है। RAID1 वॉल्यूम bwm- एनजी से पढ़ना एकल ड्राइव (सरणी सदस्य) से पढ़ना दिखाता है।

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