![NFS経由でエクスポートされた異なるループバックマウントボリュームは、クライアントからは1つとして表示されます。](https://rvso.com/image/52088/NFS%E7%B5%8C%E7%94%B1%E3%81%A7%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E3%81%95%E3%82%8C%E3%81%9F%E7%95%B0%E3%81%AA%E3%82%8B%E3%83%AB%E3%83%BC%E3%83%97%E3%83%90%E3%83%83%E3%82%AF%E3%83%9E%E3%82%A6%E3%83%B3%E3%83%88%E3%83%9C%E3%83%AA%E3%83%A5%E3%83%BC%E3%83%A0%E3%81%AF%E3%80%81%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%8B%E3%82%89%E3%81%AF1%E3%81%A4%E3%81%A8%E3%81%97%E3%81%A6%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82.png)
かなり奇妙な問題があります。私は3.2.0-58-generic #88-Ubuntu
(Ubuntu 12.04) を実行しており、次のループバック デバイスをマウントしています。
cat /proc/mounts | grep loop
/dev/loop0 /work/kernel/AEL/fpga-filesystem ext4 rw,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/loop1 /work/kernel/AEL/model-filesystem ext4 rw,relatime,user_xattr,barrier=1,data=ordered 0 0
sudo losetup -a
/dev/loop0: [fc02]:4990567 (/work/kernel/AEL/openembed-fpga.img), offset 54525952
/dev/loop1: [fc02]:4990564 (/work/kernel/AEL/vexpress64-openembedded_minimal-armv8-gcc-4.8_20140222-611.img), offset 54525952
2 つの .img ファイルは完全に別のファイルであり、シンボリック リンクではありません。
ls -li /work/kernel/AEL/
2 drwxr-xr-x 21 root root 4096 Mar 26 20:14 fpga-filesystem
2 drwxr-xr-x 21 root root 4096 Mar 26 20:05 model-filesystem
4990567 -rw-r----- 1 nikbor01 nikbor01 3221225472 Mar 27 09:47 openembed-fpga.img
4990564 -rw-r----- 1 nikbor01 nikbor01 3221225472 Mar 26 20:06 vexpress64-openembedded_minimal-armv8-gcc-4.8_20140222-611.img
2 つのディレクトリが同じ INODE 番号を持つ理由は、イメージは同じ (つまり、同じコンテンツを持つ) ですが、明らかに異なるループ デバイスにマウントされているためです。
最後に、イメージが NFS 経由でマウントされている 2 つのディレクトリをエクスポートします。
/work/kernel/AEL/fpga-filesystem *(rw,sync,no_subtree_check,no_root_squash,insecure)
/work/kernel/AEL/model-filesystem *(rw,sync,crossmnt,no_subtree_check,no_root_squash,insecure)
そして、すべてが最高潮に達しました。client1 に fpga-filesystem をマウントし、client2 に model-filesystem をマウントすると、両方とも同じファイルシステム (たとえば、fpga-filesystem の下にあるファイルシステム) を認識します。
client1 のマウントは次のとおりです。
10.1.209.36:/work/kernel/AEL/fpga-filesystem / nfs rw,relatime,vers=3,rsize=4096,wsize=4096,namlen=255,hard,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.1.209.36,mountvers=3,mountproto=tcp,local_lock=all,addr=10.1.209.36 0 0
そしてクライアント2では:
10.1.209.36:/work/kernel/AEL/model-filesystem / nfs rw,relatime,vers=3,rsize=4096,wsize=4096,namlen=255,hard,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.1.209.36,mountvers=3,mountproto=tcp,local_lock=all,addr=10.1.209.36 0 0
しかし、両方のクライアントで実行すると、ls /
fpga-filesystem ディレクトリの内容のみが表示されますが、これはまったく意味がありません。この問題をデバッグする方法を教えてください。