1.伺服器端安裝
(1)檢視系統運作狀态
uname -a
(2)NFS軟體安裝
要部署NFS服務,必須安裝兩個軟體包:NFS-utils,RPC主程式。
- NFS-utils:NFS 的主程式,包含 rpc.nfsd 和 rpc.mount 這兩個 deamons.
-
Rpcbind:RPC 主程式,可以将 NFS 視為 RPC 下的一個子程式。
查詢 nfs-utils 和 rpcbind 包是否安裝:
rpm -qa nfs-utils rpcbind
如果沒有安裝,可以用 yum 指令進行安裝
yum install -y nfs-utils rpcbind
(3)啟動服務并檢查
服務端要啟動 rpcbind 和 NFS 服務且需按順序啟動,用戶端要啟動 rpcbind 服務不啟動 NFS 服務。
systemctl start rpcbind.service
systemctl start nfs-server # 如果失敗,可以換成 systemctl start nfs.service
檢視系統中啟用的端口:
netstat -lnt
檢視 NFS 向 RPC 注冊的端口資訊:
rpcinfo -p
RPC 主程式的三個程序 | 含義 |
---|---|
rpc.mounted | NFS 挂載程式,用戶端是否能夠登入 |
nfsd | NFS 主程式,管理用戶端能夠取得的權限 |
rpc.rqutod | 管理共享配額 |
将 NFS 與 RPC 服務加入開機自動啟動
systemctl enable rpcbind.service
systemctl enable nfs-server # 如果不能成功,可以使用 systemctl enable nfs.service
2.配置 NFS 服務
(1)建立共享目錄 /data
mkdir -p /data
修改 /data 及子檔案屬主屬組 nfsnobody
chown -R nfsnobody.nfsnobody /data # 無效就直接 chmod 777 /data 或者嘗試 nobody.nobody
ll
(2)編輯 NFS 服務端配置檔案
vi /etc/exports
# 内容為(ip 位址需要修改):/data 192.168.148.136/24(rw,sync,all_squash)
# 格式:[共享目錄] [自身ip位址/類型] [共享參數設定]
# 共享參數說明:
# ro 目錄可讀
# rw 目錄可讀可寫
# sync 将資料同步寫入記憶體緩沖區與磁盤中
# async 将資料先寫入記憶體緩沖區,有必要時才寫入磁盤
# all_squash 将遠端通路使用者及組全映射成預設使用者或使用者組nfsnobody(或nobody)
# no_all_squash 與all_squash配置相反
# root_squash 将root使用者及所屬組映射成預設使用者或使用者組
# no_root_squash 與root_squash配置相反
# anonuid 将遠端通路使用者映射成指定使用者及ID的使用者
# anongid 将遠端通路使用者組映射成指定使用者組ID的使用者組
(3)重新加載 NFS 服務配置檔案
exportfs -rv
(4)檢查或挂載
将 /data 共享目錄挂載到 /mnt 目錄:
mount -t nfs 192.168.148.136:/data /mnt # ip 位址需要修改
df -h
(5)NFS 開啟防火牆配置
将 NFS 服務的端口設定成固定端口,設定成功後需要重新開機 rpcbind、nfs 服務。
vim /etc/sysconfig/nfs
#内容為
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002 LOCKD_UDPPORT=30002 MOUNTD_PORT=30003 STATD_PORT=30004
systemctl restart rpcbind.service
systemctl restart nfs-server # 如果不能成功,可以使用 systemctl restart nfs.service
配置防火牆開放的端口号,配置好後需要重新開機 iptables.service
dnf install iptables-services
# 關閉預設使用的防火牆
systemctl stop firewalld
systemctl mask firewalld
# 修改配置檔案
vi /etc/sysconfig/iptables
# 内容為
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m udp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m tcp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m udp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m tcp --dport 30001:30004 -j ACCEPT
-A INPUT -m state --state NEW -m udp --dport 30001:30004 -j ACCEPT
service iptables save # 使配置生效
systemctl restart iptables.service # 重新開機服務
3.NFS 用戶端的部署
(1)安裝 NFS 與 RPC 服務并啟動
yum install -y nfs-utils rpcbind
systemctl start rpcbind.service
(2)檢視挂載情況
(3)用戶端挂載共享目錄
mkdir /nfsclient
mount -t nfs 192.168.148.136:/data /nfsclient # 伺服器端 ip
df -h
(4)測試共享
在用戶端建立 123.txt 檔案,在服務端的共享目錄 /data 下也會出現
cd /nfsclient/
ll
touch 123.txt
ll
(5)mount 挂載性能優化(在用戶端操作)
time dd if=/dev/zero of=/nfsclient/text-file bs=100k count=1000
解除安裝原來的挂載
umount -lf -t nfs 192.168.148.136:/data /nfsclient/
安全優加優化的挂載
time dd if=/dev/zero of=/nfsclient/text-file bs=100k count=1000