headermask image

Notice: Undefined variable: t in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15

Notice: Undefined variable: r in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15
Рекомендую: Фриланс-биржа | Кэшбэк-сервис | Интернет-бухгалтерия

Как ускорить перезагрузку Exchange 2000 или 2003/DC

При проведении автоматического обновления часто требуется перезагрузить компьютер. Если у вас имеется контроллер домена, с установленным Exchange, процесс перезагрузки может проходить очень долго. В данной статье обсуждается, почему завершение работы Exchange/DC занимает такое долгое время, и что более важно, что вы можете сделать по этому поводу.

Введение

Официальный совет от Microsoft — вам не следует устанавливать Exchange 2000 / 2003 на контроллере домена. Конечно, в реальной жизни имеется достаточно много организаций, где используется Exchange DC. Давайте посмотрим правде в глаза. В маленькой организации, требование приобрести еще один сервер, на котором будет храниться только почта, не всегда найдет понимание. Те из вас, которые имеют Exchange DC (но не серверы SBS2003), заметят, что перезагрузка занимает достаточно долгое время. В такой ситуации легко поверить, что именно ваш сервер ведет себя таким образом, и что проблемы именно с вашим сервером. На самом деле все серверы ведут себя таким образом, это известная проблема, вызванная тем, что сервер должен остановить Active Directory сервисы до остановки Exchange сервисов. Exchange конечно с трудом общается с Active Directory. Поэтому ожидание ответа, при остановке сервисов AD занимает долгое время. Естественно, это не было бы проблемой, если бы вам не нужно было перезагружать сервер, но автоматические обновления требуют перезагрузки системы, и кажется, что в наше время автоматических обновлений становится все больше.

Out-of-the-box SBS2003 на самом деле имеет противоположную проблему. Плохо сконфигурированная запись в реестре является причиной того, что сервер останавливается слишком быстро, с вероятным повреждением данных. Смотрите документацию MS KB, статья KB839262. http://support.microsoft.com/default.aspx?scid=kb;en-us;839262.

Решение

Фактически, статья KB555025 в базе данных Microsoft по документации обсуждает эту проблему. Во время написания этой статьи, документация находилась по адресу: http://support.microsoft.com/default.aspx?scid=kb;en-us;555025. Статья советует либо создать batch file, либо изменить запись реестра, расположенную по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WaitToKillServiceTimeout

Статья советует, чтобы оптимальное значение для записи реестра было найдено экспериментально. Для проведения экспериментов по определению времени остановки я решил инсталлировать новый сервер и посмотреть, насколько велики различия.

Сервер, который я собрался использовать, имеет только что установленную Windows Server 2003, с последним патчем, требующим автоматического обновления. В этом состоянии остановка сервера заняла 45 секунд. Очень давно я не видел, чтобы сервер останавливался так быстро. Затем я инсталлировал Exchange 2003 (плюс SP1), и затем замерил время остановки снова. Остановка заняла немногим более 16 минут! Не вечность, конечно, но достаточно долго чтобы заставить вас подумать о нажатии на кнопку перезагрузки, особенно если вам нужно перезагрузить рабочий сервер в середине рабочего дня.

Давайте посмотрим, что можно сделать, изменяя значение ключа в реестре. По умолчанию установлено значение 600000, что я полагаю, представляет 600000 тысячных секунды, или 10 минут. Я допускаю, что вы можете только догадываться какое значение выбрать. Но, проверив значение этого ключа в реестре SBS2003 (известно, что значение ключа в SBS2003 меньше) видно, что там установлено 120000, то есть 2 минуты. Я изменяю значение в реестре на 120000, и измеряю время остановки еще раз. Остановка происходит намного быстрее, за 195 секунд, и легко видеть связь между значением этого ключа в реестре и временем перезагрузки. К сожалению, один из сервисов Exchange (MTA) не запускается из-за ошибки, когда система стартует. Он легко запускается вручную, но этот опыт не воодушевляет. Кроме этого, MS сообщает, что изменение этого ключа в реестре не поддерживается. Кажется, что это убивает сервисы, что не является хорошей идеей, если этого можно избежать.

Давайте вернем значение ключа реестра обратно и попытаемся остановить сервисы (а затем и сервер) с помощью пакетного файла (batch file). Вы можете копировать/вставить его содержимое в Notepad, и затем сохранить как пакетный файл.

@ECHO OFF
ECHO.
ECHO Please select…
ECHO.
ECHO R – Reboot
ECHO S – Shut Down
ECHO A – Abort Shutdown
ECHO Q – Quit
ECHO.

CHOICE /C RSAQ

IF ERRORLEVEL 4 GOTO END
IF ERRORLEVEL 3 GOTO ABORT
IF ERRORLEVEL 2 GOTO SHUTDOWN
IF ERRORLEVEL 1 GOTO REBOOT
IF ERRORLEVEL 0 GOTO END
GOTO END

:ABORT
shutdown /a
GOTO END

:REBOOT
SET PARAM=/r
GOTO STOPSERVICES

:SHUTDOWN
SET PARAM=/s
GOTO STOPSERVICES

:STOPSERVICES
ECHO ON
net stop MSExchangeES /y
net stop MSExchangeIS /y
net stop MSExchangeMTA /y
net stop MSExchangeSA /y
net stop WinHttpAutoProxySvc /y
shutdown %PARAM% /t 10 /c “TO ABORT, RE-RUN BATCH FILE AND PRESS A”

:END

Пакетный файл сначала показывает меню на экране, которое выглядит таким образом (рисунок 1):

image001.gif
Рисунок 1: Меню остановки сервера

Текст меню выдается строками, которые начинаются с ECHO. Нажатие клавиши перехватывается секцией CHOICE : ERRORLEVEL. Заметьте, что список ERRORLEVEL должен быть отсортирован в убывающем порядке.

Остальная часть пакетного файла производит остановку. Если вы нажимаете R, пакетный файл перезагрузит сервер; S – сервер будет остановлен; A – отмена остановки (если вы нажали R или S по ошибке); и Q просто выход.

Сначала, сервисы останавливаются командой NET STOP. Вы можете остановить IS и MTA, просто остановив System Attendant (SA) сам по себе, но я предпочитаю делать это явно. Очередность не особенно важна, исключая что SA должен быть остановлен после других основных сервисов Exchange.

После остановки сервисов, командный файл запускает shutdown.exe с параметрами /t 10 (которые вызывают задержку 10 секунд) и появляется комментарий, который будет находиться на экране, пока система завершает работу (в нашем случае, инструкции для отмены остановки работы системы). Shutdown.exe показывает диалог изображенный на рисунке 2.

image002.gif
Рисунок 2: Диалог остановки

Замечание: У вас есть десять секунд для отмены остановки работы. Если вы хотите отменить остановку, вы должны перезапустить командный файл и нажать А, для предотвращения перезагрузки (Я должен был быть быстрым, чтобы получить этот скриншот). Вам нужно будет запустить сервисные утилиты и перестартовать сервисы Exchange вручную, если вы хотите сохранить ваш сервер в рабочем состоянии.

Запуск командного файла остановит сервер за период, примерно 160 секунд. Не так хорошо, как первоначальные 45 секунд, конечно, но не так плохо, считая что примерно минуту требуется для остановки только Exchange. У вас также есть преимущество, что сервисы останавливаются корректно и в правильной последовательности. Стыдно, что программа Exchange setup не проверяет, чтобы это происходило автоматически. Кроме того, Microsoft должен знать, что Exchange устанавливается на контроллерах домена (Domain Controllers), несмотря на противоположный совет Microsoft.

Источник: www.redline-software.com

Похожие посты
  • Демонстрация Exchange Server 2007
  • Бэкап Exchange 2010 и Exchange 2007 SP2 с помощью Windows Server Backup
  • Exchange 2010 OWA: редирект на устаревший URL с ошибкой HTTP 500 Error
  • Ошибка “An IIS directory entry couldn’t be created. The error message is Access is denied ” после установки Exchange 2010
  • Делегирование прав на установку Exchange Server 2010
  • Установка необходимых компонент для Exchange 2010 в Windows 2008 SP2
  • Как узнать размер базы Exchange с помощью PowerShell
  • Настраиваем 2003 Server на обмен маршрутами RIP с роутерами Cisco. Часть 1
  • Изменение Help URL в Exchange 2010
  • Перемещение почтового ящика в Exchange 2010…