पॉवर फेल होने के बाद जर्नलिंग फाइलसिस्टम भ्रष्टाचार के खिलाफ गारंटी देते हैं?


28

मैं यह सवाल दूसरे उपयोगकर्ता की ओर से पूछ रहा हूं जिन्होंने उबंटू चैट रूम में इस मुद्दे को उठाया था

क्या जर्नलिंग फाइलसिस्टम यह गारंटी देते हैं कि बिजली की विफलता होने पर कोई भ्रष्टाचार नहीं होगा?

यदि यह उत्तर फाइलसिस्टम पर निर्भर करता है, तो कृपया इंगित करें कि कौन से लोग भ्रष्टाचार से रक्षा करते हैं और कौन से नहीं।

जवाबों:


21

कोई गारंटी नहीं है। एक जर्नलिंग फाइल सिस्टम अधिक लचीला है और भ्रष्टाचार के लिए कम संभावना है, लेकिन प्रतिरक्षा नहीं।

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

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

जर्नलिंग का मूल आधार यह है कि जर्नल प्रविष्टि लिखना बहुत जल्दी होता है, आमतौर पर, वास्तविक लेनदेन की तुलना में इसका वर्णन किया जाएगा। अतः, OS (ऑर्डर) लिखने वाले OS और हार्ड ड्राइव को पूरा करने के बीच की अवधि एक सामान्य लेखन की तुलना में बहुत कम है: चीजों को गलत तरीके से जाने के लिए एक संकरी खिड़की, लेकिन अभी भी एक खिड़की है।

आगे की पढाई


क्या आप इस बारे में थोड़ा विस्तार से बता सकते हैं कि यह सच क्यों है? शायद आप एक उदाहरण दे सकते हैं कि एक निश्चित परिदृश्य में भ्रष्टाचार कैसे होगा।
नाथन उस्मान

1
@ जॉर्ज एडिसन मेरा विस्तारित जवाब देखें।
एंड्रयू लैंबर्ट

2
वह आखिरी बिट गलत है; चीजों के गलत होने की कोई खिड़की नहीं है। चूंकि यह रिकॉर्ड करता है कि इसे करने से पहले यह क्या करना है, बिजली की विफलता के बाद ऑपरेशन को फिर से शुरू किया जा सकता है, ऑपरेशन के दौरान यह किस बिंदु पर होता है, इससे कोई फर्क नहीं पड़ता। यह ऑर्डर देने की बात है, टाइमिंग की नहीं।
psusi

@psusi जर्नल को लिखने के लिए एक खिड़की अभी भी बाधित है। जर्नल लिखते हैं कि ओएस के लिए परमाणु दिखाई दे सकते हैं लेकिन वे अभी भी डिस्क पर लिखते हैं।
एंड्रयू लैम्बर्ट

5
@ हैरान वे परमाणु हैं क्योंकि उनके पास अनुक्रम संख्या और / या चेकसम हैं, इसलिए जर्नल प्रविष्टि या तो पूरी तरह से लिखी गई है, या नहीं। यदि यह पूरी तरह से नहीं लिखा गया है, तो सिस्टम रीस्टार्ट होने के बाद इसे अनदेखा कर दिया जाता है, और fs में कोई और बदलाव नहीं किया गया है, इसलिए यह लगातार बना रहता है।
psusi

18

नहीं।

सबसे सामान्य प्रकार की जर्नलिंग, जिसे मेटाडेटा जर्नलिंग कहा जाता है, केवल फ़ाइल सिस्टम की अखंडता की रक्षा करती है, डेटा की नहीं। इसमें शामिल है xfs, और ext3/ ext4डिफ़ॉल्ट data=orderedमोड में।

यदि एक गैर-जर्नलिंग फ़ाइल सिस्टम एक दुर्घटना ग्रस्त है, तो इसे fsckअगले बूट पर उपयोग करके चेक किया जाएगा । फ़ाइल सिस्टम पर fsckप्रत्येक इनकोड को स्कैन करता है, उन ब्लॉकों की तलाश करता है जो उपयोग के रूप में चिह्नित हैं, लेकिन उपलब्ध नहीं हैं (अर्थात कोई फ़ाइल नाम नहीं है), और उन ब्लॉकों को अप्रयुक्त के रूप में चिह्नित करता है। ऐसा करने में लंबा समय लगता है।

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

एक कम सामान्य प्रकार की जर्नलिंग है, जिसे डेटा जर्नलिंग कहा जाता है, जो कि ext3यदि आप data=journalविकल्प के साथ इसे माउंट करते हैं तो क्या होता है।

यह न केवल तार्किक कार्यों की सूची लिखकर आपके सभी डेटा की सुरक्षा करने का प्रयास करता है, बल्कि पत्रिका को प्रत्येक लिखने की संपूर्ण सामग्री भी। लेकिन क्योंकि यह आपके डेटा को दो बार लिख रहा है, इसलिए यह बहुत धीमा हो सकता है।

जैसा कि अन्य लोगों ने बताया है, यहां तक ​​कि यह कोई गारंटी नहीं है, क्योंकि हार्ड ड्राइव ने ऑपरेटिंग सिस्टम को डेटा संग्रहीत करने के बारे में बताया होगा, जब यह तथ्य था कि यह अभी भी हार्ड ड्राइव के कैश में था।

अधिक जानकारी के लिए, विकिपीडिया जर्नलिंग फाइल सिस्टम लेख और ext4 प्रलेखन के डेटा मोड अनुभाग पर एक नज़र डालें ।


1
फ़ाइल सिस्टम भ्रष्टाचार और डेटा भ्रष्टाचार के बीच अंतर के लिए +1। व्यवहार में यह थोड़ा अंतर काफी ख़तरनाक है।
स्प्लिंटररेलिटी

मेरे अज्ञानता का बहाना है, लेकिन data=journalएक सुविधा के रूप में बिल्कुल कोई मतलब नहीं है?
बोहज

फिर से, ओएस जानता है कि कब ड्राइव डेटा को कैश करता है और सुसंगत एफएस बनाए रखने के लिए आवश्यक होने पर इसे फ्लश करने के लिए मजबूर करता है। निश्चित रूप से आपकी डेटा फ़ाइल खो सकती है या दूषित हो सकती है यदि वह एप्लिकेशन जो उस समय लिख रहा था जब बिजली विफल हो गई थी तो वह सावधानी से नहीं कर रहा था, और यह लागू होता है कि आप डेटा = जर्नल का उपयोग करते हैं या नहीं।
psusi

@psusi कोई फर्क नहीं पड़ता कि कार्यक्रम डेटा लिखने में कितना सावधान है, बहुत सारे हार्ड ड्राइव चुपचाप डेटा को भ्रष्ट कर रहे हैं
REPORT

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

8

यदि कोई पावर विफलता होती है, तो एक फाइलसिस्टम अपने फाइलसिस्टम की स्थिरता की गारंटी नहीं दे सकता है, क्योंकि यह नहीं जानता है कि हार्डवेयर क्या करेगा।

यदि कोई हार्ड ड्राइव बफ़र डेटा लिखने के लिए रखता है, लेकिन OS को बताता है कि उसने डेटा लिखा है और वह उपयुक्त राइटिंग बैरियर का समर्थन नहीं करता है, तो आउट-ऑफ़-ऑर्डर राइटिंग हो सकती है, जहां पहले वाला लेखन प्लेटर से नहीं टकराया हो, लेकिन बाद में एक है। देखें इस serverfault जवाब अधिक जानकारी के लिए।

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


सिर को पीछे हटाते समय लेखन को स्थगित करने के लिए ड्राइव का फर्मवेयर पर्याप्त स्मार्ट नहीं है?
नाथन उस्मान

@ जॉर्ज: यह ड्राइव पर निर्भर करने वाला है। वहाँ बहुत कुछ है और आप नहीं जानते कि आपकी (सस्ती) ड्राइव कितनी अच्छी तरह से काम करती है।
camh

1
हार्ड ड्राइव ओएस को बताता है यदि वह कैश के पीछे एक लेखन का उपयोग करता है, और ओएस यह सुनिश्चित करने के लिए उपाय करता है कि वे सही क्रम में फ्लश हो गए हैं। ड्राइव भी डिज़ाइन किए गए हैं ताकि जब बिजली विफल हो जाए, तो वे लिखना बंद कर दें। मैंने कुछ ऐसे मामलों को देखा है जहां बिजली की हानि के समय लिखा जाने वाला क्षेत्र भ्रष्ट हो जाता है क्योंकि उसने ecc को अपडेट करना समाप्त नहीं किया (लेकिन आसानी से सही तरीके से दोबारा लिखा जा सकता है), लेकिन कभी भी यादृच्छिक क्षेत्रों को बिजली के नुकसान पर भ्रष्ट होने के बारे में नहीं सुना।
Psusi

3

ZFS, जो करीब है, लेकिन एक जर्नलिंग फाइलसिस्टम नहीं है, बिजली की विफलता के बाद भ्रष्टाचार के खिलाफ डिजाइन द्वारा गारंटी दे रहा है।

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


2

जवाब ज्यादातर मामलों में है:

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

क्या घटनाएं एक भ्रष्ट पत्रिका को जन्म दे सकती हैं? केवल एक चीज जिसके बारे में मैं सोच सकता था वह थी खराब सेक्टर - क्या कुछ और है?
नाथन उस्मान

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