हार्डवेयर के ऊपर ZFS धारी RAID 6. क्या संभवतः गलत हो सकता है?


9

मेरे पास 36 * 4TB HDD सैन रैक है। RAID नियंत्रक ने RAID60 का समर्थन नहीं किया और एक RAID समूह में 16 से अधिक HDDs नहीं थे। इसलिए मैंने 16 HDD के 2 RAID6 समूह या 8 HDD के 4 बनाने का फैसला किया। मैं एक विभाजन के रूप में सभी भंडारण प्राप्त करना चाहता हूं।

तो, क्या संभवतः गलत हो सकता है अगर मैं हार्डवेयर RAID6 के शीर्ष पर zfs पूल का उपयोग करूंगा? हाँ, मुझे पता है कि देशी HDD या पास-थ्रू मोड का उपयोग करने की दृढ़ता से अनुशंसा की जाती है। लेकिन मेरे पास यह विकल्प नहीं है।

या मुझे इस स्थिति में ZFS और सॉफ्टवेयर छापे से दूर रहना चाहिए? (मैं ज्यादातर संपीड़न और स्नैपशॉट में दिलचस्पी रखता हूं)


2
यदि आप ZFS का उपयोग करने जा रहे हैं, तो क्यों नहीं सभी डिस्क को व्यक्तिगत रूप से उजागर करें (कभी-कभी एचबीए मोड कहा जाता है) और ZFS को इसे संभालने दें - यह वही है जो यह सबसे अच्छा करता है। हमारे पास इस पर कई सच्चे विशेषज्ञ हैं (एक शुरुआत के लिए ewwhite) जो आपको इसमें मदद करेंगे - आप किस सटीक डिस्क नियंत्रक का उपयोग कर रहे हैं?
चॉपर 3

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

2
मैं ईवहाइट का इंतजार करूंगा - वह मध्य अमेरिका में सो रहा है लेकिन वह जेडएफएस को जानता है किसी से बेहतर मैं जानता हूं
चॉपर 3

1
@Severgun इसके अलावा 4 HDD बेकार हॉटस्पेयर में कोई ज़रूरत नहीं रह जाते हैं। क्या आपको वास्तव में लगता है कि यह RAID ड्राइव के लिए विफल ड्राइव के साथ RAID सरणी के लिए बेहतर है, क्योंकि यह स्वचालित रूप से एक गर्म स्पेयर, पुनर्निर्माण और पूरी तरह से लौटने के लिए है- व्यावहारिक स्थिति?
एंड्रयू हेनले

1
@ चॉपर 3 मैं जवाब दूंगा ... अनिच्छा से।
इविविट

जवाबों:


5

इसलिए मैंने 16 HDD के 2 RAID6 समूह या 8 HDD के 4 बनाने का फैसला किया।

यह चीजें करने का सबसे अच्छा तरीका नहीं है। यह काफी अच्छा काम कर सकता है, लेकिन आपकी प्रदर्शन आवश्यकताओं के आधार पर, यह नहीं हो सकता है।

एक RAID5 / 6 सरणी के लिए आदर्श आकार ऐसा होगा जिसमें डेटा की मात्रा का एक सटीक एकाधिक "स्पैन" सरणी उसके ऊपर बनी फ़ाइल सिस्टम के ब्लॉक आकार से मेल खाती है।

RAID5 / 6 सरणियाँ ब्लॉक डिवाइस के रूप में काम करती हैं - डेटा का एक एकल ब्लॉक डिस्क में डिस्क को फैलाता है, और उस ब्लॉक में पार्स डेटा भी होता है। अधिकांश RAID नियंत्रक सरणी में प्रत्येक डिस्क पर डेटा का एक दो-हिस्सा आकार लिखेंगे - जिसका सटीक मान बेहतर RAID सिस्टम में विन्यास योग्य है - और आपकी डॉट हिल इकाई उन "बेहतर RAID प्रणालियों" में से एक है। वह महत्वपूर्ण है।

तो यह एन एक्स लेता है (डिस्क के प्रति डेटा संग्रहित राशि), सरणी को फैलाने के लिए, जहां एन डेटा डिस्क की संख्या है। एक 5-डिस्क RAID5 सरणी में 4 "डेटा" डिस्क हैं, और 10-ड्राइव वाले RAID6 सरणी में 8 डेटा डिस्क हैं।

क्योंकि जब डेटा को एक RAID5 / 6 सरणी में लिखा जाता है, यदि डेटा का ब्लॉक ऐसा है, जो पूरे सरणी को फैलाने के लिए काफी बड़ा है, तो उस डेटा के लिए समता की गणना की जाती है - आमतौर पर नियंत्रक की मेमोरी में - फिर संपूर्ण पट्टी को लिखा जाता है डिस्क। सरल, और तेज।

लेकिन अगर डेटा के बारे में लिखा जा रहा है, तो पूरे सरणी को भरने के लिए पर्याप्त बड़ा नहीं है, नए नियंत्रक डेटा की गणना करने के लिए RAID नियंत्रक को क्या करना है? इसके बारे में सोचें - नए समता डेटा को फिर से जोड़ने के लिए इसे पूरे स्ट्राइप में सभी डेटा की आवश्यकता होती है ।

इसलिए यदि आप 512kb के डिफॉल्ट प्रति डिस्क चंक के साथ 16-ड्राइव RAID6 सरणी बनाते हैं, तो इसका मतलब है कि यह सरणी को "स्पैन" करने के लिए 7 एमबी लेता है।

ZFS 128kb ब्लॉक्स में काम करता है, आम तौर पर।

तो ZFS एक 128kB ब्लॉक लिखता है - 16-ड्राइव RAID6 सरणी के लिए। आपके द्वारा प्रस्तावित कॉन्फ़िगरेशन में, इसका मतलब है कि RAID नियंत्रक को सरणी से लगभग 7 एमबी पढ़ने और उन 7 एमबी में समता को फिर से स्थापित करने की आवश्यकता है। फिर उस पूरे 7 एमबी को डिस्क पर फिर से लिखें।

यदि आप भाग्यशाली हैं, तो यह सब कैश में है और आप एक बड़ा प्रदर्शन हिट नहीं लेते हैं। (यह एक प्रमुख कारण है कि "RAID5 / 6 का उपयोग न करें" स्थिति में इस तरह के निम्नलिखित हैं - RAID1 [0] इससे पीड़ित नहीं होंगे।)

यदि आप अशुभ हैं और आपने अपने फाइलसिस्टम विभाजन को ठीक से संरेखित नहीं किया है, तो 128kB ब्लॉक दो RAID स्ट्रिप जो कैश में नहीं है, और नियंत्रक को 14 एमबी पढ़ने की जरूरत है, समता को पुनः प्राप्त करें, फिर 14 एमबी लिखें। सभी को एक 128kB ब्लॉक लिखना है।

अब, यही तार्किक रूप से होने की जरूरत है । वहाँ अनुकूलन नहीं है जो अच्छा RAID नियंत्रक, इस तरह के आईओ पैटर्न के आईओ और कम्प्यूटेशनल भार को कम करने तो यह ले जा सकते हैं की एक बहुत कुछ कर रहे हैं हो सकता है कि बुरा नहीं हो।

लेकिन यादृच्छिक स्थानों पर 128kB ब्लॉक लिखने के भारी भार के तहत, एक बहुत अच्छा मौका है कि 7-एमबी स्ट्राइप आकार के साथ 16-ड्राइव RAID6 सरणी का प्रदर्शन बिल्कुल भयानक होगा।

ZFS के लिए, एक सामान्य प्रयोजन फ़ाइल सिस्टम के लिए "आदर्श" अंतर्निहित RAID5 / 6 LUN , जहां अधिकांश एक्सेस प्रभावी रूप से यादृच्छिक होते हैं, एक स्ट्राइप साइज होता है जो 128kB, जैसे 32kB, 64kB, या 128kB का भी विभाजक होता है। इस स्थिति में, जो एक RAID5 / 6 सरणी में डेटा डिस्क की संख्या को 1 तक सीमित करता है (जो निरर्थक है - भले ही कॉन्फ़िगर करना संभव हो, यह सिर्फ RAID1 [0] का उपयोग करने के लिए बेहतर है), 2, 4, या 8. सर्वश्रेष्ठ प्रदर्शन सबसे अच्छी स्थिति में RAID5 / 6 सरणियों के लिए 128kB धारी के आकार का उपयोग करना होगा, लेकिन सबसे अच्छा मामला सामान्य-उद्देश्य फ़ाइल सिस्टम में अक्सर नहीं होता है - अक्सर क्योंकि फ़ाइल सिस्टम मेटाडेटा को समान रूप से संग्रहीत नहीं करते हैं। फ़ाइल डेटा स्टोर करें।

मैं 5-डिस्क RAID5 सरणियों या 10-डिस्क RAID6 सरणियों को स्थापित करने की सलाह देता हूं, प्रति-डिस्क चंक आकार के साथ काफी छोटा सेट है कि पूरे सरणी स्ट्रिप को प्राप्त करने के लिए डेटा की मात्रा 64kB है (हाँ, मैंने यह किया है ZFS के लिए पहले - कई बार)। 4 डेटा डिस्क के साथ एक RAID सरणी के लिए इसका मतलब है, प्रति-डिस्क चंक आकार 16kB होना चाहिए, जबकि 8-डेटा-डिस्क RAID सरणी के लिए, प्रति-डिस्क चंक आकार 8kB होना चाहिए।

फिर ZFS को संपूर्ण सरणी का उपयोग करने की अनुमति दें - इसे विभाजित न करें । ZFS खुद को पूरी तरह से ड्राइव में ठीक से संरेखित करेगा, चाहे ड्राइव एक साधारण सिंगल डिस्क हो या RAID कंट्रोलर द्वारा प्रस्तुत RAID सरणी।

इस स्थिति में, और आपकी सही जगह और प्रदर्शन की आवश्यकताओं को जाने बिना, मैं 64kB स्ट्राइप साइज़ के साथ तीन 10-ड्राइव RAID6 सरणी या छह 5-ड्राइव RAID5 सरणियों को स्थापित करने की सलाह दूंगा, कुछ हॉट स्पेयर्स को कॉन्फ़िगर करें, और अपने चार को बचाएं। भविष्य में जो भी आएगा उसके लिए डिस्क। क्योंकि कुछ होगा।

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


4 डेटा डिस्क के साथ एक RAID सरणी के लिए इसका मतलब है, प्रति-डिस्क चंक आकार 16kB होना चाहिए, जबकि 8-डेटा-डिस्क RAID सरणी के लिए, प्रति-डिस्क चंक आकार 32kB होना चाहिए। मैं इस गणित से थोड़ा भ्रमित हूं। क्यों 8 डिस्क - 32kB चंक? सही होने पर मुझे सही करें: 128kB (ZFS block) / 3 (RAID सरणियाँ) = 43 kB प्रति-RAID सरणी। 10 डिस्क का RAID6 43kB / 8 = 5kB (उपलब्ध चंक्साइज़ नहीं) निकटतम 8kB चंक्सिज़ भी हार्डवेयर द्वारा उपलब्ध नहीं है। तो, सबसे अच्छा प्रदर्शन सुलभ नहीं है?
सेवरगुन

@ शगुन मैंने चंक साइज़ को पीछे की तरफ रखा। RAID5 / 6 पर पूर्ण सर्वश्रेष्ठ प्रदर्शन के लिए लक्ष्य के साथ समस्या यह है कि यह केवल तब होगा जब लगभग सभी IO ऑपरेशन RAID सरणी पट्टी के आकार से पूरी तरह मेल खाते हैं। धारी के आकार से छोटे IO संचालनों की महत्वपूर्ण संख्या गंभीरता से प्रदर्शन को कम कर सकती है। एक छोटे ब्लॉक आकार के साथ जाने से यादृच्छिक छोटे ब्लॉक के प्रभाव को सीमित करने में मदद मिलती है। मेरे अनुभव में, सबसे खराब स्थिति छोड़ने के लिए बदले में अधिकतम संभव प्रदर्शन का 1-2% देना बेहतर है। सामान्य प्रयोजन के फाइल सिस्टम में छोटी संख्या में अच्छे लेखन होते हैं।
एंड्रयू हेनले

(cont) एक RAID5 / ६ सरणी में array डेटा डिस्क प्रति १६kB चंक साइज़ के साथ एक १४ 128kB स्ट्राइप साइज़ के लिए बना देता है। इसी तरह 4-डेटा-डिस्क सरणी के लिए 32kB चंक्स। ZFS एक डिवाइस पर 128kB फ़ाइल डेटा ब्लॉक लिखता है - यह सभी zdevs में विभाजित नहीं है। फिर, हालांकि, एक सामान्य-उद्देश्य वाली फ़ाइल प्रणाली के लिए, बहुत कुछ उप-128kB लिखने वाला है, इसलिए एक छोटा धारी का आकार (64kB) भारी लेखन भार के तहत बेहतर प्रदर्शन में गिरावट से बच जाएगा, लेकिन सबसे अच्छी कीमत में एक छोटी लागत पर- मामले का प्रदर्शन।
एंड्रयू हेनले

4

ठीक है, मैं काटता हूँ ...

यह एप्लिकेशन के लिए गलत हार्डवेयर है। DotHill सेटअप में HP StorageWorks MSA2000 / P2000 की समान सीमाएँ हैं, जिसमें केवल 16 ड्राइव का उपयोग एकल सरणी ग्रुपिंग में किया जा सकता है।

ZFS ऊपर हार्डवेयर RAID या एक निर्यात SAN LUN जरूरी एक समस्या नहीं है।

हालांकि, विस्तार चेसिस के पार अज्ञात इंटरकनेक्ट पर ZFS LUN को स्ट्रिप करते हुए कुछ जोखिम का परिचय दे सकते हैं।

  • उदाहरण के लिए, क्या आप मल्टीपल एसएएस को रिंग टॉपोलॉजी में डुअल कंट्रोलर्स के साथ चला रहे हैं?
  • क्या आपके पास सर्वर पर अनावश्यक रूप से केबल लगाना है?
  • क्या आपने एक तरह से बाड़ों के पार खड़ी ड्राइव वितरित की हैं जो एक सिंगल चेसिस / केबल / कंट्रोलर की विफलता को कम करेगा और इसे आपके RAID0 स्ट्राइप के एक हिस्से को नष्ट करने से रोकेगा?

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

यदि आपको एक ही माउंट में उस प्रकार की क्षमता की आवश्यकता होती है, तो आपको एक समर्पित एचबीए-संलग्न जेबीओडी संलग्नक का उपयोग करना चाहिए और संभवतः लचीला केबल बिछाने और एक चालाक लेआउट के साथ कई प्रमुख इकाइयाँ


1

आपको ZFS चलाने वाले बॉक्स में सभी ड्राइव को प्रत्यक्ष रूप से संलग्न करना चाहिए। एक एसएएस एचबीए प्राप्त करें और ड्राइव को जेडएफएस सक्षम बॉक्स (उदाहरण के लिए ओमनीओएस या स्मार्टओएस) से कनेक्ट करें। फिर आप NFS, SMB, iScsi के माध्यम से स्थान साझा कर सकते हैं ...


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

@ तोबी ओटिकर ने मुझे बताया कि 36 3.5 "hdds को 2U मामले में कैसे लाया जाए
सेवगुन

हम सिर्फ उन्हें एक अतिरिक्त बॉक्स में डालते हैं ... एक एसएएस एक्सटेंडर का उपयोग करें ... बड़ी तैनाती के लिए, शायद पूछें कि हर्षित इसे कैसे संभाल रहा है।
तोबी ओटीकर

@AndrewHenle निष्पक्ष होने के लिए, ZFS और सही HBA के साथ एक ही आसान प्रतिस्थापन प्रक्रिया और स्थिति एल ई डी को प्राप्त करना संभव है (इसमें कुछ छोटे स्क्रिप्टिंग शामिल हो सकते हैं यदि प्रीपेकेडेड समाधान का उपयोग नहीं कर रहे हैं)।
user121391

0

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

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

ऐसा लगता है कि ज़ेडएफएस संचालित होने से पहले आपको यह जानने की ज़रूरत है कि आपके द्वारा प्रस्तावित किए गए कार्यों को सही तरीके से समझने के अलावा, आपको वास्तव में क्या करना चाहिए।


हाँ हाँ और हाँ। मैं समझता हूं कि जेडएफएस मैं जितना काम कर सकता हूं। लेकिन कुछ जटिलताएं हैं: 1) मेरे पास पहले से ही सैन एनक्लोजर है और इसका उपयोग करने की आवश्यकता है । मैं स्क्रैच से स्टोरेज नहीं बना रहा हूं। 2) यह मेरा घर एनएएस नहीं है जहां मैं चीजों को खरीद और फेंक सकता हूं। 3) स्टोरेज कॉन्फिगरेशन के लिए बजट जीरो के बराबर है । स्टोरेज से मुझे 100Tb के आसपास स्पेस के साथ अधिकतम उपलब्ध राइट स्पीड की जरूरत है। मैं ZFS को ज्यादातर कम्प्रेशन और स्नैपशॉट के कारण देख रहा हूँ। मैं btrfs की कोशिश कर सकता हूं लेकिन यह प्रयोगात्मक है। हम्म ZoL अस्थिर भी हो सकता है? मैं नहीं जानता हूँ।
सेवरगुन

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

1
HW RAID तार्किक संस्करणों के शीर्ष पर ZFS एक बहुत बुरा विचार है, क्योंकि ZFS को वास्तव में ठीक से काम करने के लिए ब्लॉक-स्तरीय पहुंच की आवश्यकता होती है। यह इतना बुरा है कि इसे गलत कहा जाना भी ठीक नहीं है। आपको स्पष्ट रूप से पता नहीं है कि हार्डवेयर का NEBS 3-अनुरूप टुकड़ा क्या है? इसके अलावा यह सुपर डुपर फास्ट है। ZFS बहुत सारी अच्छी चीजें हैं। "सुपर डुपर फास्ट" उनमें से एक नहीं है। यह है एक फास्ट फाइल सिस्टम है। तो यह है । फ़ाइल सिस्टम चलते हैं, ZFSतेज़ नहीं है।
एंड्रयू हेनले
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.