概述
最近有個(gè)項(xiàng)目需求:對(duì)于視頻、文檔類的文件幾個(gè)服務(wù)器共用一個(gè)目錄,計(jì)劃用NFS服務(wù)實(shí)現(xiàn)。
系統(tǒng)環(huán)境:centos linux release 7.3
軟件版本:nfs-utils-1.3.0-0.33.el7.x86_64
一、安裝
# yum -y install nfs-utils
nfs客戶端和服務(wù)端都安裝nfs-utils包,同時(shí)自動(dòng)安裝rpcbind。安裝后會(huì)創(chuàng)建nfsnobody用戶和組,uid和gid都是65534。

二、修改配置
1、配置端口
nfs除了主程序端口2049和rpcbind的端口111是固定以外,還會(huì)使用一些隨機(jī)端口,以下配置將定義這些端口,以便配置防火墻
# vim /etc/sysconfig/nfs # 追加端口配置 MOUNTD_PORT=4001 STATD_PORT=4002 LOCKD_TCPPORT=4003 LOCKD_UDPPORT=4003 RQUOTAD_PORT=4004

2、配置NFS權(quán)限和目錄
# vim /etc/exports /attachments 172.xx/24(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)

選項(xiàng)說明
ro:共享目錄只讀 rw:共享目錄可讀可寫 all_squash:所有訪問用戶都映射為匿名用戶或用戶組 no_all_squash(默認(rèn)):訪問用戶先與本機(jī)用戶匹配,匹配失敗后再映射為匿名用戶或用戶組 root_squash(默認(rèn)):將來訪的root用戶映射為匿名用戶或用戶組 no_root_squash:來訪的root用戶保持root帳號(hào)權(quán)限 anonuid=<UID>:指定匿名訪問用戶的本地用戶UID,默認(rèn)為nfsnobody(65534) anongid=<GID>:指定匿名訪問用戶的本地用戶組GID,默認(rèn)為nfsnobody(65534) secure(默認(rèn)):限制客戶端只能從小于1024的tcp/ip端口連接服務(wù)器 insecure:允許客戶端從大于1024的tcp/ip端口連接服務(wù)器 sync:將數(shù)據(jù)同步寫入內(nèi)存緩沖區(qū)與磁盤中,效率低,但可以保證數(shù)據(jù)的一致性 async:將數(shù)據(jù)先保存在內(nèi)存緩沖區(qū)中,必要時(shí)才寫入磁盤 wdelay(默認(rèn)):檢查是否有相關(guān)的寫操作,如果有則將這些寫操作一起執(zhí)行,這樣可以提高效率 no_wdelay:若有寫操作則立即執(zhí)行,應(yīng)與sync配合使用 subtree_check(默認(rèn)) :若輸出目錄是一個(gè)子目錄,則nfs服務(wù)器將檢查其父目錄的權(quán)限 no_subtree_check :即使輸出目錄是一個(gè)子目錄,nfs服務(wù)器也不檢查其父目錄的權(quán)限,這樣可以提高效率
三、防火墻
# iptables -I INPUT 5 -p tcp -m tcp --dport 111 -j ACCEPT # iptables -I INPUT 5 -p udp -m udp --dport 111 -j ACCEPT # iptables -I INPUT 5 -p tcp -m tcp --dport 2049 -j ACCEPT # iptables -I INPUT 5 -p udp -m udp --dport 2049 -j ACCEPT # iptables -I INPUT 5 -p tcp -m tcp --dport 4001:4004 -j ACCEPT # iptables -I INPUT 5 -p udp -m udp --dport 4001:4004 -j ACCEPT # iptables-save >/etc/sysconfig/iptables
四、啟動(dòng)服務(wù)
啟動(dòng)順序注意是rpcbind->nfs
# systemctl start rpcbind.service # systemctl enable rpcbind.service # systemctl start nfs.service # systemctl enable nfs.service


五、客戶端掛載
1、直接掛載
# mount -t nfs NFS服務(wù)器IP:共享目錄 本地掛載點(diǎn)目錄
2、開機(jī)自動(dòng)掛載
# vi /etc/fstab 17xxxx:/attachments /u01/document nfs defaults 0 0
3、autofs掛載(掛載需慎重)
autofs自動(dòng)掛載服務(wù)是一種Linux系統(tǒng)守護(hù)進(jìn)程,當(dāng)檢測(cè)到用戶視圖訪問一個(gè)尚未掛載的文件系統(tǒng)時(shí),會(huì)自動(dòng)掛載該文件系統(tǒng)。簡(jiǎn)單來說,將掛載信息寫入/etc/fstab文件中,系統(tǒng)在每次開機(jī)時(shí)都會(huì)自動(dòng)掛載,而autofs服務(wù)則是在用戶需要使用該文件系統(tǒng)時(shí)才去動(dòng)態(tài)掛載,從而節(jié)約了網(wǎng)絡(luò)資源和服務(wù)器硬件資源的開銷。
3.1、安裝autofs服務(wù)
# yum -y install autofs
3.2、修改配置
# vi /etc/auto.master #添加一行 /- /etc/auto.mount ? # vi /etc/auto.mount #添加一行 /u01/document -fstype=nfs,rw nfs.st.local:/attachments
3.3、啟動(dòng)服務(wù)
# systemctl start autofs # systemctl enable autofs