2011-02-01 30 views
0

我有2个Windows Azure Worker角色和1个Cloud Drive VHD(用于Lucene.NET文档)。目前,第一个worker角色获取VHD,第二个角色获取VHD,第二个角色不断尝试挂载VHD(如果另一个具有该VHD,则会失败),并且只有成功时才会进入工作角色的运行部分。 ..2角色工作者,一个VHD,自动故障转移

有几个问题,我可以看到这一点,虽然:我手动卸载驱动器的OnStop方法,解锁驱动器供以后使用...但如果OnStop方法不会被调用,我的驱动器现在无法由两个系统安装......其次,我的第二个实例经常被列为“未准备好”,偶尔会觉得这很奇怪。最后,即使实例“未准备好”,它仍然是仍然显示在实例列表中...

有没有人做过这样的事情,并有任何提示我什么我sh应该解决这个问题吗?我想对搜索服务器进行失败,因为我的前端依赖于它,并且等待Azure启动新实例(5-15分钟)不会成功。

回答

2

如果未调用OnStop,页面blob(支持Windows Azure驱动器的VHD)的租约将不会再续约,这意味着它将在60秒后过期。

如果您的实例被列为“忙”,您的代码可能没有从OnStart返回。确保你尝试安装驱动器的任何循环都在Run()中,而不是OnStart()中。

是的,如果枚举实例,实例应显示出来。如果您试图跟踪哪个实例安装了驱动器,我会建议让该角色实例将其ID写入某个Blob或表中。发生故障转移时,新实例将覆盖该ID。

+0

非常酷!这应该让我的生活更轻松!谢谢! – TiernanO 2011-02-01 16:42:31