लिनक्स में 'बैरियर' माउंट फ्लैग का क्या अर्थ है?


20

'बैरियर' माउंट विकल्प के लिए मैनुअल है:

बाधा = ० / बाधा = १

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

लेकिन मुझे नहीं पता कि वाक्य " जर्नल के आदेशों का उचित ऑन-डिस्क ऑर्डर " क्या है।

मान लीजिए कि सामान्य आदेश - जर्नल 1, डेटा 1; जर्नल 2, डेटा 2.
यदि मैं सेट करता हूं तो निम्नलिखित में से कौन सा आदेश परिणाम होगा barrier=0?

  1. जर्नल 2, डेटा 2; जर्नल 1, डेटा 1;
  2. डेटा 1, जर्नल 1; डेटा 2, जर्नल 2।


1
यदि आप जर्नलिंग फाइल सिस्टम के बारे में पढ़ते हैं, तो आपको महसूस होगा कि पहले जर्नल लिखना महत्वपूर्ण है, फिर जर्नल को डिस्क पर वास्तविक डेटा लिखने के लिए निष्पादित करें। अवरोध यह सुनिश्चित करता है कि पत्रिका को निष्पादित होने से पहले लिखा जाए। अन्यथा पत्रिका बेकार।
ctrl-alt-delor

@richard BBWC में "नोबैरियर" झंडे का उपयोग करते समय कठोर छापे, तो डिस्क यह सुनिश्चित नहीं कर सकती है कि डेटा के निष्पादित होने से पहले जर्नल को लिखा गया है, क्या यह स्थिति मायने नहीं रखती है?
पत्ती जूल 22'14

मुझे यह जानने के लिए पर्याप्त नहीं है कि क्या यह मायने रखता है। मुझे लगता है कि इससे भी बदतर यह कोई पत्रिका नहीं है, लेकिन मैंने जो पढ़ा है वह उतना बुरा नहीं लगता है, हालांकि मैं सूक्ष्मताओं को नहीं समझ सकता। मेरे पास है barrier=1, और यह मेरे लिए काफी तेजी से चलता है। जब तक आप वास्तविक भारी शुल्क सामान नहीं कर रहे हैं मैं इसे छोड़ दूंगा। आपके पास रैम बफ़र्स हैं, इसलिए जब यह अनुप्रयोगों के लिए कोई मंदी नहीं है तो सामान बाहर लिखा जाएगा । और डिस्क पर लिखने में बहुत कम देरी। यदि आप यह देखते हैं कि रैम बफ़र्स चीजों को कितनी गति देता है, तो अपने होम डायरेक्टरी में सिंक = 1 जोड़ें, और एक या दो दिन के लिए अपने सिस्टम का उपयोग करने का प्रयास करें।
ctrl-alt-delor

जवाबों:


15

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

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

समस्या यह है कि कई डिस्क के पास अपने स्वयं के कैश हैं जो राइट्स को फिर से ऑर्डर कर सकते हैं। कुछ फ़ाइल सिस्टम यह मानेंगे कि ऐसा होगा और इसे रोकने के लिए डिस्क को कुछ बिंदुओं पर कैश को फ्लश करने के लिए मजबूर करेगा, और इसे write barriersउदाहरण के लिए ext4, और सामान्य रूप से लिनक्स कहा जाता है।

आधुनिक डिस्क के लिए यह करने के लिए प्रदर्शन बलिदान नगण्य है, हालांकि, और जब तक बिल्कुल आवश्यक न हो, तब तक आपको अवरोधों को निष्क्रिय नहीं करना चाहिए।


1

से इस LWN लेख :

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

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