Миграция становится проще

Компания Microsoft поддерживает миграцию почтовых ящиков с серверов Exchange Server 5.5 на серверы Exchange Server 2003 в рамках одной организации с помощью Move Mailbox Wizard. Для миграции почтовых ящиков с серверов Exchange 2000 на серверы Exchange 2003 рекомендуется использовать Move Mailbox Wizard, хотя полностью поддерживается и обновление существующего сервера Exchange 2000 по принципу in-place.

Мастер Move Mailbox Wizard появился вместе с Exchange 2000, но версия из поставки Exchange 2003 — более мощный и эффективный инструмент для переноса почтовых ящиков со старых серверов Exchange на Exchange 2003. Рассмотрим эту утилиту и ее новые возможности.

Когда использовать

Move Mailbox Wizard можно применять только для переноса ящиков между серверами Exchange, принадлежащими одной почтовой организации. Для переноса между организациями следует использовать Mailbox Merge Wizard (Exmerge) или Exchange Migration Wizard.

В организации, работающей в смешанном режиме, Exchange 2003 Move Mailbox Wizard может переносить почтовые ящики только между серверами, которые находятся в одном узле с Exchange 5.5 или административной группе (для смешанного режима узел Exchange 5.5 соответствует административной группе Exchange 2003/Exchange 2000). Переносить можно как отдельные ящики, так и множество почтовых ящиков между любой комбинацией серверов Exchange 2003, Exchange 2000 и Exchange 5.5. В однородном режиме работы организации Exchange 2003 или Exchange 2000 можно задействовать эту утилиту для переноса почтовых ящиков между серверами, находящимися в разных административных группах. В этом случае также можно переносить почтовые ящики в любой комбинации между серверами Exchange 2003 и Exchange 2000.

Поскольку утилита Exchange 2003 Move Mailbox Wizard более функциональна, чем предыдущая версия, ее можно задействовать и для переноса почтовых ящиков между серверами Exchange 2000 и Exchange 5.5, даже если в сети нет серверов Exchange 2003. В этом случае для использования утилиты необходимо будет сначала запустить процесс Exchange 2003 Forestprep в лесу Active Directory (AD). Для этого нужно выполнить команду setup.exe /forestprep из каталога setupi386 с дистрибутивом Exchange 2003. Убедитесь, что вы выполняете команду на сервере, находящемся в том же домене Windows, что и сервер с ролью мастера операций. Затем следует запустить Setup снова, чтобы установить консоль для административных действий. Выберите пункт установки только компонента Exchange Management. Процесс установки Exchange Management Console позволяет в дальнейшем использовать Move Mailbox Wizard. Консоль может быть установлена на рабочую станцию с Windows 2000, Windows XP или Windows Server 2003.

Как работает

Move Mailbox Wizard устанавливает соединение Messaging API (MAPI) с исходным сервером, затем читает иерархию папок в почтовом ящике и создает ее на целевом сервере. Утилита инициирует MAPI для передачи сообщений с исходного сервера на целевой. Если происходит сбой в чтении элемента, то утилита повторяет чтение. Если сбой происходит снова, утилита перестает обрабатывать этот элемент и продолжает процесс или прерывает обработку, в зависимости от настроек, которые будут обсуждаться далее. Когда утилита выполняет операцию переноса, в исходном почтовом ящике удаляется содержимое и обновляются пользовательские атрибуты в AD. Если переносятся учетные записи пользователей протоколов POP или IMAP, то таким пользователям необходимо будет обновить настройки их почтовых клиентов для доступа к новому почтовому серверу.

Версия Exchange 2000 Move Mailbox Wizard менее производительна и масштабируема. Хотя можно, используя в Microsoft Management Console (MMC) оснастку Active Directory Users and Computers, выбирать множество пользовательских объектов, утилита будет обрабатывать объекты строго последовательно. Например, если выбрать пять учетных записей пользователей, то операция переноса почтового ящика для User2 начнется после завершения операции переноса для User1 и т. д.

Утилита Exchange 2003 Move Mailbox Wizard — многопоточная, запускающая четыре параллельных процесса во время одной сессии. Если рассмотреть пример с пятью пользователями, то утилита начнет обрабатывать ящики от User1 до User4 параллельно. На экране 1 показан перенос нескольких ящиков одновременно. Такой подход более мягко влияет на производительность, поскольку один из почтовых ящиков может оказаться большим, но это не отразится на общем процессе и обработке маленьких почтовых ящиков. Если четырех потоков для вас недостаточно, то можно запустить несколько раз Move Mailbox Wizard на одном сервере через оснастку MMC Exchange System Manager (ESM) или оснастку Active Directory Users and Computers. Производительность утилиты Exchange 2003 Move Mailbox Wizard на 10-20% выше, чем у Exchange 2000 Move Mailbox Wizard.

Большинство хорошо настроенных промышленных серверов Exchange поддерживает сотни или даже тысячи клиентов MAPI (таких, как Microsoft Outlook), создавая при этом множество одновременно работающих потоков. Проверка производительности сервера, на котором расположен мой почтовый ящик, показала, что для одного потока возможна передача данных со скоростью около 500 Мбайт/ч. Исходный и целевой серверы в моей производственной среде находятся в одной локальной сети, работающей на скорости 100 Мбит/с, и каждый сервер имеет дисковую подсистему RAID уровня 0+1. В зависимости от конфигурации системы и сети можно получить цифры производительности, отличные от 500 Мбайт/ч, но увеличение производительности зависит от увеличения количества потоков нелинейно.

Увеличение размера почтовых ящиков

Мой опыт использования Exchange 2003 Move Mailbox Wizard показывает, что некоторые почтовые ящики после переноса на новый сервер увеличиваются в размерах (в пределах от 5 до 10%). Такое увеличение почтовых ящиков объясняется нарушением технологии Single Instance Storage (SIS) при переносе ящиков в другую базу. SIS в Exchange позволяет хранить только одну копию сообщения, разосланного множеству пользователей, минимизируя занимаемое пространство в базе данных. В Microsoft утверждают, что Move Mailbox Wizard соблюдает технологию SIS, насколько это возможно, но в некоторых средах избежать увеличения баз не получается.

Однако реальное значение SIS сомнительно. Во многих организациях наблюдается лишь очень слабый эффект от их работы. Целесообразно временно увеличивать размеры почтовых ящиков перед переносом с серверов Exchange 2000 или Exchange 5.5 на серверы Exchange 2003. Такой шаг позволяет предотвратить поток звонков в службу поддержки от пользователей, которые не могут отправить сообщение после операции переноса их почтового ящика.

Экран 1. Перенос нескольких почтовых ящиков последовательно

Перенос почтовых ящиков увеличивает объем транзакций на сервере. Например, перенос почтового ящика размером 100 Мбайт генерирует создание журнала размером примерно 110 Мбайт (данные плюс 10% накладных расходов). Поэтому важно следить за журналами транзакций во время использования Move Mailbox Wizard.

Move Mailbox Wizard и ESM

В предыдущей версии утилита Move Mailbox Wizard была доступна только из оснастки Active Directory Users and Computers, поскольку перенос почтовых ящиков относился к функциям управления учетными записями пользователей. Утилита Exchange 2003 Move Mailbox Wizard сохранилась доступной в оснастке Active Directory Users and Computers, но теперь перенос почтовых ящиков является типичной задачей управления Exchange, и поэтому утилита доступна и в оснастке ESM. Такое двойственное расположение утилиты Move Mailbox Wizard объясняется тем, что System Manager позволяет увидеть фактическое состояние базы данных Exchange перед переносом учетных записей. Делая Move Mailbox Wizard доступным в оснастке ESM, Microsoft собирает всю информацию в одной точке.

Экран 2. Использование оснастки в ESM для переноса

Для переноса почтовых ящиков следует открыть оснастку Active Directory Users and Computers или ESM, затем перейти на соответствующие почтовые ящики пользователей. Необходимо выделить одного или нескольких пользователей, учетные записи которых требуется переместить, правой кнопкой щелкнуть на выделении и выбрать в контекстном меню Exchange Tasks. В Exchange Task Wizard нужно выбрать пункт Move Mailbox и нажать Next. Следует использовать выпадающий список Server, чтобы определить целевой сервер и выбрать хранилище почтовых ящиков в выпадающем списке Mailbox Store (см. экран 2). Затем требуется нажать Next и установить соответствующие параметры для поврежденных сообщений и расписания.

Расписание переноса

Очевидно, не стоит переносить часть почтовых ящиков пользователей в рабочее время. Перенос почтовых ящиков значительно загружает систему и ухудшает производительность. В версии Exchange 2000 Move Mailbox Wizard можно было осуществлять операцию переноса в нерабочее время, но только вручную — требовалось выполнять соответствующие операции и нажимать на кнопки. Если пользователь хотел это делать без получения запросов, он должен был задействовать сценарии и командные файлы, запуская их по расписанию (например, с помощью winat.exe).

Утилита из Exchange 2003 позволяет установить перенос почтовых ящиков на определенное время по расписанию. Процедура при этом будет выполняться без дополнительных запросов. Можно просто выбрать почтовые ящики, которые должны быть перенесены, определить целевой сервер и указать желаемое время выполнения операции. Также можно задать конечное время, при достижении которого перенос будет прерван, чтобы не влиять на производительность системы.

Например, мы хотим перенести 100 почтовых ящиков с 1 ночи до 8 утра. Если только 50 почтовых ящиков было перенесено до 8.00, работа утилиты, обрабатывающей в данный момент очередной ящик, будет прервана. Таким образом, производительность будет восстановлена, когда в 8.30 пользователи начнут подключаться к системе. Move Mailbox Wizard выдает отчет о тех учетных записях, которые удалось успешно перенести, и о тех, чей перенос не состоялся. Экран 3 показывает настройки расписания для Move Mailbox Wizard.

Экран 3. Запуск процесса переноса по расписанию

Если откладывать время запуска операции по переносу почтовых ящиков, то необходимо оставлять открытым окно сессии Move Mailbox Wizard с работающим счетчиком, указывающим на оставшееся время до старта (экран 4). Если настроить время для отложенного запуска операции и закрыть диалоговое окно утилиты, то операция выполнена не будет.

Испорченные элементы

Версия Exchange 2000 Move Mailbox Wizard не принимала испорченные данные в почтовом ящике пользователя. Если утилита наталкивалась во время переноса почтового ящика на испорченное сообщение, то ее работа прерывалась без переноса текущего почтового ящика.

Экран 4. Обратный отсчет времени до начала процесса переноса

Exchange 2003 Move Mailbox Wizard обрабатывает ошибки более интеллектуально. Можно описывать действие Move Mailbox Wizard при обнаружении ошибок во время операции переноса. Таким действием может быть пропуск испорченных элементов на исходном сервере с последующим занесением в журнал соответствующего сообщения.

Также можно задать пороговое количество испорченных элементов, до достижения которого утилита будет продолжать перенос. Например, если определить порог в 10 элементов, то Move Mailbox Wizard будет удалять до 10 нарушенных элементов во время операции и успешно завершит перенос почтового ящика. Испорченные элементы будут удалены в исходном почтовом ящике и, разумеется, в конечном. Если утилита насчитает более 10 поврежденных элементов, она прекратит операцию переноса и оставит почтовый ящик на исходном сервере.

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

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

Формирование отчетов

После того как сессия по переносу почтового ящика закончена, Move Mailbox Wizard создает подробный отчет в формате XML. Утилита отображает всю информацию о попытках переноса, о перенесенных почтовых ящиках и о сбоях в процессе миграции. В отчете также указывается время ожидания перед началом переноса (если использовалось расписание) и время, затраченное на перенос почтовых ящиков. Данный отчет можно проанализировать в дальнейшем в своей организации или совместно со специалистами из других компаний. Для обработки данных отчета следует использовать страницы в формате XML.

Другие утилиты

Exchange 2003 Move Mailbox Wizard — многопоточная утилита, использующая настройки работы по расписанию, более производительная по сравнению с предыдущей версией. Новая утилита представляет собой полноценный инструмент для переноса почтовых ящиков с серверов Exchange 2000 на серверы Exchange 2003 и является незаменимой для переноса пользователей с серверов Exchange 5.5.

Однако если необходимо переносить почтовые ящики между узлами Exchange 5.5 во время работы в смешанном режиме или переносить ящики между организациями, придется искать другие утилиты. В таких ситуациях можно воспользоваться Mailbox Merge Wizard, Exchange Migration Wizard или программами независимых разработчиков, выполняющими данный тип операций.


Киран Маккорри (kieran.mccorry@hp.com) — главный консультант подразделения Consulting and Integration Technology Group компании HP, работает в Ирландии. Является соавтором книги «Microsoft Exchange 2000 Infrastructure Design» (Digital Press).