Долго время я отказывался от применения технологий виртуализации в окружении Microsoft Exchange Server, не желая создавать дополнительный уровень абстракции. К тому же я был уверен, что мои серверы будут лучше работать на отдельной аппаратной платформе.

Однако за последние несколько лет технология виртуализации заметно продвинулась вперед. Благодаря пакету Microsoft Hyper-V виртуальные машины могут напрямую обращаться к большинству аппаратных ресурсов сервера, не посылая запросы через операционную систему хост-компьютера, как раньше. Механизмы Hyper-V обеспечивают более высокую производительность, чем старые решения виртуализации от компании Microsoft, поэтому я перевел свои почтовые серверы Exchange на «виртуальные рельсы» и помог некоторым клиентам реализовать подобную архитектуру.

Стоит ли использовать виртуальные машины?

Компания Microsoft поддерживает виртуальные решения только для систем Exchange Server 2007 и Exchange Server 2003. Основным преимуществом применения виртуальных серверов в рабочем окружении является оптимизация использования имеющихся аппаратных ресурсов. Например, серверы DNS и DHCP, а также файловые серверы не требуют большого количества ресурсов оперативной памяти и процессора. Для реализации таких серверов можно задействовать одну хост-систему, на которой развернуто несколько виртуальных систем. Это позволит повысить эффективность использования аппаратных ресурсов хост-компьютера.

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

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

Выбор инструмента виртуализации

Для виртуализации системы Exchange 2007 можно использовать пакет Hyper-V или продукты независимых разработчиков. Для виртуализации Exchange 2003 воспользуйтесь операционной системой Microsoft Virtual Server 2005 R2 или сходными по функциям продуктами. Хотя компания Microsoft никогда официально не сообщала о том, что механизм Hyper-V поддерживает виртуализацию системы Exchange 2003, я не заметил никаких проблем при работе.

Компания Microsoft обычно выступает против того, чтобы ее клиенты применяли для виртуализации продукты сторонних разработчиков, но в некоторых случаях им приходится идти на компромисс. Поддержка взаимодействия с системой виртуализации VMware ESX Server — как раз такой случай. Дополнительную информацию о развертывании системы Exchange в виртуальных средах, созданных независимыми компаниями, можно найти в статье «Support policy for Microsoft software running in non-Microsoft hardware virtualization software» (http://support.microsoft.com/kb/897615).

Я рекомендую осуществлять развертывание виртуальных серверов Exchange 2007 с помощью технологии Hyper-V. Кроме того, для серверов Exchange 2003 желательно использовать гипервизор Hyper-V. На это есть две причины.

Во-первых, процесс виртуализации гипервизора Hyper-V не так сильно зависит от операционной системы, установленной на хост-компьютере, как процесс виртуализации на платформе Virtual Server 2005. Технология Hyper-V поддерживает виртуализацию аппаратного уровня, то есть виртуальные машины могут взаимодействовать напрямую с аппаратными ресурсами сервера, и им не приходится направлять запросы на доступ к ресурсам в операционную систему хост-системы. Благодаря этому по производительности виртуальные машины практически не уступают реальным серверам.

Во-вторых, при работе с системой Virtual Server 2005 виртуальные машины могут задействовать только один процессор. Если ваш сервер Exchange установлен на многопроцессорную или многоядерную машину, то при переносе его в виртуальное окружение вы будете наблюдать заметное снижение производительности. В технологии Hyper-V подобного ограничения нет. Вы можете предоставить виртуальному серверу несколько виртуальных процессоров. Можно даже вручную назначить виртуальные процессоры для сервера Exchange и всех остальных виртуальных серверов, развернутых на хост-системе, что поможет избежать ситуаций, в которых виртуальный сервер не получает достаточно ресурсов процессора из-за того, что эти ресурсы поглощены другим виртуальным сервером.

Имейте в виду, что для использования гипервизора Hyper-V сервер Exchange должен иметь 64-разрядные процессоры с поддержкой виртуализации аппаратного уровня. Компании Intel и AMD выпускают процессоры, поддерживающие эту технологию. В процессорах Intel она называется Intel Virtualization Technology (Intel VT), а в процессорах AMD — AMD Virtualization (AMD-V).

Компания Microsoft предлагает два продукта, использующие гипервизор Hyper-V: операционная система Windows Server 2008 с Hyper-V — одной из ролей операционной системы Windows Server 2008 — и отдельный продукт для виртуализации Microsoft Hyper-V Server 2008, который можно бесплатно загрузить с сайта Microsoft. В состав пакета Hyper-V Server 2008 не входят компоненты Server 2008 или Server Core. Дополнительную информацию о различиях этих продуктов можно найти в статье «Что необходимо знать о Microsoft Hyper-V Server 2008», опубликованной в Windows IT Pro/RE № 2 за 2009 г. Для виртуализации системы Exchange подходит любой из двух продуктов.

Основные вопросы реализации

Если вы решили перевести организацию Exchange в виртуальную среду с помощью Hyper-V, необходимо решить некоторые вопросы реализации. Перечислим наиболее важные из них.

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

Я рекомендую применять выделенную сетевую карту еще и потому, что каждую ночь вам придется делать резервную копию почтовых серверов. Большинство администраторов полагают, что смогут делать снимки виртуальных жестких дисков (то есть файлов .vhd) в «холодном» режиме. Хотя такой подход возможен, у него есть два существенных недостатка. Во-первых, для выполнения резервного копирования вам придется остановить виртуальную машину, а такие остановки для большинства организаций нежелательны. Во-вторых, если процесс копирования сводится к созданию снимка, вы не сможете зафиксировать файлы журнала транзакций, так как их сохранение является частью процесса полного резервного копирования в оперативном режиме. Благодаря преимуществам в вопросах резервного копирования и относительно низкой стоимости сетевых карт использование отдельной сетевой карты для каждого виртуального сервера является лучшим решением, при условии что физический сервер обладает достаточным числом слотов расширения.

Имейте в виду, что для выполнения резервных копий может применяться служба Microsoft Volume Shadow Copy Service (VSS). Хотя служба VSS и сокращает полосу канала, используемую процессом резервного копирования, ваш сервер покажет более высокую общую производительность, если будет иметь выделенную сетевую карту.

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

Наверное, самая большая ошибка конфигурации, которую я когда-либо видел, заключалась в том, что администратор разместил файлы .vhd на том же диске, на котором размещался файл подкачки, в результате чего произошло катастрофическое падение производительности. Другие вопросы по настройке операционных систем разобраны ниже.

Память, используемая операционной системой. Необходимо обеспечить операционной системе хост-компьютера объем оперативной памяти, достаточный для эффективной работы. Я рекомендую выделить под главную операционную систему не менее 2 Гбайт оперативной памяти. Машина должна иметь достаточный объем памяти сверх 2 Гбайт для обеспечения оперативной памятью виртуальных серверов. Например, если виртуальному серверу Exchange требуется 4 Гбайт оперативной памяти, то хост-машина должна иметь не менее 6 Гбайт. Также необходимо учесть требования к оперативной памяти, предъявляемые остальными виртуальными серверами, развернутыми на хосте.

Приложения на хост-системе. На хост не должны возлагаться дополнительные роли, такие как Web-сервер или файловый сервер. Руководство Microsoft по использованию серверов Exchange в виртуальном окружении настойчиво рекомендует использовать операционную систему хоста исключительно для обслуживания виртуальных машин, и в ней не должны запускаться никакие дополнительные приложения, за исключением управляющих служб (например, антивирусов).

Как я упомянул выше, компания Microsoft выпустила набор рекомендаций по виртуализации окружения Exchange. С этим руководством можно ознакомиться, прочитав статью «Политики поддержки и рекомендации Microsoft по использованию серверов Exchange в виртуальных средах» (http://technet.microsoft.com/en-us/library/cc794548.aspx). Часть рекомендаций я привожу здесь, но из-за недостатка места не могу рассказать обо всех. В названной статье также описываются политики поддержки компанией Microsoft виртуализации окружений Exchange. Требования, входящие в политики поддержки, существенно зависят от версии используемой серверной системы (Exchange 2007 или Exchange 2003), поэтому я собираюсь рассказать о каждом наборе требований отдельно. Перед тем как рассмотреть особенности виртуализации каждой из версий Exchange, давайте обсудим основные подходы к процессу виртуализации.

Основные подходы к виртуализации

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

Второй подход предполагает использование средства преобразования физической системы в виртуальную, physical-to-virtual (P2V), такого как Microsoft System Center Virtual Machine Manager (SCVMM) или Vizioncore vConverter. Подобное средство может осуществить преобразование типа P2V без выполнения операций, характерных для третьего подхода. Однако такие средства преобразования, как правило, распространяются платно.

Третий подход предусматривает создание виртуального экземпляра физического сервера Exchange. Он требует более кропотливой работы, нежели просто миграция. Кроме того, вероятность возникновения ошибок при данном подходе возрастает, пользователи могут столкнуться с тем, что в течение достаточно долгого времени сервер будет недоступен. Однако в результате вы получите идеальный виртуальный образ физического сервера Exchange. Кроме того, исходный сервер Exchange и все связанные с ним записи в каталоге Active Directory (AD) не будут подвергнуты изменениям. Если в процессе виртуализации произойдет критическая ошибка, вы всегда можете выключить виртуальную машину, запустить реальный сервер Exchange и буквально за несколько минут вернуть системе работоспособность. По этим причинам я предпочитаю третий подход, и именно его мы рассмотрим в этой статье подробно. Однако в некоторых организациях данный подход может быть неприменим, так как он требует отключения сервера Exchange.

Третий подход к виртуализации включает следующие шаги.

  1. Если на системе, которую вы хотите сделать виртуальной, развернута версия Windows Server 2003, необходимо установить пакет обновлений SP2 или одну из более поздних версий — в противном случае виртуальный сервер не сможет подключиться к сети. Если на системе развернут Windows Server 2008, то в этом шаге необходимости нет.
  2. Запустите команду CHKDSK/F для каждого логического диска на сервере. Хотя этот шаг необязателен и может занять много времени, предварительный поиск и исправление ошибок на дисках сильно облегчит вам задачу.
  3. Отключите службу Microsoft Exchange Information Store, чтобы избежать любых изменений в базе данных и журналах транзакций.
  4. Выполните полное резервное копирование сервера Exchange (включая состояние системы и программные файлы). Имейте в виду, что гипервизор Hyper-V не позволяет обращаться к устройствам USB из виртуальных машин. Поэтому при выполнении резервного копирования сервера Exchange сохраняйте копию на носитель, который будет доступен с виртуальной машины. Обычно я записываю резервную копию на сетевой диск.
  5. Отключите сервер.
  6. Убедитесь, что для новых серверов разрешена виртуализация на уровне BIOS (на аппаратном уровне).
  7. Создайте новый виртуальный сервер, который будет использоваться вместо сервера, который вы только что отключили.
  8. Создайте по одному виртуальному диску на каждый физический диск, для которого было выполнено резервное копирование. После этого подключите виртуальные диски к виртуальной машине.
  9. Установите на виртуальную машину систему Windows. Версия Windows и набор установленных пакетов обновлений виртуального сервера и реального сервера должны полностью совпадать.
  10. Если на виртуальный сервер установлена система Windows Server 2003, на него необходимо дополнительно установить службы Integration Services. Активировать установку можно, выбрав пункт Insert the Integration Services Setup Disk из меню Action гипервизора Hyper-V. Если на виртуальном сервере установлена система Windows Server 2008, данный шаг можно пропустить.
  11. Активируйте сетевые службы на виртуальной машине.
  12. При необходимости назначьте виртуальному серверу IP-адрес, но не вводите сервер в домен.
  13. Назначьте всем дополнительным виртуальным жестким дискам корректные буквенные обозначения.
  14. Выполните полное восстановление системы из резервной копии на виртуальную машину. В настройках процесса резервного копирования разрешите перезапись любых существующих файлов.
  15. После завершения процесса восстановления загрузите виртуальную машину. Для того чтобы виртуальная машина обнаружила и настроила новое «оборудование», обычно требуется несколько перезагрузок.

Имейте в виду, что гипервизор Hyper-V может создавать виртуальные жесткие диски на основе реальных дисков. Хотя использование этой возможности вместо выполнения описанных выше 15 шагов выглядит очень привлекательно, данную функцию нельзя использовать для создания виртуального экземпляра системного диска сервера. При попытке загрузиться с виртуального жесткого диска, созданного таким образом, процесс загрузки будет прерван появлением «синего экрана смерти».

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

Требования к системе Exchange 2003

Перечислим несколько требований процесса виртуализации, характерных для системы Exchange 2003.

  • На сервере Exchange должен быть установлен пакет обновлений версией не ниже Exchange 2003 SP2. Пакет SP2 требуется для работы некоторых служб, задачей которых является обеспечение доступа к сети для виртуального сервера.
  • Сервер Exchange не должен быть узлом кластерной системы.
  • Если виртуальный сервер использует гипервизор Hyper-V, необходимо установить на него службы Integration Services.
  • Поддерживается только один драйвер SCSI — Microsoft Virtual Machine PCI SCSI Controller Driver. Данное ограничение не относится к системе Exchange 2007.

Требования к системе Exchange 2007

Одной из важных задач при виртуализации системы Exchange 2007 является планирование размещения серверов с различными ролями. В принципе при различных условиях можно сделать виртуальным сервер с любой ролью, кроме, пожалуй, роли Unified Messaging. Обычно главными «претендентами» на виртуализацию являются серверы с ролями Hub Transport и Client Access, так как они потребляют относительно небольшое количество ресурсов (исключение составляют серверы в очень крупных организациях). Кроме того, они не предъявляют требований к объему жестких дисков (не хранят базы данных почтовых ящиков).

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

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

Виртуализация почтовых серверов в системе Exchange 2007

В большинстве случаев виртуальные машины могут взаимодействовать напрямую с аппаратным обеспечением. Но есть одно исключение: обращения к дисковой подсистеме должны обрабатываться операционной системой хост-компьютера. Поэтому, если вы планируете выполнить виртуализацию почтовых серверов, старайтесь объединять их с виртуальными серверами, которые не так активно используют подсистемы ввода-вывода. Также вам необходимо продумать настройку виртуальных жестких дисков для вашего виртуального сервера.

Я не буду подробно описывать процесс настройки и остановлюсь только на основных моментах. Для простого почтового сервера Microsoft рекомендует использовать три отдельных набора носителей: один — для операционной системы, один — для базы почтовых ящиков и один — для журнала транзакций. Кроме того, вы можете добавить носитель для хранения файла подкачки и носитель для двоичных объектов Exchange. На физическом сервере в качестве носителей можно использовать три независимых жестких диска. Если на сервере Exchange создано более 10 почтовых ящиков, возможно, для хранения базы данных и журналов транзакций стоит использовать не отдельные диски, а дисковые массивы.

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

Другая проблема, возникающая при размещении виртуальных дисков на одном реальном диске, касается производительности. Все операции ввода/вывода/чтения/записи на сервере Exchange будут обращаться к одному и тому же реальному устройству. Это может привести к возникновению узкого места в производительности любой организации Exchange, за исключением простейших.

Вы можете создать массив RAID и разместить все виртуальные диски на одном из его томов. Массивы RAID считаются устойчивыми к отказам, и, следовательно, ваш сервер будет защищен от сбоев отдельных жестких дисков. Однако вам по-прежнему придется иметь в виду возможность отказа контроллера. Кроме того, при низкой производительности массива вы можете столкнуться с образованием узкого места для операций ввода/вывода. В сущности, оптимальным решением будет распределение виртуального жесткого диска по нескольким небольшим дисковым массивам, вместо того чтобы помещать его на один громоздкий массив.

Рекомендации по виртуализации почтовых серверов, приведенные в этой статье, предназначены для предприятий малого и среднего бизнеса (SMB). Я сильно упростил процесс настройки почтового сервера, поэтому для крупных организаций мои советы, скорее всего, неприменимы. Так что же делать крупным компаниям, если они хотят перенести почтовый сервер в виртуальное окружение? Я рекомендую использовать сети SAN и размещать данные системы Exchange на выделенных устройствах хранения LUN.

С чего начать?

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

Брайен Поуси (http://www.brienposey.com/) — вице-президент по исследованиям компании Relevant Technologies. Автор статей технической тематики для различных изданий и Web-сайтов