В прошлом году мы приняли давно назревшее решение об обновлении домена и Exchange на 2019. Работа очень объёмная, процесс длится уже больше года. Рассказываем, как мы готовили и настраивали сервера.
Продолжение.
Содержание:
6.1. Автономная адресная книга(OAB)
6.2. Миграция системных ящиков
6.3. Миграция ящиков общих папок
6.4. Миграция ящиков пользователей
6.5. Возможные ошибки
7. Удаление серверов Exchange 2013 – EX1 и EX2
8. Обновление пограничных серверов EDGE
8.1. Удаление подписки 2013 EDGE-сервера
8.2. Подготовка 2019 EDGE-сервера
8.3. Создание подписки нового EDGE-сервера
8.4. Установка сертификата на коннектор приема
9. Заключение
6. Миграция почтовых ящиков
В Exchange есть системные ящики, также называемые ящиками арбитража. Генерация автономной адресной книги(OAB), также происходит в арбитражном почтовом ящике.
Теперь требуется перенести в новый Exchange — DAG19 почтовые ящики, не только пользователей, но и почтовые ящики арбитража(Arbitration) и общих папок(Public Folders). Подробнее.
При перемещении любых ящиков создаются запросы перемещения(MoveRequest).
Отобразить запросы перемещения ящиков:
Get-MoveRequest | Get-MoveRequestStatistics
Удалить, завершенные запросы на перемещение ящиков:
Get-MoveRequest -MoveStatus Completed -ResultSize Unlimited | Remove-MoveRequest -Confirm:$false
-
Автономная адресная книга(OAB):
Список OAB:
Get-OfflineAddressBook | Select AddressLists, Name,*Version, Virt*,*Web*,GeneratingMailbox | OGV
Ящик, содержащий OAB’ы с отображение локации (сервера и БД) на Exchange 2013:
$Ex2013Servers = Get-MailBoxServer | Where {$_.AdminDisplayVersion -Like «Version 15.0*»} $Ex2013Servers | Get-Mailbox -Arbitration | ?{$_.PersistedCapabilities –like «OrganizationCapabilityOABGen»} | Select Name, ServeerName Name ServerName —— ———- SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c} ex1 |
-
Миграция системных ящиков:
Отобразить арбитражные почтовые ящики расположены в среде Exchange 2013:
$Ex2013Servers = Get-MailBoxServer | Where {$_.AdminDisplayVersion -Like «Version 15.0*»} $Ex2013Servers | Get-Mailbox -Arbitration Name ServerName —— ———- SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c} ex1 FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042 ex1 Migration.8f3e7716-2011-43e4-96b1-aba62d229136 ex1 SystemMailbox{1f05a927-xxxx-xxxx-xxxx-xxxxxxxxxxxx} ex1 SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c} ex1 SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9} ex1 |
Запустить миграцию арбитражных почтовых ящиков в Ex2019DB. Эта БД расположена в среде Exchange 2019:
$Ex2013Servers = Get-MailBoxServer | Where {$_.AdminDisplayVersion -Like «Version 15.0*»} $Ex2013Servers | Get-Mailbox -Arbitration | New-MoveRequest -TargetDatabase Ex2019DB DisplayName StatusDetail TotalMailboxSize PercentComplete ———— ———— —————- ————— SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c} Queued 305.7 KB (313,037 bytes) 0 FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042 Queued 302.7 KB (309,919 bytes) 0 Migration.8f3e7716-2011-43e4-96b1-aba62d229136 Queued 299.9 KB (307,073 bytes) 0 SystemMailbox{1f05a927-xxxx-xxxx-xxxx-xxxxxxxxxxxx} Queued 205.4 KB (210,330 bytes) 0 SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c} Queued 303.6 KB (310,887 bytes) 0 SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9} Queued 280.5 KB (287,232 bytes) 0 |
-
Миграция ящиков общих папок:
Запустить миграцию ящиков общих почтовых ящиков в Ex2019DB. Это БД расположена в среде Exchange 2019:
$Ex2013Servers = Get-MailBoxServer | Where {$_.AdminDisplayVersion -Like "Version 15.0*"}
$Ex2013Servers | Get-Mailbox-PiblicFolder | New-MoveRequest -TargetDatabase Ex2019DB
Для отображения и удаления запросов на перемещения, также используем: Get-MoveRequest/Remove-MoveRequest
-
Миграция ящиков пользователей:
Запустить миграцию ящиков общих почтовых ящиков в Ex2019DB. Это БД расположена в среде Exchange 2019:
$Ex2013Servers = Get-MailBoxServer | Where {$_.AdminDisplayVersion -Like "Version 15.0*"}
$Ex2013Servers | Get-Mailbox | New-MoveRequest -TargetDatabase Ex2019DB
Для отображения и удаления запросов на перемещения, также используем: Get-MoveRequest/Remove-MoveRequest
-
Возможные ошибки:
Иногда после переноса почтового ящика клиент не может подключится, тогда нужно перезапустить пул MSExchangeAutoDiscoveryAppPool(ссылка):
Можно поставить на время миграции автоматический перезапуск пула.
После завершения переноса почтового ящика, если Outlook включен, клиент увидит окно с уведомлением о необходимости перезапуска Outlook:
Достаточно просто перезапустить Outlook.
7. Удаление серверов Exchange 2013 – EX1 и EX2:
После окончания процесса миграции, после того как мы убедимся, что все работает, нужно удалить Exchange 2013. Для проверки можно просто выключить сервера Exchange 2013 на несколько дней. Все действия можно выполнить, используя ECP или PowerShell.
Этапы вывода серверов Exchange:
-
Удаление копии почтовых баз:
Remove-MailboxDatabaseCopy -Identity DBXX
-
Удаление основных почтовых баз Exchange 2013:
Get-MailboxDatabase -Server EX1\EX2 | Remove-MailboxDatabase
-
Удаление DAG серверов Exchange 2013:
#Отобразить группу высокой доступности Exchange 2013:
Get-DatabaseAvailabilityGroup -Identity DAG01
#Предварительно необходимо удалить все сервера из группы высокой доступности DAG01:
Remove-DatabaseAvailabilityGroupServer -Identity DAG01 -MailboxServer EX1\EX2
#Удалить саму группу высокой доступности DAG01:
Remove-DatabaseAvailabilityGroup-Identity DAG01
-
Запуск мастера удаления Exchange EX1 и EX2
-
Удаление ВМ EX1\EX2.
8. Обновление пограничных серверов EDGE:
Для того, чтобы заменить EDGE сервер, нужно сначала убрать его из внешнего DNS. Так как в моей конфигурации их два, то поток почты просто пойдет через второй, и работа почты не будет нарушена.
EDGE сервер не находятся в домене, но, в то же время, он использует одностороннюю синхронизацию со службами AD. Для этого используется механизм подписки(SubScription) на сайт Active Directory,, а на самом EDGE-сервере устанавливается облегченная версия службы каталогов AD LDS(Active Directory Lightweight Directory).
Итак выводим 2013 EDGE-сервер из подписки и вводим EDGE 2019. То же самое делаем со вторым EDGE-сервером.
Установка EDGE-сервера подробно: ссылка1 и ссылка2.
-
Удаление подписки 2013 EDGE-сервера:
Для даление подписки нужно запустить командлет два раза: — на EDGE-сервере и на любом MBX\CAS-сервере и согласиться с удалением:
Remove-EdgeSubscription EDGE1
-
Подготовка 2019 EDGE-сервера:
Разворачиваем сервер Windows Server 2019, EDGE1. Оставляем в рабочей группе — не добавляем в домен. Устанавливаем настройки сети, такие же(IP-адрес), как у 2013 EDGE-сервера.
Важный пункт — нужно добавить DNS-суффикс домена, в моем случае — domen.ru и тогда Full computer name будет — EDGE1.domen.ru. Перезагружаем.
Устанавливаем необходимые пакеты:
И службу AD LDS:
Install-WindowsFeature ADLDS
Запускаем установку, только выбираем роль “Edge Transport role”И службу AD LDS:
Опять перезагружаем. Проверяем, инсталлятор должен был открыть входящие порты 50636, 50389 и 25 порт.
-
Создание подписки нового EDGE-сервера:
Запускаем на EDGE-сервере:
New-EdgeSubscription -Filename "C:\edge1.xml"
У нас появится файл XML, который нужно импортировать на MBX\CAS-сервере. Просто копируем его на EX01 или EX02. Выполняем команду уже на MBX\CAS-сервере:
New-EdgeSubscription -FileData ([byte[]]$(Get-Content -Path «C:\edge1.xml» -Encoding Byte -ReadCount 0)) -Site «Default-First-Site-Name» Name Site Domain —- —- —— EDGE1 domen.ru/Configuration/Sites/Default-First-Site-Name domen.ru |
Чтобы не ждать и синхронизации, запускаем ее, потребуется время:
Start-EdgeSynchronization
Для проверки синхронизации:
Test-EdgeSynchronization -TargetServer EDGE1 RunspaceId : a270935e-81a2-4e28-9c18-a3c94603c2f9 SyncStatus : Normal UtcNow : 04.11.2024 11:56:36 Name : EDGE1 LeaseHolder : CN=EX01,CN=Servers,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups, CN=domen,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=domen,DC=ru LeaseType : Option FailureDetail : LeaseExpiryUtc : 04.11.2024 12:26:09 LastSynchronizedUtc : 04.11.2024 11:56:09 TransportServerStatus : Skipped TransportConfigStatus : Skipped AcceptedDomainStatus : Skipped RemoteDomainStatus : Skipped SendConnectorStatus : Skipped MessageClassificationStatus : Skipped RecipientStatus : Skipped CredentialRecords : Number of credentials 12 CookieRecords : Number of cookies 2 |
Результат синхронизации(SyncStatus) Normal, без ошибок.
Возвращаем во внешнем DNS запись для EDGE1. Повторяем все пункты для EDGE2.
-
Установка сертификата на коннектор приема.
Так как в нашей конфигурации используются пограничные сервера. То первой, точкой приема будет коннектор приема на EDGE-сервере. И можно(не обязательно) установить сертификат согласно пункту 5.5. Предварительно нужно скопировать сертификат и импортировать(*.pfx) в «Personal\Certificates»(пункт 5.3).
9. Заключение
Был проведено обновление всей инфраструктуры. Причем с важным условием: не останавливая\нарушая работу сервисов. Результат вполне удовлетворительный.
ссылка на оригинал статьи https://habr.com/ru/articles/865966/
Добавить комментарий