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