新聞中心
由于實(shí)驗(yàn)室的項(xiàng)目需要實(shí)現(xiàn)在CephFS之上建立NFS之上,所以記錄一下ubuntu環(huán)境NFS服務(wù)器的安裝與配置流程。

超過十載行業(yè)經(jīng)驗(yàn),技術(shù)領(lǐng)先,服務(wù)至上的經(jīng)營(yíng)模式,全靠網(wǎng)絡(luò)和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務(wù)范圍包括了:成都網(wǎng)站建設(shè)、成都做網(wǎng)站,成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡(luò)托管,微信小程序開發(fā),微信開發(fā),app軟件開發(fā),同時(shí)也可以讓客戶的網(wǎng)站和網(wǎng)絡(luò)營(yíng)銷和我們一樣獲得訂單和生意!
1.NFS服務(wù)的簡(jiǎn)介:
NFS 是 Network File System 的縮寫,是Sun公司于1984開發(fā)的一種分布式文件系統(tǒng)協(xié)議。它的核心功能就是可以通過網(wǎng)絡(luò),讓不同的客戶端,可以彼此訪問共同的文件系統(tǒng) ,來實(shí)現(xiàn)文件的共享。像許多其他的協(xié)議,建立在開放的網(wǎng)絡(luò)計(jì)算的遠(yuǎn)程過程調(diào)用(RPC)之上。NFS是在RFC中定義的開放標(biāo)準(zhǔn),允許任何人實(shí)現(xiàn)該協(xié)議。
NFS 服務(wù)器可以讓客戶端將網(wǎng)絡(luò)遠(yuǎn)程的 NFS 服務(wù)器分享的目錄,直接掛載到本地端的機(jī)器當(dāng)中。本地端的機(jī)器通過直接讀寫掛載的目錄,就可以同步到NFS服務(wù)器之上。
版本更迭
NFS V2
2是NFS最早實(shí)現(xiàn)的版本之一,基于UDP協(xié)議實(shí)現(xiàn)了一個(gè)無狀態(tài)的服務(wù)器版本。僅僅支持32位的系統(tǒng),且不大于2GB的文件。
NFS V3
3的版本在2的基礎(chǔ)之上做了大量的改進(jìn)。支持了大于2GB的文件讀寫,使用了TCP協(xié)議來進(jìn)行數(shù)據(jù)交互,支持了客戶端的異步讀寫來提高文件系統(tǒng)的性能(同時(shí)也會(huì)產(chǎn)生我們頭疼的一致性問題)
NFS V4
4的版本提高了安全性,通過TCP協(xié)議實(shí)現(xiàn)了一個(gè)有狀態(tài)的服務(wù)器版本,通過鎖租約的機(jī)制來實(shí)現(xiàn)多客戶端的讀寫同步。在4.1版本引入了pNFS,通過類似于一個(gè)HDFS架構(gòu)來提供并行的一個(gè)分布式文件系統(tǒng)。
2.系統(tǒng)環(huán)境:
系統(tǒng)平臺(tái):Ubuntu 14.04
NFS Server IP:192.168.1.2
iptables關(guān)閉: Firewall is disable.(NFS端口使用在默認(rèn)情況下是不固定,所以若配置NFS服務(wù)器需要搭配防火墻使用的話,請(qǐng)配置固定端口)
SELINUX=disabled
3.NFS服務(wù)器的安裝:
NFS的安裝只需要安裝rpcbind與nfs-server就可以對(duì)外提供服務(wù)了。
rpcbind
NFS 服務(wù)都是通過 RPC 來具體實(shí)現(xiàn)的,所以要正常使用NFS服務(wù),需要啟動(dòng) rpcbind來實(shí)現(xiàn)端口的映射工作 。執(zhí)行如下命令,安裝并啟動(dòng)rpcbind
sudo apt-get install rpcbind
nfs-kernel-server
提供nfs服務(wù)器的軟件,提供文件系統(tǒng)的完整功能。這里要提醒一下,NFS服務(wù)器會(huì)直接使用到內(nèi)核的模塊,所以內(nèi)核必須要支持 NFS 才行。如果操作系統(tǒng)的版本是自行編譯的內(nèi)核的話,需要注意編譯NFS的內(nèi)核支持。
sudo apt-get install nfs-kernel-server
4.NFS服務(wù)器的配置:
NFS服務(wù)器的主要配置文件就是:/etc/exports。不過這個(gè)配置文件不一定會(huì)存在,可能需要使用 vim 主動(dòng)新建這個(gè)文件。
/etc/exports文件由以下選項(xiàng)構(gòu)成:
[共享的目錄] [主機(jī)名或IP(參數(shù),參數(shù))]
每一行最前面是要分享出來的目錄,目錄可以依照不同的權(quán)限分享給不同的主機(jī)。若權(quán)限參數(shù)不止一個(gè)時(shí),則以逗號(hào) (,) 分開。且主機(jī)名與小括號(hào)是連在一起的喔!其中參數(shù)是可選的,當(dāng)不指定參數(shù)時(shí),nfs將使用默認(rèn)選項(xiàng)。默認(rèn)的共享選項(xiàng)是 sync,ro,root_squash,no_delay 當(dāng)主機(jī)名或IP地址為空時(shí),則代表共享給任意客戶機(jī)提供服務(wù)。
下面是一些NFS共享的常用參數(shù):
訪問權(quán)限選項(xiàng)
設(shè)置輸出目錄只讀:ro
設(shè)置輸出目錄讀寫:rw
用戶映射選項(xiàng)
all_squash:將遠(yuǎn)程訪問的所有普通用戶及所屬組都映射為匿名用戶或用戶組(nfsnobody);
no_all_squash:與all_squash取反(默認(rèn)設(shè)置);
root_squash:將root用戶及所屬組都映射為匿名用戶或用戶組(默認(rèn)設(shè)置);
no_root_squash:與rootsquash取反;
anonuid=xxx:將遠(yuǎn)程訪問的所有用戶都映射為匿名用戶,并指定該用戶為本地用戶(UID=xxx);
anongid=xxx:將遠(yuǎn)程訪問的所有用戶組都映射為匿名用戶組賬戶,并指定該匿名用戶組賬戶為本地用戶組賬戶(GID=xxx);
其它選項(xiàng)
secure:限制客戶端只能從小于1024的tcp/ip端口連接nfs服務(wù)器(默認(rèn)設(shè)置);
insecure:允許客戶端從大于1024的tcp/ip端口連接服務(wù)器;
sync:將數(shù)據(jù)同步寫入內(nèi)存緩沖區(qū)與磁盤中,效率低,但可以保證數(shù)據(jù)的一致性;
async:將數(shù)據(jù)先保存在內(nèi)存緩沖區(qū)中,必要時(shí)才寫入磁盤;
wdelay:檢查是否有相關(guān)的寫操作,如果有則將這些寫操作一起執(zhí)行,這樣可以提高效率(默認(rèn)設(shè)置);
no_wdelay:若有寫操作則立即執(zhí)行,應(yīng)與sync配合使用;
subtree:若輸出目錄是一個(gè)子目錄,則nfs服務(wù)器將檢查其父目錄的權(quán)限(默認(rèn)設(shè)置);
no_subtree:即使輸出目錄是一個(gè)子目錄,nfs服務(wù)器也不檢查其父目錄的權(quán)限,這樣可以提高效率;
這里我們使用了NFS v3的配置,如下圖所示:
5.NFS服務(wù)器的啟動(dòng):
配置完/etc/exports之后,接下來就可以啟動(dòng)NFS服務(wù)器了。
為了使NFS服務(wù)器能正常工作,需要啟動(dòng)rpcbind和nfs-kernel-server兩個(gè)服務(wù),并且rpcbind一定要先于nfs-kernel-server啟動(dòng)。
sudo service rpcbind start
sudo service nfs-kernel-server start
若要開機(jī)自啟動(dòng)nfs服務(wù),可以通過sysv-rc-conf配置自啟動(dòng)服務(wù)。
sudo sysv-rc-conf --level 35 rpcbind on
sudo sysv-rc-conf --level 35 nfs-kernel-server on
6.NFS客戶端的掛載:
客戶端的掛載很簡(jiǎn)單,先建立一個(gè)掛載目錄
sudo mkdir /mnt/nfs
sudo mount -t nfs 192.168.12:/tmp /mnt/nfs
之后客戶端對(duì)應(yīng)的文件目錄便掛載上對(duì)應(yīng)的文件系統(tǒng)了。
7、啟動(dòng)自動(dòng)掛載NFS文件系統(tǒng):
客戶端可以通過命令配置開機(jī)自啟動(dòng)掛載NFS的文件系統(tǒng)。
格式:
將對(duì)應(yīng)的命令 mount -t nfs 192.168.12:/tmp /mnt/nfs
添加至/etc/rc.d/local,不要嘗試在直接在/etc/fstab/里掛載
原因分析:
在Linux內(nèi)核啟動(dòng)的流程中,網(wǎng)絡(luò)的啟動(dòng)是在本機(jī)文件系統(tǒng)掛載之后,所以直接利用 /etc/fstab 嘗試掛載 NFS 時(shí),系統(tǒng)由于尚未啟動(dòng)網(wǎng)絡(luò),是無法掛載成功的。
小結(jié):梳理了一下在Ubuntu之下NFS服務(wù)器的安裝與配置。當(dāng)然RedHat系列的發(fā)行版也是大同小異。若有疏漏,望指點(diǎn)斧正。
分享名稱:Ubuntu下NFS服務(wù)器的安裝與配置
本文地址:http://m.fisionsoft.com.cn/article/cdgjepg.html


咨詢
建站咨詢
