2008-10-03 26 views
15

के लिए इष्टतम RAID सेटअप हमारी वेबसाइट के लिए हमारे पास SQL ​​सर्वर डेटाबेस बैकएंड है, वर्तमान में लगभग 10GB आकार में। लिखने की तुलना में बहुत अधिक पढ़े जाते हैं, हालांकि मेरे पास सटीक आंकड़े नहीं हैं।SQL सर्वर

हम अपने डेटाबेस सर्वर को अपग्रेड कर रहे हैं और मैं 4 डिस्क प्राप्त करने और उन्हें दो RAID 1 arrays में सेट करने की सोच रहा था - एक डेटा फ़ाइलों के लिए और दूसरा ओएस और लॉग फ़ाइलों के लिए। क्या यह इष्टतम सेट-अप होगा या RAID 5 डेटा फ़ाइलों के लिए बेहतर होगा? RAID 10 थोड़ा महंगा हो जाता है और शायद हमारे लिए अधिक है।

इस चरण में SQL सर्वर को रैम (8 जीबी) में अधिकतर डेटाबेस रखना चाहिए, लेकिन यह बढ़ेगा, इसलिए मैं पूरी तरह से उस पर भरोसा नहीं करना चाहता हूं।

संपादित करें: हम निश्चित रूप से उत्पादन सर्वर पर अनावश्यकता चाहते हैं, इसलिए RAID 0 स्वयं ही बाहर है। RAID 10 अच्छा है, लेकिन हमारे लिए थोड़ा महंगा हो सकता है।

उत्तर

16

स्वतंत्र RAID 1 दर्पण का उपयोग करने की आपकी अवधारणा सही रणनीति है।

हमने अपने काम पर समान परिदृश्य लागू किए हैं और वे बहुत अच्छी तरह से काम करते हैं।

RAID 1

RAID 1 आप 1 लिखने के लिए डिस्क लेकिन पढ़ने के लिए 2 डिस्क की गति देता है।

जब आप RAID 1 सरणी में डेटा लिखते हैं, तो उसे उस डेटा को दोनों डिस्क पर लिखना होता है, इसलिए आपको कोई प्रदर्शन वृद्धि नहीं होती है, हालांकि यह वह जगह है जहां आपको अपनी डेटा सुरक्षा मिलती है।

RAID 1 सरणी से पढ़ते समय नियंत्रक दोनों डिस्क से पढ़ेगा क्योंकि उनके पास एक ही डेटा है।

RAID 5

यह बड़ी मात्रा में डेटा की रक्षा के लिए उपयोगी है।समान मात्रा में डेटा के लिए RAID 5 की लागत RAID 1 (या RAID 0 + 1 से एक बार जब आप अलग-अलग डिस्क के आकार से परे क्षमताओं को कर रहे हैं) से बहुत धीमी हो जाती है।

यदि आप RAID 5 के साथ 600 जीबी की रक्षा करना चाहते हैं तो आप इसे 4x200gb ड्राइव या 3x300gb ड्राइव के साथ प्राप्त कर सकते हैं, जिसमें कुल खरीदी गई ड्राइव स्पेस की 800-900 जीबी की आवश्यकता होती है। RAID 1 2x600gb ड्राइव होगा जिसमें 1,200 जीबी खरीदी गई जगह की आवश्यकता होगी (600 जीबी ड्राइव अधिक महंगा हो) या RAID 0 + 1 आपको कम महंगे क्षमता ड्राइव (यानी: 4x300gb या 6x200gb) का उपयोग करने की अनुमति देता है लेकिन अभी भी कुल 1,200gb की आवश्यकता है खरीदी गई जगह

RAID 0 + 1

के रूप में RAID 1 समान लाभ प्रदान करता है यह डिस्क में स्ट्रिपिंग के साथ एक और पायदान ऊपर ले जा रहा। मुझे लगता है कि यदि आप उच्च एक साथ पढ़ने के बारे में चिंतित हैं, तो आप बहु-प्रोसेसर/बहु-कोर का भी उपयोग करेंगे। आप एक साथ कई प्रश्नों को संसाधित करेंगे और इसलिए स्ट्रिपिंग उतनी मदद नहीं करेगा। आप वीडियो संपादन जैसे बड़े डेटा फ़ाइलों का उपयोग करके एकल अनुप्रयोगों के लिए RAID 0 + 1 पर बेहतर लाभ देखेंगे।

जब मैं एक ग्राहक के लिए कुछ समय पहले इसी मुद्दे पर शोध कर रहा था तो मुझे यह आलेख बहुत दिलचस्प http://blogs.zdnet.com/Ou/?p=484 पाया गया। दूसरे पृष्ठ पर वह RAID 0 + 1 से स्वतंत्र RAID 1 arrays में परिवर्तन को बहुत अधिक प्रदर्शन सुधार बनाते हैं। यह बहुत बड़े पैमाने पर था (एक 20 डिस्क और 16 डिस्क SAN) लेकिन एक ही अवधारणाओं। RAID 0 + 1 के केवल मूल अनौपचारिक स्ट्रिपिंग का उपयोग करने के बजाय SQL सर्वर को एकाधिक वॉल्यूम्स के बीच डेटा को संतुलित करने की क्षमता एक महान अवधारणा है।

+1

विस्तृत उत्तर और ब्लॉग पोस्ट लिंक के लिए धन्यवाद। यह वही जानकारी है जिसे मैं ढूंढ रहा था। – EMP

+1

इसके बजाय http://blogs.msdn.com/b/teamcenteronsql/archive/2010/04/27/raid-1-0-and-sql-server.aspx को RAID1 w/"SQL स्ट्रिपिंग" का उपयोग करने पर तर्क के लिए यह भी देखें 1 + 0 का। –

1

यह देखते हुए कि लेखन से बहुत अधिक पढ़े गए हैं, RAID 5 आपकी डेटा फ़ाइलों के लिए तेज़ होगा।

यदि आप संभवतः लेनदेन लॉग फ़ाइलों के लिए एक अलग RAID 1 + 0 सरणी का उपयोग कर सकते हैं।

संपादित करें: आपको RAID 5 सरणी बनाने के लिए कम से कम 3 डिस्क की आवश्यकता होगी।

+0

लेकिन आपको 5 डिस्क से बेहतर उपज मिलेगी ताकि बेहतर पढ़ने के समय का उल्लेख न किया जा सके। एक बेवकूफ बड़े कैश के साथ एक शीर्ष-गुणवत्ता वाले हार्डवेयर RAID5 नियंत्रक प्राप्त करें और आप कभी भी ध्यान नहीं देंगे कि RAID5 लिखने के लिए एक डिस्क से धीमी है, और पढ़ने के लिए आप 5 स्पिंडल को हरा नहीं सकते हैं। लॉग के लिए RAID10 मैं सहमत हूं। –

1

ध्यान रखें कि मुख्य प्रदर्शन मीट्रिक खोज दर होगी, डेटा दर नहीं। यही है, एक विशिष्ट डेटाबेस जो डिस्क-बाउंड है (जैसा कि आपका बढ़ता जा सकता है) अनुक्रमिक पढ़ने के लिए अधिकतम डेटा दर के मुकाबले डिस्क प्रति सेकंड कितने आईओएस तक सीमित हो सकता है।

इसका मतलब है कि यदि आप सोच रहे हैं कि 4 डिस्क का उपयोग कैसे करें (उदाहरण के लिए), दो RAID1 जोड़े आपको एक 4-डिस्क RAID5 सरणी से बेहतर प्रदर्शन देना चाहिए। बेशक, आपको दो RAID1 जोड़े में से अधिक उपयोग करने योग्य संग्रहण नहीं मिलेगा।

0

RAID 5 अच्छा है यदि आप एक बैटरी नियंत्रक का उपयोग बैटरी बैक वाले कैश रैम के साथ करते हैं। एक खंड आकार का चयन करें और डीबी को कॉन्फ़िगर करें ताकि पट्टी आकार (डेटा डिस्क * खंड आकार) डीबी लिखने के आकार के बराबर हो। सुनिश्चित करें कि आपके डेटा विभाजन [पट्टी आकार के एक साथ/गठबंधन है]।

अन्यथा, RAID 1 + 0 हमेशा डीबी सर्वर के लिए एक अच्छा विकल्प है।

1

डेटाबेस के छोटे आकार को देखते हुए मैं चार 15krpm 2.5 "एसएफएफ एसएएस डिस्क, दो अलग RAID 1 दर्पण के रूप में सेटअप करता हूं। मैं उन्हें एडैप्टेक 5805 पीसीआई-ई एक्स 8 एसएएस नियंत्रक जैसे कुछ के माध्यम से चलाऊंगा। डेटा को एक सरणी पर और सुरक्षा के लिए दूसरे पर लॉग डालें। बार मेमोरी-मैपिंग पूरे डेटाबेस, एक बहुत बड़ा/महंगा SAN या एसएसडी का उपयोग करके मुझे बहुत आश्वस्त है कि यह पैसे के लिए सबसे तेज़ सेटअप होगा।

आशा इस मदद करता है

3

मैं एक छोटे से समय सुनिश्चित करें कि आपके डेटाबेस कुशलता से अनुक्रमणित है बनाने खर्च चाहते हैं;। पूर्ण तालिका स्कैन के लिए निगरानी, ​​सुनिश्चित करें कि सबसे लगातार प्रश्नों को यथासंभव कम डेटा को पढ़ने बनाने, मैं था एक कुशलता से डिजाइन दा ले लो एसएसडी पर अनुचित इंडेक्स वाले डेटाबेस पर धीमी डिस्क सेटअप पर टैबस करें।

0

मैं आधारभूत मानों का एक सेट स्थापित करने की भी सिफारिश करता हूं जो आपको अपनी अंगुली को हवा में डालने की तुलना में कुछ और स्थापित भविष्यवाणियों की अनुमति देता है (या स्टैक ओवरव्लो पूछना, अस्पष्ट रूप से उन अजीब तरह से दिखता है)।

कुछ आधारभूत मूल्यों के साथ आप भी अपने परिवर्तन के प्रभाव को मापने के लिए और भविष्य के उन्नयन के लिए एक अच्छा आधार हो सकता है ...

(यदि ज्ञात नहीं, प्रदर्शन इंजीनियरिंग पर कुछ साहित्य (या विकिपीडिया) लेने। यह सामान की एक पूरी शाखा जो इस प्रकार की समस्याओं से संबंधित है)।

1

दो बातें,

सिद्धांत RAID 1 आप पढ़ने के लिए दो ड्राइव देता है, लेकिन 'न यह है कि दो बार प्रदर्शन के बराबर होती है लगता है। वास्तव में, ऐसा नहीं होता है, आमतौर पर अनुक्रमिक पढ़ने का भाषण एक ड्राइव के समान ही होता है। आश्चर्यजनक, लेकिन सच .... असली दुनिया परीक्षण करते हैं, सिद्धांत पर भरोसा मत करो।

इसके साथ, मैं दो RAID 1 के साथ जाऊंगा ... लेकिन जैसा कि आपने कहा था, एक ओएस के लिए नहीं, और दूसरा डेटा के लिए। मेरे पास उनमें से एक पर कुछ छोटा ओएस विभाजन होगा, लेकिन निश्चित रूप से डेटा के लिए एसक्यूएल सर्वर दोनों छापे दें। एसक्यूएल सर्वर को अपने द्वारा सेट किए गए सभी सेट दें।

एसक्यूएल सर्वर जोड़ों में पट्टी कर सकता है, आप यहां किसी भी व्यक्ति के कहने के बावजूद 0 + 1 के साथ नहीं जाना चाहते हैं। वे फिर से सैद्धांतिक मानक देख रहे हैं, यह नहीं समझते कि एसक्यूएल सर्वर डिस्क पर अपने सभी डेटा को पट्टी कर सकता है, और इसे अनुकूलित तरीके से कर सकता है।

RAID 1 केवल डेटा रिडंडेंसी के लिए है ... इसके अलावा, जितना आप सर्वर को एसक्यूएल कर सकते हैं, और इसे अपनी बात करने दें ... यह क्या करता है यह बहुत अच्छा है।

आपके पास 0 + 1 है और इसे दो RAID 1 में तोड़ दो .... असली दुनिया परीक्षण करें, आप आश्चर्यचकित होंगे कि एसक्यूएल सर्वर के काम के लिए तेज़ है।

0

बीटीडब्ल्यू, जहां मैं काम करता हूं, उनके पास एक उच्च अंत सान है, जो लगभग 2 मिनट में एक टेबलकैन करता है। मैंने ड्राइव को सरल RAID 1 सेट में तोड़ दिया, और एसक्यूएल सर्वर को स्ट्रिपिंग को संभालने दें ... सान नहीं। 2 मिनट 45 सेकंड तक गिर गया।

इस बारे में नेट पर अन्य लेख हैं ... इसे स्वीकार करने के लिए 'सच्चे विश्वासियों' पर छेड़छाड़ करना बहुत मुश्किल है, इसलिए मैं इस बिंदु के बारे में इतना जबरदस्त क्यों हूं।

+0

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

0

मैं RAID 10 पसंद करता हूं जिसे मैंने पहले ही अपने डेल आर 210-II लिनक्स सर्वर पर कॉन्फ़िगर किया है। अद्भुत प्रदर्शन ...