概述
最近有個項目需求:對于視頻、文檔類的文件幾個服務器共用一個目錄,計劃用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>:指定匿名訪問用戶的本地用戶UID,默認為nfsnobody(65534) anongid=<GID>:指定匿名訪問用戶的本地用戶組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