Настройка роли Hyper-V и перенос Exchange 2007 на Hyper-V

Настало время моего первого знакомства с Hyper-V и настало время публикации очередной статьи. Как и прежде, это будет подобие пошаговой инструкции и, пожалуй, я оставлю несколько ошибок, потому что кто-то может наступить на те же грабли и кому-то знания о возможных ошибках могут быть полезны. Оставим, как есть и начнем с самого начала…


Исходные данные.

Жил да был физический сервер с Windows Server 2003 R2 Standard Edition и установленным на нем Exchange Server 2007, и понадобилось его освободить под другие задачи. Загружен он не сильно, почтовых ящиков немного (50), все роли установлены на одном сервере, за исключением Edge Transport и Unified Messaging — их и вовсе нет. Соответственно, Exchange понадобилось перенести на новый сервер (Xeon E5649/24GB RAM/RAID Adaptec 6805/2 LAN) Hyper-V, для коего уже была приобретена Windows Server 2008 R2 Enterprise Edition. Простенький набросок схемы на ближайшем куске пергамента кратко пояснит план переноса лучше тысячи слов:

Схема переноса Exchange 2007 на Hyper-V

Установка Windows Server 2008 R2 Enterprise Edition и роли Hyper-V.

На новом сервере имеется дисковый массив 836,9 Гб на RAID 10 — это немного для будущего хост-сервера виртуальных машин, поэтому с разметкой диска лихачить придется аккуратней. Установка W2k8 R2 EE проста и не заслуживает подробного описания, равно как и установка роли Hyper-V. С подробным описанием «каждого чиха» успешно справляется мастер установки, однако я бы остановил внимание на некоторых моментах. Несколько раз подряд установщик зависал в одном и том же месте — уже на завершении установки. На этот счет у меня два варианта:

1. Я выделил маловато места для системного раздела. Первый раз я выделил 50Гб и установщик сругнулся, что рекомендуется 47, но ставить всё равно согласился (50 вроде больше 47, при том, что в официальных требованиях рекомендуемый объем и вовсе от 40 Гб).

2. На форумах по тем же симптомам нашел решение, что при установке нужно обязательно подключить сервер к локальной сети.

Приняв во внимание оба пункта, я выделил 55Гб для системного раздела (никакого предупреждения от установщика в этот раз не было) и подключил сервер в локальную сеть — установка прошла успешно. Поскольку сделаны оба шага были одновременно — истиная причина предыдущих неудач осталась где-то между ними. :)

«Голая» установка Windows Server 2008 R2 EE съела 33,1 Гб дискового пространства. После установки роли Hyper-V и всех рекомендуемых обновлений система стала занимать 34,4 Гб.

Поскольку для виртуального свитча Microsoft рекомендует выделять отдельный физический сетевой адаптер, чтобы не путаться в дальнейшем я сразу сходил в «центр управления сетями и общим доступом» и переименовал оба «подключения по локальной сети ..» в «LAN1» и «LAN 2 vSwitch». Получается «LAN1» останется для удаленного управления сервером, а «LAN 2 vSwitch» станет виртуальным коммутатором Microsoft (разумеется, это подключение и нужно будет выбрать при соответствующем вопросе установщика роли Hyper-V).

Настройка Hyper-V.

После установки роли Hyper-V в меню Пуск появляется оснастка управления «Диспетчер Hyper-V» — через неё и будет проходить основное управление гипервизором и виртуальными машинами — запускаем немедля. В первую очередь смотрим «Параметры Hyper-V».

Параметры Hyper-V

Всё, что касается виртуальных машин планирует жить на диске D (на котором под это дело осталось 743 Гб), поэтому путь к виртуальным жестким дискам сразу меняем на: «D:\Hyper-V\Virtual Hard Disks» и путь к виртуальным машинам: «D:\Hyper-V» — остальные параметры по умолчанию.

Путь к папке для хранения виртуальных машин

Далее, в Диспетчере виртуальных сетей проверяем, что тип подключения виртуальной сети «LAN 2 vSwitch» обозначен, как «внешнее» и галку «Разрешить совместное использование этого сетевого адаптера управляющей операционной системой» можно (и даже рекомендуется) убрать, т.к. для доступа к серверу Hyper-V у нас остается другой сетевой адаптер — «LAN 1».

Диспетчер виртуальных сетей

После применения настроек получим предупреждение о невозможности удаленного доступа к серверу через это сетевое подключение — понимаем, соглашаемся.

Уведомление об изменении параметров сети

Разумеется, оказалось, что у меня удаленное подключение было как раз через этот сброшенный адаптер — удаленный рабочий стол сразу подвис и какое-то время шли попытки переподключения. :)

Установка виртуальной машины (vm).

Для начала копируем установочный образ W2k8 и Exchange 2007 куда-нибудь на «C:\ISO». Выбираем в панели действий Диспетчера Hyper-V: «Создать -> Виртуальная машина» и следуем указаниям мастера создания виртуальных машин.

Создание виртуальной машины

Имя нового сервера: srv-mail, память: 4096, подключение: LAN 2 vSwitch, виртуальный жесткий диск: 100Гб (для себя нужный размер подгадывайте сами), установить операционную систему из файла образа: C:\ISO\SW_DVD5_Windows_Srv_DC_EE_SE… и готово! Как видно, пока состояние машины srv-mail — Выкл. Выбираем её и в панели действий жмем Пуск, затем Подключить, чтобы увидеть экран виртуальной машины.

Запуск и подключение к виртуальной машине

Далее видим стандартный мастер установки Windows в котором выбираем устновку Windows Server 2008 R2 Enterprise (полная установка) и т.д. по шагам. Для диска C: я откусил 40 Гб — остальное останется для Exchange и его баз данных. Оставшуюся нераспределенную область диска на виртуальной машине занимаем под диск D:, отформатировав её, в соответствии с рекомендациями Microsoft, с размером кластера равным 64 КБ. После установки всех обновлений на C: осталось 29,3 Гб — по-моему, неплохо. :) Важный нюанс: Microsoft рекомендует использовать виртуальные диски фиксированного размера — свойства виртуального диска можно изменить в момент, когда виртуальная машина выключена.

Установка Exchange 2007 на виртуальную машину.

Поддержка Windows Server 2008 R2 появилась в Exchange 2007 начиная только только с SP3. Всё, что было раньше SP3 просто не установится. Таким образом SP3 должен быть сразу интегрирован в установочный дистрибутив. Если Microsoft до сих пор не удосужилась выложить такой дистрибутив в Volume Licensing Service Center, то можно скачать его из Microsoft Download Center. Собственно, сама установка мало чем отличается от стандартной установки на физическое железо. Разве что только, вместо установки диска в CD-ROM нужно указать путь к установочному образу виртуальному DVD-дисководу. Перед тем как ткнуть в setup.exe, с помощью Диспетчера сервера добавляем роль Веб-сервер (IIS), которая понадобится для роли Клиентского доступа (Client Access). В службах ролей, устанавливаемых для IIS, помимо предложенных следует отметить дополнительно: Обычная проверка подлинности, Windows — проверка подлинности, Дайджест-проверка подлинности, Сжатие динамического содержимого, Совместимость метабазы IIS 6, Консоль управления IIS 6.

Через Диспетчер сервера добавим компонент «RPC через HTTP-прокси» — это пригодится для клиентов Outlook Anywhere. Теперь можно устанавливать.

Запуск установщика Exchange 2007

Не мудрствуя лукаво, выбираю обычный тип установки — в нём как раз все те роли, что и на старом сервере, и сам сервер устанавливаю на диск D:. Что-то всё-таки упустил на подготовительном этапе, но мастер не дает ошибиться и даже подсказывает, что именно нужно сделать:

Проверка готовности установки Exchange

Запускаем командную строку от имени администратора и вводим команду: ServerManagerCmd -i RSAT-ADDS

Обновление схемы Active Directory

Снова запускаем установку. На этот раз проверка готовности прошла успешно и можно продолжить установку.

Проверка готовности к установке прошла успешноУстановка также прошла успешно. Перезагружаем vm.

Настройка Exchange 2007.

Открываем консоль управления Exchange. Заходим в «настройку серверов  -> почтовые ящики» — теперь там видны два сервера — старый (exchsrv) и новый (srv-mail). Можно переместить путь баз данных на новом сервере, если не устраивает путь по умолчанию. Это особенно полезно, если базы данных лежат на другом RAID-массиве.

Консоль управления Exchange

Поскольку у меня массив один — оставляю, как есть, да и по вложенности красивее — вот Exchange Server, а вот его роль Mailbox, в ней базы данных. Всё логично! :)

Перенос почтовых ящиков.

Идем в Настройки получателей. Выделяем все почтовые ящики, которые необходимо перенести на новый сервер и жмем в панели действий «Переместить почтовый ящик». Выбираем новый сервер.

Перенос почтовых ящиков

Далее можно задать каким образом обрабатывать поврежденные сообщения. В данном случае оставляю всё по умолчанию и жму далее. Кто является сервером глобального каталога и контроллером домена, думаю, он тоже сам «догадается». Жмем «Переместить» и наслаждаемся, как ящики постепенно обзаводятся красивыми зелеными галочками напротив названия с подписью «Завершено». :) После успешного перемещения пользователи MS Outlook 2003 получат сообщеие от о том, что его нужно перезапустить. После перезапуска Outlook начинает работать с новым сервером.

Перенос общих папок.

В панели действий выбираем пункт Создать новую группу хранения. Пусть это будет «Second Storage Group». Создаем. В панели действий выбираем Создать базу данных общих папок. Назовем её Public Folder Database. После успешного создания запускаем командную консоль Exchange, переходим в папку со скриптами и переносим общие папки со старого сервера на новый с помощью готового скрипта MoveAllReplicas.ps1.

cd "D:\Exchange Server\Scripts"
.\MoveAllReplicas.ps1 -Server exchsrv -NewServer srv-mail

и перемещаем реплики на другой сервер:

ReplaceReplicaOnPFRecursive.ps1 -TopPublicFolder "\" -ServerToAdd srv-mail -ServerToRemove exchsrv

Пробежимся по настройкам нового сервера.

Конфигурации организации

Почтовые ящики -> Автономная адресная книга — перемещаем на новый сервер всё, что есть.

Перенос OAB (Автономной адресной книги)

Транспортный сервер концентратор -> Глобальные параметры меняем IP-адрес старого сервера (у меня это — 192.168.2.253) на IP-адрес нового (192.168.2.254).

Внутренние SMTP-сервера

Транспортный сервер концентратор -> свойства Соединителей отправки -> Исходный сервер — добавляем новый сервер, а старый удаляем.

Транспортные сервера-концентраторы

Настройка серверов

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

Свойства Mailbox Database

Клиентский доступ — включаем мобильный Outlook для нового сервера, настраиваем параметры  Outlook Web Access, Exchange ActiveSync аналогично параметрам старого сервера и выключаем мобильный Outlook для старого.

Включить мобильный Outlook

Транспортный сервер-концентратор — заходим в свойства получающих соединителей нового сервера и настраиваем их аналогично соединителям на старом сервере.

Сертификат безопасности

Теперь, чтобы для пользователей OWA, Outlook Anywhere и ActiveSync перенос также оказался прозрачным необходимо создать сертификат безопасности, установить и активировать его для службы «IIS» (ну или сразу для всех). Вообще, на эту тему есть множество хороших статей, но чтоб уж было всё в одном месте до самого конца — кратко разверну тему.

Сначала создадим запрос на сертификат. Для это в Командной консоли Exchange пишем:

New-ExchangeCertificate -GenerateRequest -SubjectName "DC=companydomain, DC=ru, O=Vasya Pupkin LTD, CN=exchsrv.companydomain.ru" -DomainName exchsrv.companydomain.ru, smtp.companydomain.ru, autodiscover.companydomain.ru, companydomain.ru, exchsrv.localdomain.local, exchsrv -FriendlyName "Microsoft Exchange 2007" -Path c:\mailcert.req

exchsrv — внешнее имя сервера. Можно было бы, пользуясь случаем, придумать что-то попроще и красивее. Например «m», или «mail», или «post», предварительно создав одноименную А-запись в DNS, но практика показывает, что для пользователя всё равно — будет ли доступ к почте через веб-интерфейс осуществляться через https://m.companydomain.ru/owa, или через https://exchsrv.companydomain.ru/owa — он будет заходить на неё по вкладке в ибзранном, а поскольку эту вкладку править также мне, то поступим как проще — оставим старое неблагозвучное имя. ;)

companydomain — внешнее имя домена.

localdomain — внутреннее имя домена (название домена в вашей локальной сети).

Открываем браузер и набираем адрес нашего локального центра сертификации:

http://srv-dc1/certsrv

Выбираем действие — Запрос сертификата -> Расширенный запрос сертификата -> Выдать запрос, использую base-64 шифрованный файл… -> В поле «Сохраненный запрос» вставляем содержимое файла c:\mailcert.req -> Шаблон сертификата — Веб-сервер -> Выдать

Снова идем в Командную консоль Exchange и смотрим, что у нас твориться с сертификатами с помощью команды:

Get-ExchangeCertificate | FL

Выискиваем среди сертификатов только что полученный, копируем у него значение thumbprint (отпечаток сертификата) и применяем его командой:

Enable-ExchangeCertificate -Thumbprint вставить_то_самое_значение -Services "IIS,SMTP"

Ненужный сертификат можно удалить с помощью команды:

Remove-ExchangeCertificate -Thumbprint отпечаток_ненужного_сертификата

Последние штрихи.

Т.к. сервера Edge Transport в организации нет, можно активировать анти-спам защиту на Hub Transport. Для этого выполняем в Командной консоли Exchange:

cd "D:\Exchange Server\Scripts"
Install-AntispamAgents

Для того, чтобы соответстовать RFC 2821 относительно существования ящика postmaster, назначим почтовый ящик администратора почтовой системы с помощью команды:

Set-TransportServer srv-mail -ExternalPostmasterAddress postmaster@companydomain.ru

На всякий случай проверьте существет ли на самом деле ящик postmaster, либо добавлен ли postmaster@companydomain.ru в качестве дополнительного адреса электронной почты для ящика администратора Exchange.

Не забываем на шлюзе перенаправить 25 порт на IP-адрес нового сервера. У меня на шлюзе стоит ISA 2006 и перенаправление там осуществлятся очень просто. Поскольку все правила уже созданы, настроены и успешно работали со старым сервером, нужно лишь изменить в них IP-адрес на адрес нового сервера.

ISA Server 2006 - изменение правилаТакже сменить адрес сервера для публикаций Outlook WEB Access, Outlook Anywhere и ActiveSync.

Удаление старого сервера Exchange 2007.

На старом сервере — Панель управления -> Установка и удаление программ -> Microsoft Exchange Server 2007. Тот же мастер установки, только теперь вместо того, чтобы ставить галочки напротив ролей, нужно их убирать. Прелесть проверки готовности перед установкой, или удалением Exchange в том, что мастер не позволит перейти к решающему шагу в случае нахождения каких-либо несоответствий, да ещё сам на них укажет и подскажет ссылкой на статью, что именно нужно исправить и как.

Удаление Exchange 2007

Однако в моём случае это не сильно помогло т.к. именно эти рекомендации и были выполнены в разделе «Перенос общих папок» выше. Следующий способ мне трудно обосновать с технической точки зрения… Сложно сказать, почему это помогло и почему я сделал именно это. :) Я зашел в Консоль управления общими папками, подключился к старому серверу…

Консоль управления общими папками

…и по очереди удалил общие папки по умолчанию! :)

Удаление общих папок

Папки успешно удалились. Там же подключился к новому серверу — папки на месте, затем снова к старому — папки снова на месте. После этого проверка готовности к удалению прошла успешно, как и само удаление.

На этом можно и закончить. Спасибо за ваше время. Если что-то ещё можно добавить, или есть какие-то ошибки в статье — пишите — приму во внимание.

Запись опубликована в рубрике IT, Главная с метками . Добавьте в закладки постоянную ссылку.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *