हार्ड ड्राइव से RAID सरणियों के साथ काम करने के लिए समाधान का उपयोग बहुत लंबे समय से किया गया है। सामान्य तौर पर, वे कई क्षेत्रों में लोकप्रिय बने रहते हैं, जहां अपेक्षाकृत सस्ती मात्रा, गलती-सहिष्णु सरणी की आवश्यकता होती है। आधुनिक हार्ड ड्राइव के आकार, उनकी गति, साथ ही अन्य कारणों को देखते हुए, सबसे बड़ा व्यावहारिक ब्याज RAID6 (या RAID60, यदि कई डिस्क हैं) की सरणियाँ हैं। लेकिन इस प्रकार के सरणियों का यादृच्छिक लेखन संचालन पर कम प्रदर्शन है और इसके साथ कुछ भी करना आसान नहीं है।
बेशक, इस मामले में हम "कच्ची मात्रा" की गति के बारे में बात कर रहे हैं। वास्तविक जीवन में, फ़ाइल सिस्टम, ऑपरेटिंग सिस्टम, एप्लिकेशन और वह सब जो इसमें जोड़ा जाता है। तो वास्तव में, सब कुछ इतना बुरा नहीं है। हालांकि, उत्पादकता बढ़ाने के लिए हार्डवेयर और सॉफ्टवेयर विधियां भी हैं जो इन उप प्रणालियों से स्वतंत्र हैं। हम कैशिंग प्रौद्योगिकियों के बारे में बात कर रहे हैं जब हार्ड ड्राइव की एक सरणी में काफी तेज फ्लैश मेमोरी ड्राइव जोड़ा जाता है।
विशेष रूप से, Adaptec RAID नियंत्रकों में इस तकनीक को मैक्सचैच कहा जाता है और इसका संस्करण 3.0 ASR-8885Q और ASR-81605ZQ मॉडल में लागू किया गया है। इसका उपयोग करते समय, कई विशेषताओं को ध्यान में रखा जाना चाहिए: प्रति नियंत्रक केवल एक अधिकतम कैश वॉल्यूम की अनुमति है, अधिकतम कैश की मात्रा 1 टीबी है, काम को कैशिंग लिखने के लिए, आपके पास स्वयं मैक्सकोचे की मात्रा का एक सहिष्णु विन्यास होना चाहिए (उदाहरण के लिए, एक दर्पण)। उसी समय, उपयोगकर्ता स्वतंत्र रूप से प्रत्येक तार्किक मात्रा के लिए निर्दिष्ट कर सकता है कि वह वास्तव में अधिकतम कैश के साथ कैसे काम करेगा - पढ़ने और / या लिखने के लिए और किस मोड में।
परीक्षण के लिए, हमने एक सुपरमाइक्रो X10SLM-F मदरबोर्ड, एक इंटेल Xeon E3-1225 v3 प्रोसेसर (4C / 8T, 3.2 GHz) पर आधारित एक सर्वर का उपयोग किया, 32 जीबी रैम डेबियन 9 के तहत चल रहा है।

परीक्षण किए गए ASR-81605ZQ कंट्रोलर में मेमोरी प्रोटेक्शन यूनिट होती है और जब हार्ड डिस्क की एक सरणी के साथ काम करते हैं, तो इसमें सक्रिय रीड और राइट्स कैश होते हैं। याद रखें कि इस मॉडल की आंतरिक मेमोरी 1 जीबी है। 10 KB की क्षमता वाले छह सीगेट ST10000NM0086 SATA हार्ड ड्राइव से 256 KB ब्लॉक के साथ एक RAID6 सरणी बनाई गई थी। आयतन की कुल मात्रा लगभग 36 टीबी थी।
दो जोड़ी उपकरणों ने अधिकतम कैश के लिए SSD के रूप में काम किया: दो सैमसंग 850 EVO दूसरी पीढ़ी के 1 टीबी में एसएटीए इंटरफेस के साथ प्रत्येक और दो सीगेट 1200 एसएसडी (एसटी 400 एफएम 0053) 400 जीबी प्रत्येक के साथ एसएएस इंटरफ़ेस जिसमें से RAID इंटरफ़ेस बनाया गया था। बेशक, पहला मॉडल पहले से ही अप्रचलित माना जा सकता है और न केवल नैतिक रूप से। लेकिन बजट के परिदृश्य को समझने के लिए, यह करेगा। दूसरा औपचारिक रूप से "कॉर्पोरेट" श्रेणी में बेहतर बैठता है, लेकिन इसे आधुनिक मानना भी मुश्किल है। अधिकतम कैश सरणी की सेटिंग्स में, केवल फ्लश और फ़ॉच रेट विकल्प है, जो डिफ़ॉल्ट मान (मध्यम) पर बना हुआ है। संचालन या डिस्क वॉल्यूम के लिए प्राथमिकता का चयन करने का कोई तरीका नहीं है। ध्यान दें कि ड्राइव एक नए राज्य में नहीं थे और इस कॉन्फ़िगरेशन में TRIM का उपयोग नहीं किया गया है।
अधिकतम कैश वॉल्यूम बनाने के बाद, आपको लॉजिकल वॉल्यूम के गुणों में इसका उपयोग करने के लिए मापदंडों को सक्षम करने की आवश्यकता है। कुल तीन विकल्प हैं: कैश पढ़ें, कैश लिखना सक्षम करें और कैश प्रकार लिखें।
फियो उपयोगिता का उपयोग एक परीक्षण उपकरण के रूप में किया गया था, और स्क्रिप्ट के सेट में विभिन्न प्रकार के थ्रेड्स के साथ अनुक्रमिक और यादृच्छिक संचालन शामिल थे। यह ध्यान देने योग्य है कि सिंथेटिक प्रौद्योगिकी कैशिंग प्रौद्योगिकियों वाले उत्पादों के प्रदर्शन का अध्ययन सबसे अच्छा विकल्प के रूप में पहचानना मुश्किल है। वास्तविक कार्यों पर प्रभाव का पर्याप्त रूप से मूल्यांकन करना बेहतर है, क्योंकि कुछ हद तक सिंथेटिक भार कैशिंग के बहुत विचार के विपरीत है। इसके अलावा, इस मामले में हम निम्न-स्तर के संचालन पर विचार करते हैं, और वास्तव में उपयोगकर्ता आमतौर पर फ़ाइलों के साथ व्यवहार करता है और जैसा कि हमने ऊपर कहा था, वॉल्यूम की फ़ाइल प्रणाली, ऑपरेटिंग सिस्टम और सॉफ़्टवेयर स्वयं उनके साथ काम में शामिल हैं। तो, यह सादगीपूर्ण है, इसकी सादगी और पुनरावृत्ति के लिए आकर्षक है, यह अपने आप समझ में नहीं आता है, लेकिन मुख्य रूप से "यह कैसे और कैसे बन गया" तुलना करने के लिए परिदृश्य में कैशिंग एल्गोरिदम और प्रभाव के बजाय किसी न किसी अनुमान के लिए मुश्किल है।
आइए पहले देखें कि हमारा सरणी अपने आप में क्या सक्षम है। याद रखें कि अनुक्रमिक संचालन में, एमबी / एस और देरी (एक लघुगणकीय पैमाने पर) में गति दिलचस्प है, और यादृच्छिक संचालन में, आईओपीएस और देरी भी दिलचस्प हैं।
इस कॉन्फ़िगरेशन की एक सरणी के साथ स्ट्रीम ऑपरेशन की गति 900 एमबी / एस के स्तर पर है। उसी समय, बड़ी संख्या में थ्रेड्स के साथ विलंब 70 एमएस से अधिक नहीं होता है।
हार्ड ड्राइव के लिए, यादृच्छिक संचालन सबसे कठिन भार है, जैसा कि परिणामों से देखा जा सकता है। यदि आप 100 एमएस में विलंबता सीमा निर्धारित करते हैं, तो आप पढ़ने पर लगभग 1100 आईओपीएस प्राप्त कर सकते हैं, और रिकॉर्ड पर, लोड की परवाह किए बिना, सरणी लगभग 300 आईओपीएस दे सकती है। ध्यान दें कि एक ही नियंत्रक पर 36 डिस्क के RAID60 सरणी के साथ, आप अधिक दिलचस्प संख्या प्राप्त कर सकते हैं, 12 हार्ड ड्राइव के तीन ब्लॉकों के कॉन्फ़िगरेशन के लिए धन्यवाद। यह आपको रोटेशन को जोड़ने और रैंडम रीड एंड राइट पर 3500 और 1200 IOPS की गति बढ़ाने की अनुमति देता है, क्रमशः (इस कॉन्फ़िगरेशन में HGST से 2 टीबी पर काफी पुराने एसएएस-हार्ड ड्राइव थे)। इस विकल्प का नकारात्मक पक्ष वॉल्यूम की अतिरिक्त लागत है, क्योंकि प्रति वॉल्यूम दो डिस्क "खो" नहीं हैं, लेकिन दो प्रति समूह हैं।
इसलिए, कैशिंग के बिना, हमारा सरणी यादृच्छिक संचालन के लिए पर्याप्त उदास दिखता है। बेशक, यह वॉल्यूम की "कच्ची" गति है, और कार्यक्रम शायद ही कभी एक विशेष रूप से यादृच्छिक भार देते हैं (याद रखें कि यहां अभी भी हमारे पास बड़ी फ़ाइलों को संग्रहीत करने के लिए एक सरणी है, डेटाबेस नहीं)।

आइए देखें कि एसएसडी इस स्थिति में कैसे मदद कर सकता है। परीक्षणों में, चार उपलब्ध कॉन्फ़िगरेशन विकल्पों का उपयोग किया जाएगा - केवल पढ़ने, पढ़ने और लिखने के माध्यम से लिखें, पढ़ें और लिखें लिखें पीछे, पढ़ें और लिखें तुरंत वापस जाएं:
- WB - वापस सक्षम लिखें। maxCache SSD पर डेटा संग्रहीत करेगा और प्रदर्शन पर बहुत कम या कोई प्रभाव नहीं होने पर इसे हार्ड डिस्क पर वापस लिख देगा। यह डिफ़ॉल्ट नीति है।
- INSTWB - तुरंत राइट सक्षम वापस। डिफ़ॉल्ट नीति के अलावा, अधिकतम कैश फुल-स्ट्राइप के लिए गंदे पेजों को ऑन-द-फ्लाई लिखेगा, अगर एसएसडी पर कमरा है और गंदे पेजों की संख्या सीमा से नीचे है।
- WT - सक्षम के माध्यम से लिखें। इंस्टेंट राइट बैक के समान, लेकिन फुल-स्ट्रिप राइट्स कैश और हार्ड डिस्क दोनों पर जाते हैं और कोई भी गंदा पेज ऑन-द-फ्लाई नहीं बनता है।
चलो SATA ड्राइव से शुरू करते हैं, जो काफी बड़े हैं। चार्ट इस बार अलग होंगे - चार परीक्षण परिदृश्यों में से प्रत्येक के लिए गति और देरी।
अनुक्रमिक रीड ऑपरेशंस पर, सरणी, उपयोग किए गए कैश के प्रकार की परवाह किए बिना स्थिर परिणाम दिखाती है, जो कि अपेक्षित है। इसी समय, वे कैश के बिना एक सरणी से बहुत कम भिन्न होते हैं - सभी समान 900 एमबी / एस और लगभग 70 एमएस की देरी।
अनुक्रमिक लेखन पर दो समूह हैं - केवल पढ़ने के लिए और राइट बैक के साथ वे बिना कैश के एक सरणी के समान परिणाम दिखाते हैं - लगभग 900 एमबी / एस और 100 एमएस तक, और राइट थ्रू और इंस्टेंट राइट बैक 100 एमबी / एस से अधिक नहीं खींच सकते हैं और काफी बड़े के साथ। देरी।
याद रखें कि हार्ड ड्राइव की सरणी को पढ़ने पर अधिकतम लगभग 1100 IOPS दिखाई देते हैं, लेकिन इस सीमा पर देरी पहले ही 100 ms से अधिक होने लगी थी। SATA SSD कैशिंग के साथ, आप लगभग बेहतर परिणाम प्राप्त कर सकते हैं - लगभग 1,500 IOPS और उसी देरी के साथ।
यादृच्छिक रिकॉर्डिंग संचालन में, हम सबसे बड़ा प्रभाव देखते हैं - लोड क्षमता में एक साथ वृद्धि के साथ संकेतक में ढाई गुना वृद्धि। कैश का उपयोग करते समय, आप कई थ्रेड्स के साथ दो से तीन बार 100 एमएस तक की देरी कर सकते हैं।
इस कॉन्फ़िगरेशन के बारे में सामान्य निष्कर्ष यह है: यह अनुक्रमिक पढ़ने में हस्तक्षेप नहीं करता है, कुछ कॉन्फ़िगरेशन में अनुक्रमिक लेखन में हस्तक्षेप नहीं करता है, यादृच्छिक रीड पर लगभग 35% जोड़ता है, और यादृच्छिक लेखन पर प्रदर्शन को कई बार बढ़ाता है।
अब आइए SSD ड्राइव की दूसरी जोड़ी के कैशिंग वॉल्यूम के एक संस्करण को देखें। ध्यान दें कि हमारे मामले में उनके पास काफी कम मात्रा है, एक 12 जीबी / एस एसएएस इंटरफ़ेस और उच्च गति विशेषताओं (निर्माता द्वारा घोषित)।
अनुक्रमिक पढ़ने पर, परिणाम पहले दिए गए उन लोगों से भिन्न नहीं होते हैं, जो काफी अपेक्षित हैं।
अनुक्रमिक रिकॉर्डिंग पर, अब हमारे पास तीन समूह हैं - राइट थ्रू कैश बैक के बारे में राइट थ्रू बैक के बारे में राइट-अप शो के माध्यम से राइट-अप के बारे में राइट-टू-बैक दिखाता है और केवल राइट बैक कैश के बिना किसी सरणी से अलग नहीं है। प्रतीक्षा समय के साथ भी यही स्थिति है।
लेकिन रैंडम रीडिंग पर, इंस्टेंट राइट बैक 2500 आईओपीएस तक पहुंचते हुए सबसे अच्छा साबित हुआ, जबकि बाकी कॉन्फ़िगरेशन केवल 1800 आईओपीएस तक बढ़ सकते हैं। ध्यान दें कि लेखन कैशिंग के साथ सभी विकल्प "साफ" सरणी की तुलना में काफी तेज हैं। इसी समय, बड़ी संख्या में थ्रेड्स के साथ प्रतीक्षा समय 100 एमएस से अधिक नहीं होता है।
रैंडम रीड ऑपरेशन्स पर, इंस्टेंट राइट बैक लगभग 2,000 IOPS दिखाते हुए फिर से आगे आता है। दूसरे समूह में 1000 IOPS के साथ राइट थ्रू और राइट बैक कॉन्फ़िगरेशन शामिल हैं।
अंतिम प्रतिभागी, जो कैश को लिखने के संचालन के लिए उपयोग नहीं करता है, लगभग 300 IOPS दिखाता है, साथ ही साथ हार्ड ड्राइव की एक सरणी भी।
शायद इस कैश वॉल्यूम के लिए सबसे दिलचस्प विकल्प इंस्टेंट राइट बैक है। यह सच है, यह पढ़ने के संचालन में स्ट्रीमिंग में धीमी है। अधिकतम कैश वॉल्यूम के लिए RAID10 कॉन्फ़िगरेशन का उपयोग करके इसे ठीक करना संभव हो सकता है, लेकिन यह पहले से ही भंडारण बाड़े में चार खण्डों का खर्च उठाएगा।
सामान्य तौर पर, हम यह कह सकते हैं कि मैक्सचैच तकनीक का उपयोग वास्तव में हार्ड ड्राइव से सरणियों के प्रदर्शन को बढ़ाने के लिए उपयोगी हो सकता है, खासकर अगर लोड में बहुत सारे यादृच्छिक संचालन होते हैं। हालांकि, यह विचार करना अभी भी असंभव है कि यह डेस्कटॉप कंप्यूटर या वर्कस्टेशन में एसएसडी के साथ हार्ड ड्राइव को बदलने के रूप में प्रभावी है।
परीक्षणों में नोट किया गया सबसे बड़ा प्रभाव यादृच्छिक संचालन की गति में 2-3 गुना की वृद्धि है। बेशक, सबसे तेज़ एसएसडी का उपयोग नहीं किया गया था, जो कुछ परीक्षणों में स्पष्ट रूप से परिलक्षित हुआ था (उदाहरण के लिए, मोड के माध्यम से लिखें में अनुक्रमिक रिकॉर्डिंग)। इसके अलावा, मैं एक बार फिर इस तथ्य पर ध्यान आकर्षित करना चाहूंगा कि कैशिंग कॉन्फ़िगरेशन का विकल्प परिणामों को महत्वपूर्ण रूप से प्रभावित करता है। यह देखते हुए कि डेटा हानि के बिना सेटिंग बदलना "मक्खी पर" संभव है, यह अपने कार्यों पर सभी विकल्पों की जांच करने और सबसे अच्छा विकल्प चुनने के लायक है।