名前は同じですが、ホストによって内容が異なるNFSファイル

名前は同じですが、ホストによって内容が異なるNFSファイル

NFS を使用するクラスターとmyprogram固定場所 (たとえば/home/sharedfs/somedir/somefile.txt、 . つまりmyprogram、各ノードで実行するとすべて共有に書き込まれるため、/home/sharedfs/somedir/somefile.txt推奨されません)。

だから気になります。各ノードのファイルを生成し、各ノードのリンクが異なるノード固有のファイルを指すように、NFSにソフトリンクを持つ方法はありますか?つまり、

/home/sharedfs/somedir/somefile.node0.txt
/home/sharedfs/somedir/somefile.node1.txt
/home/sharedfs/somedir/somefile.nodeN.txt

そして

/home/sharedfs/somedir/somefile.txt -> link to somefile.node0.txt only on node0
/home/sharedfs/somedir/somefile.txt -> link to somefile.node1.txt only on node1
/home/sharedfs/somedir/somefile.txt -> link to somefile.nodeN.txt only on nodeN

可能ですか?

別のオプションは、somedir各ノードに対して異なるディレクトリを持ち、somedir/somefile.txt各ノードの異なる(非共有)ディレクトリを指すように異なる方法でマウントすることです。

どんなアイデアでも大歓迎です!

答え1

固定ファイルに書き込むことは、myprogramこのプログラムを変更して他のファイルに書き込むことができないという意味だと思います(おそらくソースコードがないかもしれません)。

私はまた、あなたがしたいことがNFSでは不可能であると確信しています。とにかく、他のマウントポイントを使用して述べたソリューションは機能しますが、ノードが多い場合はそれほど実用的ではありません。

プログラムは絶対パスを使用してファイルを作成しますかsomefile.txt、または現在のディレクトリのファイルのみを使用しますか?現在のディレクトリにある場合は、次のサブディレクトリを作成できます。

/home/sharedfs/somedir/nodeN/somefile.txt

myprogramそしてそのディレクトリで実行します。

cd /home/sharedfs/somedir/nodeN
./myprogram

次に、各ノード(nodeN)のローカルディレクトリで次のようにシンボリックリンクを使用します。

ln -s /home/sharedfs/somedir/nodeN/somefile.txt /usr/local/somefile.txt

ファイルはsomefile.txt各ノードで同じ名前でアクセスできますが、ノードによって異なるファイルを指します。他のノードのファイルにアクセスしたい場合は、マウントされたファイルシステムを介して実行できます。

関連情報