SQL सर्वर के लिए अनुशंसित डिस्क / पार्टीशन सेटअप


14

मैं एसक्यूएल सर्वर के लिए अपने डिस्क / विभाजन स्थापित करने के सर्वोत्तम तरीके के बारे में कुछ सलाह की तलाश कर रहा हूं। यहाँ मेरी कुछ प्रमुख चिंताएँ हैं:

SQL फ़ाइलों को कैसे अलग किया जाना चाहिए (डेटा फ़ाइलें, लॉग, अस्थायी)?

क्या यह बहुत अच्छा है RAID बहुत सारे HDD और विभाजन को विभाजित करता है या प्रत्येक RAID के लिए कम डिस्क के साथ कई RAID बनाने के लिए?

क्या डेटा और लॉग फाइल एक अलग RAID प्रकार पर होनी चाहिए?

क्या डिफ़ॉल्ट डेटाबेस (मास्टर, एमएसडीबी, आदि ...) सी पर स्थित होना चाहिए: या क्या उन्हें अन्य डेटा / लॉग फ़ाइलों के समान स्थान पर होना चाहिए?

जवाबों:


14

यहाँ एक अच्छा ब्लॉग पोस्ट है: http://sqlserveradvisor.blogspot.com/2009/03/sql-server-disk-configuration.html

डिस्क संरेखण पर श्वेत पत्र: http://msdn.microsoft.com/en-us/library/dd758814.aspx

संक्षेप में आपका ओएस RAID 1 पर होना चाहिए, आपकी डेटा फ़ाइलें RAID 10 (अधिमानतः) और RAID 1 पर लॉग फ़ाइलें।

SQL प्रदर्शन लेख: http://www.sql-server-performance.com/faq/raid_1_raid_5_p1.aspx

शीर्ष 10 सर्वश्रेष्ठ प्रदर्शन युक्तियों पर पीडीएफ: http://www.stlssug.org/docs/Best_Practices_for_Performance.pdf

प्रदर्शन कारणों से एक अलग डिस्क पर अपना TEMPDB रखना भी याद रखें। मुझे यकीन है कि पॉल रैंडल यहां आएंगे और अपने दिमाग को एक बिट में क्यों उड़ाएंगे।

MS का कहना है कि अस्थायी के लिए क्यों: http://msdn.microsoft.com/en-us/library/ms175527.aspx


@ SQLChicken: यदि ड्राइव प्रकार के लिए वरीयता है -> SATA बनाम SAS, तो क्या कोई सिफारिश है? एसएएसए पर एसएएस? (RAID प्रकार, आदि के बावजूद)।
प्योर.क्रोम

1
एसएएस ड्राइव, यदि आपके पास पैसा है, तो गति और विश्वसनीयता के कारण एसएटीए पर पसंद किया जाता है।
13

11

यह एक बड़ा 'यह निर्भर करता है' प्रश्न है।

मैं आपके लिए अलग-अलग RAID सरणियाँ बनाने के तरीके का उत्तर नहीं दे सकता, क्योंकि मैं एक भंडारण विशेषज्ञ नहीं हूं, लेकिन मैं बाकी लोगों की मदद कर सकता हूं।

पहली बात जिस पर आप विचार करते हैं, वह है विभिन्न डेटाबेस पर काम का बोझ - OLTP (पढ़ना / लिखना) या DSS / DW (ज्यादातर पढ़ना)। वर्कलोड को पढ़ने / लिखने के लिए, आपको RAID 1 या RAID 10 (RAID 1 + 0) देखना चाहिए, क्योंकि ये अतिरेक और महान पढ़ने / लिखने का प्रदर्शन प्रदान करते हैं। पढ़ने के लिए ज्यादातर वर्कलोड आप RAID 5 का उपयोग कर सकते हैं। कारण 5 RAID को पढ़ने / लिखने के लिए उपयोग नहीं किया जाना चाहिए वर्कलोड यह है कि आप लिखने पर एक प्रदर्शन दंड का भुगतान करते हैं।

लेन-देन लॉग, उनके स्वभाव से पढ़े जाते हैं / लिखना (या लिखना-ज्यादातर, इस बात पर निर्भर करता है कि आप किसी भी चीज़ के लिए लेन-देन लॉग का उपयोग कर रहे हैं - जैसे कि लॉग बैकअप या प्रतिकृति) और इसलिए RAID 5 पर कभी नहीं डाला जाना चाहिए।

इसका मतलब है कि कुछ डेटाबेस और वर्कलोड के लिए, आपके पास RAID 5 पर डेटा फाइलें और RAID 1/10 पर लॉग फाइलें हो सकती हैं, और अन्य डेटाबेस के लिए आपके पास RAID 1/10 पर सब कुछ हो सकता है। आगे जाकर, यदि आपके पास एक विभाजित डेटाबेस है, तो इसमें कुछ रीड-ज्यादातर और कुछ रीड / राइट डेटा हो सकते हैं, संभवतः एक ही टेबल के भीतर भी। इसे अलग फाइलग्रुप में विभाजित किया जा सकता है और फिर प्रत्येक फाइलग्रुप को उचित RAID स्तर पर रखा जा सकता है।

वास्तविक डेटाबेस का पृथक्करण फिर से कार्यभार पर निर्भर करता है, और अंतर्निहित IO सबसिस्टम की क्षमताओं - उदाहरण के लिए, एक व्यक्ति की तुलना में व्यक्तिगत RAID सरणियों पर चीजों को संग्रहीत करने के लिए अलग से उच्च डिग्री की आवश्यकता हो सकती है।

Tempdb अपने आप में एक विशेष मामला है, क्योंकि यह आमतौर पर एक भारी-भरकम डेटाबेस है और इसे अन्य डेटाबेस से अलग संग्रहीत किया जाना चाहिए। सिस्टम डेटाबेस का भारी उपयोग नहीं किया जाना चाहिए और जब तक अतिरेक है तब तक कहीं भी रखा जा सकता है।

यहाँ एक श्वेतपत्र की एक कड़ी है जो मैंने लिखने में मदद की जो आपको मदद करनी चाहिए: भौतिक डेटाबेस संग्रहण डिज़ाइन । यह भी सुनिश्चित करें कि आपका IO सबसिस्टम प्रत्याशित कार्यभार को संभाल सकता है - इस व्हाइटपॉपर को देखें: पूर्व-निर्धारण I / O सर्वश्रेष्ठ अभ्यास । अंत में, सुनिश्चित करें कि आप सही RAID स्ट्राइप साइज़ (आमतौर पर नए सिस्टम पर 64K या उससे अधिक) का उपयोग करते हैं, सही NTFS एलोकेशन यूनिट साइज़ (आमतौर पर 64K), और Windows Server 2008 से पहले सिस्टम पर, आप डिस्क विभाजन को सही ढंग से सेट करते हैं । इन पर जानकारी के लिए, और उनके बारे में अधिक जानकारी के लिए संकेत और आपको उन्हें इस तरह क्यों कॉन्फ़िगर करना चाहिए, इस ब्लॉग पोस्ट को देखें: क्या आपके डिस्क विभाजन ऑफ़सेट्स, RAID स्ट्राइप आकार और NTFS आवंटन इकाइयाँ सही ढंग से सेट हैं?

बॉटम लाइन: अपने कार्यभार और अपनी IO सबसिस्टम क्षमताओं को जानें और फिर उसी के अनुसार क्रियान्वयन करें।

मैं उम्मीद करता हूँ यह आप के लिए उपयोगी है।

PS जहाँ तक tempdb का सवाल है, यह कीड़े का एक बड़ा कैन है जिसे आपको इसे कैसे कॉन्फ़िगर करना चाहिए और सभी प्रकार की परस्पर विरोधी जानकारी है। मैंने TF11 11 के आसपास गलतफहमी पर tempdb डेटा फ़ाइल कॉन्फ़िगरेशन के बारे में एक व्यापक ब्लॉग पोस्ट लिखा ।


ग्रेट पोस्ट पॉल :)
प्योर.क्रोम

1

मेरे द्वारा सेट किए गए सर्वर के लिए संक्षिप्त उत्तर हमेशा रहा है

अलग-अलग भौतिक डिस्क पर लॉग, 1 या 10 छापे (स्ट्रिपिंग + मिररिंग)

आमतौर पर स्वयं के डिस्क पर डेटाबेस, प्रदर्शन की जरूरतों पर निर्भर करता है RAID5

RAID नियंत्रक पर बहुत सारे कैश

अधिमानतः एक अलग सरणी पर अपने ओएस और विंडोज पेजफाइल को फिर से छड़ी करें, आमतौर पर सिर्फ एक दर्पण (छापे 1)। यह सभी लिखने के संचालन को अलग रखता है इसलिए भारी प्रदर्शन सब कुछ नीचे नहीं खींचता है।

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


1

यहाँ मुझसे कहीं बेहतर MSSQL के लोग हैं लेकिन सामान्य शब्दों में मैं निम्नलिखित सुझाव देना चाहूंगा;

C पर OS और कोड: - यह स्थानीय डिस्क होना चाहिए, एक RAID1 सरणी जोड़ी होनी चाहिए - हम इसके लिए 2 x 2.5 इंच SAS 146GB 10krpm डिस्क का उपयोग करते हैं लेकिन आप 2 x SATA 7.2 डिस्क का उपयोग कर सकते हैं। डेटा बहुत तेज़ (10krpm या बेहतर) RAID 1/10, 5/50/6/60 पर होना चाहिए, जिस भी आकार की आपको आवश्यकता हो - हम FC SAN LUNs पर अपना होल्ड करते हैं, आमतौर पर 'tier 2' / 10krb डिस्क समूह पर। । लॉग एक अलग बहुत तेज़ (15krpm) छोटे (10GB या उससे कम?) पर होना चाहिए RAID 1 सरणी जोड़ी - हम FC SAN LUN पर अपना कब्जा रखते हैं, आमतौर पर बहुत छोटे 'tier1' / 15krpm समूह पर या 'tier0' / पर ssd समूह।

किसी भी तरह से आप प्रदर्शन के लिए अलग-अलग स्पिंडल / सरणियों पर इनमें से प्रत्येक को चाहते हैं - बेशक यह सब एक डिस्क से काम करेगा, लेकिन मुझे लगता है कि आप प्रदर्शन और लागत के संतुलन की तलाश कर रहे हैं।

हम अपने नियमित डेटाबेस के साथ हमारे मास्टर / टेम्पर्डब को स्टोर करते हैं लेकिन आप इसे एक अलग डेटा ऐरे LUN में तोड़ सकते हैं।

उम्मीद है की यह मदद करेगा।


लॉग ड्राइव के छोटे होने के बारे में दिलचस्प बिंदु। यह लिखने की गति के साथ मदद करने के लिए है? क्या यह एक अच्छा विचार है कि अपने लॉग फाइल को प्राप्त करने की कोशिश करें और अपने डेटा को जितना हो सके उतना छोटा रखें?
सीन होवत

मैं एक विशेषज्ञ होने से बहुत दूर हूं लेकिन हमें लगता है कि वे छोटे बने रहेंगे - आपका माइलेज अलग हो सकता है :)
चॉपर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.