В процессе развертывания Lync 2013 в работе внешних серверов Lync 2013 может произойти сбой, по разным причинам. Если это случается, то возникает некоторое замешательство: почему так происходит и что делать? Для начала я представлю некоторые общие сценарии возникновения ошибок, что поможет вам избежать их в будущем. Затем я расскажу о том, что вам нужно знать и что делать в случае отказов внешнего сервера. Это позволит вам лучше подготовиться к подобным ситуациям и чувствовать себя спокойнее, когда понадобится выполнять перезапуск.

Общие сценарии отказов

Развертывая или обслуживая внешние серверы, вы можете непреднамеренно вызвать сбой внешнего сервера. Например, при развертывании внешнего сервера Lync 2013 или работе с построителем топологий Topology Builder для того чтобы редактировать существующую топологию, вы можете попытаться опубликовать внешних серверов больше, чем нужно. Скажем, опубликовать три, а два из них захотите перезагрузить в одно и то же время (чего, вообще-то, делать не рекомендуется). В любом случае, вам знакомы ситуации, когда служба, будучи в режиме «Starting» рано или поздно останавливается, в результате чего сервер не может работать как регистратор пользователей Lync.

Другая ситуация, когда вы «потеряли» все внешние серверы (скажем, опять же три) за один раз из-за отключения электроэнергии. В этом случае вы, вероятно, потеряли и кворум для пула Lync 2013, что приведет к сбою в работе внешнего сервера. Более подробно о кворумах и о том, как обеспечить их работу, рассказано в моей статье «Обслуживание внешних серверов Microsoft Lync Server 2013», опубликованной в Windows IT Pro/RE № 7 за 2013 год.

Вы знаете, что эти сценарии не надуманные. Они вполне вероятны, поэтому вам следует быть к ним готовыми.

Что необходимо знать

Если вы считаете, что ваш пул Lync 2013 не работает, так как служба Front End service остановилась, нужно выбраться из этого затруднительного положения чем скорее, тем лучше. Однако прежде чем я покажу вам, как это сделать, ознакомьтесь с некоторыми командами Windows PowerShell из модуля Lync Server Management Shell.

  • Вы можете использовать команду Get-CsPoolFabricState с параметром –PoolFqdn, чтобы определить текущее состояние вашего пула Lync 2013.
  • Воспользуйтесь командой Reset-CsPoolRegistrarState с параметрами -PoolFqdn и -ResetType ServiceReset, чтобы остановить, а затем перезапустить все связанные с Lync службы. Перезагрузка службы обычно применяется, когда пул Lync 2013 недоступен во время настройки. Имейте в виду, что если вы не задаете параметр -ResetType (то есть просто используете Reset-CsPoolRegistrarState -PoolFqdn), перезагрузка службы выполняется по умолчанию.
  • Команду Reset-CsPoolRegistrarState можно использовать с параметрами -PoolFqdn и -ResetType QuorumLossRecovery, чтобы выполнить сброс и восстановление после потери кворума. Обычно это делается, если количество активных (то есть работающих в данный момент) внешних серверов падает ниже нужного для кворума уровня. Тогда PowerShell будет восстанавливать данные пользователей из резервной копии. Также можно выполнить сброс и восстановление после потери кворума, когда вы единовременно перезагружаете весь пул Lync 2013.
  • Используйте команду Reset-CsPoolRegistrarState с параметрами -PoolFqdn и -ResetType FullReset, чтобы привести в исходное состояние весь пул Lync 2013. Выбрав FullReset в качестве значения параметра -ResetType, PowerShell не только выполняет перезагрузку (то есть тот же тип восстановления используется, когда QuorumLossRecovery задается как значение параметра -ResetType), но и восстанавливает локальные базы данных сервера Lync. В итоге полный сброс может быть трудоемким и занять много времени, в зависимости от размера ваших баз данных.

Что нужно делать

Теперь, когда мы поговорили о командах PowerShell, давайте рассмотрим их применение для перезапуска внешнего сервера, где произошел сбой. Первое, что вам следует сделать, это определить текущее состояние пула внешних серверов Lync. Для этого вы можете запустить команду Get-CsPoolFabricState. Как показано на экране 1, мы имеем четкое представление о текущем состоянии пула, какие узлы должны быть перезагружены и в каком порядке.

 

Информация о текущем состоянии пула
Экран 1. Информация о текущем состоянии пула

Исходя из того, что нам известно о состоянии пула внешних серверов, предположим, вы решите, что лучше всего остановить, а затем перезапустить все службы Lync с помощью команды Reset-CsPoolRegistrarState с параметром -PoolFqdn. Если не добавлять дополнительного синтаксиса, команда отобразит список параметров, как на экране 2.

 

Список параметров Reset-CsPoolRegistrarState
Экран 2. Список параметров Reset-CsPoolRegistrarState

Когда вы вводите Y, PowerShell останавливает службы, связанные с Lync, как показано на экране 3. Когда все они остановятся, PowerShell перезапустит каждую из них.

 

Остановка служб Lync
Экран 3. Остановка служб Lync

Предположим, вы определили состояние пула внешних серверов, как на экране 1, и убедились, что необходимо вернуть в исходное состояние кворум Lync. Тогда вы запускаете команду Reset-CsPoolRegistrarState с параметрами -PoolFqdn и -ResetType FullReset, как показано на экране 4. При выполнении этой команды PowerShell выполнит полное восстановление пула, что в конечном итоге восстановит локальные базы данных сервера Lync, расположенные на внешних серверах.

 

Полное восстановление пула внешних серверов
Экран 4. Полное восстановление пула внешних серверов

Будьте готовы

Во время развертывания возможны различные ситуации, когда вы создаете слишком много внешних серверов за один раз или перезагружаете одновременно слишком много серверов во время обслуживания. Эти досадные случайности не должны превратиться в катастрофу для Lync 2013. Ознакомившись с возможностями применения команд PowerShell, вы будете лучше подготовлены и сможете уверенно восстановить службы, если произойдет сбой.