लिनक्स mdadm सॉफ्टवेयर RAID 6 - क्या यह बिट भ्रष्टाचार वसूली का समर्थन करता है?


15

विकिपीडिया का कहना है "RAID 2 एकमात्र मानक RAID स्तर है, जो RAID 6 के कुछ कार्यान्वयनों के अलावा है, जो डेटा में एकल-बिट भ्रष्टाचार से सटीक डेटा को स्वचालित रूप से पुनर्प्राप्त कर सकता है।"

क्या किसी को पता है कि लिनक्स में RAID 6 mdadm कार्यान्वयन एक ऐसा कार्यान्वयन है जो स्वचालित रूप से एकल-बिट डेटा भ्रष्टाचार से पता लगा सकता है और पुनर्प्राप्त कर सकता है। यह CentOS / Red Hat 6 से संबंधित है यदि वे अन्य संस्करणों से भिन्न हैं। मैंने ऑनलाइन खोज करने की कोशिश की, लेकिन बहुत किस्मत नहीं थी।

SATA त्रुटि दर 1E14 बिट्स में 1 होने के साथ, और 2TB SATA डिस्क जिसमें 1.6E13 बिट्स हैं, यह विशेष रूप से डेटा भ्रष्टाचार को रोकने के लिए प्रासंगिक है।

EDIT 17-Jun-2015

मेरा मानना ​​है कि यह एक चिंता का विषय है, जो मैंने मूल रूप से सोचा था - हार्ड डिस्क / एसएसडी देखें - त्रुटियों का पता लगाना और उन्हें संभालना - क्या मौन डेटा भ्रष्टाचार को मज़बूती से रोका गया है? अधिक जानकारी के लिए

जवाबों:


15

लिनक्स सॉफ्टवेयर RAID आपको थोड़े भ्रष्टाचार से बचाने वाला नहीं है और मौन डेटा भ्रष्टाचार इसके साथ एक जाना माना मुद्दा है। वास्तव में, यदि कर्नेल एक डिस्क से डेटा को पढ़ने में सक्षम है, तो यह कभी नहीं पता होगा कि यह खराब है। यदि डेटा को पढ़ते समय I / O त्रुटि होती है तो RAID केवल किक करता है।

यदि आप डेटा अखंडता के बारे में चिंतित हैं, तो आपको Btrfs या ZFS जैसी फ़ाइल प्रणाली का उपयोग करने पर विचार करना चाहिए जो चेकसमों को संग्रहीत और सत्यापित करके डेटा अखंडता सुनिश्चित करते हैं। ये फ़ाइल सिस्टम RAID कार्यक्षमता का भी ध्यान रखते हैं, इसलिए यदि आप इस तरह से जाते हैं तो आपको कर्नेल सॉफ़्टवेयर छापे की आवश्यकता नहीं है।


धन्यवाद। यदि यह किसी के लिए भी उपयोगी है, तो मुझे चुतज़ के उत्तर से कुछ और खोज के विचार मिले और देखा कि mdadm (मुझे विश्वास है) के अनुरक्षक ने 17 फरवरी, 2011 को कहा था कि उनकी हर पढ़ने पर समता जाँच को मजबूर करने की क्षमता जोड़ने की कोई योजना नहीं है। देखें spinics.net/lists/raid/msg32816.html
sa289

3

यदि आप संपूर्ण ड्राइव की समता को सत्यापित करते हैं तो RAID5 और RAID6 थोड़ा भ्रष्टाचार का पता लगा सकते हैं। इसे "स्क्रबिंग" या "पैरिटी चेकिंग" कहा जाता है और आमतौर पर अधिकांश उत्पादन RAID प्रणाली में 24-48 घंटे लगते हैं। उस दौरान प्रदर्शन में काफी गिरावट आ सकती है। (कुछ सिस्टम ऑपरेटर को रीड / राइट एक्सेस या इसके नीचे स्क्रबिंग को प्राथमिकता देने की अनुमति देते हैं।) RAID6 में इसे सही करने की अधिक संभावना होती है, क्योंकि यदि आप दो ड्राइव विफलताएं हैं, तो इसे ठीक कर सकते हैं, जबकि RAID5 केवल 1 ड्राइव विफलता को संभाल सकता है, और वृद्धि की गतिविधि के कारण जब आप स्क्रब कर रहे होते हैं, तो ड्राइव विफल होने की संभावना अधिक होती है।


1
यह सार्वभौमिक रूप से सच नहीं है कि RAID स्क्रब के दौरान प्रदर्शन को विशेष रूप से नीचा दिखाया जाएगा। यदि स्क्रब सभी उपलब्ध सिस्टम संसाधनों का उपयोग करता है और "गूंगा" है तो यह होगा। लेकिन, सभी SAN और मैं कल्पना करते हैं कि अधिकांश RAID नियंत्रक कम या "अच्छा" प्राथमिकता पर स्क्रब चलाएंगे, संसाधन उपयोग को गतिशील रूप से समायोजित करेंगे ताकि यह उत्पादन प्रदर्शन को बनाए रखने के लिए आवश्यक संसाधनों का उपभोग न करें।
जेरेमी

तुम सही हो। मैंने बारीकियों को जोड़ने का उत्तर संपादित किया।
v3232

यदि आपका mdadm छापा 6 सरणी / dev / md1 है, तो यह समता और एकल बिट भ्रष्टाचार "इको चेक> / sys / block / md1 / md / Sync_action की मरम्मत और प्रयास को सत्यापित करने के लिए कमांड है
BeowulfNode42

2
यदि आप स्क्रब करते हैं, तो वे "बिट भ्रष्टाचार से रक्षा नहीं करते हैं", वे बिट भ्रष्टाचार का पता लगाते हैं । विवरण के लिए यहां मेरा प्रश्न देखें।

मेरा सुझाव है कि "RAID5 और RAID6 के उत्तर को थोड़ा भ्रष्टाचार को सुधारने में सक्षम है"
वैक्सहेड

2

मैंने इसे एक टिप्पणी के रूप में जोड़ा होगा, लेकिन मेरे पास पर्याप्त प्रतिष्ठा नहीं है; मैं स्पष्ट करना चाहता था: RAID5 थोड़ा भ्रष्टाचार को दूर कर सकता है, लेकिन यह नहीं जानता कि किस ड्राइव में बिना रीड त्रुटि के भ्रष्टाचार है। नतीजतन, एक स्क्रब इसे बिना किसी त्रुटि के ठीक नहीं कर सकता - यह सबसे अधिक संभावना है कि इसे लॉग इन करें और मैच के लिए समता बिट को अपडेट करें। RAID6 का एल्गोरिथ्म स्थिति-निर्भर है इसलिए यह पता लगा सकता है कि किस ड्राइव में त्रुटि थी और थोड़ा भ्रष्टाचार को ठीक किया।


अगर यह सच है तो बहुत अच्छा होगा! क्या आप इस पर कोई लिंक प्रदान कर सकते हैं कि यह कहाँ से प्रलेखित है ??
अले__

2

RAID 6 की क्षमताओं के बारे में उपरोक्त सभी उत्तर गलत हैं। RAID 6 एल्गोरिदम बाइट-बाइट को RAID 5 के रूप में संचालित करते हैं, और यदि किसी एक ड्राइव पर एक भी बाइट भ्रष्ट है, यहां तक ​​कि ड्राइव द्वारा इंगित कोई त्रुटि नहीं है, तो यह हो सकता है पता लगाया और सुधार किया जाएगा। ऐसा करने के लिए एल्गोरिथ्म पूरी तरह से समझाया गया है

https://mirrors.edge.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf

इस जाँच को करने के लिए, डेटा ड्राइव के साथ समता पी और क्यू ड्राइव को भी पढ़ा जाना चाहिए। यदि गणना की गई समानता P 'और Q' बिना किसी ड्राइव त्रुटि के साथ भिन्न होती है, तो एक विश्लेषण यह इंगित कर सकता है कि कौन सी ड्राइव गलत है, और डेटा को सही करें।

इसके अलावा, यदि ड्राइव की पहचान एक ऐसे ड्राइव की है, जो मौजूद नहीं है (जैसे कि ड्राइव १५ are अगर केवल १५ ड्राइव हैं), तो एक से अधिक ड्राइव THAT BYTE के लिए दूषित डेटा प्रदान कर रहा है, एक अचूक त्रुटि त्रुटि का संकेत देता है। जब सेट में 256 से कम ड्राइव होते हैं, तो प्रति बाइट की उच्च संभावना के साथ इसका पता लगाया जाता है, और चूंकि एक ब्लॉक में कई बाइट्स होते हैं, जिसमें प्रति ब्लॉक बेहद उच्च संभावना होती है। यदि ड्राइव पहचान RAID ब्लॉक के भीतर सभी बाइट्स के लिए संगत नहीं है, तो फिर से, एक से अधिक ड्राइव दूषित डेटा प्रदान कर रहा है, और आमतौर पर कोई भी शर्त को अस्वीकार कर सकता है, लेकिन जब तक सभी ड्राइव पहचान मान्य नहीं होती हैं, तब तक ब्लॉक की आवश्यकता नहीं होती है अस्वीकार किया जाना।

इस सुधार को करने के लिए सामान्य सत्यापन समय से अधिक समय लगता है, लेकिन इसे केवल सिंड्रोम (पी और क्यू) गणना के साथ प्रदर्शन करने की आवश्यकता होती है।

यह सब कहा जा रहा है, हालांकि, मैंने यह निर्धारित करने के लिए mdadm कोड की जांच नहीं की है कि क्या एकल-बाइट भ्रष्टाचार को नियंत्रित किया जाता है। मुझे पता है कि mdadm मासिक स्कैन पर RAID6 सिंड्रोम त्रुटियों की रिपोर्ट करता है, लेकिन त्रुटि संदेश से यह स्पष्ट नहीं होता है कि क्या उन्हें सही किया जा रहा है - यह ड्राइव सरणी को रोकता नहीं है और न ही संदेश में किसी विशेष ड्राइव की पहचान करता है।

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