OpenZFS 2.1 का विमोचन – आइए बात करते हैं एकदम नए dRAID vdevs के बारे में

OpenZFS 2.1 का विमोचन – आइए बात करते हैं एकदम नए dRAID vdevs के बारे में
ज़ूम / OpenZFS ने आज के 2.1.0 संस्करण के रिलीज के साथ अपने टूलकिट में वितरित RAID टोपोलॉजी को जोड़ा है।

ओरिक लॉसन

शुक्रवार दोपहर, OpenZFS परियोजना छाती हमारे बारहमासी पसंदीदा फ़ाइल सिस्टम का संस्करण 2.1.0 “यह जटिल है लेकिन इसके लायक है”। नया संस्करण फ्रीबीएसडी 12.2-रिलीज और बाद में, और लिनक्स कर्नेल 3.10-5.13 के साथ संगत है। यह रिलीज़ कई सामान्य प्रदर्शन सुधारों के साथ-साथ कुछ पूरी तरह से नई सुविधाओं का परिचय देता है – ज्यादातर संगठनों और अन्य बहुत उन्नत उपयोग के मामलों के उद्देश्य से।

आज, हम सबसे बड़ी विशेषता पर ध्यान केंद्रित करेंगे जो OpenZFS 2.1.0 जोड़ता है – dRAID vdev टोपोलॉजी। dRAID कम से कम 2015 से सक्रिय विकास में है, और बीटा स्थिति में तब पहुंचा जब को एकीकृत नवंबर 2020 में OpenZFS मास्टर में। तब से, कई प्रमुख OpenZFS विकास स्टोरों में इसका भारी परीक्षण किया गया है – जिसका अर्थ है कि आज का संस्करण उत्पादन की स्थिति में “ताज़ा” है, न कि “नया” जैसा कि बिना परीक्षण के।

वितरित RAID अवलोकन (dRAID)

यदि आपने पहले ही सोचा था कि ZFS टोपोलॉजी एक फाइल थी कम्पोजिट विषय, अपने दिमाग को उड़ाने के लिए तैयार हो जाइए। डिस्ट्रिब्यूटेड RAID (dRAID) एक पूरी तरह से नया vdev टोपोलॉजी है जिसे हमने पहली बार 2016 OpenZFS Dev समिट में एक प्रेजेंटेशन में देखा था।

dRAID vdev बनाते समय, व्यवस्थापक प्रत्येक स्ट्रिप के लिए डेटा, समता और हॉटस्पेयर सेक्टरों की संख्या निर्दिष्ट करता है। ये संख्याएँ vdev में भौतिक डिस्क की संख्या से स्वतंत्र हैं। हम इसे निम्नलिखित उदाहरण में व्यवहार में देख सकते हैं, जो मूल dRAID अवधारणाओं से लिया गया है प्रलेखन:

[email protected]:~# zpool create mypool draid2:4d:1s:11c wwn-0 wwn-1 wwn-2 ... wwn-A
[email protected]:~# zpool status mypool

  pool: mypool
 state: ONLINE
config:

        NAME                  STATE     READ WRITE CKSUM
        tank                  ONLINE       0     0     0
          draid2:4d:11c:1s-0  ONLINE       0     0     0
            wwn-0             ONLINE       0     0     0
            wwn-1             ONLINE       0     0     0
            wwn-2             ONLINE       0     0     0
            wwn-3             ONLINE       0     0     0
            wwn-4             ONLINE       0     0     0
            wwn-5             ONLINE       0     0     0
            wwn-6             ONLINE       0     0     0
            wwn-7             ONLINE       0     0     0
            wwn-8             ONLINE       0     0     0
            wwn-9             ONLINE       0     0     0
            wwn-A             ONLINE       0     0     0
        spares
          draid2-0-0          AVAIL

ड्रेड टोपोलॉजी

ऊपर के उदाहरण में, हमारे पास ग्यारह डिस्क हैं: wwn-0 पार wwn-A. हमने 2 पैरिटी डिवाइस, 4 डेटा डिवाइस और 1 बैकअप डिवाइस प्रति टेप के साथ एक draID vdev बनाया – संघनित भाषा में, draid2:4:1.

हालाँकि हमारे पास एक फ़ाइल में कुल ग्यारह डिस्क हैं draid2:4:1, प्रत्येक डेटा बार में केवल छह का उपयोग किया जाता है — और प्रत्येक बार में एक भौतिक – भौतिक – फीता। संपूर्ण वैक्यूम क्लीनर, घर्षण रहित सतहों और बॉल मुर्गियों की दुनिया में, डिस्क पर लेआउट draid2:4:1 यह इस तरह दिखेगा:

READ  ब्लू जेज़ एडम सेम्पर और कोरी डिकर्सन का अधिग्रहण करेगा
1 2 3 4 5 6 7 8 9
रों रों रों डॉ डॉ डॉ डॉ रों रों डॉ डॉ
डॉ रों डॉ रों रों डॉ डॉ डॉ डॉ रों रों
डॉ डॉ रों डॉ डॉ रों रों डॉ डॉ डॉ डॉ
रों रों डॉ रों डॉ डॉ डॉ रों रों डॉ डॉ
डॉ डॉ . . रों . . . . . .
. . . . . रों . . . . .
. . . . . . रों . . . .
. . . . . . . रों . . .
. . . . . . . . रों . .
. . . . . . . . . रों .
. . . . . . . . . . रों

प्रभावी रूप से, ड्रेड “विकर्ण समता” RAID की अवधारणा को एक कदम आगे ले जाता है। RAID5 पहली RAID समता टोपोलॉजी नहीं थी – यह RAID3 थी, जिसमें समता हार्ड ड्राइव पर स्थित थी, बजाय पूरे सरणी में वितरित की।

RAID5 ने हार्ड पैरिटी ड्राइव को समाप्त कर दिया और, इसके बजाय, सभी सरणी डिस्क में वितरित समानता- अवधारणात्मक रूप से सरल RAID3 की तुलना में बहुत तेज़ यादृच्छिक लेखन प्रदान करता है, क्योंकि यह प्रत्येक लेखन को हार्ड पैरिटी डिस्क में बाधित नहीं करता है।

dRAID इस अवधारणा को लेता है – एक या दो हार्ड डिस्क पर सभी को एकत्रित करने के बजाय सभी डिस्क में समानता वितरित करना – और इसे विस्तारित करता है spares. यदि डिस्क dRAID vdev में विफल हो जाती है, तो डेड डिस्क पर रहने वाले समता सेक्टर और डेटा को प्रत्येक प्रभावित टेप के लिए आरक्षित एक अतिरिक्त सेक्टर में कॉपी किया जाता है।

आइए ऊपर दिए गए सरलीकृत ग्राफ को लें, और देखें कि यदि हम मैट्रिक्स से डिस्क निकालते हैं तो क्या होता है। प्रारंभिक विफलता अधिकांश डेटा सेटों में अंतराल छोड़ती है (इस सरलीकृत आरेख में, रेखाएं):

1 2 4 5 6 7 8 9
रों रों रों डॉ डॉ डॉ रों रों डॉ डॉ
डॉ रों डॉ रों डॉ डॉ डॉ डॉ रों रों
डॉ डॉ रों डॉ रों रों डॉ डॉ डॉ डॉ
रों रों डॉ डॉ डॉ डॉ रों रों डॉ डॉ
डॉ डॉ . रों . . . . . .

लेकिन जब हम रिसिल्वर का उपयोग करते हैं, तो हम इसे पहले से आरक्षित अतिरिक्त क्षमता पर करते हैं:

1 2 4 5 6 7 8 9
डॉ रों रों डॉ डॉ डॉ रों रों डॉ डॉ
डॉ रों डॉ रों डॉ डॉ डॉ डॉ रों रों
डॉ डॉ डॉ डॉ रों रों डॉ डॉ डॉ डॉ
रों रों डॉ डॉ डॉ डॉ रों रों डॉ डॉ
डॉ डॉ . रों . . . . . .

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

यह भी ध्यान देने योग्य है कि dRAID को स्थिर पट्टी चौड़ाई की आवश्यकता होती है – गतिशील चौड़ाई नहीं जो पारंपरिक RAIDz1 और RAIDz2 vdevs समर्थन करती है। यदि हम 4kn डिस्क का उपयोग कर रहे हैं, तो .file draid2:4:1 ऊपर दिखाए गए एक vdev को डिस्क पर प्रति मेटाडेटा ब्लॉक पर 24 KB की आवश्यकता होगी, जहां एक पारंपरिक छह-चौड़ाई वाले RAIDz2 vdev को केवल 12 KB की आवश्यकता होती है। यह विसंगति मूल्यों को जितनी अधिक खराब करती है d+p प्राप्त draid2:8:1 मेटाडेटा के समान ब्लॉक के लिए इसे 40KB की आवश्यकता होगी!

इस कारण से, special vdev आवंटक dRAID vdevs के साथ पूल में बहुत उपयोगी है – जब इसके साथ एक पूल होता है draid2:8:1 और तीन चौड़े special इसे 4KiB मेटाडेटा ब्लॉक को स्टोर करने की आवश्यकता है, यह इसे केवल 12KB में फ़ाइल पर करता है special, फ़ाइल में ४० KB के बजाय draid2:8:1.

ड्रेड परफॉर्मेंस, फॉल्ट टॉलरेंस और पेबैक

यह ग्राफ़ 90-डिस्क पूल के लिए देखे गए पुन: उभरने के समय को दर्शाता है।  शीर्ष पर गहरी नीली रेखा एक निश्चित हार्ड डिस्क पर पुन: फ़िल्टर करने का समय है;  नीचे दी गई रंगीन रेखाएं वितरित आरक्षित क्षमता पर पुन: परिसमापन समय दर्शाती हैं।

यह ग्राफ़ 90-डिस्क पूल के लिए देखे गए पुन: उभरने के समय को दर्शाता है। शीर्ष पर गहरी नीली रेखा एक निश्चित हार्ड डिस्क पर पुन: फ़िल्टर करने का समय है; नीचे दी गई रंगीन रेखाएं वितरित आरक्षित क्षमता पर पुन: परिसमापन समय दर्शाती हैं।

अधिकांश भाग के लिए, dRAID vdev पारंपरिक vdevs के समकक्ष सेट के समान कार्य करेगा – उदाहरण के लिए, draid1:2:0 नौ डिस्क पर यह लगभग 3 चौड़ाई के तीन RAIDz1 vdevs के सेट के बराबर काम करेगा। दोष सहिष्णुता भी समान है – आपको एक विफलता से बचने की गारंटी है p=1, ठीक वैसे ही जैसे आप RAIDz1 vdevs के साथ हैं।

ध्यान दें कि हमने कहा कि दोष सहिष्णुता है समान, समान नहीं थे। चौड़ाई ३ के तीन RAIDz1 vdevs का एक पारंपरिक सेट केवल एक डिस्क विफलता से बचने की गारंटी है, लेकिन संभवतः एक सेकंड के लिए चलेगा – जब तक कि दूसरी डिस्क जो विफल हो जाती है, पहले के समान vdev का हिस्सा नहीं है, सब ठीक है .

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

गलती सहनशीलता की यह कमी कुछ हद तक तेजी से तेजी से रिसिल्वर समय से ऑफसेट होती है। इस खंड के शीर्ष पर ग्राफ़ में, हम देख सकते हैं कि नब्बे 16TB डिस्क के एक बैच में, आप एक पारंपरिक, स्थिर मशीन को हिला रहे हैं। spare हम dRAID vdev को कैसे भी कॉन्फ़िगर करें, इसमें लगभग तीस घंटे लगते हैं – लेकिन वितरित अतिरेक पर फिर से प्रकट होने में एक घंटे से भी कम समय लग सकता है।

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

एक वितरित रिसिल्वर एक रिसिल्वर प्रोसेसर के बजाय एक सीरियल रिसिल्वर भी हो सकता है – जिसका अर्थ है कि ZFS केवल सभी प्रभावित क्षेत्रों की नकल कर सकता है, बिना इस बात की चिंता किए blocks इन सेक्टरों के हैं। इसके विपरीत, हीलिंग रिसिल्वर को पूरे ब्लॉक ट्री को स्कैन करना चाहिए – जिसके परिणामस्वरूप क्रमिक रीड वर्कलोड के बजाय एक यादृच्छिक रीड वर्कलोड होता है।

जब असफल डिस्क का भौतिक प्रतिस्थापन असेंबली में जोड़ा जाता है, तो यह पुनर्विक्रय मर्जी यह स्केलर है, अनुक्रमिक नहीं है – और यह संपूर्ण vdev के बजाय एक व्यक्तिगत अतिरिक्त डिस्क के लेखन प्रदर्शन को दबा देगा। लेकिन इस प्रक्रिया को पूरा करने का समय बहुत कम महत्वपूर्ण है, क्योंकि वदेव पतन की स्थिति में भी नहीं है।

निष्कर्ष

वितरित RAID vdevs संस्करण अक्सर बड़े भंडारण सर्वर के लिए अभिप्रेत होते हैं – OpenZFS draid डिजाइन और परीक्षण मोटे तौर पर 90-डिस्क सिस्टम के इर्द-गिर्द घूमते थे। छोटे पैमाने पर, पारंपरिक vdevs फ़ाइलें और spares यह पहले की तरह ही उपयोगी रहता है।

हम विशेष रूप से भंडारण में शुरुआती लोगों को सावधान करते हैं कि वे उनसे सावधान रहें draid—यह पारंपरिक vdevs के साथ पूलिंग की तुलना में काफी अधिक जटिल लेआउट है। त्वरित लचीलापन बहुत अच्छा है – लेकिन draid यह आवश्यक रूप से निश्चित लंबाई की रेखाओं के कारण तनाव के स्तर और कुछ प्रदर्शन परिदृश्यों दोनों में सफलता प्राप्त करता है।

जबकि पारंपरिक डिस्क प्रदर्शन में उल्लेखनीय वृद्धि किए बिना आकार में वृद्धि जारी रखते हैं, draid इसका तेजी से पुन: विन्यास छोटी प्रणालियों पर भी वांछनीय हो सकता है – लेकिन यह पता लगाने में कुछ समय लगेगा कि आदर्श बिंदु कहाँ से शुरू होता है। इस बीच, कृपया याद रखें कि RAID बैकअप नहीं है – इसमें शामिल है draid!

We will be happy to hear your thoughts

Leave a reply

Gramin Rajasthan