डेटा हानि या भ्रष्टाचार को कम करने के लिए ext3 फ़ाइल सिस्टम के लिए कौन से माउंट विकल्प का उपयोग करें?


15

मेरे पास रूट फाइल सिस्टम के लिए इनट्राम्राम्स का उपयोग करके एक एम्बेडेड सेटअप है, लेकिन कॉम्पैक्ट फ्लैश आईडीई ड्राइव पर माउंट किए गए कस्टम ext3 विभाजन का उपयोग कर रहा है। क्योंकि बिजली की हानि का सामना करने में डेटा अखंडता पूरे सेटअप में सबसे महत्वपूर्ण कारक है, मैंने निम्न विकल्पों को माउंट करने के लिए उपयोग किया है (नीचे मेरी /etc/fstabफ़ाइल से प्रविष्टि है

<file system> <mount pt> <type> <options>                         <dump><pass>
/dev/sda2     /data      ext3   auto,exec,relatime,sync,barrier=1 0     2

मैं इन विकल्पों को इंटरनेट पर चारों ओर पढ़ने से आया था। मुझे इस बात की चिंता है कि /proc/mountsनिम्नलिखित सामग्री क्या है :

/dev/sda2 /data ext3 rw,sync,relatime,errors=continue,user_xattr,acl,
barrier=1,data=writeback 0 0

चारों ओर पढ़ने से मुझे जो समझ में आता है वह यह है कि मैं data=journalअपने माउंट के लिए विकल्प का उपयोग करना चाहता हूं क्योंकि यह डेटा भ्रष्टाचार के खिलाफ सबसे अच्छा संरक्षण प्रदान करता है। हालांकि, इसके लिए विशिष्ट ext3 विकल्पों के लिए मैन पेज mountसे राइटबैक विकल्प के बारे में निम्नलिखित कहते हैं:

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

मैं इस बारे में बहुत उलझन में हूं - मैन पेज यह सुझाव देता है कि फ़ाइल सिस्टम अखंडता के लिए मैं data=writebackविकल्प निर्दिष्ट करना चाहता हूं, mountलेकिन मुझे मिले अधिकांश संदर्भ (एम्बेडेड लिनक्स पर कुछ प्रकाशित पुस्तकों सहित) का सुझाव है कि मुझे उपयोग करना चाहिए data=journal। मेरे लिए उपयोग करने के लिए सबसे अच्छा तरीका क्या होगा? गति लिखना कोई समस्या नहीं है - डेटा अखंडता हालांकि है।


1
डेटा = जर्नल के आसपास कुछ मार्गदर्शन प्रदान करता है । मैं आरएच केवल उस प्रकार के ऑर्डर का समर्थन करने के बाद से कुछ भी उपयोग करने के लिए इच्छुक हूं।
स्लम

2
@sim वास्तव में यह कहता है data=ordered: p
sourcejedi

जवाबों:


7

तथ्य यह है कि केवल द्वारा गुमराह मत writebackका उल्लेख है internal filesystem integrity
के साथ ext3, चाहे आप का उपयोग करें journal, orderedया writeback, फ़ाइल सिस्टम मेटाडेटा हमेशा है पत्रिकाओं और आंतरिक फ़ाइल सिस्टम अखंडता का मतलब है।

फ़ाइल मोड पर साधारण डेटा कैसे लिखा जाता है, इस पर डेटा मोड नियंत्रण का एक तरीका प्रदान करता है।
में writebackमोड, मेटाडाटा परिवर्तन पहले पत्रिका में दर्ज किया जाता है और एक प्रतिबद्ध ब्लॉक लिखा है। पत्रिका के अपडेट होने के बाद, मेटाडेटा और डेटा राइट-आउट आगे बढ़ सकते हैं। data=writeback एक गंभीर सुरक्षा जोखिम हो सकता है: यदि मेटाडेटा द्वारा (और अतिरिक्त डेटा ब्लॉक आबंटित) किए जाने के बाद, सिस्टम किसी फाइल को अपडेट करते समय क्रैश हो जाता है, लेकिन डेटा लिखे जाने से पहले (डेटा ब्लॉक नए डेटा से ओवरराइट हो गया है), तो जर्नल के बाद पुनर्प्राप्ति उस फ़ाइल में पहले से हटाई गई फ़ाइलों के डेटा से भरे ब्लॉक हो सकते हैं - किसी भी उपयोगकर्ता से 1

इसलिए, यदि डेटा अखंडता आपकी मुख्य चिंता है और गति महत्वपूर्ण नहीं है, data=journalतो जाने का रास्ता है।


4

जैसा कि आप पहले ही देख चुके हैं, मुख्य बिंदु यह है कि आप अपने फाइल सिस्टम को हर तरह की दुर्घटना से नहीं रोक सकते।

आप क्या कर सकते है:

  1. सॉफ्टवेयर पक्ष पर, आप उपयोग कर सकते fdatawrites के बाद प्रत्येक महत्वपूर्ण आपरेशन (देखें यह 2003 थिओडोर T'so, एक मुख्य लिनक्स एफएस कर्नेल डेवलपर की ओर से। यह अभी भी सच है। वहाँ भी है इस एक ext4 के पुराने संस्करणों में छिपा एक प्रमुख डेटा हानि के बारे में)
  2. कम से कम 1 सेकंड का अंतराल ( कमिट = 1 ) ( LWN का यह लेख देखें , यह ext4 के बारे में है, लेकिन ext3 के बारे में वास्तव में उपयोगी है।) NB: यह सिंक के साथ की जरूरत नहीं होनी चाहिए ।
  3. जैसा कि आरएचईएल डॉक ने सिम द्वारा बताया है, * data_err = abort * और data = ऑर्डर का उपयोग करें
  4. noatime फाइल सिस्टम पर बेकार संचालन को कम करेगा
  5. जैसा कि आप पहले ही देख चुके हैं, बाधा = 1 डेटा हानि को कम करने का एक अच्छा तरीका है ( इस पोस्ट को देखें )
  6. और सिंक भी, ज़ाहिर है, "मैं अपना डेटा खोना नहीं चाहता" विकल्प में से एक है।

अंत में, व्यामोह माउंट विकल्प इस तरह दिख सकते हैं:

auto,exec,relatime,sync,barrier=1,commit=1,data=ordered,data_err=abort,noatime,

और आप प्रत्येक बूट पर एक स्वचालित fsck के साथ डेटा अखंडता सुनिश्चित कर सकते हैं।


2

उस व्यक्ति पृष्ठ के किस भाग को बदलने का प्रयास करें जिसे आप सहानुभूति देते हैं:

वापस लिखना

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

जैसा कि don_crissti ने बताया, अन्य मोड में "हालांकि" नहीं है।

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