はじめに
- ONTAPのボリュームにNFSv4でアクセスする際、ちょっとしたハマりどころがあったのでまとめました。
事象:ONTAPの同一ボリュームにNFSv3とNFSv4でアクセスすると、ファイルの所有者の表示が異なる。
# mkdir /mnt/nfsv3
# mkdir /mnt/nfsv4
- NFSv3でマウントしてみます。
# mount -t nfs -o nfsvers=3 192.168.0.151:/nfsvol /mnt/nfsv3
# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 928944 0 928944 0% /dev
tmpfs 940988 0 940988 0% /dev/shm
tmpfs 940988 9040 931948 1% /run
tmpfs 940988 0 940988 0% /sys/fs/cgroup
/dev/mapper/centos-root 57643520 3609952 54033568 7% /
/dev/sda1 1038336 203396 834940 20% /boot
tmpfs 188200 0 188200 0% /run/user/0
192.168.0.151:/nfsvol 10485824 384 10485440 1% /mnt/nfsv3
- テスト用にファイルを作成してファイルの所有者を確認すると、所有者は
root:root
でした。
# touch /mnt/nfsv3/test.txt
# ls -l /mnt/nfsv3
total 0
-rw-r--r-- 1 root root 0 Jan 21 04:24 test.txt
- 次に、同じボリュームをNFSv4でマウントしてみます。
# mount -t nfs -o nfsvers=4 192.168.0.151:/nfsvol /mnt/nfsv4
# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 928944 0 928944 0% /dev
tmpfs 940988 0 940988 0% /dev/shm
tmpfs 940988 9040 931948 1% /run
tmpfs 940988 0 940988 0% /sys/fs/cgroup
/dev/mapper/centos-root 57643520 3609904 54033616 7% /
/dev/sda1 1038336 203396 834940 20% /boot
tmpfs 188200 0 188200 0% /run/user/0
192.168.0.151:/nfsvol 10485824 384 10485440 1% /mnt/nfsv3
192.168.0.151:/nfsvol 10485824 384 10485440 1% /mnt/nfsv4
- 作成したファイルを確認すると、所有者は
nobody:nobody
でした。
# ls -l /mnt/nfsv4
total 0
-rw-r--r-- 1 nobody nobody 0 Jan 21 04:24 test.txt
解決方法:NFSクライアントとONTAPのSVMのドメイン名を一致させる。
- NFSv4で所有者が「nobody」と表示されてしまうのは、NFSクライアントとONTAPでのUIDの名前のマッピングの不一致によるものです。
- マッピングを一致させるには、両者で同一のドメイン名を設定する必要があります。
- ONTAPのSVM側のデフォルトのドメイン名は
defaultv4iddomain.com
です。
::> vserver nfs show -fields v4-id-domain
vserver v4-id-domain
------------- ---------------------
svm1_cluster1 defaultv4iddomain.com
- 特にドメイン名に拘る必要が無ければ、NFSクライアント側をこれに合わせます。
- NFSクライアント側のドメイン名は
/etc/idmapd.conf
で設定します。 -
/etc/idmapd.conf
に以下を追記します。
Domain = defaultv4iddomain.com
- 一度、NFSv4のマウントをアンマウントして再度マウントします。
# umount /mnt/nfsv4
# mount -t nfs -o nfsvers=4 192.168.0.151:/nfsvol /mnt/nfsv4
# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 928944 0 928944 0% /dev
tmpfs 940988 0 940988 0% /dev/shm
tmpfs 940988 9040 931948 1% /run
tmpfs 940988 0 940988 0% /sys/fs/cgroup
/dev/mapper/centos-root 57643520 3609904 54033616 7% /
/dev/sda1 1038336 203396 834940 20% /boot
tmpfs 188200 0 188200 0% /run/user/0
192.168.0.151:/nfsvol 10485824 384 10485440 1% /mnt/nfsv3
192.168.0.151:/nfsvol 10485824 384 10485440 1% /mnt/nfsv4
- NFSv3、NFSv4ともに所有者が
root:root
になりました。
# ls -l /mnt/nfsv3
total 0
-rw-r--r-- 1 root root 0 Jan 21 04:24 test.txt
# ls -l /mnt/nfsv4
total 0
-rw-r--r-- 1 root root 0 Jan 21 04:24 test.txt
まとめ
- ONTAPのボリュームにNFSv4でアクセスする際、ちょっとしたハマりどころがあったのでまとめました。
- ドキュメント上の記載も見つけにくいので注意が必要です。
参考
- NetApp テクニカルレポート: NFS in NetApp ONTAP ベストプラクティスおよび実装ガイド
- NetApp Knowledge Base: How to configure NFSv4 in ONTAP?