आईओपीएस पर RAID स्तर का प्रभाव [बंद]


11

IOPS के संबंध में, मैंने वेब पर कई स्रोत देखे हैं जो सुझाव देते हैं कि किसी दिए गए डिस्क की संख्या का IOPS केवल डिस्क की संख्या से गुणा की गई एकल डिस्क का IOPS है।

अगर IOPS के बारे में मेरी समझ सही है (और मुझे पूरा यकीन नहीं है कि यह है), मैंने सोचा होगा कि वास्तविकता कई अन्य कारकों के बीच - RAID स्तर पर निर्भर करेगी। RAID 1/10 के साथ, सभी डेटा को कम से कम दो डिस्क में दोहराया जाता है, कुछ IO पैटर्न के लिए एक विशेष डिस्क पर विवाद को कम करता है। हालांकि, धारीदार RAID स्तरों जैसे RAID 0/5/6 में, डेटा को डुप्लिकेट के बजाय वितरित किया जाता है, जिसका अर्थ है कि लगातार पढ़ने के अनुरोध एक ही धुरी के लिए हो सकते हैं, जिससे पिछले IO पूरा होने पर अवरुद्ध हो जाता है। राइट्स और भी अधिक कंटेस्टेड हैं।

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


4
आप इसे उस बिंदु पर सरल बना रहे हैं, जहाँ आप RAID नियंत्रक कैश, OS, अनुप्रयोग के व्यवहार, सिंक्रोनस या एसिंक्रोनस I / O और डिस्क प्रकार के प्रभाव को छोड़ रहे हैं। तो आप क्या ढूंढ रहे हैं?
ewwhite

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

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

RAID प्रदर्शन RAID स्तर की तुलना में नियंत्रक हार्डवेयर और कार्यान्वयन सीमाओं पर कहीं अधिक निर्भर करता है। उदाहरण के लिए RAID0, RAID1, RAID5 और RAID6 सभी डिस्क को लंबे समय तक पढ़ने के लिए सैद्धांतिक रूप से नियोजित कर सकते हैं, इसलिए उनके पास एक आदर्श नियंत्रक पर एक ही पढ़ने की गति हो सकती है।
Zac67

जवाबों:


12

एचडीडी के लिए , IOPS आमतौर पर डिस्क के एक्सेस समय पर हावी होते हैं, जो कि विलंबता + घूर्णी विलंब + स्थानांतरण विलंब का योग है। जैसा कि ये चर दृढ़ता से एक्सेस पैटर्न पर निर्भर करते हैं और विशिष्ट RAID लेआउट (यानी: स्ट्राइप आकार) और नियंत्रक (यानी: आगे ट्यूनिंग पढ़ें) के साथ कोई स्पष्ट बातचीत नहीं करते हैं, कोई भी सरल उत्तर हो जाएगा।

हालाँकि, एक बॉलपार्क आंकड़ा रखने की कोशिश करता है। पहले सन्निकटन पर, एक n- डिस्क सरणी द्वारा गारंटीकृत IOPS एकल डिस्क का IOPS n-गुना होना चाहिए। हालाँकि, RAID / स्तर और डेटा एक्सेस पैटर्न , दोनों ही चाहने वाले / घूर्णी / अंतरण विलंबता के बीच भार को शिथिल करके, इस प्रथम-क्रम सन्निकटन को नाटकीय रूप से बदल देते हैं।

कुछ उदाहरण देते हैं, 100 IOPS प्रति एकल डिस्क (7200 RPM डिस्क के लिए एक टिपिकल मान) और 4-डिस्क सरणियों (RAID1 को छोड़कर, अक्सर केवल 2-वे तक सीमित) मान लेते हैं:

  • एक एकल डिस्क 100 IOPS है, दोनों पढ़ना और लिखना (नोट: लिखने के लिए लिखने के कारण, IOPS आम तौर पर पढ़ने वाले IOPS से अधिक होता है, लेकिन सरलता के लिए इसे अनदेखा कर देता है)
  • RAID0 (4-रास्ता स्ट्रिपिंग) है अप करने के लिए यादृच्छिक IOPS 4x और अप करने के लिए अनुक्रमिक IOPS 4x। यहां मुख्य शब्द "अप" है: स्ट्रिपिंग और डेटा संरेखण की प्रकृति के कारण, यदि यादृच्छिक एक्सेस वाले सेक्टर पहले से एक डिस्क पर रहते हैं, तो आप बहुत कम आईओपीएस के साथ समाप्त हो जाएंगे।
  • RAID1 (2-वे मिररिंग) प्रोफाइल के लिए अधिक जटिल है। जैसा कि अलग-अलग डिस्क अलग-अलग डेटा की तलाश कर सकते हैं, इसमें 2x से यादृच्छिक रीड IOPS तक हैं, लेकिन 1x (या थोड़ा कम, ओवरहेड के कारण) यादृच्छिक IOPS लिख सकते हैं। यदि सभी चीजें अच्छी तरह से संरेखित होती हैं (यानी: बड़ी लेकिन 100% अनुक्रमिक रीड्स नहीं, तो RAID कंट्रोलर / स्ट्राइप्स कॉन्सेप्ट / मिररिंग मोड में भी हैंडलिंग का एक कंट्रोलर, रीड-फॉरवर्ड सही तरीके से काम करना, आदि) सीक्वेंशियल रीड्स कुछ समय के लिए 2x तक सिंगल हो सकते हैं। डिस्क मान, जबकि अनुक्रमिक लेखन 1x सिंगल डिस्क पर छाया हुआ रहता है (यानी: कोई स्पीडअप नहीं)
  • RAID10 (4-वे मिररिंग), प्रदर्शन-वार है, 4-वे RAID0 स्ट्रिपिंग और 2-वे मिररिंग के बीच आधे रास्ते पर है। इसमें 4x तक का रैंडम रीड IOPS है और 2x तक रैंडम राइटिंग IOPS है। अनुक्रमिक स्थानान्तरण के लिए, RAID1 कैविट लागू होता है: यह कभी-कभी क्रमिक पढ़ने वाले IOPS के 4x तक होता है, लेकिन केवल 2x अनुक्रमिक IOPS लिखता है। कृपया ध्यान दें कि कुछ RAID10 कार्यान्वयन (अर्थात् लिनक्स MDRAID) अलग प्रदर्शन प्रोफ़ाइल के साथ RAID10 सरणियों के लिए अलग-अलग लेआउट प्रदान करते हैं ।
  • RAID5 (धारीदार समता) में यादृच्छिक पढ़ा हुआ IOPS 4 गुना तक होता है, जबकि यादृच्छिक लेखन IOPS, कई कारकों पर निर्भर करता है कि पट्टी आकार के संबंध में कितनी बड़ी है, एक बड़ी पट्टी कैश की उपलब्धता, धारी पुनर्निर्माण एल्गोरिथम। स्वयं (रीड-रीकंस्ट्रक्ट-राइट-बनाम रीड-मॉडिफाई-राइट), आदि, 0.5x (या निम्न) और 2x के बीच कहीं भी हो सकता है, जो एकल डिस्क का IOPS है। अनुक्रमिक वर्कलोड अधिक अनुमानित हैं, एक डिस्क के IOPS 3x के साथ (दोनों पढ़ने और लिखने के लिए)
  • RAID6 (धारीदार डबल समता) अपने RAID5 भाई की तरह व्यवहार करता है, लेकिन कम लेखन प्रदर्शन के साथ। यह एक डिस्क के यादृच्छिक रीड IOPS को 4 गुना तक बढ़ाता है, लेकिन इसका यादृच्छिक लेखन प्रदर्शन RAID5 की तुलना में भी कम है, समान निरपेक्ष मान (0.5x - 2x) के साथ लेकिन निम्न वास्तविक शब्द औसत के साथ। अनुक्रमिक पढ़ता है और लिखता है एक डिस्क के 2X IOPS पर छाया हुआ है।

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

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

एसएसडी अलग जानवर हैं, सोचा। जैसा कि उनके पास आंतरिक रूप से बहुत कम औसत पहुंच समय है, समानता आधारित RAID बहुत कम प्रदर्शन ओवरहेड को उकसाते हैं और एचडीडी की तुलना में बहुत अधिक व्यवहार्य विकल्प हैं। हालांकि, एक छोटे से यादृच्छिक-लेखन केंद्रित कार्यभार में, मैं वैसे भी एक RAID10 सेटअप का उपयोग करूंगा।


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

@AndrewHenle ज़रूर, यदि केवल अनुक्रमिक रीड्स जारी करना / लिखना जो कि स्ट्राइप-एलायंस हैं, तो भी RAD5 / 6 मोड में कैशलेस कंट्रोलर आपको अच्छे परिणाम दे सकता है। हालाँकि यह एक बहुत ही संकीर्ण उपयोग पैटर्न है (यानी: स्ट्रीमिंग और बैकअप)। सामान्य प्रयोजन के कार्यभार के लिए, कैशलेस कंट्रोलर किसी भी समानता के साथ संयुक्त रूप से RAID वास्तव में धीमा होगा। कुछ नियंत्रकों को भी पॉवरलॉस-संरक्षित राइटबैक कैश की आवश्यकता होती है, ताकि आप एक समता RAID बना सकें।
शोडांशोक

मैं इस बारे में अधिक सोच रहा था कि आश्चर्यचकित क्यों उनके कॉर्पोरेट मेल स्टोरेज 21-ड्राइव RAID6 ऐरे को 19-एमबी-बड़े-से-बड़े-बड़े-धारी के आकार के स्ट्राइप आकार के साथ धीमा है ...
एंड्रयू हेनले

1

यह सिर्फ परिभाषाओं की बात है। आप सिस्टम में विभिन्न स्तरों पर IOPS को माप सकते हैं और आपको अलग-अलग मान मिलेंगे। उदाहरण के लिए, मान लें कि आपके पास दो प्रतिबिंबित डिस्क हैं और आप जितनी तेजी से लिख सकते हैं, उतनी तेजी से लिख रहे हैं। डिस्क पर जाने वाले IOPS दो बार होंगे IOPS एक सिंगल डिस्क एक समान राइट लोड के साथ संभाल सकती है। लेकिन नियंत्रक में जाने वाला IOPS IOPS की संख्या के बराबर होगा जो एक डिस्क को संभाल सकता है।

आमतौर पर हम जो परवाह करते हैं वह यह है कि हम कितने तार्किक IOPS को सरणी में प्राप्त कर सकते हैं और डिस्क स्तर पर क्या हो रहा है, इसका हमें विशेष रूप से ध्यान नहीं है। उस स्थिति में, आप सही हैं और IOPS RAID स्तर, डिस्क की संख्या, व्यक्तिगत डिस्क के प्रदर्शन और, कुछ मामलों में, संचालन की विशिष्ट विशेषताओं पर निर्भर करता है।

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