4TB ड्राइव की एक सरणी के लिए कोई गलती सहिष्णुता से बदतर RAIDZ1 है?


1

पर यह प्रश्न , माइकल Kjörling तथा user121391 ऐसा मामला बनाना प्रतीत होता है कि RAIDZ1 (ZFS का RAID5 के समतुल्य) विश्वसनीय नहीं है और मुझे RAIDZ2 (ZFS के RAID6 के समकक्ष) का उपयोग करना चाहिए। user121391 टिप्पणियाँ वहाँ:

असफल ड्राइव का पुनर्निर्माण करते समय, सभी ड्राइव से सभी डेटा होना चाहिए   पढ़ें। इससे डिस्क पर तनाव बढ़ता है (विशेषकर यदि वे हों तो)   आम तौर पर बेकार) और इसलिए एक और ड्राइव का मौका   नाकाम रहने के। इसके अतिरिक्त, सभी डेटा को पढ़ते समय आपको URE से प्राप्त हो सकता है   कोई डिस्क जिसकी भरपाई के लिए दूसरा डिस्क नहीं है, जिसका अर्थ है फाइल   क्षतिग्रस्त / खो सकता है। तीसरा, आपके डिस्क जितने बड़े होते हैं, उतने ही लंबे होते हैं   भेद्यता की खिड़की सिर्फ उन समस्याओं के लिए नहीं, बल्कि कोई भी बन जाती है   समस्याओं जो डिस्क या सिस्टम (पावर आउटेज आदि) पर हो सकती हैं।

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

मेरा प्रश्न है - बिना किसी दोष सहिष्णुता के एक RAIDZ1 वृद्धिशील सुधार है, यह देखते हुए कि मैं दोष सहिष्णुता की सेवा में कुल पूल आकार के 25-33% से अधिक का त्याग करने को तैयार नहीं हूं, या यह नाटकीय रूप से अवसरों को बढ़ाएगा यदि एक डिस्क विफल हो जाती है, तो पूरा पूल पूरी तरह से पूर्ण डेटा हानि का कारण बन जाएगा।

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


1
संपूर्णता के लिए, ZFS से विशेष रूप से परिचित न होने वालों के लिए: RAIDZ1 लगभग RAID 5 (एकल समता के साथ धारीदार) के बराबर है।
a CVn

आपके उद्धृत उत्तर में तर्क विफल हो जाता है। RAIDZ1 कैसे हो सकता है कम से कोई गलती सहिष्णुता से विश्वसनीय? कोई गलती बर्दाश्त के साथ, किसी भी ड्राइव विफलता पूल अनुपयोगी बनाता है। RAIDZ1 के साथ, जबकि ड्राइव रिप्लेसमेंट के बाद पुनर्निर्माण का समय लंबा हो सकता है, और पूल पुनर्निर्माण मौजूदा ड्राइव को तनाव देता है, यह फिर भी लेता है दो विफलताओं के कारण पूल विफल हो जाता है। कोई बात नहीं, RAIDZ1 पूल कर सकते हैं एकल-ड्राइव विफलता से बचे। एक गैर-दोष-सहिष्णु पूल बस नहीं कर सकते हैं
Andrew Henle

@AndrewHenle कृपया अधिक संदर्भ के लिए लिंक किए गए थ्रेड को देखें, सवाल था "क्या यह अधिक संभावना है कि मैं दो एक साथ ड्राइव विफलताओं को विकसित करूंगा यदि मैं RAIDZ1 का उपयोग करता हूं यदि मैं कोई RAID का उपयोग नहीं करता हूं?"। इसलिए उत्तर पहली गलती के विचार के बिना, ठीक दो ड्राइव विफल होने की संभावना के बारे में था। इस मामले में, सभी डिस्क को बेसिक vdevs (अलग-अलग पूल, स्ट्राइप्ड नहीं) के रूप में चलाने के लिए बेहतर हो सकता है कि आप एक ही Z1 पूल बनाएं (जबकि आपका उत्तर Z1 बनाम बेसिक vdevs के लिए एक पूल पर पहली बार के लिए सही है) )।
user121391

जवाबों:


1

मुझे लगता है कि पुराने धागे में यह गलतफहमी थी। मैं एक पंक्ति में दो डिस्क के लिए विफलता की संभावना की तुलना कर रहा था जब या तो Z1 समता छापे का उपयोग कर रहा था या कोई RAID (जैसा कि आपने अन्य धागे में टिप्पणियों में कहा गया है)। मेरी नजर में यह बुनियादी Vdevs के Z1 बनाम धारीदार पूल के बारे में कभी नहीं था, क्योंकि यह खेल अनिवार्य रूप से वैसे भी पहली गलती के बाद खत्म हो गया है, इसलिए Z1 निश्चित रूप से बेहतर है।

लेकिन अगर आप सिर्फ एक एकल जेड 1 वीदेव के साथ एक एकल पूल के खिलाफ कई स्वतंत्र पूलों की तुलना करते हैं, तो समता की जानकारी को पुन: शामिल करते हुए बढ़े हुए लोड की समस्या बनी रहती है।

Z1 बनाम Z2 की तुलना पर, जो माइकल द्वारा उत्तर के बारे में मुख्य रूप से था, अन्य दो बिंदु लागू होते हैं। मुझे टिप्पणियों में अधिक स्पष्ट रूप से होना चाहिए था, लेकिन वे दुर्भाग्य से अंतरिक्ष में सीमित हैं। मुझे उम्मीद है कि यह उत्तर इस में से कुछ को साफ करता है।

मैं एक ही बात सोचा था, लेकिन मुझे एहसास नहीं था कि एक URE बस थोड़ा सा फ्लिप नहीं है, यह पूरे पूल को खराब कर देता है।

अगर हम पूरी बात को सरल बनाते हैं, तो आपके पास नीचे की तरफ उसकी चिप के साथ आपकी डिस्क है और ऊपर की तरफ आपका हार्डवेयर (RAID कंट्रोलर) या सॉफ्टवेयर (e। G। ZFS) है।

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

कुछ डिस्क में एक सुविधा है जिसे TLER (समय सीमित त्रुटि पुनर्प्राप्ति) कहा जाता है, जो एक हार्ड टाइमआउट है जो इस त्रुटि सुधार समय को 6-9 सेकंड तक सीमित करता है, क्योंकि परंपरागत रूप से, अधिकांश हार्डवेयर RAID नियंत्रक ने 9 सेकंड के बाद पूरी डिस्क को गिरा दिया, इसलिए एक बुरा सेक्टर को पूरी डिस्क अनुपलब्ध नहीं करनी चाहिए, लेकिन अन्य डिस्क पर "अच्छे" सेक्टर द्वारा ठीक किया जाना चाहिए (एक सुविधा जो डेस्कटॉप सिस्टम पर एक एकल डिस्क पर भरोसा नहीं कर सकती है, इसलिए एक लंबा समय बेहतर होगा)।

अब, सॉफ़्टवेयर पक्ष देखें: यदि आप अपने रेड कंट्रोलर या ZFS फाइल सिस्टम को अतिरेक के साथ कॉन्फ़िगर करते हैं, उदाहरण के लिए आपके पूल के आधार पर मिरर किए गए डिस्क या दर्पण vdev का उपयोग करके, तो आपके URE को सही किया जा सकता है। यदि आप अतिरेक का उपयोग नहीं करते हैं, तो इस क्षेत्र का डेटा चला जाएगा, जो कि आपके भाग्य के आधार पर आपके द्वारा रेंडम पुराने रैंडम डेटा या कुछ नहीं के बारे में आपकी देखभाल करने वाला डेटा हो सकता है। यही बात बिट फ्लिप्स पर भी लागू होती है, हालाँकि ऐसा होने की संभावना बाहरी प्रभावों (जैसे ब्रह्मांडीय विकिरण) पर अधिक निर्भर करती है।

चूंकि RAID0 UREs के अधीन नहीं है, इसलिए सवाल "क्या अधिक संभावना है, RAIDZ में एक URE या RAID0 में डिस्क विफलता?"

मैंने इस उत्तर को स्वीकार नहीं किया है क्योंकि मुझे नहीं लगता कि यह प्रासंगिक बिंदुओं को पर्याप्त रूप से समझाता है, लेकिन मैं अपना जवाब बनाने की योजना बना रहा था क्योंकि मुझे लगता है कि UREs पूरे पूल को नष्ट कर देते हैं, अगर कोई और इसे पहले नहीं लेता है।

मेरा सुझाव है कि आप ZFS पूल लेआउट की एक बुनियादी व्याख्या पढ़ें। सबसे महत्वपूर्ण बिट्स को संक्षेप में प्रस्तुत करने के लिए:

  • आप डिस्क, विभाजन या फ़ाइलों से वर्चुअल डिवाइस (vdevs) बना सकते हैं। प्रत्येक vdev को अलग-अलग अतिरेक के साथ बनाया जा सकता है: मूल (कोई अतिरेक नहीं), प्रतिबिंबित (1 से N डिस्क विफल हो सकती है), समता Z1 / Z2 / Z3 (1/2/3 डिस्क विफल हो सकती है)। सभी अतिरेक vdev स्तर पर काम करते हैं।
  • आप एक या अधिक vdevs से संग्रहण पूल बनाते हैं। वे हमेशा धारीदार होते हैं, इसलिए एक एकल vv की हानि का अर्थ है पूरे पूल का नुकसान।
  • आपके पास पूलों की संख्या हो सकती है, जो स्वतंत्र हैं। यदि एक पूल खो जाता है, तो दूसरे पूल काम करना जारी रखते हैं।

इसलिए आप निम्नलिखित कारण कर सकते हैं:

  • यदि संभव हो, तो बड़ी ड्राइव के पुनर्निर्माण के दौरान लोड (और नकारात्मक) अवसर की बड़ी खिड़की (नकारात्मक) के कारण Z1 पर Z2 को प्राथमिकता दें (लगभग 1 टीबी से अधिक कुछ भी)
  • यदि Z1 और कई मूल vdevs के बीच चयन करना है, तो Z1 को बिट त्रुटि सुधार के कारण पसंद करें, जो मूल vdevs के साथ संभव नहीं है
  • यदि आप आंशिक पूल हानि को स्वीकार कर सकते हैं, तो अपने पूल को कई छोटे पूलों में विभाजित करें, जो प्रत्येक vdev द्वारा समर्थित हो, ताकि आपको चेकसम जानकारी मिले और घातक दोषों पर तेजी से पुनर्निर्माण हो सके

उपरोक्त किसी भी मामले में, आपके पास बैकअप होना चाहिए। यदि आप किसी भी बैकअप को वहन नहीं कर सकते हैं या नहीं करना चाहते हैं, तो यह इस बारे में है कि आप खोने के लिए अधिक सहज हैं - उच्च संभावना वाले पूल के कुछ हिस्से या कम संभावना वाले सब कुछ। मैं व्यक्तिगत रूप से पहला विकल्प चुनूंगा, लेकिन आप अन्यथा निर्णय ले सकते हैं।


1

आपके द्वारा उद्धृत उत्तर में निहित है कि बढ़ती भंडारण क्षमता के साथ विफलता की संभावना तदनुसार बढ़ जाती है, न केवल पुनर्निर्माण के संचालन के लिए बल्कि सामान्य गतिविधि के लिए भी। इसलिए, सांख्यिकीय रूप से बोलें, RAID 4 कोई भी आधुनिक 4TB ड्राइव के बारे में बात करते समय RAID 0 से अधिक दोषपूर्ण सहिष्णु नहीं है, भले ही मामला प्रथम दृष्टया बना हो।

तो कुछ का तर्क है कि RAIDZ1 वास्तव में, बड़ी क्षमता वाले हार्ड डिस्क ड्राइव के लिए डेटा हानि के खिलाफ सुरक्षा में वृद्धि नहीं है। यह ड्राइव की यांत्रिक विफलता के साथ कम है, या कम से कम महत्वपूर्ण विफलता के साथ नहीं है। URE है, इसे बस (और बहुत सरल रूप से) पढ़ने में विफलता है। ड्राइव के खराब क्षेत्र से लंबे समय तक पढ़ने के कारण यह हो सकता है, डिस्क को अतिरिक्त क्षेत्रों से बाहर चला रहा है - या किसी अन्य कारण से - यह वास्तव में एक मुद्दा नहीं है। यह होगा, जैसे है या नहीं। आइए फिर खराब सेक्टर का उदाहरण लेते हैं - आम तौर पर यह आंतरिक रूप से ड्राइव द्वारा नियंत्रित किया जाता है, लेकिन अगर उनमें से पर्याप्त है या ड्राइव को इसे ठीक करने में मीठा लगेगा, तो यह तय करने के लिए कि RAIDZ नियंत्रक ड्राइव की विफलता के रूप में देरी की व्याख्या कर सकता है और ड्राइव को बाहर निकाल सकता है। अब, चलिए कल्पना करते हैं कि पूल में सेकंड हार्ड ड्राइव है, और पुनर्निर्माण करते समय यह हुआ ... एकमात्र व्यवहार्य समाधान उन त्रुटियों के लिए सरणी को साफ़ करना है - यदि जल्दी पकड़ा जाता है, तो त्रुटि सिर्फ एक burp होगी - पूल डेटा को आसानी से पुनर्प्राप्त करेगा। लेकिन इसका मतलब है कि ड्राइव पर काफी बड़ा भार डालना, जो तब URE के सांख्यिकीय अवसर को काफी बढ़ा देता है (याद रखें: आयु, लिखता है, डेटा की मात्रा सभी इसे पहले से ही बहुत बढ़ा देती है, बिना सामान्य संचालन से परिमाण के क्रम को पढ़े बिना; प्रत्येक ड्राइव के लिए अलग से)।

इस प्रकार आपके प्रश्न का उत्तर ( is a RAIDZ1 an incremental improvement on no fault tolerance ) है: वास्तव में नहीं। यदि हम बोली के तर्क का उपयोग करते हैं तो आपको 50% मौका (मुझे लगता है) डेटा की पर्याप्त डिस्क विफलताओं के लिए डेटा के अपरिवर्तनीय होने के पहले दो वर्षों के भीतर उक्त डिस्क ऑपरेशन है।

यही कारण है कि जब हमारी कंपनी में हम सर्वर उपलब्धता या भंडारण क्षमता की दुविधा का सामना कर रहे थे, तो हमने बुलेट को थोड़ा बढ़ाया और SSDs पर RAID6 के लिए चला गया। जरूरत पड़ने पर कुछ साल के लिए पर्याप्त होना चाहिए और फिर अपग्रेड करना चाहिए।


मैं वास्तव में यह नहीं समझता। यह RAID0 की तुलना में कम दोष सहिष्णु कैसे है? "10e14 में एक गलती" संख्या के अनुसार, ड्राइव में एक साथ विफलता का 1/10000 मौका है, प्रति टीबी पढ़ा जाता है। इससे पूल में एक बिट फ्लिप होगा। यहां तक ​​कि एक एकल ड्राइव विफलता के साथ, आप टेराबाइट प्रति लगभग 1% मौका की उम्मीद नहीं करेंगे कि त्रुटि सुधार के दौरान एक एकल बिट फ्लिप होगा? ऐसा लगता है कि मैं डिस्क के विशाल बहुमत को पुनर्प्राप्त करूंगा, "पूरे पूल को खो दिया है" पर एक स्पष्ट सुधार
Paul

@Paul - क्षमा करें यदि मैं विडंबना या बदतर लग रहा हूँ, लेकिन यहाँ जाता है: जब से "कोई और अधिक दोष सहिष्णु" बराबर "से कम गलती सहिष्णु"? आराम के लिए: सांख्यिकीय रूप से बोलें तो आप उम्मीद कर सकते हैं कि आपके द्वारा उपयोग की जाने वाली प्रत्येक 4 बड़ी क्षमता वाली ड्राइव में से 2 साल में विफल हो जाएंगी (जरूरी नहीं कि आप तबाही करें - बस यूआरई पर्याप्त होगा)। अपने लिए गणना करें कि कैसे RAIDZ1 आपको उस से बचाएगा (आपके द्वारा निर्दिष्ट भंडारण स्थान के 25-33% बलिदान के अनुसार)? इस तथ्य का भी उल्लेख नहीं है कि हार्डवेयर विफलता वास्तव में विफलता का प्रकार नहीं है जिसे आपको उस छोटे से सरणी के बारे में चिंता करनी चाहिए ...
AcePL

आधुनिक 4TB ड्राइव के बारे में बात करते समय RAIDZ1 RAID 0 से अधिक दोषपूर्ण नहीं है वह बस सच नहीं हो सकता। क्योंकि आप बता रहे हैं कि एक बार ड्राइव 4TB ड्राइव से बने RAIDZ1 एरे में फेल हो जाता है, दूसरा ड्राइव मर्जी पुनर्निर्माण पूरा होने से पहले विफल।
Andrew Henle

1
नहीं, मैं कह रहा हूं कि किसी भी प्रकार की विफलता (जिसमें यांत्रिक सभी चिंताओं में से कम से कम है) की सांख्यिकीय रूप से उच्च संभावना है, जो कि ड्राइव क्षमता, आयु, रीड की संख्या आदि के साथ अधिक है, जो सही नहीं हो सकती है। ड्राइव का पहले ही विफल रहा। यूआरई के साथ समस्या यह है कि जब तक कि उनके लिए सक्रिय रूप से मॉनिटर नहीं किया जाता है, तब तक वे पुनर्निर्माण करते समय बाहर निकलने की एक बुरी आदत रखते हैं।
AcePL

@AndrewHenle मैंने एक ही बात सोची, लेकिन मुझे यह महसूस नहीं हुआ कि एक URE बस थोड़ा सा फ्लिप नहीं है, यह पूरे पूल को खराब कर देता है। चूंकि RAID0 UREs के अधीन नहीं है, इसलिए सवाल यह है कि "क्या अधिक संभावना है, RAIDZ में एक URE या RAID0 में एक डिस्क विफलता?" मैंने इस उत्तर को स्वीकार नहीं किया है क्योंकि मुझे नहीं लगता कि यह प्रासंगिक बिंदुओं को पर्याप्त रूप से समझाता है, लेकिन मैं अपना जवाब बनाने की योजना बना रहा था क्योंकि मुझे लगता है कि UREs पूरे पूल को नष्ट कर देते हैं, अगर कोई और इसे पहले नहीं लेता है।
Paul
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.