क्या एक ही ext4 डिस्क को दो मेजबानों से, एक को आसानी से माउंट किया जा सकता है?


17

मुझे पता है कि एक ही डिस्क को दो अलग-अलग सर्वरों से ext4 फाइल सिस्टम के साथ माउंट करना (यह एक iSCSI vloume है) डिस्क पर भ्रष्ट डेटा की संभावना होगी। मेरा सवाल यह है कि अगर सर्वर में से एक डिस्क को केवल पढ़ने के लिए, जबकि अन्य इसे पढ़ने-लिखने में गिनता है, तो इससे कोई फर्क पड़ेगा?

मुझे पता है कि OCFS2 या इसके लिए पसंद का इस्तेमाल किया जा सकता है और यह कि मैं NFS के साथ डिस्क को दूसरे सर्वर के लिए एक्सेसेबल होने के लिए एक्सपोर्ट कर सकता हूं, लेकिन मैं यह जानना चाहूंगा कि क्या मैं सेटअप का प्रस्ताव काम करूंगा।


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

@frostschutz हाँ, दोनों आरओ काम करेंगे लेकिन ट्रिक्स के बिना नहीं, क्योंकि ext4 के आरओ-माउंट वास्तविक डिस्क को लिखते हैं (प्रत्येक के लिए आरओ-लूप और ओवरलेफ़्स की आवश्यकता होती है)।
नेड 64

मैं यहां एक उपयोग का मामला साझा करूंगा: एक भौतिक सर्वर और एक आभासी सर्वर डिस्क पास-थ्रू के साथ एक भौतिक डिस्क साझा कर रहे हैं। वर्चुअल सर्वर rw के रूप में डिस्क को माउंट कर रहा है। मैं डिस्क से बड़ी मात्रा में डेटा कॉपी करना चाहूंगा लेकिन नेटवर्क बहुत धीमा है। यह बहुत अच्छा होगा यदि मैं होस्ट ओएस में आरओ के रूप में भौतिक डिस्क को माउंट कर सकता हूं और डेटा को बाहरी यूएसबी ड्राइव पर कॉपी कर सकता हूं। होस्ट सर्वर में केवल एक USB नियंत्रक होता है इसलिए PCI-passthrough कोई विकल्प नहीं है।
ज़ूयुन वेई

जवाबों:


26

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

लेकिन सबसे महत्वपूर्ण बात यह है कि ext4 जर्नल को आसानी से पढ़ता है। तो एक आसानी से माउंट अभी भी अंतर्निहित ब्लॉक डिवाइस को लिखेगा। यह असुरक्षित भी होगा, यदि दोनों आरोह आसानी से पढ़े गए हों :)।


5
जैसा कि आप कहते हैं, बढ़ते बढ़ते की गारंटी नहीं है कि फाइलसिस्टम अछूता रहेगा। आप अभी भी जोखिम उठाने के बिना "शैक्षिक" प्रयोजन के लिए कोशिश करना चाहते हैं, तो आप अपने स्थापित करना चाहिए डिवाइस केवल पढ़ने के लिए: blockdev --setro /dev/sda1
टोटर

थैट के माउंट 4 के बारे में दिलचस्प जानकारी। मुझे लगता है एक ext2 केवल पढ़ने के लिए मजबूर करके इस समस्या से बच सकते हैं?
बनंगुइन

1
मुझे यह कोड स्निपेट मिला जिसने मुझे एक VM में केवल-पढ़ने के लिए ब्लॉक डिवाइस माउंट करने दिया: sudo mount -t ext4 -o ro,loop,noload /dev/vda /mnt/ digital-forensics.sans.org/blog/2011/06/14/…
isaaclw

0

इससे डेटा भ्रष्टाचार से बचा जा सकता है, लेकिन संभवतः ऐसा नहीं होने जा रहा है जो आप करना चाहते हैं। मैंने कभी भी किसी मुद्दे को केवल एक अन्य नोड पर वॉल्यूम रीडिंग को ध्यान में रखते हुए नहीं देखा है। यहां तक ​​कि अगर कुछ आरओ नोड पर मेल नहीं खाता है, जो आमतौर पर "अनपेक्षित फ्री इनोड फेंकता है, तो कृपया ई 2 एफएसके चलाएं" या जैसे / var / log / संदेशों में। यदि किसी गैर-महत्वपूर्ण फाइल सिस्टम के बारे में कुछ अप्रत्याशित रूप से अप्रत्याशित है ("/ opt / mySpecialmount") तो आमतौर पर लिनक्स केवल पढ़ने के लिए वॉल्यूम को माउंट करेगा (जो कि अरे, हम पहले से ही वहां हैं)। यदि आप इस बात से सुपर चिंतित हैं कि कैशिंग का क्या प्रभाव है, तो आप कुछ प्रकार की drop_caches / vfs_cache_pressure शासन प्राप्त करने का प्रयास कर सकते हैं।

माउंट आर्ग्स में "noload" पत्रिका को फिर से जोड़ने से बचने के लिए, त्रुटियों के साथ = रिमाउंट-आरओ (सिर्फ सावधानी के पक्ष में) करने के लिए करें।

उस ने कहा, संभावना है कि यदि आप इसे केवल पढ़ने के साथ बढ़ते हुए ठीक कर रहे हैं, तो यह संभवतः अन्य नोड के लिए एक संदर्भ के रूप में है, जिस स्थिति में NFS या smbfs समस्या को हल करेगा और ext3 की तुलना में थोड़ा अधिक संगामिति के लिए डिज़ाइन किया गया है / है 4 होगा। यदि आपको प्रदर्शन की आवश्यकता है, तो आप एक संकुल फाइल सिस्टम में देख सकते हैं (थोड़ा अधिक प्रशासनिक ओवरहेड, लेकिन यह वहां है यदि प्रदर्शन वास्तव में कुछ ऐसा है जो आपकी आवश्यकता है)।


1
" इससे डेटा भ्रष्टाचार से बचा जा सकता है": हो सकता है कि सोर्सजेडी का जवाब और मेरी टिप्पणी न देखें ।
टॉटर

1
"जर्नल रिप्ले को स्किप करने से फाइल सिस्टम में असंगति होगी जो किसी भी समस्या को जन्म दे सकती है" - man mount। मैं कल्पना कर सकता हूं कि ऐसे एप्लिकेशन हैं जो उनकी फाइलों में असंगत डेटा का पता लगाता है और / या सहन करता है, लेकिन आपने अभी तक ऐसे किसी भी चेतावनी का उल्लेख नहीं किया है :)।
sourcejedi

@sourcejedi वे कहते हैं कि क्योंकि वे लोगों को प्रभावी ढंग से पत्रिका को दरकिनार करने के जोखिम बताने की कोशिश कर रहे हैं। यह ठीक है, क्योंकि धारणा यह है कि अन्य नोड दूसरे नोड के लिए जर्नल काम कर रहे होंगे, हम सिर्फ दोहरे काम से बचने की कोशिश कर रहे हैं। हम अपने विकास सर्वरों में से एक पर करते हैं (मेरी पसंद नहीं, मैंने NFS किया होगा) और उस चीज़ को बिना किसी समस्या के एक वर्ष के लिए एक ड्रॉप_कैश के बिना भी मुहैया कराया है। हम दोनों ने उल्लेख किया है कि गैर-बासी एफएस कैश प्रविष्टियां पुराने डेटा को प्रस्तुत कर सकती हैं, लेकिन अंततः यह तय करना है कि यह व्यावहारिक है या नहीं।
ब्राचली

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

1
आपकी टिप्पणी को देखते हुए मुझे लगता है कि आप ब्लॉक-स्तरीय कैशिंग का उल्लेख करने की कोशिश कर रहे होंगे, जो कि मेमोरी में ब्लॉक डिवाइस I / O की कैशिंग है। जो मामले में, यह है कि ग्रहण कर रही है मेटाडाटा ही है, यह की कैशिंग में होता है के मेटाडाटा ही। यह किसी भी फाइलसिस्टम ड्राइवरों के बाहर मौजूद है इसलिए ext4 / btrfs / etc के पास इसका कोई प्रबंधन नहीं है।
ब्रेटली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.