0

2 つの Windows Azure ワーカー ロールと 1 つの Cloud Drive VHD (Lucene.NET ドキュメント用) があります。現時点では、最初のワーカー ロールが VHD を取得し、2 番目のワーカー ロールが常に VHD のマウントを試行し (他のロールにマウントされている場合は失敗します)、成功した場合にのみ、ワーカー ロールの実行セクションに入ります。 ..

ただし、これにはすでにいくつかの問題があります。後で使用するためにドライブのロックを解除するOnStopメソッドでドライブを手動でアンマウントします...しかし、OnStopメソッドが呼び出されない場合、私のドライブはマウントできなくなりました両方のシステム...第二に、私の2番目のインスタンスは常に「準備ができていません」とリストされており、しばらくするとこれは奇妙だと思います..そして最後に、インスタンスが「準備ができていません」にもかかわらず、インスタンスにまだ表示されていますリスト...

誰かが以前にこのようなことをしたことがありますか?この問題を回避するために何をすべきかについてのヒントはありますか? フロント エンドが検索サーバーに依存していて、Azure が新しいインスタンスを起動するのを待つ (5 ~ 15 分) のは耐えられないため、検索サーバーをフェールオーバーしたいと考えています。

4

1 に答える 1

2

OnStop が呼び出されない場合、ページ BLOB (Windows Azure ドライブをサポートする VHD) のリースは更新されなくなります。つまり、リースは 60 秒後に期限切れになります。

インスタンスが「ビジー」と表示されている場合、コードはおそらく OnStart から返されていません。ドライブをマウントしようとしているループが、OnStart() ではなく Run() にあることを確認してください。

はい、インスタンスを列挙すると、インスタンスが表示されるはずです。ドライブがマウントされているインスタンスを追跡しようとしている場合は、そのロール インスタンスの ID をどこかの BLOB またはテーブルに書き込むことをお勧めします。フェイルオーバーが発生すると、新しいインスタンスがその ID を上書きします。

于 2011-02-01T16:38:11.497 に答える