रीबूट का क्रम महत्वपूर्ण है। क्लाइंट के बाद सर्वर को रिबूट करना इस स्थिति का परिणाम हो सकता है। बासी एनएफएस हैंडल इंगित करता है कि क्लाइंट के पास एक फ़ाइल खुली है, लेकिन सर्वर अब फ़ाइल हैंडल को नहीं पहचानता है। कुछ मामलों में, एनएफएस एक टाइमआउट के बाद अपने डेटा संरचनाओं की सफाई करेगा। अन्य मामलों में, आपको एनएफएस डेटा संरचनाओं को स्वयं साफ करने और बाद में एनएफएस को पुनरारंभ करने की आवश्यकता होगी। जहां ये संरचनाएं स्थित हैं वे कुछ हद तक ओ / एस पर निर्भर हैं।
पहले NFS को सर्वर पर और फिर क्लाइंट पर रीस्टार्ट करने का प्रयास करें। यह फ़ाइल हैंडल को साफ़ कर सकता है।
अन्य सर्वर से खोली गई फ़ाइलों के साथ एनएफएस सर्वरों को रिबूट करना अनुशंसित नहीं है। यह विशेष रूप से समस्याग्रस्त है अगर खुली फाइल को सर्वर पर हटा दिया गया है। सर्वर रिबूट होने तक फ़ाइल को खुला रख सकता है, लेकिन रिबूट सर्वर साइड पर इन-मेमोरी फ़ाइल हैंडल को हटा देगा। फिर क्लाइंट फ़ाइल को खोलने में सक्षम नहीं होगा।
यह निर्धारित करना कि सर्वर से कौन सा आरोह का उपयोग किया गया है, कठिन और अविश्वसनीय है। showmount -a
विकल्प कुछ सक्रिय माउंट दिखा सकते हैं, लेकिन उन सभी को रिपोर्ट नहीं कर सकते हैं। लॉक की गई फ़ाइलों की पहचान करना आसान है, लेकिन लॉकिंग को सक्षम करने की आवश्यकता होती है और फ़ाइलों को लॉक करने के लिए क्लाइंट सॉफ़्टवेयर पर निर्भर करता है।
आप lsof
क्लाइंट पर उन प्रक्रियाओं की पहचान करने के लिए उपयोग कर सकते हैं जिनके पास माउंट पर खुली हुई फाइलें हैं।
मैं अपने NFS माउंट पर विकल्पों का उपयोग करता हूं hard
और intr
माउंट करता हूं। hard
विकल्प आईओ अनिश्चित काल के लिए पुनः प्रयास किया जाना कारण बनता है। intr
विकल्प अगर वे पूरा करने के लिए एनएफएस आईओ पर इंतजार कर रहे हैं प्रक्रियाओं मारे जाने के लिए अनुमति देता है।
hard, intr
अच्छी सलाह है। हालाँकि, ध्यान दें कि NFS प्रत्येक प्रयास के साथ समय समाप्त करता है। तो आप सबसे अच्छा सेटtimeo=1
औरretrans=5
या तो। ध्यान दें कि यह होगा एनएफएस पुनः आरंभ करने के बाद अपने एनएफएस सर्वर पर अत्यधिक भार डालते। अपनी NFS सेवा को इतनी बार पुनः आरंभ नहीं करने का प्रयास करें;)