Linux NFS 設定

  • NFS Server : 192.168.11.250 共用目錄為 /data
  • NFS Clien : 192.168.11.232(vm-web)
  • CentOS

    yum install nfs-utils nfs-utils-lib

  • Ubuntu

    sudo apt install nfs-common nfs-kernel-server

  • Alpine

    sudo apk add nfs-utils

vi /etc/hosts
:
192.168.11.232          vm-web.ichiayi.com      vm-web
chkconfig nfs on
vi /etc/exports
/data/ vm-web(rw,no_root_squash,no_all_squash,sync)
  • CentOS

    systemctl start nfs

  • Ubuntu

    systemctl start nfs-server.service

  • /etc/exports 內的設定的 nfs client 的 hostname 必須要正確, 否則當 clinet 要 mount 時會出現如下訊息:
    mount: 192.168.11.250:/data failed, reason given by server: 拒絕不符權限的操作
  • 每次更動 /etc/exports 之後, 必須要重新啟動 nfs 服務
    • CentOS

      systemctl start nfs

    • Ubuntu

      systemctl start nfs-server.service

  • 如果想要簡單的設定權限, 讓所有連入 NFS 的使用者都是使用 root 權限可以在 export 的定義內加上 ,anonuid=0,anongid=0
    Exp.
    :
    /STORAGE 10.0.5.10(rw,sync,no_subtree_check,all_squash,anonuid=0,anongid=0)
  • OpenMediaVault 可以這樣設定
vi /etc/hosts
127.0.0.1               localhost.localdomain localhost vm-web
192.168.11.250          pd-920.ichiayi.com      nfs-920
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=vm-web.ichiayi.com
GATEWAY=192.168.11.250
hostname vm-web

修正之後先登出,再登入一次就可以看到 hostname 已經變成 vm-web 如下所示:

[root@vm-web ~]#
  • 用 NFS Server IP 或 hostname 來顯示開放分享的目錄清單
showmount -e 192.168.11.250
showmount -e nfs-920

顯示執行結果

  • 建立與掛載共用目錄
mkdir /data
mount -t nfs 192.168.11.250:/data /data
df -k

顯示執行結果

如果不成功,就回去修正 NFS Server 端的 /etc/exports 內設定內容, 並重新啟動 nfs 服務.

當測試確認沒問題之後, 可以更改 /etc/fstab 來定義自動開機掛載 nfs 共用目錄

vi /etc/fstab
:
192.168.11.250:/data  /data  nfs   rw   0 0

如果發覺效能太差, 可以改用 udp 的模式加快速度, 將 fstab 改成以下

:
192.168.11.250:/data  /data  nfs   rw,udp   0 0
  • 當 mount 之後看到 nfs 的目錄 owner 都變成 nobody 時, 可能是 nfs client 端的 rpc.statd 沒有啟動, 可透過重新開機解決
  • tech/nfs.txt
  • 上一次變更: 2024/02/01 11:56
  • jonathan