NFSサーバを構築する!(Rocky Linux 9)

Rocky Linux 9でNFSサーバを構築します。NFSのバージョンは、NFSv4を使用します。

NFSサーバのパッケージをインストールする!

NFSサーバのパッケージをインストールします。

# dnf install nfs-utils -y 

FirewalldでNFSの接続を許可する!

FirewalldでNFSの接続を許可します。

# firewall-cmd --add-service=nfs --permanent
success
# firewall-cmd --reload
success
# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3
  sources: 
  services: cockpit dhcpv6-client nfs ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
total 0

外部からNFSマウントするディレクトリを作成する!

外部からNFSマウントするディレクトリを作成します。

# mkdir /var/nfs
# ls -ld /var/nfs
drwxr-xr-x. 2 root root 6 Nov 27 15:07 /var/local/nfs

NFSサーバの設定を行う!

NFSサーバの設定を行います。

# echo "/var/nfs 10.1.0.0/16(rw,no_root_squash,sync)" > /etc/exports
# cat /etc/exports
/var/local/nfs 10.1.0.0/16(rw,no_root_squash,sync)

NFSサーバの設定を反映します。

# exportfs -r
# exportfs -v
/var/nfs      	10.1.0.0/16(sync,wdelay,hide,no_subtree_check,sec=sys,rw,no_root_squash,no_all_squash)

使用しているポートの情報を表示します。

# rpcinfo -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper

NFSサーバが自動起動するように設定する!

NFSサーバが自動起動するように設定します。

# systemctl enable --now rpcbind nfs-server
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
# systemctl status rpcbind
● rpcbind.service - RPC Bind
     Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-11-27 15:07:05 JST; 498ms ago
TriggeredBy: ● rpcbind.socket
       Docs: man:rpcbind(8)
   Main PID: 6015 (rpcbind)
      Tasks: 1 (limit: 10973)
     Memory: 1.6M
        CPU: 18ms
     CGroup: /system.slice/rpcbind.service
             └─6015 /usr/bin/rpcbind -w -f

Nov 27 15:07:05 vmsnfs01 systemd[1]: Starting RPC Bind...
Nov 27 15:07:05 vmsnfs01 systemd[1]: Started RPC Bind.
# systemctl is-enabled rpcbind.service
enabled
# systemctl status nfs-server
● nfs-server.service - NFS server and services
     Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
    Drop-In: /run/systemd/generator/nfs-server.service.d
             └─order-with-mounts.conf
     Active: active (exited) since Sun 2022-11-27 15:07:06 JST; 48ms ago
    Process: 6197 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
    Process: 6198 ExecStart=/usr/sbin/rpc.nfsd (code=exited, status=0/SUCCESS)
    Process: 6630 ExecStart=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=ex>
   Main PID: 6630 (code=exited, status=0/SUCCESS)
        CPU: 17ms

Nov 27 15:07:06 vmsnfs01 systemd[1]: Starting NFS server and services...
Nov 27 15:07:06 vmsnfs01 systemd[1]: Finished NFS server and services.
# systemctl is-enabled nfs-server
enabled

NFSサーバに接続してみる!

Ubuntu Desktop 22.04から接続してみます。接続先のNFSサーバ名は「vmsnfs01」で、Ubuntuにusradminというユーザでログインしている例です。まず、NFSクライアントが含まれるパッケージをインストールします。

$ sudo apt install nfs-common

マウントポイントを作成します。

$ mkdir nfs

NFSでマウントします。

$ sudo mount -t nfs vmsnfs01:/var/nfs /home/usradmin/nfs
$ df -h | grep nfs
vmsnfs01:/var/local/nfs   70G  4.7G   66G   7% /home/usradmin/nfs

マウントしたディレクトリの権限をログインユーザに修正します。

$ sudo usradmin:usradmin /home/usradmin/nfs

ファイルシステムが利用できるか、いろいろ試してみましょう。

$ touch aaa.txt
$ ls -l
total 0
-rw-rw-r-- 1 usradmin usradmin 0 Nov 27 15:47 aaa.txt
-rw-r--r-- 1 root     root     0 Nov 27 15:27 vmsnfs01.txt

おわりに

取り急ぎ、NFSサーバを構築したいということがある思います。最短でNFSサーバを構築する手順をまとめてみました。

関連記事

参考書籍(Amazon)