FlashCache के साथ IO में सुधार करना


14

मेरे पास 2 HDD (2x 1 TB) वाला सर्वर है, जो RAID 1 (SW-RAID) में चल रहा है। मैं का उपयोग करके IO प्रदर्शन में सुधार करना चाहते हैं flashcache। उस पर केवीएम वर्चुअल मशीन चल रही है, जिसका उपयोग कर रहे हैं LVM

इस बारे में, मेरे पास निम्नलिखित प्रश्न हैं:

  • क्या यह भी काम करेगा? flashcacheब्लॉक डिवाइसेस के लिए काम करता है, हालांकि ये सभी वर्चुअल मशीनें अपने स्वयं के सेटअप के साथ हैं।
  • मैं प्रदर्शन बढ़ाने की कितनी उम्मीद करूंगा? अधिकांश वर्चुअल मशीनें वेबसाइट और कुछ होस्ट गेम चलाती हैं।
  • SSD को कितना बड़ा होना चाहिए? क्योंकि यह अधिक फ़ाइलों को कैश करने में सक्षम है एक बड़ा SSD प्रदर्शन बढ़ाएगा?
  • SSD के मरने पर क्या होता है? flashcacheपारंपरिक HDD से फ़ाइलें प्राप्त करेगा और मैं बस SSD की जगह ले सकता हूं?
  • की writebackतुलना में कितना तेज होगा writethroughऔर writearound?

मेरे पास दुर्भाग्य से एक परीक्षण प्रणाली तक पहुंच नहीं है, इसलिए मैं flashcacheडिस्क को अनमाउंट किए बिना एक लाइव सर्वर पर स्थापित कर सकता हूं ? मुझे यहां एक शानदार ट्यूटोरियल मिला, जिसका मैं उपयोग करूंगा।


मुझे लगता है कि यदि आप SSD को अपनी मुख्य ड्राइव के रूप में उपयोग कर सकते हैं तो आपको अधिक सुसंगत प्रदर्शन का आनंद मिलेगा।
ewwhite

परीक्षण प्रणाली तक कोई पहुंच नहीं? आपको बस एक HDD, एक SSD और दो वर्चुअल डिस्क के साथ एक वर्चुअल मशीन (एक डिवाइस पर रहने वाला) के साथ एक वर्कस्टेशन चाहिए। उत्पादन प्रणालियों को सीखने की प्रयोगशाला के रूप में उपयोग करने के लिए नहीं है।
स्काईवॉक

आपके द्वारा बताए गए ट्यूटोरियल पर लिंक मृत है। कोई अन्य जगह मुझे वह जानकारी मिल सकती है?
थेली

जवाबों:


18

Flashcache, उन लोगों के लिए जिन्होंने इसे पहले नहीं देखा है, SSD ड्राइव के साथ लिनक्स ब्लॉक-कैश को बढ़ाने के लिए एक विधि है। यह सिर्फ कैशिंग के लिए आधे टीबी रैम के साथ सर्वर चलाने से सस्ता है।

क्या यह भी काम करेगा?

यह होना चाहिए। लिनक्स ब्लॉक-कैश एक्सेस ब्लॉक को कैशिंग करके काम करता है , न कि फाइल्स को । जब तक आप KVM मशीनों को ब्लॉक डिवाइस (आप नहीं कर रहे हैं) तक सीधी पहुँच नहीं दे रहे हैं, तब तक लिनक्स ब्लॉक कैश प्ले में रहेगा। हालांकि, यदि आप केवीएम मशीनों को सीधे ब्लॉक-डिवाइस एक्सेस दे रहे हैं , तो उत्तर कम स्पष्ट है।

यदि आप फ़ाइल-समर्थित वर्चुअल-डिस्क का उपयोग कर रहे हैं, तो यह निश्चित रूप से काम करेगा।

यदि आप LV- समर्थित वर्चुअल-डिस्क का उपयोग कर रहे हैं, तो मुझे नहीं पता।

मैं प्रदर्शन बढ़ाने की कितनी उम्मीद करूंगा?

वह ऐसी चीज है जिसका हम जवाब नहीं दे सकते। यह कई तरह की चीजों पर निर्भर करता है। अमूर्त में, आपको अपने SSD को ब्लॉक के सक्रिय-सेट से बड़ा करने के लिए सबसे अच्छा प्रदर्शन मिलेगा। यदि आप सही कैशिंग प्राप्त करते हैं, तो आपका प्रदर्शन एसएसडी पर आपके पूरे सिस्टम को चलाने के समान होगा। जो आप प्रभावी रूप से कर रहे हैं।

SSD को कितना बड़ा होना चाहिए?

सटीक आकार जो आपको चाहिए वह है कुछ ऐसा जिससे हम मदद नहीं कर सकते। अधिक बेहतर है, स्पष्ट रूप से, लेकिन कैश-एसएसडी और प्राथमिक भंडारण के बीच सटीक अनुपात का पता लगाना एक सरल मामला नहीं है।

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

SSD के मरने पर क्या होता है?

यही बात तब होती है जब आप लिनक्स को ड्रॉप-कैश के लिए कहते हैं लेकिन एक ट्विस्ट के साथ। ड्रॉप-कैश के साथ, कोई भी अप्रकाशित लिखता है जो ब्लॉक-कैश में है डिस्क में फ्लश हो जाएगा। जब SSD गायब हो जाता है तो कैशिंग मोड पर निर्भर करता है :

Writethrough : सभी राइट्स कैश और प्राइमरी स्टोरेज के समानांतर लिखे जाते हैं, इसलिए अचानक SSD के नुकसान की संभावना होती है, जिससे VMs पर त्रुटियां बहुत कम होती हैं।

Writearound : सभी लेखन प्राथमिक भंडारण के लिए लिखे जाते हैं और केवल पढ़े जाने पर कैश किए जाते हैं। VMs में त्रुटियों का कोई मौका नहीं।

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

राइटथ्रू और रिट्रीटाउंड की तुलना में राइटबैक कितना तेज होगा?

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

इसके अलावा, राइटबैक एक खराब नीति है जो आप कर रहे हैं इसलिए इसका उपयोग न करें।


1
हाय sysadmin, आपके व्यापक उत्तर के लिए धन्यवाद। मैं उपयोग नहीं किया जाएगा writebackक्योंकि यह कुछ BBU के बिना सब कुछ भ्रष्ट कर सकता है। मैं एसएसडी-कैशिंग का उपयोग बिल्कुल नहीं करूंगा, आखिरकार, लेकिन सिर्फ एक सामान्य एसएसडी। एक बार फिर धन्यवाद!
डेवेटर

4

हां, जब तक आप सही ब्लॉक डिवाइस का उपयोग करते हैं, यह ठीक काम करेगा। और एक तरकीब है।

जब एलवीएम पीवी के लिए स्कैन करता है, तो उसे वास्तविक हार्ड ड्राइव के माध्यम से विभाजन को देखना चाहिए, और फ्लैशचैच "वर्चुअल" डिवाइस के माध्यम से भी।

एक स्पष्ट लक्षण यह होना चाहिए कि एलवीएम उपकरण डुप्लिकेट पीवी की शिकायत करते हैं।

उन चेतावनियों से बचने के लिए और अधिक महत्वपूर्ण बात यह है कि, सुनिश्चित करें कि Flashcache डिवाइस का उपयोग LVM2 द्वारा किया जाता है, में फ़िल्टर को अनुकूलित करना है /etc/lvm/lvm.conf

LVM.CONF(5)मैनपेज मुझे की तुलना में बेहतर यह समझा जाएगा, लेकिन मैं अगर, एक उदाहरण के साथ आप छोड़ देंगे सभी भौतिक मात्रा flashcache द्वारा समर्थन कर रहे हैं:

filter = [ "a/.*dm.*/" ]


1

कुछ एप्लिकेशन गैर-बफर तरीके से फाइलें खोलते हैं।

http://man7.org/linux/man-pages/man2/open.2.html

O_DIRECT (Linux 2.4.10 के बाद से) इस फ़ाइल से I / O के कैश प्रभाव को कम करने का प्रयास करें। सामान्य तौर पर यह प्रदर्शन को कम करेगा, लेकिन यह विशेष परिस्थितियों में उपयोगी होता है, जैसे कि जब अनुप्रयोग अपना कैशिंग करते हैं। फ़ाइल I / O उपयोगकर्ता-अंतरिक्ष बफ़र्स से सीधे / के लिए किया जाता है। O_DIRECT ध्वज अपने आप में डेटा को समकालिक रूप से स्थानांतरित करने का प्रयास करता है, लेकिन O_SYNC ध्वज की गारंटी नहीं देता है कि डेटा और आवश्यक मेटाडेटा को स्थानांतरित किया जाता है। तुल्यकालिक I / O की गारंटी देने के लिए, O_DYECT के अलावा O_SYNC का उपयोग किया जाना चाहिए। आगे की चर्चा के लिए नीचे NOTES देखें।

उदाहरण के लिए, यह डेटाबेस के लिए बहुत सामान्य है। यदि अनुप्रयोगों के इस सेट के साथ फ्लैशचैच काम करता है तो डबल चेक करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.