NFS:Network File System 網(wǎng)絡(luò)文件系統(tǒng),基于內(nèi)核的文件系統(tǒng)。Sun 公司開發(fā),通過使用 NFS,用戶和程序可以像訪問本地文件一樣訪問遠(yuǎn)端系統(tǒng)上的文件,基于RPC(Remote Procedure Call Protocol 遠(yuǎn)程過程調(diào)用)實(shí)現(xiàn)RPC采用C/S模式,客戶機(jī)請求程序調(diào)用進(jìn)程發(fā)送一個有進(jìn)程參數(shù)的調(diào)用信息到服務(wù)進(jìn)程,然后等待應(yīng)答信息。在服務(wù)器端,進(jìn)程保持睡眠狀態(tài)直到調(diào)用信息到達(dá)為止。當(dāng)一個調(diào)用信息到達(dá),服務(wù)器獲得進(jìn)程參數(shù),計算結(jié)果,發(fā)送答復(fù)信息,然后等待下一個調(diào)用信息,最后,客戶端調(diào)用進(jìn)程接收答復(fù)信息,獲得進(jìn)程結(jié)果,然后調(diào)用執(zhí)行繼續(xù)進(jìn)行
NFS優(yōu)勢:節(jié)省本地存儲空間,將常用的數(shù)據(jù),如:/home目錄,存放在NFS服務(wù)器上且可以通過網(wǎng)絡(luò)訪
問,本地終端將可減少自身存儲空間的使用
NFS軟件介紹
軟件包:nfs-utils(包括服務(wù)器和客戶端相關(guān)工具,CentOS8 最小化安裝時默認(rèn)沒有安裝) 相關(guān)軟件包:rpcbind(必須),tcp_wrappers Kernel支持:nfs.ko 端口:2049(nfsd), 其它端口由portmap(111)分配 NFS服務(wù)主要進(jìn)程: rpc.nfsd 最主要的NFS進(jìn)程,管理客戶端是否可登錄 rpc.mountd 掛載和卸載NFS文件系統(tǒng),包括權(quán)限管理 rpc.lockd 非必要,管理文件鎖,避免同時寫出錯 rpc.statd 非必要,檢查文件一致性,可修復(fù)文件 說明:CentOS 6 開始portmap進(jìn)程由rpcbind代替 日志:/var/lib/nfs/ NFS配置文件: /etc/exports /etc/exports.d/*.exports
NFS共享配置文件格式
/dir 主機(jī)1(opt1,opt2) 主機(jī)2(opt1,opt2)...
格式說明:
以#開始的行為注釋
主機(jī)格式:
anonymous:表示使用*通配所有客戶端 單個主機(jī):ipv4,ipv6,F(xiàn)QDN IP networks:兩種掩碼格式均支持 172.31.0.0/255.255.0.0 172.31.0.0/16 wildcards:主機(jī)名通配,例如:*.longxuan.com,IP不可以 netgroups:NIS域的主機(jī)組,@group_name
每個條目指定目錄導(dǎo)出到的哪些主機(jī),及相關(guān)的權(quán)限和選項(xiàng)
默認(rèn)選項(xiàng):(ro,sync,root_squash,no_all_squash) ro,rw 只讀和讀寫 async 異步,數(shù)據(jù)變化后不立即寫磁盤,先寫入到緩沖區(qū)中,過一段時間再寫入磁盤,性能高,安全性低 sync(1.0.0后為默認(rèn))同步,數(shù)據(jù)在請求時立即寫入共享存儲磁盤,性能低,安全性高 root_squash (默認(rèn))遠(yuǎn)程root映射為nfsnobody,UID為65534,CentOS8 為nobody,CentOS 7以前的版本為nfsnobody no_root_squash 遠(yuǎn)程root映射成NFS服務(wù)器的root用戶 all_squash 所有遠(yuǎn)程用戶(包括root)都變成nfsnobody,CentOS8 為nobody no_all_squash (默認(rèn))保留共享文件的UID和GID anonuid和anongid 指明匿名用戶映射為特定用戶UID和組GID,而非nobody,可配合all_squash使用
范例:NFS配置示例
[root@localhost ~]# vim /etc/exports /myshare server.example.com /myshare *.example.com /myshare server?.example.com /myshare server[0-20].example.com /myshare 172.25.11.10 /myshare 172.25.0.0/16 /myshare 200018c32:a21 /myshare 200018:/64 /myshare *.example.com 172.25.0.0/16 /myshare desktop.example.com(ro) /myshare desktop.example.com(ro) server[0-20].example.com(rw) /myshare diskless.example.com(rw,no_root_squash)
NFS工具
rpcinfo 工具可以查看RPC相關(guān)信息
查看注冊在指定主機(jī)的RPC程序
rpcinfo -p hostname
查看RPC注冊程序
rpcinfo -s hostname
范例:rpcinfo
[root@centos8 ~]# rpcinfo -p program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper ... [root@centos8 ~]# rpcinfo -s program version(s) netid(s) service owner 100000 2,3,4 local,udp,tcp,udp6,tcp6 portmapper superuser 100024 1 tcp6,udp6,tcp,udp status 29 #查看遠(yuǎn)程主機(jī) [root@centos7 ~]# rpcinfo -p 172.31.0.8 program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper ...
exportfs
exportfs:可用于管理NFS導(dǎo)出的文件系統(tǒng)
常見選項(xiàng):
-v #查看本機(jī)所有NFS共享 -r #重讀配置文件,并共享目錄 -a #輸出本機(jī)所有共享 -au #停止本機(jī)所有共享
showmount
常見用法:
#查看遠(yuǎn)程主機(jī)的NFS共享 [root@centos7 ~]# showmount -e hostname
范例:
[root@centos7 ~]# showmount -e 172.31.0.8 Export list for 172.31.0.8: /data/wordpress *
mount.nfs
客戶端NFS掛載
NFS相關(guān)的掛載選項(xiàng):man 5 nfs
fg #(默認(rèn))前臺掛載 bg #后臺掛載 hard #(默認(rèn))持續(xù)請求 soft #非持續(xù)請求 intr #和hard配合,請求可中斷 rsize #和wsize 一次讀和寫數(shù)據(jù)最大字節(jié)數(shù),rsize=32768 _netdev #無網(wǎng)絡(luò)服務(wù)時不掛載NFS資源 vers #指定版本,客戶端centos8默認(rèn)4.2 ,centos7默認(rèn)4.1 centos6默認(rèn)4.0
提示:基于安全考慮,建議使用nosuid,netdev,noexec 掛載選項(xiàng)
范例:臨時掛載NFS共享
[root@centos7 ~]# mount -o rw,nosuid,fg,hard,intr 172.31.0.8:/testdir /mnt/nfs/
范例:開機(jī)掛載
[root@centos7 ~]# vim /etc/fstab 172.16.0.1:/public /mnt/nfs nfs defaults,_netdev 0 0
案例:步驟
#NFS服務(wù)器創(chuàng)建用戶和相應(yīng)的家目錄,將用戶wang的家目錄共享 [root@centos8 ~]# mkdir -pv /data/home [root@centos8 ~]# useradd -d /data/home/user1 -u 2000 user1 [root@centos8 ~]# Vim /etc/exports.d/test.exports /data/home *(rw) [root@centos8 ~]# exportfs -r #在第一臺NFS客戶端主機(jī)172.31.0.7上實(shí)現(xiàn)相對路徑法的autofs [root@centos7 ~]# useradd -M -u 2000 user1 [root@centos7 ~]# vim /etc/auto.master /home /etc/auto.home [root@centos7 ~]# vim /etc/auto.home * -fstype=nfs,vers=3 172.31.0.8:/data/home/& [root@centos7 ~]#systemctl restart autofs [root@centos7 ~]# su - user1 Last login: Fri Jul 3 16:33:34 CST 2020 on pts/0 [user1@centos7 ~]$ pwd /home/user1 [user1@centos7 ~]$ df /home/user1 -T Filesystem Type 1K-blocks Used Available Use% Mounted on 172.31.0.8:/data/home/user1 nfs4 52403200 398464 52004736 1% /home/user1 #注意:home目錄下其它用戶家目錄無法訪問 [root@centos7 ~]# ls /home user1 #在第二臺NFS客戶端主機(jī)172.31.0.6上實(shí)現(xiàn)絕對路徑法的autofs [root@centos6 ~]# useradd -M -u 2000 user1 [root@centos6 ~]# vim /etc/auto.master /- /etc/auto.home [root@centos6 ~]# vim /etc/auto.home /home/user1 -fstype=nfs,vers=3 nfsserver:/data/home/user1 [root@centos6 ~]# service autofs restart [root@centos6 ~]# su - user1 [user1@centos6 ~]$ pwd /home/user1 [user1@centos6 ~]$ df -T /home/user1 Filesystem Type 1K-blocks Used Available Use% Mounted on 10.0.0.8:/data/home/user1 nfs 52403200 398464 52004736 1% /home/user1 [user1@centos6 ~]$ ls /home long user1 wang
鏈接:https://www.cnblogs.com/xuanlv-0413/p/14853979.html
-
存儲
+關(guān)注
關(guān)注
13文章
4527瀏覽量
87343 -
文件系統(tǒng)
+關(guān)注
關(guān)注
0文章
296瀏覽量
20371 -
NFS
+關(guān)注
關(guān)注
1文章
56瀏覽量
26504
原文標(biāo)題:探索NFS服務(wù):打造高效穩(wěn)定的文件共享系統(tǒng)
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
linux驅(qū)動開發(fā)_文件系統(tǒng)本地掛載

【NanoPi NEO2試用體驗(yàn)】nfs文件系統(tǒng)
【HarmonyOS HiSpark AI Camera試用連載 】實(shí)操如何Mount上一個NFS網(wǎng)絡(luò)文件系統(tǒng)
如何掛載網(wǎng)絡(luò)文件系統(tǒng)?
NFS根文件系統(tǒng)掛載
NFS掛載網(wǎng)絡(luò)文件系統(tǒng)學(xué)習(xí)
nfs掛載文件系統(tǒng)終于沒有問題了
TI-Davinci DM6446開發(fā)平臺的網(wǎng)絡(luò)文件系統(tǒng)(NFS)搭建和測試

你需要了解NFS網(wǎng)絡(luò)文件系統(tǒng)

詳細(xì)解讀NFS 文件系統(tǒng)源代碼

嵌入式NFS網(wǎng)絡(luò)文件系統(tǒng)實(shí)驗(yàn)報告
嵌入式Linux | 掛載網(wǎng)絡(luò)文件系統(tǒng)

嵌入式Linux移植3. NFS根文件系統(tǒng)掛載(從Ubuntu啟動內(nèi)核,文件系統(tǒng))

評論