NFS4 (लिनक्स सर्वर) को समझना


26

मैं लिनक्स पर NFS4 से थोड़ा परेशान हूं। कुछ जानकारी 'वहाँ से बाहर' अन्य जानकारी के साथ संघर्ष करने लगती है, और अन्य जानकारी खोजने में कठिन प्रतीत होती है। तो यहाँ कुछ चीजें हैं जिन्होंने मेरा ध्यान आकर्षित किया, उम्मीद है कि कोई व्यक्ति इस पर कुछ प्रकाश डाल सकता है।

यह प्रश्न विशेष रूप से NFS4 पर केर्बरोस आदि के बिना केंद्रित है।

1. निर्यात

exports/ आदि / निर्यात की संरचना पर मैनपेज में अस्पष्ट जानकारी है ।

से उद्धृत करने के लिए exports(5):

इसके अलावा, प्रत्येक पंक्ति में एक डैश सूची ("-") के रूप में पथ नाम के बाद डिफ़ॉल्ट विकल्प के लिए एक या एक से अधिक विनिर्देश हो सकते हैं, उसके बाद एक विकल्प सूची होगी।

विकल्प सूची का उपयोग केवल उस लाइन पर सभी बाद के निर्यात के लिए किया जाता है।

"उस लाइन पर बाद में निर्यात" का क्या अर्थ है?

1.2 fsid=0अब और आवश्यकता नहीं है?

मैं fsid की खोज कर रहा था जब मुझे linux-nfs सूची पर एक टिप्पणी मिली जिसमें कहा गया कि fsid = 0 की अब आवश्यकता नहीं है। अब मैं बस उलझन में हूँ, क्या मुझे nfs4 की ज़रूरत है या नहीं ?!

2. गैर-निर्यात निर्देशिका अभी भी माउंट करने योग्य है

कहो मैं निम्नलिखित पेड़ है:

/exp
/exp/users
/exp/distr
/exp/distr/archlinux
/exp/distr/debian

और मेरे पास इस fstab प्रविष्टि में निम्नलिखित प्रविष्टियाँ हैं:

/dev/disk/by-label/users  /mnt/users  ext4  defaults  0  0
/dev/disk/by-label/distr  /mnt/distr  ext4  defaults  0  0
/mnt/users                /exp/users  none  bind      0  0
/mnt/distr                /exp/distr  none  bind      0  0

और मेरा निर्यात बिल्कुल यही है:

/exp       192.168.1.0/24(fsid=0,rw,async,no_subtree_check,no_root_squash)
/exp/distr 192.168.1.0/24(rw,async,no_subtree_check,no_root_squash)

और exportfs -arvदिखाता है:

exporting 192.168.1.0/24:/exp/distr
exporting 192.168.1.0/24:/exp

फिर मैं ऐसा करने में सक्षम क्यों हूं और एक ग्राहक पर कोई त्रुटि नहीं है:

mount -t nfs4 server:/exp/users /tmp/test

हालांकि /exp/usersनिर्यात नहीं किया जाता है? मैंने इस निर्देशिका को निर्यात नहीं किया, और जब /dev/disk/by-label/usersतक मैं निर्दिष्ट नहीं करता crossmnt, तब तक मैं सामग्री नहीं देखता , मैं अभी भी निर्देशिका में लिखने में सक्षम हूं। मैं जो कुछ भी लिखता हूं वह अंतर्निहित निर्देशिका में जाता है, /exp/usersजिसे मैं देख सकता हूं umount /exp/users; ls /exp/users

3. का अजीब मामला showmount -d server

जैसा कि कहा गया है rpc.mountd(8), इस कमांड को उन निर्देशिकाओं को प्रदर्शित करना चाहिए जो या तो वर्तमान में क्लाइंट्स द्वारा माउंट की जाती हैं, या स्टाल एंट्रीज में /var/lib/nfs/rmtabपढ़ी जा सकती हैं:

Rpc.mountd डेमन हर सफल MNT अनुरोध को / var / lib / nfs / rmtab फ़ाइल में प्रविष्टि जोड़कर पंजीकृत करता है। जब एनएफएस क्लाइंट से UMNT अनुरोध प्राप्त होता है, तो rpc.mountd बस / var / lib / nfs / rmtab से मिलान प्रविष्टि को हटा देता है, जब तक कि निर्यात के लिए एक्सेस कंट्रोल सूची उस प्रेषक को निर्यात का उपयोग करने की अनुमति देती है।

(...)

ध्यान दें, हालांकि, यह गारंटी देने के लिए बहुत कम है कि / var / lib / nfs / rmtab की सामग्री सटीक है। UMNT के आह्वान के बाद भी कोई ग्राहक किसी निर्यात पर पहुंच जारी रख सकता है। यदि क्लाइंट UMNT अनुरोध भेजे बिना रिबूट करता है, तो बासी प्रविष्टियाँ उस क्लाइंट के लिए / var / lib / nfs / rmtab में रहती हैं।

इसे पढ़ने के बाद मुझे निश्चित रूप से आश्चर्य होता है:

  1. क्या इस प्रकार की ग्राहक जानकारी को उजागर करना बहुत असुरक्षित नहीं है;
  2. बहुत सारे बासी ग्राहकों के साथ एक rmtab के लिए बाध्य अनजान सर्वर व्यवस्थापक नहीं हैं;
  3. क्या यही कारण है कि nfs4 निर्देशिकाओं को माउंट करने वाले क्लाइंट mount -vको आउटपुट के साथ "कुछ भी नहीं" जैसे कुछ देखने के बावजूद माउंट किया गया था ?

मेरे पास nfs4 के बारे में बहुत सारे अन्य प्रश्न हैं, लेकिन मैं इसे इस समय रखूंगा .. :)


हो सकता है कि एक्सपोर्ट लिस्ट को आपके अजीब तरह के माउंट किए गए फाइल सिस्टम पसंद न हों। / Mnt / उपयोगकर्ताओं के साथ पहले प्रयास करें ...
jirib

यह nfs4 के बारे में है, जिसके लिए "छद्म फाइल सिस्टम" अर्थात एक पेड़ फाइल सिस्टम पदानुक्रम की आवश्यकता होती है। क्या आप स्पष्ट कर सकते हैं कि आपका क्या मतलब है?
ढोलक

यह विकी पृष्ठ यह भी दावा करता है कि fsid = 0 की अब आवश्यकता नहीं है: wiki.linux-nfs.org/wiki/index.php/… , लेकिन 'मैन एक्सपोर्ट' का तात्पर्य अभी भी है
SystemParadox

1
मैं कहना चाहूंगा कि मैं इस प्रश्न का समर्थन करता हूं। आप की तरह मैंने भी एक ही तरह की कई बातें देखी हैं, और एक ही सवाल और बहुत कुछ किया है। ऐसा लगता है जैसे f * आईएनजी गड़बड़।
चक्रवात

1
एक पोस्ट में बहुत सारे प्रश्न। @ विक्रमफायर, क्या आप इसे अलग-अलग सरल प्रश्न-पदों में तोड़ सकते हैं?
विक्टर यारमा

जवाबों:


7

महान सवाल, प्रलेखन IMO के साथ एक बड़ा बिंदु पर प्रकाश डाला गया। यहाँ एक पूर्ण उत्तर देने का प्रयास किया गया है:

"उस लाइन पर बाद में निर्यात" का क्या अर्थ है?

एक उदाहरण शायद यहाँ सबसे आसान है:

/export/stuff -rw 10.0.0.54 10.0.0.55

के बराबर है:

/export/stuff 10.0.0.54(rw) 10.0.0.55(rw)

है fsid=0अब और आवश्यकता नहीं?

यह आपके उपयोग के मामले पर निर्भर करता है। ऐसा लगता है कि आप अपनी क्वेरी के बाकी हिस्सों से नियमित डिस्क आधारित फाइल सिस्टम का निर्यात कर रहे हैं, उस स्थिति में आप ड्रॉप करने के लिए सबसे अच्छे हैं fsid=0(जो निर्यात की रूट फाइल सिस्टम को संदर्भित करने के लिए व्यवहार में परिवर्तन करता है)।

इस व्यवहार को बदलने के लिए no_subtree_check विकल्प निकालें


rmtabसंबंधित सामान

  • क्या rmtabसुरक्षा जोखिम से निपटना है?
    मुझे लगता है कि यह आपके उपयोग के मामले पर निर्भर करता है कि इसका जवाब देने के लिए, मेरे नेटवर्क पर यह एक विश्वसनीय जानकारी लीक पेश नहीं करता है, लेकिन मैं उन मामलों को देख सकता हूं जहां यह संभावित रूप से हो सकता है।
  • rmtabबासी प्रविष्टियों से भरा नहीं होगा?
    संभावित रूप से हाँ, फिर से आपके परिनियोजन परिदृश्य / उपयोग के मामले पर निर्भर करता है।
  • क्या यही कारण है कि कुछ ग्राहक mount -vगलत तरीके से चल रहे हैं, "कुछ भी नहीं देखा गया था"?
    मैं अभी तक इस पार नहीं आया हूं
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.