Развертывание и миграция Exchange 2010. Часть 3 Инсталляция ролей
Инсталляция ролей Clien Access и Hub Transport.
1. Пререквизиты для сервера с совмещенными ролями CAS и Hub для Windows 2008 R2
Import-Module ServerManager
Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server,Web-ISAPI-Ext,Web-Digest-Auth,Web-Dyn-Compression,NET-HTTP-Activation,Web-Asp-Net,Web-Client-Auth,Web-Dir-Browsing,Web-Http-Errors,Web-Http-Logging,Web-Http-Redirect,Web-Http-Tracing,Web-ISAPI-Filter,Web-Request-Monitor,Web-Static-Content,Web-WMI,RPC-Over-HTTP-Proxy –Restart
2. После перезагрузки необходимо настроить автоматический запуск службы NetTcpPortSharing
Set-Service NetTcpPortSharing -StartupType Automatic
3. Установка Microsoft Office 2010 Filter Pack
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17062
4. Установка роли сервера CAS
.\Setup.com /mode:install /r:CA /ExternalCASServerDomain:mailmig.com
ExternalCASServerDomain — параметр для автоматического заполнения External Url OWA/ActiveSync/Web Services/OAB виртуальных директорий.
5. Установка роли сервера HUB
.\Setup.com /mode:install /r:HT
Инсталляция роли Mailbox Server
1. Пререквизиты для роли Mailbox Server
Import-Module ServerManager
Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server -Restart
2. Установка Microsoft Office 2010 Filter Pack
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17062
3. Установка роли сервера Mailbox
Создать папку для размещения баз данных c:\exchdb\db01\ и логов транзации c:\exchdb\db01\logs
.\setup.com /mode:install /r:m /mdbname:db01 /dbfilepath:”c:\exchdb\db01\db01.edb” /logfolderpath: ”c:\exchdb\db01\logs”
Инсталляция роли Edge
1. Установка пререквизитов для роли Edge
Import-Module ServerManager
Add-WindowsFeature NET-Framework,RSAT-ADDS,ADLDS -Restart
2. Настройка основного суффикса DNS. В качестве значения необходимо указать FQDN домена Active Directory.
Настройка DNS. В данном случае в качестве DNS сервера использовался внутренний DNS сервер. В случае если в качестве DNS используются внешние серверы, в файле HOSTS необходимо указать FQDN серверов HUB: srv-mx03.mailmig.com, srv-mx04.mailmig.com
3. Во внутреннем DNS указать FQDN Edge серверов srv-mx05.mailmig.com, srv-mx06.mailmig.com.
* В ходе инсталляции роли Mailbox произошла ошибка связанная с DiscoverySearchMailbox. Ошибка одна из популярных для Exchange 2010 SP3 и Exchange 2013.
Mailbox Role
Failed
Error:
The following error was generated when «$error.Clear();
$name = [Microsoft.Exchange.Management.RecipientTasks.EnableMailbox]::DiscoveryMailboxUniqueName;
$dispname = [Microsoft.Exchange.Management.RecipientTasks.EnableMailbox]::DiscoveryMailboxDisplayName;
$dismbx = get-mailbox -Filter {name -eq $name} -IgnoreDefaultScope -resultSize 1;
if( $dismbx -ne $null)
{
$srvname = $dismbx.ServerName;
if( $dismbx.Database -ne $null -and $RoleFqdnOrName -like «$srvname.*» )
{
Write-ExchangeSetupLog -info «Setup DiscoverySearchMailbox Permission.»;
$mountedMdb = get-mailboxdatabase $dismbx.Database -status | where { $_.Mounted -eq $true };
if( $mountedMdb -eq $null )
{
Write-ExchangeSetupLog -info «Mounting database before stamp DiscoverySearchMailbox Permission…»;
mount-database $dismbx.Database;
}
$mountedMdb = get-mailboxdatabase $dismbx.Database -status | where { $_.Mounted -eq $true };
if( $mountedMdb -ne $null )
{
$dmRoleGroupGuid = [Microsoft.Exchange.Data.Directory.Management.RoleGroup]::DiscoveryManagementWkGuid;
$dmRoleGroup = Get-RoleGroup -Identity $dmRoleGroupGuid -DomainController $RoleDomainController -ErrorAction:SilentlyContinue;
if( $dmRoleGroup -ne $null )
{
Add-MailboxPermission $dismbx -User $dmRoleGroup.Identity -AccessRights FullAccess -DomainController $RoleDomainController -WarningAction SilentlyContinue;
}
}
}
}
» was run: «Couldn’t resolve the user or group «mailmig.com/Microsoft Exchange Security Groups/Discovery Management.» If the user or group is a foreign forest principal, you must have either a two-way trust or an outgoing trust.».
Couldn’t resolve the user or group «mailmig.com/Microsoft Exchange Security Groups/Discovery Management.» If the user or group is a foreign forest principal, you must have either a two-way trust or an outgoing trust.
The trust relationship between the primary domain and the trusted domain failed.
Elapsed Time: 00:03:46
Finalizing Setup
Cancelled
Вариантов решения два:
Вариант 1.
1.Отключить почтовый ящик Disable-Mailbox “DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852}”
2.Закончить инсталляцию Exchange
3.Включить почтовый ящик Enable-Mailbox “DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852}” -Arbitration
4.Add-MailboxPermission -Identity:”mailmig.com/Users/DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852}” -User:”Discovery Management” -AccessRights:”FullAccess”
mailmig.com — FQDN домена
Вариант 2. (Я использовал текущий вариант)
1. Удалить учетную запись DiscoverySearchMailbox
2. Запустить подготовку леса setup /PrepareAD
3. Продолжить инсталляцию Exchange
4. Восстановить п-я DiscoverySearchMailbox
Процедура пересоздания системных почтовых ящиков:
Удалить следующие учетные записи:
- SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}
- SystemMailbox{1f05a927-af78-475a-aba4-fc281398eb54}
- FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042
- DiscoverySearchMailbox{D919BA05-46A6-415f-80AD-7E09334BB852}
Провести обновление леса
/PrepareAD
Включить почтовые ящики для новых, созданных учетных записей.
Enable-Mailbox -Arbitration -Identity «FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042»
Enable-Mailbox -Arbitration -Identity «SystemMailbox{1f05a927-8668-4003-adad-9b80758e86db}»
Enable-Mailbox -Arbitration -Identity «SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}»
Enable-Mailbox -Discovery «DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852}»
Редактировать Display Name для п-я
Для SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}
Set-Mailbox -Arbitration -Identity «SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}» -DisplayName «Microsoft Exchange»
Для FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042
Set-Mailbox -Arbitration -Identity «FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042» -ProhibitSendQuota 1MB
Проверка
Get-Mailbox -Arbitration
Name | Alias | ServerName | ProhibitSend Quota |
SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9} | SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9} | Srv-mx01 | Unlimited |
FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042 | FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042 | Srv-mx01 | Unlimited |
SystemMailbox{1f05a927-af78-475a-aba4-fc281398eb54} | SystemMailbox{1f05a927-af78-475a-aba4-fc281398eb54} | Srv-mx01 | 1 MB (1,048,576 bytes) |
Get-Mailbox -Identity DiscoverySearchMaibox*
Name | Alias | ServerName | ProhibitSendQuota |
DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852} | DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852} | Srv-mx01 | 50 GB (53,687,091,200 bytes) |
Развертывание и миграция Exchange 2010. Часть 2 Подготовка Службы Каталогов AD.
Одной из первых задач, которые стоят на этапе внедрения является подготовка Службы Каталогов Active Directory. Технически процедура подготовки AD не сложная, но максимально ответственная так как затрагивает множество зависимых от AD сервисов. Чтобы процедура прошла максимально безопасно необходимо создать тестовый стенд продуктивной среды. В последнее время это сделать не сложно создав клон одного из виртуальных контроллеров домена. В моих последних проектах(не только по Exchange) тестовый стенд это обязательный шаг. Мнение AD Team по обновлению схемы: Best Practices for Implementing Schema Updates or : How I Learned to Stop Worrying and Love the Forest Recovery , тестирование схемы на предмет конфликтов Validating your AD Schema Prior to Upgrade (a Followup).
Статья Technet Prepare Active Directory and Domains описывает процесс подготовки Службы Каталогов Active Directory, там же приведены все команды, которые нужно будет запустить.
Основные шаги подготовки это:
- подготовка схемы
- подготовка леса
- подготовка доменов
Убедиться в том, что партиции обновлены, можно проверив значения атрибутов, которые приведены в таблице 1. Для каждой версии Exchange сервера, значения могут отличаться.
Таблица 1. Значения атрибутов для разных версий Exchange.
Exchange Version | Forest rangeUpper attribute of ms-Exch-Schema-Version-Pt | Forest objectVersion attribute of Organization container | Domain objectVersion attribute on Microsoft Exchange System Objects |
Exchange 2000 RTM | 4397 | — | 4406 |
Exchange 2000 SP3 | 4406 | — | 4406 |
Exchange 2003 RTM | 6870 | 6903 | 6936 |
Exchange 2003 SP1 | 6870 | 6903 | 6936 |
Exchange 2003 SP2 | 6870 | 6903 | 6936 |
Exchange 2007 RTM | 10637 | 10666 | 10628 |
Exchange 2007 SP1 | 11116 | 11221 | 11221 |
Exchange 2007 SP2 | 14622 | 11222 | 11221 |
Exchange 2007 SP3 | 14625 | 11222 | 11221 |
Exchange 2010 RTM | 14622 | 12640 | 12639 |
Exchange 2010 SP1 | 14726 | 13214 | 13040 |
Exchange 2010 SP2 | 14732 | 14247 | 13040 |
Exchange 2010 SP3 | 14734 | 14322 | 13040 |
Exchange 2013 RTM | 15137 | 15449 | 13236 |
Exchange 2013 CU1 | 15254 | 15614 | 13236 |
Exchange 2013 CU2 | 15281 | 15688 | 13236 |
Проверку я осуществлял с помощью скриптов, их смысл был в подключении к каждому контроллеру домена в лесу и проверка значений приведенных в таблице атрибутов. Скрипты для проверки (папка test_AD_Exchange)
Перед обновлением роль мастера схемы была вынесена на выделенный контроллер и на этом контроллере на время обновления всех партиций была отключена исходящая репликация, а так же отключен сетевой интерфейс.
Пошаговая процедура обновления Службы Каталогов Active Directory приведена в файле Подготовка AD 0.1
Действие | Команды/инстурмент | Ожидаемые результаты |
Проверка текущих версий объектов Exchange | ADSIEdit.msc, скрипты |
|
Проверка репликации | Repadmin /replsumRepadmin/ showrepl | Ошибок реплик от входящих партнеров не должно быть. |
Проверка уровня лесаПеределать скрипт не под R2 | Get-ADDomainController -filter * | foreach { $_.Name; Get-ADForest medsigroup.ru -Server $_.Name | ft ForestMode} | Для каждого контроллера отображается статус уровня леса Windows 2000. |
Регистрация оснастки схемы | regsvr32 schmmgmt.dll | |
Смена мастера схемы на SRV-DC02 | Оснастка AD Schema | Мастер схемы SRV-DC02 |
Переключение уровня леса в Windows 2003 | Оснастка AD Domains and Trusts->Raise domain functional level и выбрать Windows 2003 | |
Запуск репликации всех разделов в пределах леса | Repadmin /syncall /AeS | |
Проверка репликации | Repadmin /replsumRepadmin/ showrepl | |
Проверка уровня леса на всех контроллерах домена | Get-ADDomainController -filter * | foreach { $_.Name; Get-ADForest medsigroup.ru -Server $_.Name | ft ForestMode} | Для каждого контроллера отображается статус уровня леса Windows 2003. |
Копирование дистрибутива Exchange 2010 SP3 на SRV-DC02 | C:\Install | |
Отключение исходящей репликации на SRV-DC02 и отключение сетевого адаптера |
repadmin /options SRV-DC02 +DISABLE_OUTBOUND_REPL | Исходящая репликация отключена. IS_GC DISABLE_OUTBOUND_REPL |
Отключение сетевого адаптера от сети, | Оснастка SCVMM | Переключить в fake сеть |
Запуск подготовки контекста именования схемы | Setup.com /ps /dc:srv-dc02 | ExchangeSetup отобразил статус COMPLETE, логи в C:\ExchnageSetup не показали критичных ошибок. |
Проверка подготовки схемы | ADSIEidt.msc, скрипты. |
|
Запуск подготовки контекста именования конфигурации | Setup.com /PrepareAD /OrganizationName:“First Organization” /dc:srv-dc02 | ExchangeSetup отобразил статус COMPLETE, логи в C:\ExchnageSetup не показали критичных ошибок. |
Проверка подготовки конфигурации | ADSIEidt.msc, скрипты, ADUC. |
|
Подготовка контекста именования домена | Setup.com /pd:medsigroup.ru /dc:srv-dc02 | ExchangeSetup отобразил статус COMPLETE, логи в C:\ExchnageSetup не показали критичных ошибок. |
Проверка подготовки домена | ADSIEidt.msc, скрипты. | В разделе домена атрибут objectVersion объекта Microsoft Exchange System Objects значение 13040 |
Включение сетевого адаптера в продуктовую сеть | Оснастка SCVMM | Доступны другие контроллеры домена. |
Включение исходящей репликации | repadmin /options SRV-DC02 -DISABLE_OUTBOUND_REPL | Исходящая репликация включена IS_GC |
Запуск репликации в пределах всего леса medsigroup.ru | Repadmin /syncall /AeSСо стороны партеров запустить репликацию с SRV-DC02 | |
Проверка репликации | Repadmin /replsumRepadmin/ showrepl | |
Проверка подготовки схемы, конфигурации, домена на всех контроллерах. | ||
Вернуть мастера схемы обратно на сервер |
Операция отката
- Отключить сервер от продуктовой сети из SCVMM консоли
- Отобрать роль мастера схемы для SRV-DC1 с помощью утилиты ntdsutil
- Выполнить metadata cleanup сервера с помощью утилиты ntdsutil.
- Удалить записи в DNS
Развертывание и миграция Exchange 2010. часть 1 Intro.
Бывают такие ситуации, когда на старте проекта самые последние версии ПО, на этапе непосредственного внедрения оказываются уже не новыми — это как раз тот случай. На мою долю вначале Июня 2013 года выпало внедрение Exchange 2010 SP3.
Прежде всего хотел оговориться, что цель заметок не Step By Step Guide, а описание проекта и некоторых решений.
Цель проекта
Цель проекта — обеспечение отказоустойчивости почтовой системы, увеличение лимитов хранения пользователей, переход на новые технологии.
Описание текущей инфраструктуры
Общее описание инфраструктуры:
- Один сервер Exchange 2007 SP2;
- 3000 почтовых пользователей (Outlook, OWA, Anywhere, Мобильные устройства);
- Публикация сервисов Exchange с помощью ISA 2006;
- Один лес Windows 2000, один домен Windows 2008, множество сайтов.
- Внешнее и внутреннее пространство имен mailmig.com
Конфигурация DNS для Exchange 2007
FQDN | IP | Внешняя зона mailmig.com | Внутренняя зона mailmig.com | Описание |
Mail01-srv.mailmig.com | IP1 | — | да | FQDN почтового сервера в Active Directory |
Proxy01-srv.mailmig.com | IP2 | — | да | FQDN проксирующего сервера в Active Directory |
mail.mailmig.com | IP3 | да | да | FQDN почтового сервера |
Конфигурация сертификатов
Для почтовой системы был создан один сертификат, который размещался на Mail01-srv.mailmig.com и на Proxy01-srv.mailmig.com. В сертификате были указаны следующие имена:
Subject:
- mail.mailmig.com
DNS Alternative:
- mail.mailmig.com
- Mail01-srv.mailmig.com
- Mail01-srv
- *.mailmig.com
Общее описание внедряемой архитектуры
Общая архитектура состоит из следующих серверов
- Два сервера Edge Transport;
- Два сервера с ролью Client Access совмещенных с ролями Hub Transport;
- Два сервера с ролью Mailbox
Конфигурация DNS для Exchange 2010
FQDN | IP | Внешняя зона | Внутренняя зона | Описание |
Srv-mx01.mailmig.com | IP4 | — | да | FQDN Mailbox 2010 |
Srv-mx02.mailmig.com | IP5 | — | да | FQDN Mailbox 2010 |
Srv-mx03.mailmig.com | IP6 | — | да | FQDN CAS&Hub 2010 |
Srv-mx04.mailmig.com | IP7 | — | да | FQDN CAS&Hub 2010 |
Srv-mx05.mailmig.com | IP8 | — | да | FQDN Edge |
Srv-mx06.mailmig.com | IP9 | — | да | FQDN Edge |
Outlook.mailmig.com | IP10 | — | да | VIP NLB, Outlook MAPI Point, для подключений клиентов MAPI RPC. |
Edge1.mailmig.ru | IP11 | да | — | Внешнее имя, для подключений SMTP |
Edge2.mailmig.ru | IP12 | да | — | Внешнее имя, для подключений SMTP |
VLAN ID 1 не стоит путать с нативным VLAN, это просто наглядное отображение того, в каких виртуальных сетях находятся серверы.
Отказоусточивость и балансировка нагрузки решения
Edge
Отказоусточивость и балансировка входящего трафика серверов Edge Transport осуществляется за счет инсталляции нескольких серверов Edge и создания записей MX с одинаковой стоимостью.
MX=mailmig.com
edge1.mailmig.com = cost 10
edge2.mailmig.com = cost 10
Отказоустойчивость исходящего трафика обеспечивается за счет встроенного функционала Edge серверов.
Hub
Mailbox —>Hub — встроенные средства балансировки
Hub —>Edge -несколько отправляющих соединителей
Клиентский доступ (SMTP 587): Network Load Balancing
CAS
Отказоусточивость обеспечивается за счет инсталляции нескольких серверов и объединения серверов в WNLB.
Преимущества WNLB:
- Входит в состав Windows Server
- Простая настройка
Недостатки WNLB:
- Генерация широковещательного трафика, что приводит к нагрузке на сетевое оборудование;
- Не может определить работоспособность на уровне сервиса, только на уровне IP;
- Балансировка только за счет Client source IP;
- WNLB не может быть использован при совмещении CAS и Mailbox.
Mailbox
Пользовательские ящики -> средства кластеризации(DAG)
Общие папки ->Репликация общих папок
Порядок миграции и сосуществование
Между Exchange 2007 и Exchange 2010 поддерживается сосуществование и миграция. Для этого Exchange 2007 минимально должен быть обновлен до SP2. В данном проекте были использованы следующие версии:
- Exchange 2007 SP2
- Exchange 2010 SP3
Порядок миграции следующий:
- Client Access
- HUB Transport
- Mailbox
- Edge Transport
Требования для Exchange 2010 SP3
Подробно с требованиями можно ознакомиться на странице Exchange 2010 System Requirements, я оговорюсь, что в текущей инфраструктуре требования для леса были не выполнены(минимальный требуемый уровень Windows 2003), что нужно учесть при подготовке Службы Каталогов.
Установка клиентов Lync
Тема очень простая и избитая — установка софта на клиентские машины. Для массовых развертываний ПО существуют инструменты, такие как SMS, SCCM. Если такого богатства нет — групповые политики.
Я не силен в скриптах, поэтому сляпал как смог, надо было придумать что-то за короткое время.
Для установки сделал общую папку на сервере server1 в которую положил два дистрибутива x86 и x64 и два файла cmd, пример одного файла cmd ниже:
———————————————————-
IF EXIST «C:Program Files (x86)Microsoft Lynccommunicator.exe» GOTO End
server1Lync_installru_lync_2010_x64_615697.exe /install /Silent
IF %ERRORLEVEL%==0 (
echo Lync Installed on %computername% >> «server1Lync_installINSTALLEDx64!_%COMPUTERNAME%.txt»
) ELSE (
echo lync Failed on %computername%=%ERRORLEVEL% >> «server1Lync_installFAILEDx64!_%COMPUTERNAME%.txt»
)
:End
—————————————————————-
Скрипт проверяет наличие установленного клиента по установочному пути(можно сделать по какому то разделу в реестре) и если клиент установлен завершает работу. Далее производится установка и создается файл — при успешной установке INSTALLEDx64!_%COMPUTERNAME%.txt и при ошибке FAILEDx64!_%COMPUTERNAME%.txt по этим файлам я отслеживал на каком количестве АРМ установлен клиент.
С клиентами x86 аналогично, меняется только название дистрибутива.
Ну и последним шагом остается создать две политик, раскидать по политикам два CMD и назначить политикам WMI фильтры.
В случае если в продуктиве и Lync 2010 и Lync 2013 и разные ОС, можно так же добавлять другие WMI фильтры, а можно вставить рядок проверок в скрипты.