Azure は、ロール インスタンスが実行されている VM を再起動することがあります。たとえば、VM が実行されていたハードウェアが壊れた場合など、ある VM でそれを停止して別の VM に展開することがあります。
どちらの場合も明らかに VM のアップタイムはリセットされます。
後者を検出するにはどうすればよいですか?自動クリーンアップ後に古い VM ではなく、新しい VM であることをどのように確認できますか?
Azure は、ロール インスタンスが実行されている VM を再起動することがあります。たとえば、VM が実行されていたハードウェアが壊れた場合など、ある VM でそれを停止して別の VM に展開することがあります。
どちらの場合も明らかに VM のアップタイムはリセットされます。
後者を検出するにはどうすればよいですか?自動クリーンアップ後に古い VM ではなく、新しい VM であることをどのように確認できますか?
I suggest that you trap & log (to shared storage like ATS/blob/SQLAzure) all of the RoleEnvironment events, such as Stopping/Starting/etc along with the machine name and instance Id. This will get you all of the information necessary to debug when your machines are restarted and whether they're moved.
100% 確実な方法ではありませんが、VM の起動時に、プロパティを使用してロール インスタンスの ID を取得し、RoleInstance.Id
プロパティを使用して VM のコンピューター名をEnvironment.MachineName
取得し、テーブル ストレージのどこかに保存することができます。その後、VM が起動するたびに、このテーブルをチェックして、新しい VM がロール インスタンスに割り当てられているかどうかを確認できます。