Установка обновления для Exchange 2013

Всем привет!

Exchange не стоит на месте. Команда Exchange постоянно разрабатывает новый функционал и исправляет найденные ошибки. В Exchange 2013 разработчики перешли на следующую схему выпуска и поддержки обновлений: обновления (Cumulative Update, CU) выходят каждый квартал и поддерживаются только текущее и предыдущее обновления (Servicing Exchange 2013).

В этом руководстве будет рассмотрен процесс установки CU для Exchange 2013.

 

 

Устанавливая обновление для Exchange 2013, необходимо помнить следующие моменты:

  • Любое обновление для Exchange 2013 представляет собой полный дистрибутив Exchange 2013
  • Любое обновление Exchange 2013 требует подготовки Active Directory, в том числе и расширение схемы
  • Обновлять Exchange 2013 можно с любой версии на любую версию. Устанавливать какие-либо промежуточные обновления не нужно. Например, чтобы обновиться с Exchange 2013 SP1 до Exchange 2013 CU7 можно использовать сразу обновление CU7. Устанавливать CU5 и CU6 не нужно
  • Любое обновление для Exchang 2013 перезаписывает конфигурационные файлы и файлы web.config IIS: если вы вносили изменения в файлы web.config, например для интеграции с Lync, то необходимо заранее сохранить эти конфигурационные файлы. После установки обновления необходимо будет заново внести требуемые изменения в файлы web.config, но ни в коем случае не заменяйте эти файлы сохраненными ранее – могут быть проблемы
  • Перед установкой обновления у вас должен быть свежий бекап Active Directory
  • Перед установкой обновления у вас должен быть свежий бекап Exchange 2013
  • Если роли MBX и CAS установлены на разных серверах, то в первую очередь необходимо устанавливать обновление на сервер с ролью MBX
  • Установленное обновление нельзя удалить, чтобы вернуться к ранее установленному

 

Если у вас всего один сервер в организации, один лес и один домен, то проще всего использовать стандартный мастер установки Exchange 2013, чтобы произвести обновление. Если же у вас сложная архитектура Exchange 2013, то для того, чтобы снизить время простоя сервиса, обновление необходимо выполнять этапами.

 

В нашем сценарии обновления, мы будем использовать следующую архитектуру:

  • 1 лес, 1 домен, 1 сайт с выходом в Интернет
  • 1 контроллер домена (DC01)
  • 2 сервера с совмещенными ролями MBX и CAS, объединенных в DAG (EX01 и EX02)
  • 1 сервер с ролью CAS (CAS01)

 

Общий план обновления (для нашего сценария)

  1. Подготавливаем Active Directory (этап 1)
  2. Определяем сервер с ролью “Primary Active Manager” (в моем случае это сервер EX01) – его обновлять будем в последнюю очередь (этап 2)
  3. Подготавливаем сервер EX02 для установки обновления (этап 2)
  4. Переводим сервер EX02 в Maintenance Mode (этап 3)
  5. Устанавливаем обновление (этап 4а или 4б)
  6. Выводим севрер EX02 из Maintenance Mode (этап 5)
  7. Проверям Exchange обновленного сервера (этап 6)
  8. Повторяем шаги 3-7 для сервера EX01
  9. Повторяем шаги 3-7 для сервера CAS01
  10. Обновляем Management Tools (этап 7)

 

 

Этап 1. Подготовка Active Directory.

Как и при установке Exchange 2013 с нуля, установка обновления требует подготовки Active Directory. И если у вас довольно большая организация, то подготовку лучше всего делать отдельно от основной установки Exchange 2013. Почему? Одна из причин: при подготовке Active Directory вносятся изменения в схему. При этом, пока эти изменения не среплицируются на все контроллеры, репликация других объектов будет блокирована. И если у вас репликация между сайтами осуществляется через большие периоды времени, то на это время никакие другие изменения (кроме изменения схемы) не будут приниматься контроллерами.

 

Сам процесс подготовки Active Directory здесь мы рассмотрим в общем виде. Более подробно про него можно почитать в статье: Устанавливаем Exchange 2013. Часть 1 – подготовка Active Directory

  1. Запускаем командную строку cmd.exe (НЕ Powershell), переходим в папку с распакованным обновлением и запускаем следующую команду

    Setup.exe /PrepareAD /IAcceptExchangeServerLicenseTerms

     

  2. После завершения процесса подготовки, вы увидите следующее окно с результатом:imageОбратите внимание на подчеркнутую строку: если запускать установщик через Powershell, то он запустит файл setup.exe от уже установленного Exchange 2013 старой версии.

  3. Если в вашей организации имеются несколько доменов, где находятся учетные записи с почтовыми ящиками, то вам необходимо дополнительно подготовить и их (подробнее можно прочитать в статье Prepare Active Directory and domains)

  4. Если процесс подготовки завершится с ошибкой, то начать поиск ошибок нужно с просмотра лога установщика, который находится вот по этому пути: C:\ExchangeSetupLogs\ExchangeSetup.log

 

 

Этап 2. Подготовка к установке

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

Ниже представлен список файлов, изменения в которых необходимо сохранить куда-либо, чтобы после установки обновления их внести заново:

  • IIS: файлы web.config MBX роли (они располагаются в подпапках по пути C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess) – их изменение обычно связано, например, с интеграцией с Lync или с исправлением, когда учетная запись имеет слишком большое членство в группах
  • IIS: файлы web.config CAS роли (они располагаются в подпапках по пути C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy) – их изменение обычно связано, например, с исправлением, когда учетная запись имеет слишком большое членство в группах
  • Exchange: файлы *.config – конфигурационные файлы служб Exchange (они располагаются по пути C:\Program Files\Microsoft\Exchange Server\V15\Bin) – их изменение обычно связано, например, с необходимостью увеличить количество одновременных перемещений почтовых ящиков
  • Exchange: реестр (расположение HKLM\Software\Microsoft\ExchangeServer\V15)

 

Далее необходимо определить какой из MBX серверов в данный момент держит роль “Primary Active Manager” – этот MBX сервер необходимо будет обновлять в последнюю (!!!) очередь. Сделать это можно одним из следующих способов:

  1. Используя EMS:

    Get-DatabaseAvailabilityGroup -Status | fl *primary*

    image

  2. Посмотреть в консоли “Failover Cluster Manager”:image
  3. Используя командлет Get-ClusterGroup (сервер с ролью PAM всегда будет владельцем “Cluster Group”):

    Get-ClusterGroup -Cluster DAG1

    image

 

 

 

Этап 3. Включение Maintenance режима

Если у вас в организации более одного MBX сервера или более одного CAS сервера, то чтобы снизить общее время даунтайма сервиса, обязательно нужно включать “режим обслуживания” (maintenance mode). Это необходимо для того, чтобы клиенсткие подключения не перенаправлялись на обновляемый сервер, чтобы копии почтовых баз в DAG не активировались на обновляемом сервере и т.д.

Как это делается?

 

CAS Maintenance Mode

Для включения Maintenance Mode для сервера только с CAS ролью необходимо выполнить следующее:

  1. Если у вас используется какой-либо механизм балансировки между несколькими CAS серверами, то в первую очередь необходимо исключить этот сервер из пула балансировки. При этом, если вы используете железный балансировщик и у вас настроен мониторинг компонентов Exchange (с использованием проверки страницы …/HealthCheck.htm), то ручное исключение из пула балансировки можно пропустить.

  2. Открываем EMS и выполняем следующую команду:

    Set-ServerComponentState CAS01 -Component ServerWideOffline -State inactive -Requester Maintenance

     

После выполнения этой команды, сервер с ролью CAS будет переведен в Maintenance Mode.

В более ранних версиях Exchange 2013 любой перевод компонентов, относящихся к транспортной службе, требовал так же ручного перезапуска служб транспорта. В CU7 этого уже не требуется.

 

MBX Maintenance Mode

Для включения Maintenance Mode для сервера только с MBX ролью или для сервера с совмещенными ролями MBX+CAS, необходимо выполнить следующее:

  1. Если у вас используется какой-либо механизм балансировки между несколькими CAS серверами, то в первую очередь необходимо исключить этот сервер из пула балансировки. При этом, если вы используете железный балансировщик и у вас настроен мониторинг компонентов Exchange (с использованием проверки страницы …/HealthCheck.htm), то ручное исключение из пула балансировки можно пропустить.

  2. Переводим службу Transport в режим Draining (для того, чтобы новые сообщения не принимались, а еще недоставленные — отправились):

    Set-ServerComponentState EX02 -Component HubTransport -State Draining -Requester Maintenance

     

  3. Перенаправляем все оставшиеся сообщения в очередях на другой MBX сервер (имя сервера назначения должно быть обязательно задано в виде FQDN):

    Redirect-Message -Server EX02 -Target EX01.E13.Lab

     

  4. Переводим состояние ноды кластера в паузу (это делается для того, чтобы нода не смогла взять на себя роль PAM):

    Suspend-ClusterNode EX02

     

  5. Инициируем перемещение активных копий, находящихся на этом сервере, на другие сервера:

    Set-MailboxServer EX02 -DatabaseCopyActivationDisabledAndMoveNow $True

     

  6. Устанавливаем запрет на активацию копий, находящихся на этом сервере:

    Set-MailboxServer EX02 -DatabaseCopyAutoActivationPolicy Blocked

     

  7. Переводим все компоненты сервера в режим Maintenance Mode:

    Set-ServerComponentState EX02 -Component ServerWideOffline -State Inactive -Requester Maintenance

     

После выполнения этих команд, сервер с ролью MBX (или CAS+MBX) будет переведен в Maintenance Mode.

 

 

Этап 4а. Установка обновления (используя мастер установки)

 

  1. Переходим в папку с распакованным обновлением и запускаем файл setup.exe
  2. В окне “Check for Updates?” выбираем пункт “Don’t check for updates right now” и нажимаем Nextimage
  3. В следующем окне обратите внимание, что мастер установки определил на сервере установленный Exchange 2013 и установка продолжится далее в режиме обновления. В этом окне просто нажимаем Nextimage
  4. В окне “License Agreement” читаем лицензионное соглашение, принимаем его и нажимаем Next.

  5. В окне “Readiness Checks” мастер установки проверит готовность всех предварительных требований, и, если критических ошибок не будет, нажимаем Install для начала установки обновления (в моем случае мастер установки не нашел отправляющего коннектора, что в данном случае не важно, т.к. это тестовый сервер).image
  6. После этого начнется установка обновления. В зависимости от некоторых критериев (количество почтовых баз, с какой версии происходит обновление, производительность сервера и т.д.) установка может занять до нескольких часов.

  7. После окончания установки обновления, мастер установки предложит выполнить перезагрузку сервера, что мы и сделаем.image

 

 

Этап 4б. Установка обновления (используя командную строку)

 

  1. Запускаем командную строку cmd.exe (НЕ Powershell), переходим в папку с распакованным обновлением и запускаем следующую команду:

    Setup /m:Upgrade /IAcceptExchangeServerLicenseTerms

     

  2. После этого начнется установка обновления в автоматическом режиме, по окончании которой на экран выведется информация о результате.image
  3. После установки обновления обязательно перезагружаем сервер.

 

 

Этап 5. Вывод сервера из Maintenance Mode

После установки обновления и проверки версии необходимо вывести сервер из режима Maintenance Mode, чтобы он продолжил обслуживать клиентов.

Для этого необходимо произвести следующие шаги:

Set-ServerComponentState EX02 -Component ServerWideOffline -State Active -Requester Maintenance
Resume-ClusterNode EX02
Set-MailboxServer EX02 -DatabaseCopyActivationDisabledAndMoveNow $False
Set-MailboxServer EX02 -DatabaseCopyAutoActivationPolicy Unrestricted
Set-ServerComponentState EX02 -Component HubTransport -State Active -Requester Maintenance

 

 

Этап 6. Проверка работоспособности Exchange 2013 после установки обновления

После установки обноления и вывода сервера из Maintanance Mode необходимо проверить его работоспособность. Для этого необходимо выполнить следующие шаги:

  1. Проверить версию сервера через EAC (раздел Servers):imageПроверить версию сервера через EMS можно следующим образом:

    Get-ExchangeServer | ft Name, ServerRole, AdminDisplayVersion -AutoSize

    image

  2. Проверить, что все ноды кластера доступны:

    Get-ClusterNode

    image

  3. Проверить, что все службы запущены:

    Test-ServiceHealth

    image

  4. Проверить подключение к каждой почтовой базе:

    Test-MAPIConnectivity -Database MDB01

    image

  5. Проверить статус всех копий почтовых баз:

    Get-MailboxDatabase | Get-MailboxDatabaseCopyStatus | ft Name, Status, CopyQueueLength, ReplayQueueLength, ContentIndexState -AutoSize

    image

  6. Проверить работоспособность службы репликации на каждом из членов DAG:

    Test-ReplicationHealth -Server EX01

    image

  7. Проверить не заблокирована ли возможность активации почтовых баз на серверах:

    Get-MailboxServer | ft name, *activ*

    image

  8. Проверить состояние всех компонентов серверов:

    Get-ServerComponentState EX01

    image

  9. (опционально) Запустить скрипт распределения почтовых баз по серверам:

    cd $exscripts
    .\RedistributeActiveDatabases.ps1 -DagName DAG1 -BalanceDbsByActivationPreference -Confirm:$false

     

 

Этап 7. Установка Management Tools

Если у вас на каком-либо компьютере установлены отдельно Management Tools, то их тоже необходимо обновить. Сделать это прощего всего, скопировав дистрибутив, запустить мастер установки. Он обнаружит, что на компьютере установлены только Management Tools и обновит только их. Установка проходит по типу “Next –> Next –> Install”.

 

 

Бонус

К посту прикреплен скрипт, который автоматически выполняет все необходимые действия для включения и выключения Maintenance Mode.

[wpfilebase tag=file id=7 tpl=filebrowser /]

 

Заключение

Бывают разные организации Exchange: простые, сложные, большие и нет. И если все делать правильно, понимая зачем делать тот или иной шаг – никаких проблем не будет.

Удачи!

 

 

 

Читайте также:

комментарий 21

  1. Alex:

    Спасибо! Интересная статья! Только в CU6 убрали возможность установки с нуля из дистрибутива обновления.

  2. Alex:

    Пробовал поставить с CU6 — не дает устанавливать. Там проверки идут на установленный Exchange.

    • Я понял про что вы. Если на сервере установлен Exchange 2007 или Exchange 2010, то обновить его до Exchange 2013 нельзя — это не поддерживается. Обновляться можно только в пределах одного поколения.

      • Alex:

        Берем чистый сервер 2012 R2.
        В организации нет Exchange вообще.
        Пробуем установиться с дистрибутива CU6 — не получается.

        • Anonymous:

          На днях разворачивал лабу с CU6 — поставился без вопросов.

          • Да и я уже не один раз ставил все CU: как и обновляя с предыдущего, так и на чистую систему.
            Задайте тогда вопрос (с текстом ошибки) на форуме — там и попробуем разобраться в вашей проблеме.

  3. Александр:

    Спасибо большое за статью. Обновился с нулевой на cu7. Касы обновились минут за 30.

  4. DeJa:

    вопрос: у меня стоит уже CU5. мне его нужно сносить или можно поверх поставить CU7?

  5. Александр:

    Обновился на CU7, не работает подключение Outlook клиентов, ActiveSync и OWA работает. Плюс не стартует служба MSExchangeMailboxReplication. Может у кого была подобная проблема?

    • А клиенты на какой ОС работают?

      • Александр:

        Например Win 8.1 Outlook 2013, у меня DAG из двух серваков с совмещенными ролями, сейчас работает на не обновленном сервере, если активировать базу на обновленном сервере то Outlook не подключается!

        • Возможно, что после обновления не все компоненты у вас включились. Проверить можно следующей командой: Get-ServerComponentState server.name
          Если будут компоненты со статусом Inactive — то значит так и есть.

          ps: если вы создадите тему с вашим вопросом на форуме TechNet Exchange (https://social.technet.microsoft.com/Forums/en-US/home?forum=exchange2013ru&filter=alllanguages), то можно будет поподробнее поразбираться с проблемой. Если не я, то может кто-то другой участник форума уже встречался с похожей проблемой.

          • Александр:

            Все проверки проводил по вашей статье, компоненты и коннекты к базам проходят нормально, Microsoft Connectivity Analyzer ругается на RPC, плюс как уже писал служба MSExchangeMailboxReplication не старует с ошбикой framework, спасибо за помощь, попробую вариант с technet.

          • Да, лучше всего вопрос на форуме задать. Когда будете создавать вопрос — приложите ошибку полностью.

          • АЛЕКСАНДР:

            Проблема с Outlook решена, все дело в файле C:\Windows\System32\RpcProxy\web.config , подменили из бэкапа и все заработало. Пока остается проблема со службой репликации

          • А у вас остался нерабочий web.config, чтобы сравнить разницу можно было?

  6. АЛЕКСАНДР:

    Да, в нерабочем файле отсутстувует много записей такого содержания:

  7. АЛЕКСАНДР:

    текст файла не вставляется почему то

    • АЛЕКСАНДР:

      Сегодня обнаружил, что доступен CU8, после его утсановки опять же перестал подключаться Outlook, решается как писал выше заменой файла web.config, служба репликации стартанула без проблем!!!Теперь все ок.

Добавить комментарий