NFS介紹
NFS是Network File System的縮寫(xiě)仇祭。是Linux下實(shí)現(xiàn)文件共享的方式之一。該協(xié)議采用C/S模型随珠,可提供對(duì)共享文件的遠(yuǎn)程訪問(wèn)笛匙,通過(guò)RPC(遠(yuǎn)程過(guò)程調(diào)用)協(xié)議實(shí)現(xiàn)運(yùn)行在一臺(tái)計(jì)算機(jī)上的程序來(lái)調(diào)用另一臺(tái)遠(yuǎn)程計(jì)算機(jī)上運(yùn)行的子程序。該協(xié)議可在TCP或UDP協(xié)議上運(yùn)行饥漫。
NFS最早由Sun公司開(kāi)發(fā)跷乐,分2,3,4三個(gè)版本,2和3由Sun起草開(kāi)發(fā)趾浅,4.0開(kāi)始Netapp公司參與并主導(dǎo)開(kāi)發(fā)愕提,最新為4.1版本(2010年)。
NFS原理
轉(zhuǎn)自:https://blog.csdn.net/frankarmstrong/article/details/78774679
NFS是通過(guò)網(wǎng)絡(luò)來(lái)進(jìn)行服務(wù)端和客戶端之間的數(shù)據(jù)傳輸皿哨。兩者之間要傳輸數(shù)據(jù)就要有想對(duì)應(yīng)的網(wǎng)絡(luò)端口來(lái)進(jìn)行傳輸浅侨。NFS服務(wù)器到底使用什么網(wǎng)絡(luò)端口來(lái)傳輸數(shù)據(jù)的,NFS服務(wù)器端其實(shí)是隨機(jī)選擇端口來(lái)進(jìn)行數(shù)據(jù)傳輸证膨。那NFS客戶端又是如何知道NFS服務(wù)器端到底使用的是哪個(gè)端口呢如输?其實(shí)NFS服務(wù)器時(shí)通過(guò)遠(yuǎn)程過(guò)程調(diào)用(remote procedure call簡(jiǎn)稱RPC)協(xié)議/服務(wù)來(lái)實(shí)現(xiàn)的。也就是說(shuō)RPC服務(wù)會(huì)統(tǒng)一管理NFS的端口央勒,客戶端和服務(wù)端通過(guò)RPC來(lái)先溝通NFS使用了哪些端口不见,之后再利用這些端口(小于1024)來(lái)進(jìn)行數(shù)據(jù)的傳輸。
PS:哦崔步,原來(lái)是RPC管理服務(wù)端的NFS端口分配稳吮,客戶端要傳數(shù)據(jù),那客戶端的RPC會(huì)先跟服務(wù)端的RPC去要服務(wù)器的端口井濒,要到端口后再建立連接灶似,然后傳輸數(shù)據(jù)列林。
rpc(portmap。在centos7中酪惭,portmap被rpcbind取代希痴,以下改為rpcbind.)就是用來(lái)統(tǒng)一管理NFS端口的服務(wù),并且統(tǒng)一對(duì)外的端口是111春感。NFS服務(wù)端需要先啟動(dòng)rpc砌创,再啟動(dòng)NFS,這樣NFS才能夠到RPC去注冊(cè)端口信息鲫懒∧凼担客戶端的RPC可以通過(guò)向服務(wù)端的RPC請(qǐng)求獲取服務(wù)端的NFS端口信息。當(dāng)獲取到了NFS端口信息后刀疙,就會(huì)以實(shí)際端口進(jìn)行數(shù)據(jù)的傳輸。(由于NFS端口為隨機(jī)的扫倡。)
《客戶端NFS和服務(wù)端NFS通訊過(guò)程》
1)首先服務(wù)器端啟動(dòng)RPC服務(wù)谦秧,并開(kāi)啟111端口
2)啟動(dòng)NFS服務(wù),并向RPC注冊(cè)端口信息
3)客戶端啟動(dòng)RPC(rpcbind服務(wù))撵溃,向服務(wù)端的RPC(rpcbind)服務(wù)請(qǐng)求服務(wù)端的NFS端口
4)服務(wù)端的RPC(rpcbind)服務(wù)反饋NFS端口信息給客戶端疚鲤。
5)客戶端通過(guò)獲取的NFS端口來(lái)建立和服務(wù)端的NFS連接并進(jìn)行數(shù)據(jù)的傳輸。
NFS配置
服務(wù)端要下載部署缘挑,客戶端要掛載集歇。
我們?cè)诜?wù)端創(chuàng)建一個(gè)共享目錄 /share,并配置成所有用戶可匿名訪問(wèn)语淘,然后在客戶端掛載訪問(wèn)試試诲宇。
服務(wù)端操作:
1、查看是否安裝nfs和rpcbind惶翻,
如果沒(méi)有:
2、因?yàn)镹FS及其輔助程序都是基于RPC協(xié)議(使用RPC的111端口來(lái)進(jìn)行請(qǐng)求的監(jiān)聽(tīng))所以首先要確保系統(tǒng)中運(yùn)行了rpcbind服務(wù)吕粗》挠客戶端和服務(wù)端都要啟動(dòng)rpcbind服務(wù),客戶端不用啟動(dòng)nfs服務(wù)颅筋,而服務(wù)端需要啟動(dòng)nfs服務(wù)宙暇。
啟動(dòng)rpcbind
啟動(dòng)nfs
3、創(chuàng)建共享目錄
4议泵、配置/etc/exports(NFS配置文件)
#/etc/exports 默認(rèn)這個(gè)里面的內(nèi)容是空的占贫,這個(gè)就是nfs的配置文件。
格式:NFS共享目錄? 客戶端地址1(參1先口,參2只讀還是可寫(xiě)) 客戶端地址2(參1靶剑,參2)
參數(shù)選項(xiàng)說(shuō)明:
共享目錄:存在于我們本機(jī)上的目錄蜻拨,我們想共享給網(wǎng)絡(luò)上的其他主機(jī)使用。如我要共享/tmp/data目錄桩引,那么此選項(xiàng)可以就直接寫(xiě)/tmp/data目錄缎讼。
客戶端地址1(參數(shù)1,參數(shù)2):客戶端地址能夠設(shè)置一個(gè)網(wǎng)絡(luò)坑匠,也可以設(shè)置單個(gè)主機(jī)血崭。參數(shù):如讀寫(xiě)權(quán)限r(nóng)w,同步更新sync,壓縮來(lái)訪賬號(hào)all_squash,壓縮后的匿名賬號(hào)anonuid=uid厘灼,anongid=gid等等
客戶端地址選項(xiàng)說(shuō)明:
生產(chǎn)環(huán)境常見(jiàn)配置實(shí)例:
NFS配置權(quán)限設(shè)置夹纫,即/etc/exports文件配置格式中小括號(hào)()里的參數(shù)集。
當(dāng)我們nfs配置好之后设凹,我們可以通過(guò)cat
/var/lib/nfs/etab來(lái)查看,nfs配置的參數(shù)舰讹。并且這個(gè)目錄很重要。/var/lib/nfs/rmtab從這個(gè)文件中我們可以看到闪朱,有哪些客戶端掛載了nfs共享目錄月匣。這個(gè)兩個(gè)文件是比較重要的。
我們編輯/etc/exports內(nèi)容如下:
這表示/root/share目錄允許所有遠(yuǎn)程用戶以root特權(quán)訪問(wèn)
5奋姿、重啟nfs服務(wù)
客戶端操作:
創(chuàng)建掛載目錄锄开,查看rpcbind是否啟動(dòng),如果沒(méi)有請(qǐng)啟動(dòng)它称诗。
掛載服務(wù)端共享目錄到本地
存取實(shí)驗(yàn):
本地在share目錄下創(chuàng)建文檔
服務(wù)器端也有了
客戶端刪除
服務(wù)器端也沒(méi)有了
ps:掛載時(shí)老是被拒絕? 后來(lái)發(fā)現(xiàn)是因?yàn)槲业墓蚕砟夸浽?root下萍悴,? 這個(gè)目錄只有root用戶有權(quán)限? ,所以chmod 777 /root? 后? 可以掛載了寓免。不過(guò)這樣做并不好? 癣诱,以后共享目錄要?jiǎng)?chuàng)建在一個(gè)合適的地方。