Учимся работать с USN и таблицей High Watermark

В одной из предыдущих статей я объяснял, как надлежит использовать программу repadmin.exe для отслеживания и управления процессом репликации Active Directory (AD). Несколько слов было сказано и о том, что стоит за процедурой репликации AD. Теперь посмотрим, каким образом можно контролировать трафик репликации AD.

Администраторы сетей Windows NT 4.0 или смешанной среды доменов AD обязаны установить соединение с основными контроллерами доменов, PDC, прежде чем изменять учетную запись пользователя или любые другие данные в домене. Но администраторы сети Windows 2000 в собственном режиме могут модифицировать AD с любого контроллера домена. Таким образом, работа в собственном режиме оказывается более эффективной, нежели в сети NT или в смешанном режиме. Однако репликация AD в собственном режиме сложнее и основана на некоторых новых понятиях, таких, как порядковый номер обновления Update Sequence Number (USN) и таблица наивысших номеров High-Watermark Table.

На всех DC хранится информация о том, сколько раз происходила модификация AD за время существования данного контроллера, и каждому изменению присваивается свой уникальный номер - USN. Предположим, мы сформировали новое, пустое дерево AD на DC, имя которого dc1.acme.com. Затем на данном контроллере нужно создать учетную запись Mary. Создание записи Mary - первая модификация AD, поэтому AD присваивает ей номер USN, равный 1 (конечно, я очень сильно упрощаю схему присвоения номеров USN). Если в следующий раз создается учетная запись John, AD назначает новому изменению USN 2. Затем Мэри обновляет AD, поменяв свой пароль, - появляется USN 3, Джон меняет пароль - USN 4, и будем считать, что пока это наибольший номер USN в AD.

Далее, в сети запускается второй контроллер - dc2.acme.com. Как часть процесса формирования нового DC, DC2 копирует базу AD с DC1. Но DC2 не копирует всю историю «жизни» AD целиком, только самую последнюю информацию. Таким образом, DC2 копирует только две обновленные учетные записи, поэтому на DC2 значение USN равно 2.

Контроллеры доменов используют собственные номера USN и номера USN соседних контроллеров, чтобы определить номер самого последнего изменения AD. Например, когда DC2 опрашивает DC1 на предмет изменений AD, нет утомительного и длительного просмотра всех событий на DC1. Вместо этого DC2 просто нужно узнать, что происходило с момента последней репликации. Фактически, DC2 получает от DC1 информацию о событиях, произошедших со времени модификации USN 4. Очевидно, что DC2 должен сохранять номер самого последнего USN, полученного с DC1; именно этот последний USN и называется максимальным или наивысшим номером (High Watermark) DC1. Каждый контроллер домена имеет таблицу таких номеров для всех своих партнеров по репликации. Для просмотра этой таблицы можно использовать команду Repadmin /showreps:

Repadmin /showreps 
 /verbose

Например, чтобы увидеть таблицу наивысших номеров на DC2, следует набрать:

Repadmin /showreps dc=acme,dc=com
dc2.acme.com /verbose

В выходных данных будет примерно следующее:

=== INBOUND NEIGHBORS ===...
Site1DC1 via RPC...
USNs: 59228/OU, 59228/PU

Партнеры по репликации отделяются друг от друга чертой. Значение наи-высшего USN - это число, которое следует сразу же за USNs:. В данном случае это 59228. Как воспользоваться данной информацией? При нормально функционирующем AD обо всем этом можно даже не подозревать. Но предположим, что пользователю предоставлены некоторые новые разрешения или права, а он не в состоянии их реализовать. Это может быть связано с тем, что один из контроллеров домена не получил сведений о новых правах или разрешениях.

Чтобы проверить свои предположения, нужно открыть окно командной строки на компьютере пользователя и с помощью команды Set определить контроллер домена, на котором зарегистрировался пользователь. Затем нужно получить таблицу наивысших номеров USN для этого DC и сравнить ее с аналогичной таблицей на других контроллерах домена. Если расхождение налицо, следует выполнить принудительную репликацию AD.

Марк Минаси - редактор Windows NT Magazine, MCSE и автор книги «Mastering Windows NT Server 4.0» (издательство Sybex). С ним можно связаться по адресу: mark@minasi.com.