मैं एक BBWC (बैटरी समर्थित राइट कैश) के बारे में परिचित हूं जो करने का इरादा है - और पहले भी अपने सर्वर में अच्छे यूपीएस के साथ उनका उपयोग किया था। इसमें असफलताएँ हैं जो इसके लिए सुरक्षा प्रदान नहीं करती हैं। मैं यह समझने के लिए उत्सुक हूं कि क्या यह वास्तव में व्यवहार में कोई वास्तविक लाभ प्रदान करता है।
(एनबी मैं विशेष रूप से उन लोगों की प्रतिक्रियाएं खोज रहा हूं जिनके पास बीबीडब्ल्यूसी है और क्रैश / असफलताएं थीं और क्या बीबीडब्ल्यूसी ने वसूली में मदद की है या नहीं)
अद्यतन करें
यहाँ फीडबैक के बाद, मुझे इस बात पर संदेह हो रहा है कि क्या BBWC कोई मूल्य जोड़ता है।
डेटा अखंडता के बारे में कोई विश्वास रखने के लिए, फाइल सिस्टम को पता होना चाहिए कि डेटा कब गैर-वाष्पशील भंडारण के लिए प्रतिबद्ध है (जरूरी नहीं कि डिस्क - एक बिंदु जो मैं वापस आऊंगा)। यह ध्यान देने योग्य है कि डिस्क के लिए डेटा के बारे में बहुत सारे डिस्क झूठ हैं ( http://brad.livejournal.com/2116715.html )। हालांकि यह मान लेना उचित है कि ऑन-डिस्क कैश को अक्षम करना डिस्क को अधिक ईमानदार बना सकता है, फिर भी कोई गारंटी नहीं है कि यह मामला भी है।
BBWC में आमतौर पर बड़े बफ़र्स के कारण, एक अवरोध को डिस्क पर आने के लिए काफी अधिक डेटा की आवश्यकता हो सकती है, इसलिए लिखने में देरी होती है: सामान्य सलाह एक गैर-वाष्पशील राइट बैक कैश का उपयोग करते समय (और अक्षम करने के लिए) बाधाओं को अक्षम करना है डिस्क कैशिंग)। हालाँकि, यह लिखने के संचालन की अखंडता को कमजोर करता दिखाई देगा - सिर्फ इसलिए कि गैर-वाष्पशील भंडारण में अधिक डेटा बनाए रखने का मतलब यह नहीं है कि यह अधिक सुसंगत होगा। वास्तव में, तार्किक लेन-देन के बीच सीमांकन के बिना, अन्यथा की तुलना में निरंतरता सुनिश्चित करने का अवसर कम प्रतीत होता है।
यदि BBWC को इस बिंदु पर अवरोधों को स्वीकार करना था, तो डेटा गैर-वाष्पशील भंडारण (डिस्क के लिए प्रतिबद्ध होने के बजाय) में प्रवेश करता है, तो यह एक प्रदर्शन जुर्माना के बिना डेटा अखंडता की आवश्यकता को पूरा करने के लिए दिखाई देगा - जिसका अर्थ है कि अवरोध अभी भी सक्षम होना चाहिए। हालाँकि, ये डिवाइस आम तौर पर भौतिक डिवाइस (बाधाओं के साथ काफी धीमी) और बाधाओं को अक्षम करने के लिए व्यापक सलाह के लिए डेटा को फ्लश करने के अनुरूप व्यवहार प्रदर्शित करते हैं, इसलिए वे इस तरह से व्यवहार नहीं कर सकते हैं। क्यों नहीं?
यदि ओएस में I / O को धाराओं की एक श्रृंखला के रूप में तैयार किया जाता है, तो लेखन अवरोधक के अवरोधक प्रभाव को कम करने के लिए कुछ गुंजाइश होती है जब लेखन कैशिंग को OS द्वारा प्रबंधित किया जाता है - क्योंकि इस स्तर पर केवल तार्किक लेनदेन (एक एकल धारा) ) की जरूरत है। दूसरी ओर, BBWC को इस बात की कोई जानकारी नहीं होती है कि कौन सा बिट डेटा लेन-देन करता है, उसे डिस्क पर अपना पूरा कैश लगाना होगा। क्या कर्नेल / फाइलसिस्टम वास्तव में इसे लागू करते हैं, मुझे इस समय निवेश करने की अपेक्षा बहुत अधिक प्रयास की आवश्यकता होगी।
जो कुछ भी किया गया है, उसके बारे में तंतुओं को बताने से डिस्क का संयोजन निस्संदेह और भ्रष्टाचार के कारण अचानक भ्रष्टाचार की ओर जाता है - और एक पत्रिकाओं या लॉग संरचित फाइलसिस्टम के साथ, जो एक आउटेज के बाद एक पूर्ण fsck नहीं करते हैं इसकी संभावना नहीं है कि भ्रष्टाचार का पता लगाया जाएगा। इसे सुधारने का प्रयास किया गया।
असफलता के तौर-तरीकों के संदर्भ में, मेरे अनुभव में अधिकांश अचानक बिजली की निकासी होती है, क्योंकि साधन शक्ति का नुकसान (आसानी से यूपीएस और प्रबंधित शटडाउन के साथ कम हो जाता है)। गलत केबल को रैक से बाहर निकालने वाले लोगों का मतलब है खराब डाटाकेंटर हाईजीन (लेबलिंग और केबल प्रबंधन)। कुछ प्रकार के अचानक बिजली हानि की घटना है जो यूपीएस द्वारा नहीं रोकी जाती हैं - पीएसयू या वीआरएम में एक अवरोध के साथ बीबीएमसी विफलता यहां एक विफलता की स्थिति में डेटा अखंडता प्रदान करेगी, हालांकि ऐसी घटनाएं कितनी आम हैं? यहाँ प्रतिक्रियाओं की कमी से बहुत दुर्लभ न्याय।
निश्चित रूप से स्टैक में फॉल्ट टॉलरेंस को अधिक बढ़ाना बीबीबीसी से काफी महंगा है - हालांकि एक सर्वर को लागू करना क्लस्टर के रूप में प्रदर्शन और उपलब्धता के लिए बहुत सारे फायदे हैं।
अचानक बिजली की हानि के प्रभाव को कम करने के लिए एक वैकल्पिक तरीका एक SAN को लागू करना होगा - AoE इसे एक व्यावहारिक प्रस्ताव बनाता है (मैं वास्तव में iSCSI में बिंदु नहीं देखता हूं) लेकिन फिर से एक उच्च लागत है।