सिस्टम बंद हो जाता है जब nfs माउंट विकल्प bg, हार्ड, nointr का उपयोग करते समय स्टोरेज ऑफ़लाइन हो जाता है


5

मेरे पास निम्न माउंट विकल्प था जो मेरे सिस्टम पर परिभाषित था। किसी भी भंडारण आउटेज की स्थिति में ये (bg,hard,nointr)कंसोल एक्सेस को लॉक करने का कारण बनेंगे ?

        storage:/vol/myvol on /test type nfs (rw,bg,hard,nointr,rsize=65536,wsize=65536,tcp,nfsvers=3,timeo=600)

एनएफएस विकल्पों के संयोजन को सही अभ्यास क्या माना जाता है?

जवाबों:


15

सभी एनएफएस माउंट विकल्पों में अच्छे अंक और बुरे अंक हैं।

  • bgइसका मतलब है कि, जब आप mountफाइलसिस्टम (आमतौर पर सिस्टम बूट के दौरान) की कोशिश करते हैं, अगर सर्वर समय पर प्रतिक्रिया नहीं देता है, तो माउंट एक प्रक्रिया को बंद कर देता है जो पृष्ठभूमि में चलती है और समय-समय पर माउंट को पीछे छोड़ देती है।

    यदि आप bgविकल्प का उपयोग नहीं करते हैं , mountतो फिर से प्रयास करेंगे और तब तक बाहर नहीं निकलेंगे (और न ही अन्य फाइल सिस्टम को माउंट करने के लिए आगे बढ़ें यदि आप उपयोग करते हैं mount -a) जब तक कि माउंट सफल या विफल नहीं हो जाता।

    यदि आपको किसी सर्वर से फाइलसिस्टम माउंट करने की आवश्यकता होती है, जो अक्सर नीचे होता है, और आप नहीं चाहते कि आपका सिस्टम बूट इसके द्वारा विलंबित हो, तो bgविकल्प (या एक स्वचालित) का उपयोग करें।

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

    तो उपयोग bgकरना एक विकल्प है जो आपको बनाने के लिए मिलता है।

  • hardऔर softफाइलसिस्टम आरोहित होने के बाद लागू करें।

    यदि दूरस्थ सर्वर क्रैश हो जाता है या अन्यथा दुर्गम होता है, तो एक कठिन माउंट अनिश्चित काल के लिए i / o अनुरोध को वापस लेता रहेगा।

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

    तो चुनाव आप पर निर्भर है: जब एक दूरस्थ सर्वर (या आपका नेटवर्क) नीचे चला जाता है, तो क्या आप प्रोग्राम को विफल करना चाहते हैं, या क्या आप चाहते हैं कि जब तक रिमोट फिर से उपलब्ध नहीं हो, तब तक मैं अनिश्चित रूप से i / o को पुनः प्रयास करूं?

  • एक हार्ड माउंट के साथ, यदि रिमोट सर्वर नीचे देता है, तो रिमोट फाइल सिस्टम का उपयोग करने वाले कोई भी प्रोग्राम सिग्नल द्वारा इंटरप्टिबल नहीं होंगे, उसी तरह से स्थानीय डिस्क का उपयोग करने वाले प्रोग्राम (आमतौर पर छोटे) समय के दौरान बाधित नहीं होते हैं। डिस्क i / o करने के लिए लेता है। यह उपयोगकर्ताओं को निराश कर सकता है, क्योंकि उनके कार्यक्रम लटक जाएंगे और वे उन्हें मार नहीं सकते control-C। यदि आप NFS i / o की प्रतीक्षा कर रहे कार्यक्रमों को बाधित करने में सक्षम होना चाहते हैं, तो intrमाउंट विकल्प शामिल करें । आमतौर पर intrविकल्प का उपयोग करना सुरक्षित है ; बस ध्यान रखें कि यह EINTRबाधित होने पर i / o त्रुटियों ( त्रुटि) को देखने के लिए प्रोग्राम का कारण बन सकता है ।

एक सिफारिश मेरे पास है: जब दूरस्थ सर्वर वाले हार्ड-माउंटेड एनएफएस फाइल सिस्टम का उपयोग किया जा सकता है, जो किसी निर्देशिका में (जैसे ), या वास्तव में किसी भी निर्देशिका पर एक निर्देशिका के रूप में उसी स्तर पर फाइलसिस्टम को माउंट नहीं करता है जिसका कई लोग उपयोग करते हैं। , जैसे । इसका कारण यह है या इसकी सी लाइब्रेरी समतुल्य निर्देशिका ट्री के माध्यम से चलता है, निर्देशिकाओं पर आधारित है। यदि कोई एप्लिकेशन हार्ड-माउंटेड एनएफएस माउंट बिंदु पर करता है जो प्रतिक्रिया नहीं दे रहा है, तो यह लटका होगा। यह एनएफएस के बारे में उपयोगकर्ता की शिकायतों का प्रमुख कारण है: वे लॉगिन नहीं कर सकते क्योंकि उनका शेल एक और कुछ एनएफएस फाइल सिस्टम है जो उन्हें उपयोग करने की आवश्यकता नहीं है, नीचे है।//test/home/usernamepwdstatstatpwd यह घर निर्देशिकाओं के लिए एक स्वचालित मुठभेड़ का उपयोग करने का एक और अच्छा कारण है।

यह एनएफएस आरोह के लिए हमारा सबसे अच्छा अभ्यास है:

  • ऑटोमोटिव का उपयोग करें
  • यदि आप नहीं कर सकते हैं, तो विकल्पों के साथ प्रत्येक दूरस्थ फाइल सिस्टम को / n / remoteservername / filesystemname पर माउंट करें hard,intr
  • / n और / n / remoteservername स्थानीय निर्देशिकाएं हैं जो कभी भी NFS माउंट पॉइंट नहीं होती हैं।
  • कॉन्फ़िगर करें updatedbया कुछ और जो पूरी निर्देशिका के पेड़ के माध्यम से दिखता है न देखने के लिए /n

धन्यवाद। यह अच्छी जानकारी है। क्या आप स्टेट के बारे में अधिक विस्तार से जा सकते हैं जो सिस्टम वॉल्यूम के लिए कर रहा है / nfs विकल्प हार्ड, nointr के साथ टेस्ट / माउंट किया गया है। इसलिए, क्या होता है जब एक उपयोगकर्ता ls / और भंडारण पर / परीक्षण नीचे होता है या क्या अन्य प्रक्रिया के कारण उस स्टेट को खींचना पड़ता है?
रज़ा

1
lsका उपयोग करेगा stat()अगर आप इसे देना -l, -t, -u, -F, या -Cविकल्प। इसलिए जब आप टाइप करेंगे ls -C /, lsतो /कुछ भी प्रिंट करने से पहले, डायरेक्टरी की हर फाइल और डायरेक्टरी पर एक स्टेटमेंट करेंगे । जब यह होता है stat("/test"), यदि वह एनएफएस सर्वर डाउन है, lsतब तक लटका रहेगा जब तक कि सर्वर वापस नहीं आता। और क्योंकि यह साथ में रखा गया है nointr, नियंत्रण-सी इसे बाधित नहीं कर सकता है। आपको दूसरी विंडो पर जाने और kill -9इसे मारने के लिए उपयोग करने की आवश्यकता है।
मार्क प्लॉटनिक

ठीक है धन्यवाद। स्टेट जैसी कोई और चीज जो आप सोच सकते हैं कि नियंत्रण लेने के लिए nfs का कारण हो सकता है?
रज़ा

1
जब आप वास्तव में एनएफएस-माउंटेड फ़ाइल या डायरेक्टरी के साथ कुछ करने की कोशिश करते हैं, तो एक दूसरे एनएफएस ऑपरेशन का उपयोग किया जाता है - रीड, राइट, चामोद, चाउन, लिस्ट, क्रिएट, रीनेम। स्टेट सिस्टम कॉल (जिसका इस्तेमाल ls, pwd, find, etc.) द्वारा किया जाता है, यह सबसे आम तरीका है कि उपयोगकर्ता अनजाने में एक NFS ऑपरेशन को ट्रिगर करते हैं।
मार्क प्लॉटनिक जूल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.