Модель репликации AD

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

Active Directory — это распределённая служба каталогов. Объекты в каталоге распределены посредством контроллеров домена по всему лесу, и контроллеры домена в домене обновляются непосредственно. Репликация – это процесс, посредством которого изменения, сделанные на одном контроллере домена синхронизируются с другими контроллерами домена, в домене или в лесе, которые хранят копию той же самой информации. Целостность данных поддерживается отслеживанием изменений на каждом контроллере домена и систематическим обновлением других контроллеров домена. Репликация AD использует топологию соединений, создаваемую автоматически, которая оптимально использует преимущества сетевого соединения и освобождает администратора от принятия таких решений.

В AD дерево каталогов представляет все объекты в лесу, и это дерево каталогов разделено таким образом, который позволяет его распределить на контроллеры домена в других доменах в лесу. Модель репликации AD охватывает способы, которыми изменения производятся и отслеживаются среду контроллеров домена. Каждый контроллер домена в лесу хранит копию определенной части каталога. Каждый определённый сегмент каталога называется «разделом каталога». Копия содержимого одного раздела каталога на определенном контроллере домена называется «реплика». Обновления реплики синхронизируются среди контроллеров домена, которые хранят такую же копию разделов каталога, в процессе репликации.

Репликация PULL

AD использует репликацию «pull». В репликации «pull» реплика назначения запрашивает информацию из исходной реплики. Запрос определяет информацию, нужную реплике назначения, основываясь на собственном знании об уже полученных изменениях от источника и от других контроллерах домена в домене. Когда реплика назначения получает информацию от источника, она применяет эту информацию, делая себя более свежей. Следующий запрос реплики назначения исключает информацию, которая уже была получена и применена.

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

Компоненты модели репликации

Следующие механизмы способствуют всей системе репликации:

  1. Мультимастер теряет последовательность с конвергенцией, которые поддерживают целостность данных. - Мультимастер означает, что раздел каталога может иметь множество реплик, или копий, доступных для записи, которые должны хранить последовательность между контроллерами домена в том же лесу. Система репликации распространяет изменения, сделанные на определенном контроллере домена, на другие контроллеры домена в лесу, которые хранят раздел каталога, в котором произошли изменения.
  • Потеря последовательности означает, что не гарантируется достоверность реплики с другими репликами в любой определенный момент времени, так как изменения могут применяться к любой полной реплике в любое время.
  • Конвергенция (сходимость) означает, что при разрешении достижения системой стабильного состояния, при котором не происходят новые обновления и все предыдущие обновления были успешно отреплицированы, гарантируется, что все реплики сходятся на том же наборе значений.
  1. Репликация с промежуточной буферизацией означает, что изменения не посылаются прямо от одного контроллера домена к другим контроллерам домена. Вместо этого изменение посылается прямо на некоторый набор контроллеров домена. Этот набор контроллеров домена становится ответственным за отсылку изменения на другие контроллеры домена и так далее, пока изменение не достигнет каждого контроллера домена.
  2. Репликация «pull» означает, что контроллер домена запрашивает (тянет) обновления от партнеров по репликации. Контроллер домена, на котором происходят изменения не проталкивает незапрашиваемые изменения на другие контроллеры домена.
  3. Репликация «state-based» означает, что вместо хранения полного журнала изменений, каждый раздел каталога хранит только данные об объекте и атрибуте для поддержки репликации.

Мультимастерная репликация

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

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

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

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

Мультимастерная репликация предоставляет следующие преимущества перед репликацией с одним ведущим:

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

Репликация «state-based»

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

Репликация AD запускается не журналами, хранимых с исходной репликой, а текущим «состоянием» (текущим значением объектов) исходной реплики. Это состояние включает информацию, которая используется для разрешения конфликтов и избегания посылания полной реплики каждым циклом репликации. Каждой производимой операции записи назначается порядковый номер на исходном контроллере домена. Все реплики поддерживают информацию о том, насколько они обновлены по отношению к другим репликам, и значения в каталоге помечаются порядковыми номерами их обновления, происходившим при записи. Используя эту информацию источник репликации может фильтровать изменения состояния, которые он реплицирует.

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

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

Поведение репликации

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

Следующие ключевые моменты имеют решающее значение для понимания поведения репликации:

  • Объект доступен для репликации как только он был изменен. Записи в один объект атомарны, и запись разделов объектов невозможна.
  • Объектам нет необходимости реплицироваться в том порядке, в котором было произведено обновление.
  • После инициации цикла обновления определенный цикл репликации посылает все доступные изменения от реплики источника к реплике назначению, включая изменения, которые происходят в процессе цикла репликации.
  • Репликация с промежуточной буферизацией колеблется между набором подсоединенных реплик.
  • Мультимастерное гарантированное разрешение конфликтов надежно даже если часы не синхронизированы или идут назад.
  • Граф соединений репликации не всегда связанное дерево (чье определение не содержит избыточных связей)  — граф может, и в общем случае, содержит циклы. Избыточные соединения уменьшают задержку репликации, главным образом в случае сбоя. Механизм гашения распространения устраняет избыточные репликации.
  • Репликация между сайтами обычно происходит в запланированные интервалы (уведомления об изменения между сайтами опциональны).
  • Система устойчива в условиях пиков нагрузки и временных сбоях.
  • Система репликации разработана чтобы быть стабильной. Каждый раз, когда репликация назначения получается информацию от источника репликации, репликация назначения становится более свежей. Восстановление после сбоев включает в себя минимум дополнительной работы.
  • Репликация с промежуточной буферизацией эффективно использует WAN каналы – каждое обновление пересекает дорогой канал только один раз и в сжатом виде.
  • Топология репликации управляется автоматически и оптимизирует существующие соединения.

Реплики разделов каталога

Реплика разделов каталога может быть полной (ведущая) или частичная реплика. Полная реплика содержит все атрибуты всех объектов разделов каталога для чтения и для записи. Каждый контроллер домена хранит, по крайней мере, три полных, доступных для записи разделов каталога:

  • Раздел схемы, который содержит все классы и атрибуты, определенные для леса. Есть только один раздел схемы для каждого леса.
  • Раздел конфигурации, который содержит информацию о конфигурации репликации (и другую информацию) для всего леса. Есть только один раздел конфигурации для каждого леса.
  • Раздел домена, которые содержит все объекты, которые хранятся одним доменом. Есть только один раздел домена для каждого домена в лесу.

Полная реплика доменного раздела хранится на всех контроллерах домена этого домена (и нигде более), полная реплика разделов схемы и конфигурации леса хранятся на контроллерах домена этого леса (и нигде более).

Частичная реплика содержит набор атрибутов всех объектов разделов каталога и она только для чтения. Частичная реплика хранится только на серверах Глобального Каталога. Атрибут содержится в частичной реплике если и только если у атрибута объекта attributeSchema есть *isMemberOfPartialAttributeSet *равное Истина.

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

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

Репликация с промежуточной буферизацией

Репликация с промежуточной буферизацией разработана для уменьшения передачи через медленным WAN каналам. Обновление реплицируется первым на ближайшие реплики и оттуда на реплики, которые находятся дальше.

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

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