NFSv4 の大きな特徴の 1 つに、クライアントへエクスポートする全てのディレクトリを 1 つのツリーで公開する点があげられます。<--これは NFSv4 が提供する仮想ファイルシステムであり、NFSv4 Pseudofilesystem と呼ばれています。実際には、-->fsid=0 オプションを付けてエクスポートしたディレクトリが NFSv4 でエクスポートされるディレクトリの起点(仮想 root ディレクトリ)となります。クライアントは、NFS サーバーによってエクスポートされた異なるファイルシステムを、個別にマウントする必要がなくなります。つまり、NFS サーバーのファイルシステムは単一のツリー構造で表現されます。
ここでは、/DATA ディレクトリを 項16.3 でエクスポートした /home/NFS ディレクトリ下に作成した /home/NFS/DATA ディレクトリにバインドする例を示します。
クライアントがファイルシステムをアンマウントしていることを確認し、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/ |
サーバー上で、以下のコマンドを実行し、マウントポイント /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 ファイルに /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 サーバーを起動します。
# /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)のファイルシステムをマウントします。
# mount -t nfs4 -o rw,hard,intr nfsv4:/ /mnt/NFS |
/mnt/NFS ディレクトリへ移動し、DATA ディレクトリへアクセスできることを確認します。
# cd /mnt/NFS # ls DATA/ test01 test02 |
このように、クライアントは、NFSv4 サーバーがエクスポートしたディレクトリに対して、単一のツリー構造でアクセスすることが可能です。