NFSボリューム上にZopeインスタンス

Zopeインスタンスを、共用ストレージ・サーバが提供するNFSボリュームに置き、バックアップは共用ストレージ・サーバで一括して、なんてことを考えていたのですが、そうそう上手くは事が運びません。

まず、ZODB/lock_file.pyで使われているflock()が、NFSボリュームでは効かないため、Data.fs.lockのロックに失敗('Resouce temporarily unavailable')します。lock_file.pyに手を加えて逃げても、zopectlを使ってデーモンとして動かそうとすると、zdrun.pyでUnixドメインsocketをbindする時に'No such file or directory'なんて怒られてしまいます。これもNFSボリューム上ではダメらしいです。(runzopeで動かす分には、Unixドメインsocketは使われないので、大丈夫なようです。)

結局、Zopeインスタンスディレクトリ自体はローカルのディスク上に配置し、Data.fsだけをNFSに逃がして、シンボリック・リンクすることにしました。とりあえず、今のところは無事に動いています。