今日ハマった事
サーバとクライアントとSANストレージが1台ずつあります。
サーバに
/A/B/C/ というディレクトリを作ります。
/A/B/のマウントポイントにSANをマウントします。
クライアントの/a/b/ ディレクトリにサーバの/B/をマウントしたいのですが、Permission deniedと言われます。
そこでSAN内にxというディレクトリを作って、サーバから見ると、
/A/B/x/という構成にします。つまり/C/にSANをマウントします。その場合だとクライアントからNFSで/A/B/をマウントできます。
が、クライアントから見ると、/a/b/C/xと見えるのですが、xの中身は空っぽです。試しにサーバで一旦SANをアンマウントしてからそのマウントポイントの中にtouch hoge.txtしてからまた同じようにSANをマウントして、クライアントからNFSでマウントするとhoge.txtが見えます。

つまり、NFSクライアントからはサーバでマウントしたSAN領域が見えず、単にサーバで作ったディレクトリのみが見えるのです。あぁどうしよう。俺の説明が悪くてたぶんよくわからないと思うのでもすこし具体的に。
[サーバ側]
/var/hoge に /dev/sdb1(これがSAN)をマウントして、その中にfugaディレクトリ作成。つまり
/var/hoge/fuga と見える(サーバから見ると)。
[クライアント側]
/mnt/nfs/に サーバの/var/hoge/をマウントします。本来であればクライアントからは/mnt/nfs/hoge/fugaと見えるはずなのだが、/mnt/hoge/しか見えない。

なぜこんな事をしたいのかと言うと、クラスタソフトでファイルサーバをクラスタ化したい。構成は、サーバ2台と共有ディスク(SAN)
で、ACTIVEのサーバがSAN領域へアクセスする為には当然SAN領域(この場合/dev/sdb1としてサーバからは認識される)をドライバで認識してなおかつマウントしてなくてはならない。で、failoverのタイミングで、共有ディスクをリリースして、引き継ぐ待機系サーバに渡さなくてはならない。のだが、当然その場合両方のサーバが同時に1つのディスクにアクセスするとクラッシュしてしまうので、アクティブからスタンバイへと共有ディスクを引き渡す為に、HBAのドライバ(モジュール)を削除しなくてはならない。が、クライアントがnfsでマウントしてしまっていると当然resource busyで出来ない。なので、マウントさせるのはアクティブのローカル領域にして、共有領域はその下にある形にしたいのですよ奥さん。さて困った。nfsのマウントってなんかそこらへん制限あったっけ?教えてちょーだい偉い人。