स्टोरेज की अविश्वसनीय विशेषताएं

छवि



सहकर्मियों, परिचालन वर्चुअलाइजेशन वातावरण और संबंधित प्रणालियों में व्यावहारिक अनुभव साझा करने की इच्छा थी।



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



VMware क्यों? यह सरल है, मैं इस वर्चुअलाइजेशन वातावरण में एक विशेषज्ञ हूं, मेरे पास वीसीपी 5 की स्थिति है। लंबे समय तक उन्होंने बड़े ग्राहकों के साथ काम किया और उनकी प्रणालियों तक पहुंच बनाई।



तो, चलो स्रोत से शुरू करते हैं। मेरी कोशिश होगी कि मैं पाठकों को अपशब्दों और जटिल गणनाओं से परेशान न करूं। हर कोई क्षेत्र का विशेषज्ञ नहीं है, और कई काम आ सकते हैं।



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



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

डिस्क संसाधन जो कंटेनरों में ऑपरेटिंग सिस्टम के लिए हाइपरविजर द्वारा प्रदान किए जाते हैं, वे आमतौर पर हाइपरविजर के डिस्क संसाधनों का ही उपयोग करते हैं। ये स्थानीय भौतिक सर्वर के डिस्क सिस्टम या बाहरी भंडारण प्रणालियों से जुड़े डिस्क संसाधन हो सकते हैं। यहां कनेक्शन प्रोटोकॉल माध्यमिक है और इस पर विचार नहीं किया जाएगा।



सभी डिस्क सिस्टम, वास्तव में, 3 विशेषताओं द्वारा विशेषता हैं:

1. डेटा चैनल की चौड़ाई

2. इनपुट / आउटपुट संचालन की अधिकतम संख्या

3. अधिकतम स्वीकार्य भार पर औसत देरी का मूल्य



1. चैनल की चौड़ाई आमतौर पर स्टोरेज सिस्टम कनेक्शन इंटरफेस और सबसिस्टम के प्रदर्शन से निर्धारित होती है। व्यवहार में, चौड़ाई में औसत भार बहुत कम है और शायद ही कभी 50 से अधिक हो ... 100 मेगाबाइट प्रति सेकंड, यहां तक ​​कि 20-30 मिलियन सर्वर के समूह के लिए। बेशक, विशेष कार्य हैं, लेकिन हम अब एक अस्पताल में औसत तापमान के बारे में बात कर रहे हैं। ऐसी संख्याओं के लिए केवल अंक का अभ्यास करें। स्वाभाविक रूप से, शिखर भार हैं। ऐसे क्षणों में, बैंडविड्थ पर्याप्त नहीं हो सकता है, इसलिए, जब आपके बुनियादी ढांचे को आकार (योजना) करते हैं, तो आपको अधिकतम संभव भार पर ध्यान केंद्रित करने की आवश्यकता होती है।



2. I / O संचालन को एकल-थ्रेडेड और बहु-थ्रेडेड में विभाजित किया जा सकता है। इस तथ्य को देखते हुए कि आधुनिक ऑपरेटिंग सिस्टम और अनुप्रयोगों ने पूरी तरह से सीखा है कि मल्टीथ्रेड को कैसे काम करना है, हम पूरे लोड को मल्टीथ्रेडेड के रूप में मानेंगे। इसके अलावा I / O संचालन को अनुक्रमिक और यादृच्छिक में विभाजित किया जा सकता है। यादृच्छिक अभिगम के साथ, सब कुछ स्पष्ट है, लेकिन अनुक्रमिक पहुंच के साथ? बड़ी संख्या में वर्चुअल मशीनों से लोड को देखते हुए, और यहां तक ​​कि प्रत्येक मशीन से बहु-थ्रेडेड होने पर, हम डेटा तक लगभग पूरी तरह से यादृच्छिक पहुंच के साथ समाप्त हो जाएंगे। बेशक, अनुक्रमिक पहुंच और थ्रेड्स की एक छोटी संख्या के साथ विशिष्ट मामलों के वेरिएंट संभव हैं, लेकिन फिर से, हम औसत तापमान पर विचार कर रहे हैं। अंत में, I / O संचालन को पढ़ने और लिखने में विभाजित किया जा सकता है। क्लासिक मॉडल हमें 70% रीड ऑपरेशंस और 30% राइट ऑपरेशन के बारे में बताता है। शायद आभासी मशीनों के अंदर अनुप्रयोगों के लिए यही मामला है। और आखिरकार, कई जब परीक्षण और साइज़िंग इन आँकड़ों को भंडारण प्रणालियों के परीक्षण के आधार के रूप में लेते हैं। और उनसे बहुत बड़ी गलती हो जाती है। लोग एप्लिकेशन के लिए एक्सेस के आंकड़े और डिस्क सबसिस्टम के लिए एक्सेस के आंकड़ों को भ्रमित करते हैं। यह एक ही बात नहीं है। व्यवहार में, डिस्क सिस्टम के लिए निम्न विभाजन देखा जाता है: लगभग 30% रीड ऑपरेशन और 70% राइट ऑपरेशन।

छवि

ऐसा अंतर क्यों है! यह विभिन्न स्तरों के कैश के काम के कारण है। कैश एप्लिकेशन में ही हो सकता है, वर्चुअल मशीन के ऑपरेटिंग सिस्टम में, हाइपरविजर में, कंट्रोलर में, डिस्क ऐरे में और अंत में डिस्क में ही। नतीजतन, कुछ रीड ऑपरेशंस कुछ स्तर पर कैश में आते हैं और भौतिक डिस्क तक नहीं पहुंचते हैं। और लिखने के ऑपरेशन हमेशा पहुंचते हैं। स्टोरेज सिस्टम को साइज़ करते समय इसे स्पष्ट रूप से याद और समझना चाहिए।



3. भंडारण प्रणाली की देरी, या विलंबता, वह समय है जिसके दौरान अतिथि ऑपरेटिंग सिस्टम को अपनी डिस्क से अनुरोधित डेटा प्राप्त होता है। योजनाबद्ध और सरलीकृत, आवेदन से अनुरोध इस प्रकार है: एप्लिकेशन-ऑपरेटिंग सिस्टम-वर्चुअल मशीन-हाइपरवाइजर-स्टोरेज सिस्टम-हाइपरवाइजर-वर्चुअल मशीन-ऑपरेटिंग सिस्टम-एप्लीकेशन। वास्तव में, 2-3 बार अधिक मध्यवर्ती श्रृंखला लिंक हैं, लेकिन चलो गहरे तकनीकी विवरण को छोड़ देते हैं।

इस श्रृंखला में सबसे दिलचस्प क्या है? सबसे पहले, भंडारण प्रणाली की प्रतिक्रिया और वर्चुअल मशीन के साथ हाइपरविजर का काम। भंडारण प्रणाली के साथ सब कुछ स्पष्ट प्रतीत होता है। यदि हमारे पास SSD डिस्क हैं, तो वांछित सेल से डेटा पढ़ने में समय व्यतीत होता है, और वास्तव में यही है। 1 एमएस के आदेश पर विलंबता न्यूनतम है। यदि हमारे पास एसएएस 10k या 15k है, तो डेटा एक्सेस समय में कई कारक शामिल होंगे: वर्तमान कतार की गहराई, अगले ट्रैक के सापेक्ष सिर की स्थिति, डिस्क प्लेट के कोणीय स्थिति सिर के सापेक्ष, आदि। सिर को तैनात किया जाता है, डिस्क के चालू होने के इंतजार में जब आवश्यक डेटा उसके अधीन होता है, एक रीड या राइट ऑपरेशन करता है और एक नए स्थान पर उड़ान भरता है। स्मार्ट नियंत्रक डिस्क पर डेटा तक पहुंच की एक पंक्ति को संग्रहीत करता है, सिर के उड़ान पथ के आधार पर रीडिंग अनुक्रम को समायोजित करता है, कतार में स्थितियों को स्वैप करता है, और काम को अनुकूलित करने की कोशिश करता है। यदि ड्राइव RAID सरणी में हैं, तो पहुंच तर्क और भी जटिल हो जाता है। उदाहरण के लिए, एक दर्पण में 2 हिस्सों पर डेटा की 2 प्रतियां होती हैं, इसलिए दर्पण के दो हिस्सों के साथ अलग-अलग स्थानों से अलग-अलग डेटा क्यों नहीं पढ़ा जाता है? नियंत्रक अन्य प्रकार के RAID के साथ समान व्यवहार करते हैं। परिणामस्वरूप, उच्च गति वाले एसएएस डिस्क के लिए, मानक विलंबता 3-4 एमएस है। धीमी गति वाले भाइयों एनएल-एसएएस और एसएटीए के लिए, यह संकेतक 9 एमएस तक बिगड़ जाता है।



अब चेन लिंक हाइपरविजर-वर्चुअल मशीन पर विचार करें। वर्चुअल मशीनों में, हार्ड डिस्क कंट्रोलर भी वर्चुअल होते हैं, आमतौर पर एससीएसआई डिवाइस। और अतिथि ऑपरेटिंग सिस्टम ISCSI कमांड के साथ, अपने ड्राइव के साथ भी संचार करता है। जब कोई डिस्क एक्सेस की जाती है, तो वर्चुअल मशीन हाइपरविज़र द्वारा ब्लॉक की जाती है और काम नहीं करती है। इस समय, हाइपरविजर वर्चुअल कंट्रोलर के SCSI कमांड्स को स्वीकार करता है और फिर वर्चुअल मशीन को फिर से शुरू करता है। अब हाइपरविजर स्वयं वर्चुअल मशीन (वर्चुअल मशीन की डिस्क फ़ाइल) की डेटा फ़ाइल तक पहुँचता है और इसके साथ आवश्यक संचालन करता है। उसके बाद, हाइपरविजर फिर से वर्चुअल मशीन को रोकता है, फिर से वर्चुअल कंट्रोलर के लिए SCSI कमांड बनाता है और वर्चुअल मशीन के डिस्क की ओर से, अतिथि ऑपरेटिंग सिस्टम के हालिया अनुरोध का उत्तर देता है। इन I / O जालसाजी कार्यों के लिए भौतिक सर्वर के केंद्रीय प्रोसेसर के लगभग 150-700 घड़ी चक्रों की आवश्यकता होती है, अर्थात, वे लगभग 0.16 माइक्रोसेकंड लेते हैं। एक तरफ इतना नहीं, दूसरी तरफ? यदि मशीन में I / O सक्रिय है तो क्या होगा? मान लीजिए 50,000 आईओपीएस। और क्या होगा अगर वह नेटवर्क के साथ तीव्रता से संचार करती है? हम यहां प्रोसेसर कैश से डेटा की संभावित हानि को जोड़ते हैं, जो हाइपरविजर द्वारा नकली अनुरोधों के इंतजार के दौरान बदल सकता है। या कुछ अच्छा है, निष्पादन कोर बदल गया है। परिणामस्वरूप, हमारे पास वर्चुअल मशीन के समग्र प्रदर्शन में महत्वपूर्ण कमी है, जो कि अप्रिय है। व्यवहार में, मुझे नेटवर्क और डिस्क सिस्टम पर वर्चुअल मशीन के हाइपरएक्टिव I / O के प्रभाव के कारण नाममात्र मूल्य के 40% तक के प्रदर्शन में गिरावट आई।

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



लेकिन वापस पढ़ने और लिखने के संचालन के साथ-साथ विभिन्न RAID स्तरों पर उनके साथ काम करने की विशेषताएं। यदि हम 100% प्रदर्शन के रूप में स्ट्राइप लेते हैं, तो निम्न प्रकार के सरणियों में संकेतक हैं:



दक्षता प्रकार का ऑपरेशन प्रकार

पढ़ना

RAID0 100%

RAID10 100%

RAID5 ≈90%

RAID6 ≈90%

अभिलेख

RAID0 100%

RAID10 50%

RAID5 25%

RAID6 16%



जैसा कि हम देख सकते हैं, RAID5 और RAID6 में भारी प्रदर्शन हानि है। यहां हमें यह नहीं भूलना चाहिए कि I / O ऑपरेशन डिस्क सिस्टम को एक साथ लोड करते हैं, और उन्हें अलग से नहीं पढ़ा जा सकता है। उदाहरण: RAID0 मोड में, एक काल्पनिक प्रणाली में 10,000 IOPS का प्रदर्शन होता है। हम RAID6 को इकट्ठा करते हैं, वर्चुअलाइजेशन पर्यावरण के क्लासिक लोड को लोड करते हैं, 30% पढ़ते हैं और 70% लिखते हैं। हमें एक साथ 1550 IOPS लिखता है 630 IOPS रीड मिलते हैं। बहुत नहीं, है ना? बेशक, स्टोरेज सिस्टम और कंट्रोलर्स में राइट-बैक कैश की उपस्थिति प्रदर्शन को थोड़ा बढ़ा देती है, लेकिन हर चीज की सीमा होती है। पढ़ें IOPS सही होना चाहिए



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



मैं उस स्मार्ट स्टोरेज सिस्टम को जोड़ना चाहूंगा जैसे कि डेल कम्पेलिटि SC800, जिसमें विभिन्न कस्टम टियर स्तरों के आधार पर डेटा स्टोरेज के लिए बहुत ही लचीला दृष्टिकोण है, प्रकृति में भी होता है। उदाहरण के लिए, यह सिस्टम केवल RAID10 मोड में SCL SSD डिस्क पर नया डेटा लिख ​​सकता है, जिसके बाद, पृष्ठभूमि में, यह इन ब्लॉकों तक पहुंच के आंकड़ों के आधार पर डेटा ब्लॉक को अन्य प्रकार के डिस्क और RAID स्तरों पर पुनर्वितरित करेगा। ये सिस्टम काफी महंगे हैं और एक विशिष्ट उपभोक्ता के उद्देश्य से हैं।



सारांशित करते हुए, यह निम्नलिखित बिंदुओं को निर्धारित करता है:

- वर्चुअलाइजेशन भंडारण न्यूनतम विलंबता के साथ तेज और विश्वसनीय होना चाहिए।

- स्टोरेज सिस्टम के लिए वर्चुअलाइजेशन वातावरण डिजाइन करते समय, कुल हार्डवेयर बजट का लगभग 40% भाग रखना आवश्यक है

- भंडारण प्रणाली को सामान्य रूप से आकार देने पर, यह RAID10 पर ध्यान देने योग्य है

- बैकअप दुनिया को बचाएगा!



All Articles