नेटवर्क फ़ाइल सिस्टम (NFS) फ़ाइलों और फ़ोल्डरों को साझा करने के लिए एक वितरित फ़ाइल सिस्टम प्रोटोकॉल है। NFS रिमोट प्रोसीजर प्रोटोकॉल (ONC RPC) पर आधारित है। NFS नेटवर्क पर दूरस्थ फ़ाइल सिस्टम को माउंट करने की अनुमति देता है। याद रखें कि एनएफएस का उपयोग करते समय डिफ़ॉल्ट रूप से डेटा एन्क्रिप्ट नहीं किया जाता है, और क्लाइंट प्रमाणित नहीं होते हैं (पहुंच को आईपी द्वारा सीमित किया जा सकता है)।
NFS सर्वर और क्लाइंट-साइड दोनों पर कॉन्फ़िगर करना आसान है। इस लेख में, हम दिखाएंगे कि एनएफएस सर्वर को कैसे स्थापित और कॉन्फ़िगर किया जाए, और फिर हम क्लाइंट पर एनएफएस शेयर कनेक्ट करेंगे। यह लेख RPM-आधारित Linux वितरण (CentOS, RHEL, Fedora, आदि) पर आधारित है।
Linux CentOS पर NFS सर्वर को कैसे स्थापित और कॉन्फ़िगर करें
डिफ़ॉल्ट रूप से, nfs पहले से ही CentOS में मानक पैकेज के साथ स्थापित है। यदि आपने NFS घटकों को हटा दिया है या अपने सर्वर के लिए न्यूनतम इंस्टॉल मोड का उपयोग किया है, तो आप yum (या dnf) पैकेज मैनेजर का उपयोग करके NFS पैकेज स्थापित कर सकते हैं:
CentOS 8 में:
# dnf install nfs-utils -y
मेरे पास पैकेज स्थापित था:
वर्तमान NFS सर्वर संस्करण NFSv3 और NFSv4 प्रोटोकॉल संस्करणों का समर्थन करता है। NFSv2 डिफ़ॉल्ट रूप से अक्षम है। आप इस आदेश का उपयोग करके समर्थित NFS संस्करणों की सूची प्राप्त कर सकते हैं:
cat /proc/fs/nfsd/versions
आपके द्वारा आवश्यक सभी पैकेज स्थापित करने के बाद, nfs-server और rpcbind सेवाएं प्रारंभ करें, और उन्हें स्टार्टअप में जोड़ें:
# systemctl enable rpcbind
# systemctl enable nfs-server
# systemctl start rpcbind
# systemctl start nfs-server
यदि आप अपने Linux होस्ट पर फ़ायरवॉल का उपयोग कर रहे हैं, तो निम्न पोर्ट खोलें:
# firewall-cmd --permanent --add-port=111/tcp
# firewall-cmd --permanent --add-port=20048/tcp
# firewall-cmd --permanent --add-service=nfs
# firewall-cmd --permanent --zone=public --add-service=nfs
# firewall-cmd --permanent --zone=public --add-service=mountd
# firewall-cmd --permanent --zone=public --add-service=rpc-bind
# firewall-cmd --reload
उन लोगों के लिए जो iptables का उपयोग कर रहे हैं:
# iptables -t filter -A INPUT -p tcp --dport 111 -j ACCEPT
# iptables -t filter -A INPUT -p tcp --dport 2049 -j ACCEPT
# iptables -t filter -A INPUT -p tcp --dport 20048 -j ACCEPT
# service iptables save
# service iptables restart
फिर एक निर्देशिका बनाएं जिसे आपका NFS सर्वर साझा करेगा:
# mkdir -p /backup/nfs
# chmod -R 777 /backup/nfs
NFS शेयर प्रकाशित करें और NFS सर्वर सेटिंग्स (/etc/exports) वाली कॉन्फ़िगरेशन फ़ाइल में पहुँच अनुमतियाँ असाइन करें।
# nano /etc/exports
निर्दिष्ट आईपी सबनेट में सभी मेजबानों को एनएफएस पहुंच प्रदान करने के लिए कॉन्फ़िगरेशन में निम्न पंक्ति जोड़ें:
/backup/nfs 192.168.1.0/24(rw,sync,no_root_squash,no_all_squash)
या आप केवल एक ही आईपी पते तक पहुंच सीमित कर सकते हैं:
/backup/nfs 192.168.2.24(rw,sync,no_root_squash,no_all_squash, anonuid=1000,anongid=1000) 192.168.3.100 (ro,async,no_subtree_check)
आइए देखें कि NFS निर्देशिका पर विशेषाधिकार प्रदान करने के लिए किन मापदंडों का उपयोग किया जाता है:
- आरडब्ल्यू - लिखने की अनुमति दें, ro - केवल पढ़ने के लिए पहुंच प्रदान करता है
- सिंक - सिंक्रोनस एक्सेस मोड, async इसका मतलब है कि आपको डिस्क पर लिखने की पुष्टि की प्रतीक्षा करने की आवश्यकता नहीं है (यह एनएफएस प्रदर्शन में सुधार करता है, लेकिन विश्वसनीयता को कम करता है)
- no_root_squash - रूट उपयोगकर्ता को क्लाइंट से एनएफएस निर्देशिका तक पहुंच प्राप्त करने की अनुमति देता है (आमतौर पर अनुशंसित नहीं)
- no_all_squash - उपयोगकर्ता प्रमाणीकरण सक्षम करता है, all_squash - एक अनाम उपयोगकर्ता के तहत एनएफएस शेयर तक पहुंचने की अनुमति देता है
- no_subtree_check - एक चेक को अक्षम करता है कि उपयोगकर्ता ने निर्देशिका में एक फ़ाइल को एक्सेस किया है (subtree_check डिफ़ॉल्ट रूप से उपयोग किया जाता है)
- एनोनिड, एनॉन्गिड - निर्दिष्ट स्थानीय उपयोगकर्ता/समूह के लिए NFS उपयोगकर्ता/समूह को मैप करें (UID या GID )
नई NFS शेयर सेटिंग लागू करने के लिए, निम्न कमांड चलाएँ:
# exportfs -a
और NFS सर्वर को पुनरारंभ करें:
# systemctl restart nfs-server
इस प्रकार, हमने अपने NFS सर्वर का कॉन्फ़िगरेशन समाप्त कर लिया है और क्लाइंट कॉन्फ़िगरेशन के साथ आगे बढ़ सकते हैं।
NFS क्लाइंट को CentOS पर कॉन्फ़िगर करना
NFS क्लाइंट को कॉन्फ़िगर करने के लिए, आपको nfs-utils पैकेज भी इंस्टॉल करना होगा।
# yum install nfs-utils -y
स्टार्टअप में सेवाएं जोड़ें और उन्हें शुरू करें:
# systemctl enable rpcbind
# systemctl enable nfs-server
# systemctl start rpcbind
# systemctl start nfs-server
फिर क्लाइंट पर एक निर्देशिका बनाएं जिस पर NFS निर्देशिका माउंट की जाएगी:
# mkdir /backup
फिर आप इस कमांड का उपयोग करके दूरस्थ NFS शेयर को माउंट कर सकते हैं:
# mount -t nfs 192.168.0.100:/backup/nfs/ /backup
आप NFS प्रोटोकॉल के संस्करण का उपयोग करने के लिए बाध्य कर सकते हैं:
# mount -t nfs -o vers=4 192.168.0.100:/backup/nfs/ /backup
जहां आईपी उस एनएफएस सर्वर का पता है जिसे आपने पहले कॉन्फ़िगर किया है।
फिर कनेक्टेड NFS शेयर माउंटेड ड्राइव की सूची में प्रदर्शित होंगे। आप निर्देशिका में डेटा पढ़ सकते हैं या उसे लिख सकते हैं (एनएफएस सर्वर पर आपके आईपी पते को दी गई अनुमतियों के आधार पर)। रिबूट पर NFS निर्देशिका को स्वचालित रूप से माउंट करने के लिए, आपको fstab . खोलना होगा फ़ाइल:
# nano /etc/fstab
और इसमें निम्न पंक्ति जोड़ें:
192.168.0.100:/backup/nfs/ /backup/ nfs rw,sync,hard,intr 0 0
fstab को सेव करने के बाद, आप इसे इस कमांड से लागू कर सकते हैं:
# mount -a
इसलिए हमने रिमोट एनएफएस स्टोरेज को कॉन्फ़िगर और कनेक्ट किया है, जिसका उपयोग विभिन्न होस्टों से साझा संसाधन तक पारदर्शी नेटवर्क एक्सेस के लिए किया जा सकता है। आप अपनी NFS निर्देशिका में बैकअप, ISO छवि फ़ाइलें आदि रख सकते हैं।