熱門分類
載入中…
目錄0%

🐧 Linux:完整 NFS Server 與 Client 掛載指南(含 systemd 自動掛載)

    🐧 Linux:完整 NFS Server 與 Client 掛載指南(含 systemd 自動掛載)

    本篇將帶你從零架設 NFS Server、設定 exports 權限、Client 掛載到 systemd 自動掛載完整流程,適用於家庭實驗室、Proxmox、Kubernetes、NAS 整合等情境。

    📌 一、什麼是 NFS?適用情境與架構說明

    NFS(Network File System)是一種透過網路共享檔案系統的協定,常用於伺服器之間共享資料。它的速度快、延遲低,非常適合:

    • Proxmox / KVM 環境放置 ISO、Backup
    • 多台 Linux 主機共享設定或資料目錄
    • Kubernetes / Docker 節點共享儲存
    • 企業內 IT 系統的共用檔案中心
    # 常見 NFS 架構
    [Client A] --\
    [Client B] ----> [NFS Server] ----> Storage
    [Client C] --/
    
    ---

    📌 二、NFS Server 安裝與設定

    1️⃣ 安裝 NFS 伺服器套件

    # CentOS / RHEL / Rocky / AlmaLinux
    sudo yum install -y nfs-utils
    
    # Ubuntu / Debian
    sudo apt install -y nfs-kernel-server
    

    2️⃣ 建立共享資料夾

    sudo mkdir -p /srv/nfs/data
    sudo chown -R nobody:nogroup /srv/nfs/data     # Debian/Ubuntu
    # CentOS 可用 nfsnobody
    

    3️⃣ 設定 /etc/exports

    sudo nano /etc/exports
    
    範例設定(允許 10.0.0.0/24 子網):
    /srv/nfs/data 10.0.0.0/24(rw,sync,no_root_squash,no_subtree_check)
    
    常用參數說明:
    參數說明
    rw允許讀寫
    sync同步寫入,較安全但稍慢
    no_root_squash保留 root 身份(內網環境常用)
    no_subtree_check提升效能,常見最佳化

    4️⃣ 套用設定並啟動服務

    sudo exportfs -ra
    sudo systemctl enable --now nfs-server
    sudo systemctl status nfs-server
    
    ---

    📌 三、Client 側掛載 NFS

    1️⃣ 安裝必要工具

    # CentOS / RHEL
    sudo yum install -y nfs-utils
    
    # Ubuntu / Debian
    sudo apt install -y nfs-common
    

    2️⃣ 手動掛載(測試用)

    sudo mkdir -p /mnt/nfs
    sudo mount -t nfs 10.0.0.10:/srv/nfs/data /mnt/nfs
    
    確認掛載成功:
    df -h | grep nfs
    
    ---

    📌 四、設定 fstab 開機自動掛載

    1️⃣ 編輯 fstab

    sudo nano /etc/fstab
    
    加入:
    10.0.0.10:/srv/nfs/data   /mnt/nfs   nfs   defaults,_netdev   0  0
    

    2️⃣ 套用設定

    sudo mount -a
    
    ---

    📌 五、使用 systemd 自動掛載(比 fstab 更可靠)

    在多節點部署(如 Proxmox / Kubernetes)中,systemd automount 能避免開機順序造成的掛載失敗。

    1️⃣ 建立掛載目錄

    sudo mkdir -p /mnt/nfs
    

    2️⃣ 建立 systemd 單位檔

    sudo nano /etc/systemd/system/mnt-nfs.mount
    
    內容:
    [Unit]
    Description=NFS Share Mount
    
    [Mount]
    What=10.0.0.10:/srv/nfs/data
    Where=/mnt/nfs
    Type=nfs
    Options=_netdev
    
    [Install]
    WantedBy=multi-user.target
    

    3️⃣ 建立 automount(啟動後自動在存取時掛載)

    sudo nano /etc/systemd/system/mnt-nfs.automount
    
    內容:
    [Unit]
    Description=NFS Automount
    
    [Automount]
    Where=/mnt/nfs
    
    [Install]
    WantedBy=multi-user.target
    

    4️⃣ 啟用

    sudo systemctl daemon-reload
    sudo systemctl enable --now mnt-nfs.automount
    
    成功後:
    cd /mnt/nfs   # ← 這一刻 systemd 會自動掛載
    
    ---

    📌 六、NFS 效能最佳化(可選)

    最佳化項目建議
    async提升速度(非極度重視資料一致性時)
    rsize / wsize常用 131072 以提高 throughput
    noatime降低 metadata 負擔
    使用 SSD大幅提升 NFS IOPS 能力
    範例 mount option:
    10.0.0.10:/srv/nfs/data /mnt/nfs nfs defaults,noatime,rsize=131072,wsize=131072 0 0
    
    ---

    🔗 延伸閱讀

    — WWFandy・Linux 技術筆記

    🔗 分享這篇 LINE Facebook X

    沒有留言:

    字級