लॉग और डेटा ड्राइव में अलग-अलग डेटा एक्सेस पैटर्न होते हैं जो ड्राइव साझा करते समय एक दूसरे के साथ (कम से कम सिद्धांत में) टकराव में होते हैं।
लॉग राइट्स
लॉग एक्सेस में बहुत बड़ी संख्या में छोटे अनुक्रमिक लिखते हैं। कुछ हद तक सरल रूप से, डीबी लॉग रिंग बफ़र होते हैं, जिसमें डिस्क पर विशेष स्थानों के लिए डेटा आइटम लिखने के निर्देशों की एक सूची होती है। एक्सेस पैटर्न में बड़ी संख्या में छोटे अनुक्रमिक शामिल होते हैं जिन्हें पूरा करने की गारंटी दी जानी चाहिए - इसलिए उन्हें डिस्क से लिखा जाता है।
आदर्श रूप से, लॉग एक शांत पर होना चाहिए (यानी किसी और चीज के साथ साझा नहीं) RAID-1 या RAID-10 मात्रा। तार्किक रूप से, आप इस प्रक्रिया को मुख्य DBMS के रूप में लॉग एंट्री और एक या एक से अधिक लॉग रीडर थ्रेड्स के रूप में देख सकते हैं, जो लॉग का उपभोग करते हैं और डेटा डिस्क में परिवर्तन लिखते हैं (व्यवहार में, प्रक्रिया को अनुकूलित किया जाता है ताकि डेटा लिखा जाए जहां संभव हो तुरंत बाहर)। यदि लॉग डिस्क पर अन्य ट्रैफ़िक है, तो इन अन्य एक्सेस द्वारा हेड्स को इधर-उधर ले जाया जाता है और क्रमिक लॉग राइट्स यादृच्छिक लॉग राइट्स बन जाते हैं। ये बहुत धीमे हैं, इसलिए व्यस्त लॉग डिस्क एक हॉटस्पॉट बना सकती है जो पूरे सिस्टम पर एक अड़चन के रूप में कार्य करता है।
डेटा लिखता है
(अपडेटेड) लॉग राइट डिस्क के लिए प्रतिबद्ध होना चाहिए (एक स्थिर मीडिया के रूप में संदर्भित) एक लेनदेन के लिए वैध और प्रतिबद्ध होने के लिए पात्र है। कोई इसे तार्किक रूप से लॉग एंट्री के रूप में देख सकता है और फिर एक अतुल्यकालिक प्रक्रिया द्वारा डेटा पेज को डिस्क पर लिखने के निर्देश के रूप में उपयोग किया जा सकता है। व्यवहार में डिस्क पेज वास्तव में तैयार किए जाते हैं और लॉग प्रविष्टि किए जाने के समय बफ़र किया जाता है, लेकिन लेनदेन के लिए प्रतिबद्ध होने के लिए उन्हें तुरंत लिखे जाने की आवश्यकता नहीं है। डिस्क बफ़र्स को स्थिर मीडिया (डिस्क) को लेज़र राइटर प्रक्रिया द्वारा लिखा जाता है (यह इंगित करने के लिए पॉल रान्डल के लिए धन्यवाद), जो यह टेक्नेट लेख थोड़ा और अधिक विस्तार से चर्चा करता है।
यह एक भारी यादृच्छिक अभिगम पैटर्न है, इसलिए लॉग के साथ समान भौतिक डिस्क साझा करना सिस्टम प्रदर्शन पर एक कृत्रिम अड़चन पैदा कर सकता है। लेन-देन की प्रतिबद्धताओं के लिए लॉग प्रविष्टियों को लिखा जाना चाहिए, इसलिए यादृच्छिक प्रक्रिया इस प्रक्रिया को धीमा कर रही है (यादृच्छिक I / O अनुक्रमिक लॉग I / O की तुलना में बहुत धीमी है) लॉग को क्रमिक से यादृच्छिक एक्सेस डिवाइस में बदल देगा। यह एक व्यस्त प्रणाली पर एक गंभीर प्रदर्शन अड़चन पैदा करता है और इसे टाला जाना चाहिए। लॉग वॉल्यूम के साथ अस्थायी क्षेत्रों को साझा करते समय यही बात लागू होती है।
कैशिंग की भूमिका
सैन नियंत्रकों में बड़े रैम कैश होते हैं, जो कुछ हद तक यादृच्छिक अभिगम यातायात को अवशोषित कर सकते हैं। हालाँकि, लेन-देन की अखंडता के लिए यह आवश्यक है कि डिस्क डीबीएमएस से लिखता है जिसे पूरा करने की गारंटी है। जब कोई नियंत्रक राइट-बैक कैशिंग का उपयोग करने के लिए सेट किया जाता है, तो गंदे ब्लॉक कैश किए जाते हैं और I / O कॉल को होस्ट के रूप में पूर्ण होने की सूचना दी जाती है।
यह बहुत सारी विवाद समस्याओं को सुलझा सकता है क्योंकि कैश बहुत सारे I / O को अवशोषित कर सकता है जो अन्यथा भौतिक डिस्क पर चले जाएंगे। यह RAID-5 के लिए पठन पढ़ता और लिखता है को अनुकूलित कर सकता है, जो RAID-5 संस्करणों के प्रदर्शन पर प्रभाव को कम करता है।
ये वो विशेषताएं हैं जो 'लेट द सैन डील इट विद' स्कूल ऑफ़ थिंक, अलथौग इस दृश्य की कुछ सीमाएँ हैं:
राइट-बैक कैशिंग में अभी भी विफलता मोड हैं जो डेटा खो सकते हैं, और नियंत्रक ने डीबीएमएस को फाइबर्ड किया है, यह कहते हुए ब्लॉक को डिस्क से बाहर लिखा गया है जहां वास्तव में वे नहीं हैं। इस कारण से, आप ट्रांसेक्शनल एप्लिकेशन के लिए राइट-बैक कैशिंग का उपयोग नहीं करना चाह सकते हैं, मिशन-क्रिटिकल या फाइनेंशियल डेटा रखने के लिए कुछ ऐसा जहां डेटा अखंडता की समस्याएं व्यवसाय के लिए गंभीर परिणाम हो सकती हैं।
SQL सर्वर (विशेष रूप से) I / O का उपयोग उस मोड में करता है जहाँ एक ध्वज (जिसे FUA या फ़ोर्स्ड अपडेट एक्सेस कहा जाता है) कॉल रिटर्न्स से पहले डिस्क पर भौतिक लिखता है। Microsoft के पास एक प्रमाणन कार्यक्रम है और कई SAN विक्रेता हार्डवेयर का उत्पादन करते हैं जो इन शब्दार्थों ( यहाँ संक्षेप में प्रस्तुत की गई आवश्यकताओं ) का सम्मान करते हैं । इस स्थिति में कैश की कोई भी राशि डिस्क राइट्स को ऑप्टिमाइज़ नहीं करेगी, जिसका अर्थ है कि लॉग ट्रैफ़िक व्यस्त साझा वॉल्यूम पर बैठे होने पर थ्रैश होगा ।
यदि एप्लिकेशन बहुत सारे डिस्क ट्रैफ़िक उत्पन्न करता है, तो इसका कार्य सेट कैश से अधिक हो सकता है, जो लेखन विवाद समस्याओं का कारण भी होगा।
यदि SAN को अन्य एप्लिकेशन (विशेष रूप से समान डिस्क वॉल्यूम पर) के साथ साझा किया जाता है, तो अन्य एप्लिकेशन से ट्रैफ़िक लॉग की अड़चनें उत्पन्न कर सकता है।
कुछ एप्लिकेशन (जैसे डेटा वेयरहाउस) बड़े क्षणिक लोड स्पाइक उत्पन्न करते हैं जो उन्हें SAN पर काफी असामाजिक बनाते हैं।
यहां तक कि एक बड़े SAN पर अलग लॉग वॉल्यूम अभी भी अनुशंसित अभ्यास हैं। आप हल्के से इस्तेमाल किए गए एप्लिकेशन पर लेआउट के बारे में चिंता न करें। वास्तव में बड़े अनुप्रयोगों पर, आपको कई SAN नियंत्रकों से भी लाभ मिल सकता है। Oracle डेटा वेयरहाउस लेआउट केस स्टडीज़ की एक श्रृंखला प्रकाशित करता है जहाँ कुछ बड़े कॉन्फ़िगरेशन में कई नियंत्रक होते हैं।
प्रदर्शन के लिए जिम्मेदारी जहां यह है
बड़े वॉल्यूम के साथ कुछ पर या जहां प्रदर्शन एक मुद्दा हो सकता है, सैन टीम को आवेदन के प्रदर्शन के लिए जवाबदेह बनाते हैं। यदि वे कॉन्फ़िगरेशन के लिए आपकी सिफारिशों को अनदेखा करने जा रहे हैं, तो सुनिश्चित करें कि प्रबंधन को इस बारे में पता है और सिस्टम के प्रदर्शन की जिम्मेदारी उपयुक्त स्थान पर है। विशेष रूप से, I / O वेट या पेज लैक वेट या स्वीकार्य एप्लिकेशन I / O SLA के जैसे प्रमुख DB प्रदर्शन आँकड़ों के लिए स्वीकार्य दिशानिर्देश स्थापित करें।
ध्यान दें कि कई टीमों में प्रदर्शन विभाजन के लिए जिम्मेदारी होने से उंगली-बिंदु के लिए एक प्रोत्साहन पैदा होता है और दूसरी टीम को हिरन पास होता है। यह एक ज्ञात प्रबंधन विरोधी पैटर्न है और उन मुद्दों के लिए एक सूत्र है जो महीनों या वर्षों तक बिना हल किए खींचे जाते हैं। आदर्श रूप से, एप्लिकेशन, डेटाबेस और SAN कॉन्फ़िगरेशन परिवर्तनों को निर्दिष्ट करने के लिए प्राधिकरण के साथ एक एकल वास्तुकार होना चाहिए।
इसके अलावा, लोड के तहत सिस्टम को बेंचमार्क करें। यदि आप इसे व्यवस्थित कर सकते हैं, तो ईबे पर सेकंडहैंड सर्वर और डायरेक्ट-अटैच एरेज़ काफी सस्ते में खरीदे जा सकते हैं। यदि आप एक या दो डिस्क सरणियों के साथ एक बॉक्स सेट करते हैं, तो आप भौतिक डिस्क कॉन्फ़िगरेशन के साथ फ्रिग कर सकते हैं और प्रदर्शन पर प्रभाव को माप सकते हैं।
एक उदाहरण के रूप में, मैंने एक बड़े सैन (एक आईबीएम शार्क) पर चलने वाले एप्लिकेशन और एक दो-सॉकेट बॉक्स के बीच एक सीधा अटैच U320 सरणी के साथ तुलना की है। इस मामले में, eBay से खरीदे गए £ 3,000 के मूल्य के मूल्य में दो के एक कारक द्वारा £ 1M हाई-एंड SAN को अलग कर दिया गया - लगभग बराबर CPU और मेमोरी कॉन्फ़िगरेशन के साथ एक होस्ट पर।
इस विशेष घटना से, यह तर्क दिया जा सकता है कि इस तरह के आस-पास कुछ होने के कारण SAN प्रशासकों को ईमानदार रखने का एक बहुत अच्छा तरीका है।