16.5. NFSv4 仮想ファイルシステム

NFSv4 の大きな特徴の 1 つに、クライアントへエクスポートする全てのディレクトリを 1 つのツリーで公開する点があげられます。<--これは NFSv4 が提供する仮想ファイルシステムであり、NFSv4 Pseudofilesystem と呼ばれています。実際には、-->fsid=0 オプションを付けてエクスポートしたディレクトリが NFSv4 でエクスポートされるディレクトリの起点(仮想 root ディレクトリ)となります。クライアントは、NFS サーバーによってエクスポートされた異なるファイルシステムを、個別にマウントする必要がなくなります。つまり、NFS サーバーのファイルシステムは単一のツリー構造で表現されます。

ここでは、/DATA ディレクトリを 項16.3 でエクスポートした /home/NFS ディレクトリ下に作成した /home/NFS/DATA ディレクトリにバインドする例を示します。

NFS サーバーの停止

クライアントがファイルシステムをアンマウントしていることを確認し、NFS サーバーを停止します。

# /etc/init.d/nfs stop
Shutting down NFS mountd:                                                 OK
Shutting down NFS daemon:                                                 OK
Shutting down NFS quotas:                                                 OK
Shutting down NFS services:                                               OK
ディレクトリの作成

この例では、以下のように /DATA ディレクトリを作成します。

# mkdir 1777 /DATA
# ls -ld /DATA
drwxrwxrwxt  2 root root 4096 Sep 20 21:42 /DATA/
マウントポイントの作成と bind

サーバー上で、以下のコマンドを実行し、マウントポイント /home/NFS/DATA の作成と mount コマンドの --bind オプションを使用して新しいディレクトリツリーにマウントします。

# mkdir /home/NFS/DATA
# mount --bind /DATA /home/NFS/DATA

mount コマンドで確認します。

# mount | grep DATA
/DATA on /home/NFS/DATA type none (rw,bind)
/etc/exports の編集

サーバーの /etc/exports ファイルに /home/NFS/DATA ディレクトリをエクスポートするための設定を追記します。fsid=0 は指定せずに nohide オプションを指定することに注意してください。

/home/NFS 192.168.0.0/24(rw,fsid=0,insecure,no_subtree_check,sync)
/home/NFS/DATA 192.168.0.0/24(rw,nohide,insecure,no_subtree_check,sync)
NFS サーバーの起動

以下のコマンドを実行して NFS サーバーを起動します。

# /etc/init.d/nfs start
Starting NFS services:                                                    OK
Starting NFS quotas:                                                      OK
Starting NFS daemon:                                                      OK
Starting NFS mountd:                                                      OK
# exportfs -v
/home/NFS/DATA  192.168.0.0/24(rw,wdelay,nohide,insecure,root_squash,no_subtree_check)
/home/NFS      192.168.0.0/24(rw,wdelay,insecure,root_squash,no_subtree_check,fsid=0)
NFSv4 クライアントでのマウント

クライアントから NFSv4 サーバー(nfsv4)のファイルシステムをマウントします。

# mount -t nfs4 -o rw,hard,intr nfsv4:/ /mnt/NFS

/mnt/NFS ディレクトリへ移動し、DATA ディレクトリへアクセスできることを確認します。

# cd /mnt/NFS
# ls
DATA/  test01  test02

このように、クライアントは、NFSv4 サーバーがエクスポートしたディレクトリに対して、単一のツリー構造でアクセスすることが可能です。