概述
最近有個項目需求:對於視頻、文檔類的文件幾個伺服器共用一個目錄,計劃用NFS服務實現。
系統環境:CentOS Linux release 7.3
軟體版本:nfs-utils-1.3.0-0.33.el7.x86_64
一、安裝
# yum -y install nfs-utils
nfs客戶端和服務端都安裝nfs-utils包,同時自動安裝rpcbind。安裝後會創建nfsnobody用戶和組,uid和gid都是65534。
二、修改配置
1、配置埠
nfs除了主程序埠2049和rpcbind的埠111是固定以外,還會使用一些隨機埠,以下配置將定義這些埠,以便配置防火牆
# vim /etc/sysconfig/nfs
# 追加埠配置
MOUNTD_PORT=4001
STATD_PORT=4002
LOCKD_TCPPORT=4003
LOCKD_UDPPORT=4003
RQUOTAD_PORT=4004
2、配置NFS權限和目錄
# vim /etc/exports
/attachments 172.xx/24(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
選項說明
ro:共享目錄只讀
rw:共享目錄可讀可寫
all_squash:所有訪問用戶都映射為匿名用戶或用戶組
no_all_squash(默認):訪問用戶先與本機用戶匹配,匹配失敗後再映射為匿名用戶或用戶組
root_squash(默認):將來訪的root用戶映射為匿名用戶或用戶組
no_root_squash:來訪的root用戶保持root帳號權限
anonuid=:指定匿名訪問用戶的本地用戶UID,默認為nfsnobody(65534)
anongid=:指定匿名訪問用戶的本地用戶組GID,默認為nfsnobody(65534)
secure(默認):限制客戶端只能從小於1024的tcp/ip埠連接伺服器
insecure:允許客戶端從大於1024的tcp/ip埠連接伺服器
sync:將數據同步寫入內存緩衝區與磁碟中,效率低,但可以保證數據的一致性
async:將數據先保存在內存緩衝區中,必要時才寫入磁碟
wdelay(默認):檢查是否有相關的寫操作,如果有則將這些寫操作一起執行,這樣可以提高效率
no_wdelay:若有寫操作則立即執行,應與sync配合使用
subtree_check(默認) :若輸出目錄是一個子目錄,則nfs伺服器將檢查其父目錄的權限
no_subtree_check :即使輸出目錄是一個子目錄,nfs伺服器也不檢查其父目錄的權限,這樣可以提高效率
三、防火牆
# 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
四、啟動服務
啟動順序注意是rpcbind->nfs
# systemctl start rpcbind.service
# systemctl enable rpcbind.service
# systemctl start nfs.service
# systemctl enable nfs.service
五、客戶端掛載
1、直接掛載
# mount -t nfs NFS伺服器IP:共享目錄 本地掛載點目錄
2、開機自動掛載
# vi /etc/fstab
17xxxx:/attachments /u01/document nfs defaults 0 0
3、autofs掛載(掛載需慎重)
autofs自動掛載服務是一種Linux系統守護進程,當檢測到用戶視圖訪問一個尚未掛載的文件系統時,會自動掛載該文件系統。簡單來說,將掛載信息寫入/etc/fstab文件中,系統在每次開機時都會自動掛載,而autofs服務則是在用戶需要使用該文件系統時才去動態掛載,從而節約了網絡資源和伺服器硬體資源的開銷。
3.1、安裝autofs服務
# 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、啟動服務
# systemctl start autofs
# systemctl enable autofs
覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~