前言
網絡文件系統(NFS)作為 Linux 系統間實現文件共享的標準協議,在分布式計算和容器化部署場景中具有重要作用。本文將詳細演示如何在 Ubuntu 系統上配置 NFS 服務端與客戶端,并實現可靠的持久化掛載。
一、環境準備
系統要求
- 服務端:Ubuntu 20.04+(IP:192.168.1.93)
- 客戶端:Ubuntu/Debian 系統(IP:192.168.1.81)
- 網絡配置:確保雙向連通性,建議關閉防火墻或開放 2049 端口
架構示意圖
二、服務端配置
1. 安裝核心組件
sudo apt update
sudo apt install nfs-kernel-server -y
2. 配置共享目錄
編輯配置文件:
sudo nano /etc/exports
添加以下內容(注意正確路徑):
/opt/ 192.168.1.81(rw,sync,no_subtree_check)
/opt/ 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
參數解析:
rw
:讀寫權限sync
:同步寫入no_subtree_check
:禁用子目錄檢查no_root_squash
:允許 root 用戶訪問
3. 應用配置
sudo exportfs -arv # 動態加載配置
sudo systemctl enable --now nfs-server
systemctl status nfs-server # 驗證服務狀態
三、客戶端配置
1. 安裝基礎工具
sudo apt install nfs-common -y
2. 配置持久化掛載
編輯 fstab 文件:
sudo nano /etc/fstab
添加掛載條目:
192.168.1.93:/opt /opt nfs defaults,_netdev 0 0
關鍵參數說明:
_netdev
:等待網絡就緒- 文件系統類型:nfs4 可顯式聲明使用 NFSv4
3. 安全增強措施
sudo chattr +i /etc/fstab # 防止誤修改
四、自動化掛載保障
1. 創建 systemd 服務
sudo nano /etc/systemd/system/check-opt-mount.service
服務配置內容:
[Unit]
Description=智能掛載保障服務
After=network-online.target
Requires=network-online.target[Service]
Type=oneshot
ExecStartPre=/bin/sleep 30 # 等待網絡初始化
ExecStart=/opt/scripts/mount-validator.sh
TimeoutSec=300[Install]
WantedBy=multi-user.target
2. 驗證腳本實現
#!/bin/bash
# mount-validator.shattempt=0
max_retries=5while [[ $attempt -lt $max_retries ]]; doif mountpoint -q /opt; thenecho "掛載驗證成功"breakelseecho "嘗試掛載 ($((attempt+1))/${max_retries})"mount -a && breaksleep $((attempt++ * 2))fi
done# 后續初始化操作
ldconfig
systemctl restart app-services
五、配置驗證
服務端檢查
showmount -e localhost # 查看共享列表
netstat -tuln | grep 2049 # 確認端口監聽
客戶端驗證
df -hT | grep nfs # 查看掛載狀態
touch /opt/testfile # 測試寫入權限
六、故障排查指南
常見問題處理
-
掛載失敗:
- 檢查
rpcinfo -p server_ip
- 驗證客戶端和服務端 NFS 版本兼容性
- 檢查
-
權限拒絕:
- 檢查
/etc/exports
的 IP 白名單 - 確認客戶端 UID/GID 與服務端匹配
- 檢查
-
服務啟動異常:
journalctl -u nfs-server --since "1 hour ago"
結語
通過本文的配置,您已成功搭建了支持高可用性的 NFS 文件共享服務。建議在生產環境中配合 SSH 隧道或 VPN 增強安全性。對于 Kubernetes 等容器平臺,可結合 PV/PVC 實現動態存儲供給。
延伸學習:
- NFS 協議規范 RFC 7530
- 性能調優:嘗試啟用 async 模式并配合 UPS 電源
- 安全增強:配置 Kerberos 認證
通過合理的配置和驗證流程,NFS 能夠為企業級應用提供穩定高效的共享存儲解決方案。