- क्या जांच करने के लिए कोई विश्वसनीय तरीका है, वह फ़ाइल मौजूद है? फाइल पर lstat ऊपर दिए गए परिदृश्य में सफलता देता है और फ़ाइल फ़ाइल को स्थानांतरित करने के बाद ही विफल हो जाती है।
यह सामान्य एनएफएस व्यवहार है।
- कैसे मैं मैन्युअल रूप से सर्वर के साथ क्लाइंट पर निर्देशिका की सामग्री समन्वयित कर सकते हैं?
कि असंभव है मैन्युअल रूप से करना है, के बाद से एनएफएस एक सामान्य POSIX अनुरूप फाइल सिस्टम होने का दिखावा।
मैंने एनएफएस क्लाइंट-साइड कैशिंग के प्रभावों को कम करने के प्रयास में बंद()/open() को कोड करने के लिए एक बार कोशिश की है। मेरे मामले में मुझे अन्य सर्वर पर फ़ाइल में लिखी गई जानकारी को पढ़ने की जरूरत थी। लेकिन फिर से खोलने की चाल शून्य प्रभाव के करीब थी। और मैं fdatasync() को लेखन पक्ष में नहीं जोड़ सकता, क्योंकि यह पूरे एप्लिकेशन को धीमा कर देता है।
आज तक एनएफएस के साथ मेरा अनुभव यह है कि आप कुछ भी नहीं कर सकते हैं। महत्वपूर्ण कोड पथों में मैंने बस उस फ़ाइल ऑपरेशन को पुनः प्रयास करने के लिए कोड किया जो ESTALE लौटाता है।
- कैसे एनएफएस के मामले में विश्वसनीय फ़ाइल प्रबंधन कोड लिखने के लिए पर कुछ सामान्य सलाह?
मॉड मुझे नीचे सभी आप चाहते हैं, लेकिन अगर अपने ग्राहकों को विश्वसनीयता चाहते हैं तो वे एनएफएस उपयोग नहीं करना चाहिए।
उदाहरण के लिए मेरी कंपनी उचित वितरित फ़ाइल सिस्टम (मैं जानबूझकर ब्रांड को छोड़ देता हूं) का उपयोग करती है यदि ग्राहक विश्वसनीयता चाहता है। हमारे मूल सॉफ्टवेयर को एनएफएस पर चलाने की गारंटी नहीं है और हम इस तरह के विन्यास का समर्थन नहीं करते हैं। लेकिन हमारे मामले में हमें वास्तव में गारंटी की आवश्यकता है कि जैसे ही डेटा एफएस को लिखा जाता है, वे अन्य सभी नोड्स पर पहुंच योग्य हो जाते हैं।
एनएफएस में कोहेरेंसी हासिल की जा सकती है, लेकिन प्रदर्शन की लागत पर, एनएफएस मुश्किल से उपयोग करने योग्य बनाते हैं। (इसके माउंट विकल्प देखें।) एनएफएस इस तथ्य को छिपाने के लिए पागल की तरह कैशिंग है कि यह एक सर्वर फाइल सिस्टम है। सभी परिचालनों को सुसंगत बनाने के लिए, स्थानीय कैश को छोड़कर, एनएफएस क्लाइंट को प्रत्येक छोटे ऑपरेशन के लिए सिंक्रनाइज़ रूप से एनएफएस सर्वर पर जाना होगा। और वह कभी तेज नहीं होगा।
लेकिन चूंकि हम यहां लिनक्स से बात कर रहे हैं, इसलिए कोई भी उपलब्ध क्लस्टर फ़ाइल सिस्टम का मूल्यांकन करने के लिए सॉफ्टवेयर के ग्राहकों को सलाह दे सकता है। जैसे RedHat अब आधिकारिक तौर पर GFS का समर्थन करता है। मैंने कोडाएफएस का उपयोग करने वाले लोगों के बारे में सुना है, लेकिन इसमें कोई कठोर जानकारी नहीं है।
धन्यवाद। आपने अपने अधिकांश एनएफएस शोध परिणामों की पुष्टि की है। मान लीजिए कि मैं ईएसटीएएल चेक का एक गुच्छा कोड दूंगा, क्योंकि हमारे पास किसी अन्य स्टोरेज में माइग्रेट करने की योजना नहीं है।मैं अब इस जवाब को स्वीकार नहीं करूंगा, आशा करता हूं कि कोई विषय पर अधिक जानकारी के साथ आएगा। – begray