2 рабочих роли, один VHD, автоматическое переключение при сбое - PullRequest
0 голосов
/ 01 февраля 2011

У меня 2 рабочие роли Windows Azure и 1 виртуальный жесткий диск с облачным диском (для документов Lucene.NET).В настоящий момент первая рабочая роль получает виртуальный жесткий диск, а вторая постоянно пытается подключить виртуальный жесткий диск (который терпит неудачу, если у другого он есть) и только в случае успеха переходит в раздел запуска рабочей роли...

Есть несколько проблем, с которыми я уже вижу это: я вручную размонтирую диск в методе OnStop, который разблокирует диск для дальнейшего использования ... но если метод OnStop не получаетназывается, мой диск теперь не может быть смонтирован обеими системами ... Во-вторых, мой второй экземпляр постоянно отображается как "не готов", и через некоторое время лазурь думает, что это странно.он все еще отображается в списке экземпляров ...

Кто-нибудь делал что-то подобное раньше и есть какие-либо советы о том, что мне следует сделать, чтобы обойти эту проблему?Я хотел бы иметь сервер поиска при сбое, так как мой интерфейс зависит от него, и ожидание, пока Azure запустит новый экземпляр (5-15 минут), не будет стоять.

1 Ответ

2 голосов
/ 01 февраля 2011

Если OnStop не вызывается, аренда блоба страницы (виртуальный жесткий диск, поддерживающий диск Windows Azure) больше не будет продлена, что означает, что срок действия истекает через 60 секунд.

Если ваш экземпляр указан как «Занят», ваш код, вероятно, не вернулся из OnStart. Убедитесь, что любой цикл, который вы пытаетесь смонтировать, находится в Run (), а не в OnStart ().

Да, экземпляр должен отображаться, если вы перечисляете экземпляры. Если вы пытаетесь отследить, к какому экземпляру подключен диск, я бы предложил, чтобы этот экземпляр роли записал свой идентификатор в BLOB-объект или таблицу. Когда происходит аварийное переключение, новый экземпляр перезаписывает этот идентификатор.

...