एक छापे 10 उपकरण को आरंभीकृत करने की आवश्यकता क्यों है?


9

एक rux10 डिवाइस के रूप में एक linux software raid डिवाइस बनाते समय, मैं उलझन में हूं कि इसे क्यों आरंभ किया जाना चाहिए। एक ही सवाल RAID 1 या raid0 के लिए लागू होता है, वास्तव में।

अंतत: अधिकांश लोग इसके ऊपर किसी प्रकार की एक फ़ाइल प्रणाली डालते हैं, और उस फाइलसिस्टम को डिस्क के डेटा की किसी भी स्थिति को ग्रहण नहीं करना चाहिए। प्रत्येक लेखन एक r10 या raid1 सेटअप में दोनों डिस्क को प्रभावित करेगा, जहां N दर्पण को लिखा गया है। कोई भी कारण नहीं होना चाहिए कि एक छापे 10 के लिए शुरू में आरंभिक रूप से, जैसा कि समय के साथ होगा।

मैं समझ सकता हूं कि एक raid5 / 6 सेटअप के लिए क्यों जहां एक समता की आवश्यकता होती है, लेकिन फिर भी ऐसा लगता है कि यह आलसी हो सकता है।

क्या यह सिर्फ इतना है कि लोग इसके बारे में बेहतर महसूस करते हैं?


1
अच्छा प्रश्न। जब RAID बनाया जा रहा है, तो सिंक्रनाइज़ेशन को छोड़ना संभव है, और मैं एक या अधिक अंतर्निहित उपकरणों के एसएसडी होने की स्थिति में ऐसा करने के लिए सिफारिशें दे रहा हूं। मुझे नहीं पता कि क्या परिदृश्य मौजूद हैं जिसमें सही संचालन के लिए सिंक्रनाइज़ेशन की आवश्यकता है।
कास्परड

जवाबों:


2

प्रारंभिक सिंक्रनाइज़ेशन की आवश्यकता है क्योंकि दर्पण के बीच कोई भी अंतर आवधिक जांच के दौरान त्रुटियों के रूप में दिखाई देगा।

और आपको समय-समय पर जांच करवानी चाहिए।


1
मैं देख सकता हूं कि डेटा की पठनीयता के लिए समय-समय पर जांच उपयोगी क्यों हो सकती है। लेकिन प्रतिकृतियों के समान आवधिक जाँच क्या अच्छा है? ऐसे चेक उपयोगी हो सकते हैं यदि फाइल सिस्टम द्वारा किया जाता है जो डेटा की जांच करता है। लेकिन फ़ाइल सिस्टम नॉलेज के बिना RAID लेयर में आप यह नहीं जान सकते हैं कि दो अलग-अलग प्रतिकृतियों में से कौन सा अच्छा है, आप यह नहीं जान सकते कि विसंगति पहली बार में कैसे हुई, और आप नहीं जान सकते कि कौन सी फाइल (यदि कोई है) प्रभावित है। इसलिए यह दिखाई देता है कि इस परत में विसंगतियों के बारे में अलर्ट अधिकांशतः बेकार हैं क्योंकि प्रशासक वैसे भी अलर्ट के साथ कुछ नहीं कर सकता है।
कास्परड

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

आपको अपने उत्तर में उस पर विस्तार करना चाहिए।
कास्परड

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

7

छापे 1, एक दर्पण होने के नाते, एक दर्पण में सभी डिस्क पर निर्भर करता है एक दूसरे की सटीक प्रतियां। अपनी यादृच्छिक हार्ड ड्राइव, और एक और यादृच्छिक हार्ड ड्राइव लें, और आपके पास संभवतः वहां अलग-अलग डेटा है, इस प्रकार इस अनुमान का उल्लंघन है। यही कारण है कि आरंभीकरण की आवश्यकता है। यह केवल पहली ड्राइव की सामग्री को दूसरों को कॉपी करता है। ध्यान दें कि कुछ स्थितियों में आप ड्राइव को इनिशियलाइज़ न करने से दूर हो सकते हैं - आमतौर पर फैक्ट्री-न्यू डिवाइसेस में पहले से ही पूरी जगह शून्य होती है, इसलिए आप बस इसे अनदेखा कर सकते हैं। mdadmविकल्प --assume-cleanयह करता है, लेकिन आपको चेतावनी देता है:

   --assume-clean

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

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

ध्यान दें कि कम से कम लिनक्स की mdadmपृष्ठभूमि में सरणी को इनिशियलाइज़ करेगा। आप खुशी से एफएस बना सकते हैं इसके पहले दूसरे स्थान पर। प्रदर्शन शुरू होने तक समाप्त होने जा रहा है, लेकिन यह सब कुछ है।

परंतु:

क) mkfsकुछ उपयोगिताओं की जाँच करते समय यदि उस ड्राइव पर कुछ पहले से ही है। जबकि यह केवल ड्राइव के कुछ प्रसिद्ध क्षेत्रों को छूता है, इससे पहले कि आप कुछ भी लिखते हैं, इस प्रकार आपको खतरे में डालता है।

बी) यदि आप अपने सरणी का आवधिक resync करते हैं, तो RAID डिवाइस आपके FS के कुछ भी नहीं जानता है। यह बस हर डिवाइस से हर ब्लॉक को पढ़ता है और उन की तुलना करता है। और यदि आप एक कॉपी-ऑन-राइट FS (जैसे ZFS या BTRFS) का उपयोग नहीं कर रहे हैं और कभी भी अपने FS को नहीं भरते हैं, तो यह ब्लॉक के लिए पूरी तरह से प्रशंसनीय है एफएस परिप्रेक्ष्य से वर्षों के लिए अनधिकृत रहने के लिए।

RAID1 उपकरणों के साथ पुनरुत्थान क्यों?

उसी कारण से आप RAID5 उपकरणों या किसी अन्य स्तर (RAID0 को छोड़कर) के साथ फिर से सिंक करते हैं। यह सभी डेटा पढ़ता है और RAID चेकसम (RAID 5 या 6 में) की तुलना / पुष्टि करता है। यदि किसी भी तरह से थोड़ा सा फ़्लिप किया गया था (क्योंकि एचडी मेमोरी स्वतःस्फूर्त रूप से फ़्लिप हो गई थी, क्योंकि आपके और आपके 5 पड़ोसियों के सेलफोन को गलती से प्लैटर के इस विशेष क्षेत्र पर हस्तक्षेप किया गया था, जो भी हो) यह असंगतता का पता लगाएगा, लेकिन सक्षम नहीं होगा। आपकी मदद। यदि, ओटीओएच, हार्ड ड्राइव में से एक बस "मैं उस ब्लॉक को नहीं पढ़ सकता हूं" रिपोर्ट करेगा, जो एक असफल ड्राइव के साथ अधिक संभावित है, तो आपको बस एक विफलता का जल्द पता चला है, और कम समय आप नीचा मोड में चल रहे हैं (गिनती से) ड्राइव की विफलता, जब से आप इसे नोटिस करते हैं)। अगर एक ड्राइव विफल हो जाता है और एक महीने बाद दूसरा व्यक्ति विफल होता है तो आप मदद नहीं करेंगे

RAID10

अब, RAID10 उपरोक्त सभी के लिए। सब के बाद RAID10 बताने का एक चतुर तरीका है 'मैं अपने दो RAID1 उपकरणों को एक RAID0 जोड़ी में डाल रहा हूँ'।

चेतावनी:

यह सब अपरिभाषित व्यवहार है। मैंने लिनक्स पर जाँच क्यों की है mdadm, अन्य सॉफ्टवेयर RAID कार्यान्वयन अलग तरीके से व्यवहार कर सकते हैं। लिनक्स कर्नेल और / या mdadmमेरे द्वारा उपयोग किए जाने वाले टूल के अन्य संस्करण भी अलग तरह से व्यवहार कर सकते हैं।


1
कृपया के लिए एक प्रशस्ति पत्र प्रदान करें If you don't do it, there is a discrepancy between the drives and it's read, the RAID device will report failure of a drive। मेरा मानना ​​है कि बयान गलत है। कम से कम त्रुटि संदेश का एक उदाहरण प्रदान करें ताकि यह सुनिश्चित हो सके कि स्रोत से परामर्श करना संभव है कि यह किन परिस्थितियों में उत्पन्न होता है।
कास्परड

1
वह बेहतर है। क्या आपने शून्य लिखने के बारे में कथन को सत्यापित किया है? मुझे लगता है कि यह शून्य नहीं लिखता, बल्कि एक डिस्क को दूसरे (ओं) की नकल करता है।
कास्परड

1
While this only touches a few well-known regions of drive, it reads before you write anything, thus putting you in danger.किस खतरे में? मुझे एहसास है कि पढ़ने के परिणामस्वरूप कुछ भी हो सकता है, लेकिन उपयोगकर्ता के लिए किसी तरह के खतरे का परिणाम क्यों होगा यदि (ए) पढ़ी जा रही जानकारी का कहीं भी उपयोग नहीं किया जाता है और (बी) एक लेखन होने वाला है?
वेगार्ड

1
@kasperd आप सही हैं, यह पहले डिवाइस को दूसरे नंबर पर कॉपी करता है। urandomलाइन पर mdadm के साथ ऑन- प्रिन्टाइज्ड डिवाइस पर टेस्ट से पता चलता है कि पहले 80k अलग रहते हैं, साथ ही साथ अंतिम 48k। RAID आकार को अवरुद्ध करने के लिए संभवतः बाद के आकार को अवरुद्ध करने के कारण। मैंने विभिन्न डिवाइस आकारों के साथ परीक्षण नहीं किया है, लेकिन 80 + 48 RAID डिवाइस और अंतर्निहित ब्लॉक डिवाइस के आकार में बिल्कुल अंतर है।

1
विचार करने के लिए एक बात यह है कि आमतौर पर आरंभीकरण के दौरान, रेड सिस्टम डिस्क ए को पढ़ेगा और डिस्क बी पर कॉपी करेगा। क्यों? चूँकि आप इसे इनिशियलाइज़ करते समय डिस्क का उपयोग कर सकते हैं, हो सकता है कि आपने ब्लॉक 100,000 पर डेटा लिखा हो। एक बार छापे जाने के बाद उस ब्लॉक में A और B दोनों समान हो जाते हैं, इसलिए ऐसा कुछ नहीं होता है। यदि इसके बजाय ब्लॉकिंग शून्य होती, तो यह अच्छा डेटा मिटा देता। इस प्रकार, एक बार फिर, मैं यह सुनिश्चित करने के लिए दो कारण देखता हूं कि ब्लॉक समान हैं: "यह हमेशा किया गया है" और "इसलिए आप बाद में चेक चला सकते हैं" - मैं यह भी सवाल करता हूं कि चेक की उपयोगिता क्या है। पढ़ना अच्छा है, तुलना? निश्चित नहीं।
माइकल ग्रेफ

5

याद रखें कि RAID 1 एक दर्पण है, और यह कि RAID 10 दर्पणों की एक पट्टी है।

सवाल यह है कि प्रत्येक दर्पण में किस डिस्क पर डेटा वैध है? नए सिरे से बनाई गई सरणी में, यह ज्ञात नहीं हो सकता है, क्योंकि डिस्क में अलग-अलग डेटा हो सकते हैं।

यह भी याद रखें कि RAID बहुत निम्न स्तर पर संचालित होता है; यह फाइलसिस्टम का कुछ भी नहीं जानता है या डिस्क पर जो भी डेटा संग्रहीत किया जा सकता है। यहां तक कि नहीं हो सकता है हो सकता है प्रयोग में एक फाइल सिस्टम।

इस प्रकार, इन सरणियों के प्रारंभ में प्रत्येक दर्पण में एक डिस्क से डेटा को दूसरे डिस्क की तरह कॉपी किया जाता है।

इसका यह भी अर्थ है कि सृजन के क्षण से उपयोग करने के लिए सरणी सुरक्षित है, और इसे पृष्ठभूमि में आरंभीकृत किया जा सकता है; अधिकांश RAID नियंत्रकों (और लिनक्स mdraid) के पास इसके लिए एक विकल्प है, या यह स्वचालित रूप से करता है।


टिप्पणियाँ विस्तारित चर्चा के लिए नहीं हैं; इस वार्तालाप को बातचीत में स्थानांतरित कर दिया गया है ।
माइकल हैम्पटन

1

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

उन्हें एक-दूसरे की आदर्श प्रतियों में बदलने की जरूरत है।

इसके अलावा आरंभीकरण में मेटा कॉन्फ़िगरेशन के साथ ही सरणी कॉन्फ़िगरेशन के बारे में जानकारी के साथ मेटाडेटा सुपरब्लॉक स्थापित करना शामिल है।

/ Proc / mdstat फ़ाइल आपको बताएगी कि डिवाइस चालू कर दिया गया है, कि दर्पण का पुनर्निर्माण किया जा रहा है, और पुनर्निर्माण के पूरा होने का एक ईटीए। पुनर्निर्माण I / O बैंडविड्थ का उपयोग करके किया जाता है। तो, आपका सिस्टम अभी भी उत्तरदायी होना चाहिए, हालांकि आपकी डिस्क एलईडी भी बहुत सारी गतिविधि दिखा रही होगी।

पुनर्निर्माण प्रक्रिया पारदर्शी है, इसलिए आप वास्तव में डिवाइस का उपयोग कर सकते हैं भले ही दर्पण वर्तमान में पुनर्निर्माण के तहत हो।


2
लेकिन उन्हें एक-दूसरे की आदर्श प्रतियां होने की आवश्यकता क्यों है? संभवतः उन क्षेत्रों से दो को तोड़ सकते हैं जो उन क्षेत्रों में असंगत हैं जो कभी फ़ाइल सिस्टम द्वारा उपयोग नहीं किए गए थे?
कास्परड

@kasperd RAID किसी फ़ाइल सिस्टम की तुलना में निचले स्तर पर लागू किया जाता है। तो सवाल यह है कि "फाइल सिस्टम" क्या है जिसे आप संदर्भित करते हैं।
तैमिर

@ Tememyr मैं किसी विशिष्ट फ़ाइल सिस्टम की बात नहीं कर रहा हूँ। जो भी आप पसंद करते हैं उसे चुनें और समझाएं कि एक RAID -1 पर इसका उपयोग करके क्या टूट जाएगा, जहां फ़ाइल सिस्टम को आरंभीकृत करने से पहले प्रतिकृतियां सिंक में नहीं थीं।
कास्परड

@kasperd उस स्तर को तोड़ने के लिए कोई फ़ाइल सिस्टम नहीं है जो RAID संचालित करता है।
तैमिर

1
मेरे मामले में, मूल पोस्टर के रूप में, मुझे परवाह नहीं है कि फाइल सिस्टम क्या है। मुझे कोई फाइल सिस्टम नहीं है जो उन क्षेत्रों को पढ़ेगा जो कभी नहीं लिखे गए हैं, इस प्रकार उन अलिखित क्षेत्रों की कोई भी अनिश्चित स्थिति मायने नहीं रखती है।
माइकल ग्रेफ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.