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


मेरे पास 2 एचडीडी (2x 1 टीबी) वाला सर्वर है, जो RAID 1 (SW-RAID) में चल रहा है। मैं उपयोग करके आईओ प्रदर्शन में सुधार करना चाहता हूं flashcache। इसका उपयोग कर, KVM वर्चुअल मशीन चला रहे हैं LVM

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

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

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


14
2017-11-15 16:22


मूल


मुझे लगता है कि यदि आप एसएसडी को अपने मुख्य ड्राइव के रूप में उपयोग कर सकते हैं तो आप अधिक सुसंगत प्रदर्शन का आनंद लेंगे। - ewwhite
एक परीक्षण प्रणाली तक कोई पहुंच नहीं है? आपको बस एक एचडीडी, एक एसएसडी, और वर्चुअल मशीन के साथ एक वर्कस्टेशन है जिसमें दो वर्चुअल डिस्क (प्रत्येक डिवाइस पर रहने वाला एक) है। उत्पादन प्रणालियों का उपयोग सीखने की प्रयोगशालाओं के रूप में नहीं किया जाना चाहिए। - Skyhawk
उस ट्यूटोरियल पर लिंक का मृत आपने उल्लेख किया है। कोई अन्य जगह मुझे वह जानकारी मिल सकती है? - Ian


जवाब:


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

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

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

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

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

मैं प्रदर्शन में वृद्धि की अपेक्षा कितनी उम्मीद करूंगा?

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

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

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

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

अगर एसएसडी मर जाता है तो क्या होता है?

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

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

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

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

लेखन और लेखन के मुकाबले कितनी तेज़ी से लिखना होगा?

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

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


18
2017-11-18 15:30



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


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

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

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

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

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

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

4
2017-11-21 01:30





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

http://www.lessfs.com/wordpress/

http://www.lessfs.com/wordpress/?p=776

// ईसाई


2
2017-11-24 01:04





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

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

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

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


1
2017-10-22 04:13