Еще с версии Exchange Server 5.5 компания Microsoft предлагала использовать отказоустойчивые кластеры Windows для реализации высокодоступных сред почтовых ящиков Exchange. В типичной среде с общим хранилищем обычно присутствуют два сервера-узла. Оба работают под управлением Exchange Server и оба подключены к общему хранилищу.
Раньше это общее хранилище строилось на основе общей шины SCSI. Потом использовались сети хранения SAN с сетевым подключением Fibre Channel или iSCSI. Важной частью было общее хранилище, где располагались базы данных Exchange Server.
Только один узел может «владеть» этими общими данными. Этот узел обслуживает клиентов. Его также называют активным узлом. У другого узла нет доступа к этим данным, поэтому он называется пассивным. Частная сеть между двумя узлами используется для внутрикластерных коммуникаций, например для обмена тактовыми импульсами. Это позволяет узлам быть в курсе состояния кластера и активности других узлов.
Помимо двух узлов создается ресурс кластера «Виртуальный сервер Exchange» (Exchange Virtual Server). Он не имеет ничего общего с виртуальными машинами. Это ресурс, к которому клиенты Outlook подключаются при доступе к своим почтовым ящикам. При сбое активного узла обслуживание виртуального сервера Exchange берет на себя пассивный узел. Хотя пользователи и могут заметить короткий простой во время перехода, в остальном работа восстанавливается без какого-либо усилия со стороны пользователя.
Хотя такое решение обеспечивает избыточность, все равно остается единственная точка отказа — общая база сервера Exchange. В типичной среде эта база данных размещается на SAN. По самой своей природе SAN является высокодоступной средой. Но если что-то происходит с базой данных, например логический сбой, база данных становится недоступной для обоих узлов. Результат — полная недоступность.
Репликация базы данных Exchange
В Exchange Server 2007 компания Microsoft предложила новое решение для создания высокодоступных сред Exchange — репликацию базы данных. При репликации создается копия базы данных, что обеспечивает избыточность БД. Были доступны три разновидности этой технологии:
- Локальная непрерывная репликация (Local Continuous Replication, LCR): Копия базы данных создается на том же сервере.
- Непрерывная репликация кластера (Cluster Continuous Replication, CCR): Копия базы данных создается на другом узле отказоустойчивого кластера Windows (в кластере CCR может быть только два узла).
- Резервная непрерывная репликация (Standby Continuous Replication, SCR): Этот тип репликации появился в Exchange Server 2007 SP1. Копия базы данных создается на любом сервере Exchange (не обязательно являющимся членом кластера). Это предназначается не для высокой доступности, а больше для аварийного восстановления.
Вот как репликация базы данных работает в кластеризованной среде CCR. Exchange Server 2007 устанавливается в отказоустойчивом кластере Windows Server 2003 или Windows Server 2008. В кластере нет общего ресурса. У каждого узла собственное хранилище. Это может массив SAN (Fibre Channel или iSCSI), непосредственно подключенное хранилище (DAS), то есть локальные физические диски.
Активный узел кластера обрабатывает пользовательские запросы, а на Exchange Server используется стандартная технология СУБД, с базами данных, журналами и файлами контрольных точек. Как только Exchange Server прекращает работать с файлом журналов, тот сразу же пересылается на пассивный узел кластера — по обычному сетевому подключению или по выделенной сети репликации.
Получив файл журнала, пассивный узел проверяет его на предмет ошибок. Если все нормально, данные из файла журнала переносятся в пассивную копию базы данных. Процесс выполняется асинхронно, то есть пассивная копия всегда на несколько файлов журналов отстает от активной копии, то есть в пассивной копии всегда чего-то «не хватает».
В этой среде все сообщения, даже внутренние, пересылаются через транспортный сервер-концентратор, который хранит все эти сообщения в среде CCR. Поэтому он может отправлять отсутствующую информацию (которую, собственно, пассивный узел запрашивает) на пассивную копию кластера в случае перехода. На транспортном сервере-концентраторе это называется «транспортной корзиной».
Этот вид репликации работает хорошо. CCR вполне надежна, но у нее есть ряд возможных недостатков:
- Среда Exchange Server 2007 CCR работает в кластерах Windows Server 2003 или Windows Server 2008. Для многих компаний это влечет ненужное усложнение среды.
- Кластеризация Windows Server 2003 в среде со многими подсетями практически невозможна, хотя в отказоустойчивых кластерах Windows Server 2008 ситуация улучшилась (но все еще далека от совершенства).
- Гибкость сайта выполняется непрозрачно.
- Кластеризация CCR возможна только в среде с двумя узлами.
- Все три типа репликации (LCR, CCR и SCR) управляются по-разному.
Для преодоления этих проблем Microsoft значительно улучшила технологию репликации. Также были снижены административные издержки. Это достигнуто за счет полного сокрытия компонентов кластера за реализацией Exchange Server 2010. Кластерные компоненты никуда не пропадают, но все администрирование выполняется средствами консоли EMC (Exchange Management Console) или оболочки EMS (Exchange Management Shell).
Непрерывная репликация групп доступности базы данных
В Exchange Server 2010 компания Microsoft представила концепцию групп доступности баз данных (DAG). Это логическое объединение серверов почтовых ящиков Exchange Server 2010. Все серверы почтовых ящиков в DAG могут реплицировать базы данных друг с другом. Одна DAG может содержат до 16 серверов почтовых ящиков и до 16 копий базы данных.
Идея использования множественных копий базы данных в одной организации Exchange называется мобильностью Exchange. Одна база данных хранится на многих серверах, причем все экземпляры абсолютно идентичны, поэтому у них один идентификатор GUID.
При наличии групп DAG клиенты подключаются к активной базе данных. Это база данных, в которой данные хранились изначально. Новые SMTP-сообщения, поступившие изнутри или снаружи организации, сначала попадают в эту базу данных.
Завершив обработку файла журнала БД, сервер Exchange реплицирует файл на другие серверы. Можно назначать серверы, которые будут получать копию базы данных. Файл журнала проверяется после получения, и если все нормально, информация из файла журнала загружается в локальную копию базы данных.
В Exchange Server 2010 все клиенты подключаются к серверу клиентского доступа, в том числе те, что используют интерфейс MAPI — к ним относятся клиенты Microsoft Outlook. Exchange Server 2010 поддерживает клиентов на основе Outlook 2003, Outlook 2007 и Outlook 2010.
Outlook-клиенты подключаются к серверу клиентского доступа, который затем подключается к почтовому ящику в активной копии базы данных. К сожалению, это верно только по отношению к базам данных почтовых ящиков. Когда Outlook-клиенту нужен доступ к базе данных общей папки, клиент все равно подключается к серверу почтовых ящиков напрямую.
При сбое активной копии базы данных или целого сервера, одна из пассивных копий базы данных становится активной. Порядок перехода при сбое определяется при конфигурировании копии базы данных. Сервер клиентского доступа автоматически замечает переход и начинает использовать новую активную базу данных. Так как Outlook-клиент подключается к серверу клиентского доступа, а не непосредственно к базе данных, переход базы данных выполняется полностью прозрачно. Сообщения о потере и восстановлении подключения к серверу больше не появляются.
При построении высокодоступной среды серверов почтовых ящиков DAG не нужно заранее создавать отказоустойчивый кластер. Добавить в DAG дополнительные серверы почтовых ящиков можно на лету. Однако для нормального функционирования DAG вам все равно потребуются некоторые компоненты отказоустойчивой кластеризации. Они устанавливаются при конфигурировании DAG. Все управление группами DAG и копиями баз данных выполняется средствами EMC или EMS. Пользоваться консолью управления отказоустойчивыми кластерами больше не нужно.
Группы DAG с копиями баз данных — единственная технология высокой доступности, которую использует Exchange Server 2010. Более старые технологии, такие как SCR, CCR и SCR больше не доступны. Также не поддерживается традиционный кластер с одной копией в общем хранилище.
Группы DAG больше не ограничены одним сервером только с ролью «сервер почтовых ящиков». Можно создавать среды с двумя серверами с ролями «транспортный сервер-концентратор», «сервер клиентского доступа» и «сервер почтовых ящиков» на обоих, после чего создать группу доступности DAG и сконфигурировать копии базы данных.
Однако это не конфигурация высокой доступности для серверов с ролями «транспортный сервер-концентратор» и «сервер клиентского доступа», если на них не установить устройства балансировки нагрузки. По умолчанию службу балансировки нагрузки Windows нельзя использовать в одной связке с компонентам отказоустойчивого кластера. Тем не менее, это значительное улучшение, когда речь идет о небольших средах Exchange Server 2010, где высокая доступность все равно нужна.