Управление репликацией
Служба AD DS специально реализована так, что предусматривает возможность создания, изменения и удаления информации каталогов с нескольких контроллеров домена. Эта концепция называется репликацией с несколькими ведущими узлами (multimaster replication) и предполагает отсутствие единственного главного контроллера домена. В случае выхода какого-то контроллера домена из строя, ответственность за внесение изменений в информацию каталогов переходит к другому контроллеру домена из числа поддерживающих доступ по записи. Эти изменения затем реплицируются во всей инфраструктуре домена. Разумеется, определенный способ для управления репликацией такого типа все равно нужен, чтобы репликации подвергались только самые последние изменения. Этот способ представлен в AD DS в виде концепции последовательных номеров обновлений (Update Sequence Number — USN).
Последовательные номера обновлений (USN)
Всем реализациям служб каталогов предприятий необходим механизм работы с инкре-ментным хранением изменений, выполненных в объектах каталогов. Другими словами, если изменен какой-то пароль, то эта информация должна быть аккуратно передана всем контроллерам в домене. Этот механизм должен также иметь возможность проводить только самые последние изменения.
Многие реализации служб каталогов основаны на точной синхронизации времени во всех контроллерах домена для синхронизации информации. Однако оказалось, что синхронизация таймеров на нескольких серверах является крайне трудной задачей, и даже небольшая разница во времени может повлиять на результаты репликации.
В конечном итоге появилась концепция последовательных номеров обновлений. Номера USN в AD DS применяются для обеспечения аккуратной репликации изменений в каталогах. Номер USN является 64-битовым числом, поддерживаемым всеми контроллерами доменов в AD DS. Значение USN последовательно увеличивается при каждом изменении, выполняемом в каталоге конкретного сервера. Каждый дополнительный контроллер домена также содержит копию самых свежих USN, сообщаемых его соседями. Это упрощает обновления. Например, при запросе обновления репликации с сервера Server2 сервер Server 1 будет выбирать из своей внутренней таблицы самый последний USN, полученный от Server2, и запрашивать только те изменения, которые были проведены после'этого номера. Простота этой конструкции также обеспечивает аккуратность репликации в среде домена.