यदि आपके पास दो भौतिक ड्राइव हैं:
RAID0: तेज़ लेकिन कोई अतिरेक नहीं। किसी भी ड्राइव की त्रुटि पूरे सरणी को मार देगी। कुछ लोगों ने RAID0 (यानी MSSQL के तहत टेम्पर्डब) पर अस्थायी भंडारण रखा, लेकिन मैं अभी भी इस खतरनाक पर विचार करूंगा क्योंकि आप किसी भी सार्थक डेटा को नहीं खोएंगे यदि आपके ऊपर सरणी गिर जाएगी, तो स्थिति में सुधार होने तक इसका सर्वर आउटेज रहेगा।
RAID1: यदि आपके पास दो ड्राइव हैं तो इसके लिए जाएं। कोई लेखन प्रदर्शन लाभ नहीं है, हालांकि आप एक अच्छे नियंत्रक के साथ एक पढ़ने के प्रदर्शन में वृद्धि देख सकते हैं। RAID1 की प्रमुख विशेषता एक ड्राइव के मरने से बच रही है।
यदि आपके पास तीन भौतिक ड्राइव हैं:
यदि समर्थित हो तो आपके विकल्प RAID5, गैर-मानक 3-ड्राइव RAID10 (या RAID1E के रूप में आईबीएम नियंत्रक इसे देखें) हैं। आप निश्चित रूप से RAID1 का उपयोग कर सकते हैं और अतिरिक्त ड्राइव को एक स्पेयर के रूप में रख सकते हैं जब दूसरों में से एक विफल हो जाता है, लेकिन आपको किसी भी तरह से एक मिशन महत्वपूर्ण वातावरण में पुर्जों को रखना चाहिए ताकि यह बिना कहे चला जाए।
RAID5 RAID10 की तुलना में अधिक स्थान प्रदान करता है (एक-और-आधे के बजाय दो ड्राइव लायक) लेकिन एक संभावित लेखन प्रदर्शन समस्या है जैसा कि प्रत्येक ब्लॉक के लिए लिखा है कि नियंत्रक को समता ब्लॉक को पढ़ने, इसे अपडेट करने और इसे वापस लिखने की आवश्यकता है। डेटाबेस लेखन के लिए यह लेखन प्रदर्शन समस्या दोगुनी हो सकती है क्योंकि हर अपडेट के लिए कम से कम दो लिखते हैं: एक लेनदेन लॉग के लिए और एक वास्तविक डेटा क्षेत्रों के लिए। इन दिनों अंतरिक्ष सस्ता होने के कारण मैं बेहतर लेखन प्रदर्शन के लिए समर्थित 3-ड्राइव RAID10 की सिफारिश करूंगा। लिनक्स का सॉफ्टवेयर RAID इसे प्रदान करता है, जैसा कि कई आईबीएम नियंत्रक (वे इसे RAID1E कहते हैं) करते हैं। आप इसे अन्य नामों के तहत भी देख सकते हैं क्योंकि इसे एक मानक व्यवस्था नहीं माना जाता है, इसलिए इसका मानक नाम नहीं है।
R5 और R10-over-three दोनों एक ही अतिरेक देते हैं (कोई भी ड्राइव एक समय में विफल हो सकती है और सरणी बच जाएगी) और समान रीड परफॉर्मेंस मेट्रिक्स (दो-ड्राइव वाले RAID0 सरणी के समान)।
यदि आपके पास चार भौतिक ड्राइव हैं:
यदि केवल एक सरणी बनाते हैं तो दो विकल्प हैं ("गर्म स्पेयर के साथ" भिन्नता को अनदेखा करते हुए): RAID6 और "पारंपरिक" RAID10 (RAID1 का एक RAID0)।
दोनों एक ही स्थान (आपके चार में से दो ड्राइव) देते हैं। RAID6 बेहतर अतिरेक देता है क्योंकि कोई भी दो ड्राइव एक समय में विफल हो सकते हैं, जैसा कि RAID10 केवल छह संभव दो-ड्राइव-गई स्थितियों में से चार को बचा सकता है। दोनों simialr रीड परफॉर्मेंस देते हैं, लेकिन RAID6 में RAID5 के समान एक राइट परफॉर्मेंस इश्यू है (एक अच्छे कंट्रोलर पर भी, हालांकि यह खराब कंट्रोलर पर RAID5 की तुलना में धीमा हो सकता है या सॉफ्टवेयर RAID OS के I / O कंट्रोल क्षमताओं के आधार पर। RAID10 आमतौर पर प्रदर्शन के कारणों के लिए डेटाबेस के लिए प्राथमिकता दी जाती है - यदि आपको अतिरिक्त अतिरेक की आवश्यकता है तो आप छह ड्राइव का उपयोग कर सकते हैं और एक RAID0 या 2 3-ड्राइव RAID1s कर सकते हैं।
एक बार जब आपके पास चार या अधिक ड्राइव होते हैं, हालांकि चीजें अधिक दिलचस्प होती हैं, क्योंकि आपके पास RAID1 सरणियों की एक अलग जोड़ी हो सकती है। यह आपके डेटा स्टोर को एक सरणी पर रखने और दूसरे पर लेनदेन लॉग द्वारा कताई-डिस्क के साथ महत्वपूर्ण प्रदर्शन लाभ प्रदान कर सकता है - यह कुछ मामलों में सिर के आंदोलनों को काफी कम कर सकता है और "यादृच्छिक" पहुंच के कारण कई बार वास्तविक प्रदर्शन हत्यारा है। एक डेटा वेयरहाउस के लिए, इसका अर्थ है कि यह बहुत कम अपेक्षाकृत कुछ लिखता है, डेटा फ़ाइलों से लेनदेन लॉग को अधिक सीमित लाभ हो सकता है, लेकिन आप अभी भी कई सरणियों पर विचार कर सकते हैं और इसके बजाय संभावित बेहतर प्रदर्शन के लिए अपने डेटा को उन पर विभाजित करना चाहते हैं। ।
यदि आपके पास चार से अधिक ड्राइव हैं:
आप यहां विकल्प खुले हो जाते हैं और यह वास्तव में इस बात पर निर्भर करता है कि आपका डेटा क्या है और आपके अपेक्षित अपडेट / रीड लोड / पैटर्न क्या हैं। उदाहरण के लिए, जब हमारी सेवाएं 12 ~ 70Gb ड्राइव पर चलती हैं:
- सिस्टम क्षेत्रों (OS, SQL Server (MSSQL हमारे मामले में), स्वैप, टेम्पर्डब) के लिए RAID10 के रूप में 4x।
- डेटा फ़ाइलों के लिए RAID10 के रूप में 4x
- लेनदेन लॉग के लिए RAID10 के रूप में 4x
Tempdb को सिस्टम ऐरे पर रखा जाता है। हम इसे अन्य दो सरणियों में स्थानांतरित कर सकते हैं और सिर्फ RAID1 में 2 ड्राइव के रूप में सिस्टम ऐरे को चला सकते हैं क्योंकि अतिरिक्त गति को सिटेम चंक्स के लिए बहुत आवश्यक नहीं है (क्योंकि यह बूट के दौरान वास्तव में महत्वपूर्ण है या स्वैप करते समय और हम यह सुनिश्चित करते हैं कि वहाँ है इसके लिए पर्याप्त RAM को स्वैप करने की आवश्यकता नहीं है), लेकिन जिस तरह से हम मशीनों के उस सेट के लिए होस्टिंग प्रदाता को भुगतान करते हैं, वह दो ड्राइव को छोड़ने के लिए हमें किसी भी कम खर्च नहीं करेगा। ऑफ-सर्वर, ऑफ-साइट और ऑफ-लाइन बैकअप स्थानों पर कॉपी किए जाने से पहले बैकअप सिस्टम सरणी में भी जाते हैं।
बेशक यह कुछ डेटाबेस के लिए गंभीरता से ओवरकिल है (इस तरह से एक छोटा ब्लॉग सर्वर चलाने का कोई मतलब नहीं होगा!) लेकिन हमारा मुख्य ऐप इस व्यवस्था के साथ बहुत अच्छा प्रदर्शन करता है।
यदि आपके पास छह ड्राइव हैं, तो आप तीन RAID1 सरणियों, या दो तीन-ड्राइव RAID10 सरणियों पर विचार कर सकते हैं।
आम तौर पर
दुर्भाग्य से कोई वास्तविक सरल "सर्वोत्तम अभ्यास" नहीं है क्योंकि यह आपके सिस्टम के आकार और उपयोग पैटर्न पर बहुत निर्भर करता है। केवल सामान्य नियम जो मैं सोच सकता हूं या हैं:
- RAID5 और 6 से बचें जब तक आप नहीं जानते कि लेखन प्रदर्शन समस्या आपको काफी प्रभावित नहीं करने वाली है
- चार या अधिक कताई-डिस्क आधारित ड्राइव के साथ सिर की गति को कम करने के लिए कई सरणियों पर चीजों को विभाजित करने पर विचार करें (कई सरणियों का पूरा लाभ अच्छे एसएसडी पर लागू नहीं होगा क्योंकि विचार करने के लिए कोई भौतिक सिर आंदोलनों नहीं हैं, हालांकि आप कुछ अंतर देख सकते हैं। SSDs के नियंत्रक की संयुक्त रणनीति और आगे लिखिए)
- परीक्षण, परीक्षण और फिर से परीक्षण करें: यह सत्यापित करने के लिए समय खोजने की कोशिश करना हमेशा अच्छा होता है कि आपकी चुनी गई व्यवस्था वास्तव में इष्टतम है
हार्डवेयर या सॉफ्टवेयर RAID?
ऐसा लगता है कि सॉफ्टवेयर RAID का प्रदर्शन समानता की गणना के कारण RAID 5 के लिए हार्डवेयर RAID के नीचे था और ड्राइव और सीपीयू के बीच धीमी गति के कारण सभी व्यवस्थाओं के लिए। आधुनिक सीपीयू के साथ समता कैल्क समस्या वास्तव में कोई समस्या नहीं है, लेकिन अगर आपके पास बहुत तेज ड्राइव हार्डवेयर है RAID अभी भी जीत सकता है अगर ड्राइव की कुल गति कहीं भी आ सकती हैमशीन नियंत्रक डिस्क नियंत्रक से कितनी तेजी से बात कर सकता है, इसके पास (एक अनुमान के अनुसार, एक अनुमान के भीतर)। यदि आपके पास सॉफ़्टवेयर RAID के साथ एक चार ड्राइव RAID1 सरणी (यानी बहुत से अतिरेक के लिए एक ही डेटा की चार प्रतियां) हैं, तो प्रत्येक लेखन ऑपरेशन के परिणामस्वरूप ओएस में I / O नियंत्रक को चार लॉट डेटा भेजा जा सकता है, संभवतः क्रमिक रूप से - एक हार्डवेयर के साथ नियंत्रक OS सिर्फ एक लिखने का अनुरोध भेजता है और नियंत्रक चार ड्राइव को भेजता है, शायद समानांतर में।
अच्छा हार्डवेयर RAID अन्य लाभ भी प्रदान कर सकता है: कुछ उच्च-कल्पना नियंत्रकों ने कैश बैकअप बैटरी बैकअप के साथ लिखा है ताकि लंबित लिखों को पावर-कट में खो न जाए, भले ही आपका यूपीएस विफल हो।
सॉफ़्टवेयर RAID स्पष्ट रूप से सस्ता है, और अधिक पोर्टेबल है इसलिए आप किसी विशेष नियंत्रक से बंधे नहीं हैं यदि आपको नियंत्रक / मशीन की विफलता के कारण सरणियों को स्थानांतरित करना है।
सस्ते हार्डवेयर RAID आमतौर पर सॉफ़्टवेयर और हार्डवेयर RAID के नकारात्मक को कुछ के साथ (या कोई नहीं) के लाभों को जोड़ती है या तो सबसे अच्छा बचा जाता है।
मैं हमारे देव, परीक्षण और UAT सर्वर पर सॉफ्टवेयर RAID और लाइव ग्राहक- / सार्वजनिक-सामना करने वाली सेवाओं को चलाने वाले सर्वर के लिए अच्छा हार्डवेयर RAID का उपयोग करता हूं।