NFSv4をautofsで使う方法

Linux

はじめに

Linux同士でNFS(Network File System)を使ってマウントするとき、「/etc/fstab」を使うとマウント提供側がダウンした場合にマウント側が起動途中で停止します。
それを防ぐ手段として、アクセスがあったときだけマウントするautofsの設定方法を紹介します。
autofsはNFSだけでなく、外付けUSBハードディスクなどにも使えるので大変便利です。

以下では、データを提供するパソコンをファイルサーバ、マウントして利用するパソコンをクライアントと定義します。

環境

・Debian12 bookworm
・Debian10 buster
・Ubuntu 20.04.2 LTS

・クライアント 192.168.0.1
 マウント用のディレクトリは「/fileserver」とします。

・ファイルサーバ 192.168.0.2
 データディレクトリは「/data」とします。

ファイルサーバの設定

NFSをインストールします。

sudo apt install nfs-server

設定ファイルを編集します。

sudo vi /etc/exports

/data 192.168.0.1/24(rw,sync,no_subtree_check)

NFSを再起動します。

sudo systemctl restart nfs-server

設定を確認します。

sudo exportfs -v

/data 192.168.0.1/24(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)

クライアントの設定

NFSクライアントと「autofs」をインストールし、マウントします。

sudo apt install nfs-common autofs
sudo mkdir /fileserver

静的なマウントのテストを行います。

sudo mount -t nfs 192.168.0.2:/data /fileserver
df -h

192.168.0.2:/data   58T     0   56T   0% /fileserver

「nfs4」で静的マウントしたことを確認してumountします。

mount | grep data

192.168.0.2:/data on /fileserver type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.1,local_lock=none,addr=192.168.0.2)

sudo umount /fileserver

autofsを使うように設定します。
「/etc/auto.master」を編集します。

sudo vi /etc/auto.master

#+dir:/etc/auto.master.d
#+auto.master
/-    /etc/auto.nfs4  --timeout 120

「/etc/auto.nfs4」を編集します。

sudo vi /etc/auto.nfs4

/fileserver -fstype=nfs4,rw 192.168.0.2:/data

autofsを再起動します。

sudo systemctl restart autofs

テストします。
マウント先のデータが見えれば成功です。

ls -la /fileserver
df -h

マウントオプションを確認します。

cat /proc/mounts | grep fileserver

/etc/auto.nfs4 /fileserver autofs rw,relatime,fd=6,pgrp=20978,timeout=120,minproto=5,maxproto=5,direct,pipe_ino=162753 0 0

192.168.0.2:/data /fileserver nfs4 rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.1,local_lock=none,addr=192.168.0.2 0 0

Comments