Судя по письмам, которые я получаю, многие пользователи не совсем ясно представляют себе, какую роль играют контроллеры доменов (DC) на предприятии и в какой степени администраторы могут контролировать их функции. Мне бы хотелось дать четкое объяснение ролей DC с практической точки зрения.
Роли и репликация
Назначение конкретным DC определенных ролей обеспечивает более эффективную репликацию. Каждый DC с назначенной ролью может выполнять репликацию своих данных Active Directory (AD), когда эти данные нужны другому DC, вместо того чтобы реплицировать всю базу данных AD предприятия.
В сетях Windows NT используется довольно неуклюжая модель репликации с одним основным контроллером PDC. Сеть NT имеет один PDC и сколь угодно много резервных BDC. После того как PDC реплицирует базу данных SAM на все BDC, пользователи могут входить в систему и проходить процедуру аутентификации в домене через BDC. Если от PDC вас отделяют каналы глобальной сети WAN, то изменение доменных объектов в лучшем случае происходит медленно, а если WAN отключена — не происходит вообще. Это может вызывать проблемы, когда администратор добавляет пользователей, компьютеры и группы в домен или когда пользователи пытаются менять свои пароли.
Выпуская Windows 2000, Microsoft придавала большое значение тому обстоятельству, что парадигма PDC/BDC из NT перестала быть определяющим фактором жизни администратора. Нам не раз приходилось слышать, что в Windows 2000 все DC равноправны. Но на самом деле все DC не могут быть равны. Они могут быть наделены индивидуальными ролями, что позволяет более эффективно управлять предприятием через AD.
Прежде чем говорить о ролях, давайте уточним терминологию. Правильное название ролей — роли мастеров операций (Operations Master roles), но администраторы, устанавливавшие Windows 2000 во время бета-тестирования, предпочитают использовать оригинальное название — роли Flexible Single-Master Operation (FSMO) roles. Microsoft сменила этот термин на Operations Master roles, но многие по привычке называют их по-старому. В этой статье я буду применять короткий термин роли.
Парадигма Windows Server 2003/2000 состоит из репликации с несколькими главными контроллерами: поскольку любой DC может производить изменения, вносимые в доменную структуру и объекты домена, каждый DC является главным и реплицирует свои изменения на все остальные контроллеры домена. Такой подход соответствует идее изначального равноправия DC. Но домен, в котором все без исключения DC являются главными, неэффективен — слишком много ресурсов процессора и передачи данных требуется каждому компьютеру для репликации всего и вся. Более того, представьте себе, что два члена одного и того же отдела, работающие на разных DC, создают новый объект с одним и тем же именем, но разной конфигурацией. Несмотря на то что действует правило «кто первый записал, тот и прав», второй администратор может иметь более веские причины использовать новое имя объекта.
Для обеспечения большей эффективности парадигмы нескольких главных DC необходимо назначить DC индивидуальные роли. Поэтому, даже если все DC более или менее равны, по отношению к конкретной роли один из DC имеет приоритет. В соответствии с этой ролью один DC отвечает за репликацию, поэтому фактически Windows 2000 имеет модель репликации с несколькими особыми главными DC.
Роли
Поддержка леса и одного или нескольких доменов требует исполнения пяти ролей. Можно назначить свою роль каждому DC, а можно назначить несколько ролей одному или нескольким DC.
Мастер схемы Schema master (роль в рамках леса). Мастер схемы отвечает за все обновления и изменения в схеме AD. Схему можно представить как определения полей базы данных AD. Лес содержит только один контроллер-мастер схемы — по умолчанию таковым является первый установленный на предприятии DC.
Мастер именования домена Domain naming master (роль в рамках леса). Мастер именования домена отвечает за добавление доменов и удаление их из леса. Лес может содержать только один контроллер, исполняющий роль мастера именования домена. Хотя пользователь вправе создавать и удалять домены на любом DC, принять или отклонить предложенные изменения — задача мастера именования домена, поскольку он является хранителем имен доменов. Когда два администратора, работающие на разных DC, создают новый домен с одним и тем же именем, но с разными конфигурациями, мастер именования домена принимает первый домен и отклоняет второй. Поскольку создание новых доменов происходит нечасто и не занимает много времени, DC, выполняющему эту роль, можно назначить несколько ролей.
В Windows 2000 мастер именования домена должен также поддерживать глобальный каталог Global Catalog (GC). Однако в Windows 2003 GC можно разместить на любом контроллере и на любом количестве DC.
Мастер относительных идентификаторов RID (доменная роль). Этот DC, обычно называемый RID-мастером, хранит набор уникальных записей SID. Когда кто-нибудь создает на DC новый объект, RID-мастер назначает этому объекту SID, состоящий из двух частей:
- набор идентификаторов, связанных с данным доменом (все объекты в домене имеют одни и те же доменные идентификаторы);
- уникальный, генерируемый случайным образом набор идентификаторов, связанных с новым объектом, называемый относительным идентификатором (Relative Identifier, RID).
Для того чтобы записи SID всех объектов гарантированно имели уникальные RID, нужен единый источник RID, то есть RID-мастер. RID-мастер не принимает участия в создании отдельных объектов; вместо этого он раздает наборы по 500 RID каждому DC. Когда у DC заканчиваются RID, он запрашивает новую порцию. Поскольку подзарядка идентификаторами RID не занимает много времени и использует сетевые ресурсы не так интенсивно, RID-мастер является подходящим кандидатом на выполнение нескольких ролей.
Эмулятор PDC (доменная роль). В каждом домене может быть только один эмулятор PDC. Роль эмулятора PDC наполняют различные обязанности в зависимости от версии Windows, управляющей DC. Если не все DC работают под Windows 2003 или Windows 2000, то DC, назначенный на роль эмулятора PDC, выполняет функции PDC и действует так, как будто он является частью сети NT. В сети NT изменения учетных данных, вносимые администраторами и пользователями, производят не BDC — их должен реализовать PDC. Следовательно, BDC в сети NT всегда требует доступа к PDC, когда ему нужно обновить SAM. И если попытаться установить доверительные отношения с доменом NT, тот не станет контактировать ни с одним компьютером, не являющимся PDC.
Однако потребность в эмуляторе PDC сохраняется даже после того, как администратор удалил из сети все контроллеры доменов NT. Клиентским компьютерам иногда требуются службы PDC. Например, папка «Моя сеть» использует функции просмотра, которые требуют выбора главного браузера — компьютера, отслеживающего имена всех компьютеров сети. Поскольку PDC является главным браузером по умолчанию, наличие эмулятора PDC упрощает эту задачу.
Эмулятор PDC также выполняет функцию мгновенной репликации. Несмотря на то что AD реплицирует большинство изменений с регулярным настраиваемым интервалом, изменения пароля пользователя каталог AD должен реплицировать немедленно. Как только кто-нибудь меняет пароль на любом DC предприятия, DC, принимающий изменение пароля, связывается с контроллером — эмулятором PDC — и записывает изменение. Сам по себе эмулятор PDC не будет выполнять репликацию немедленно, он сделает это в течение следующей запланированной репликации. Поэтому, если пользователь предпринимает попытку ввести новый пароль для регистрации на контроллере, отличном от DC, на котором изменения были приняты, изменения пароля могут быть еще не реплицированы на этот DC. В таком случае DC не отказывает пользователю в праве войти в систему. Он спрашивает эмулятор PDC: «Эта учетная запись изменилась?» И эмулятор PDC отвечает: «У этой учетной записи новый пароль, вот он».
Кроме того, эмулятор PDC синхронизирует время в лесу. По умолчанию компьютеры, работающие под управлением Windows 2003, Windows XP и Windows 2000 Server, периодически сверяют свое время с сервером времени, чтобы обеспечить синхронный ход часов. Определяющим сервером времени для леса является эмулятор PDC. Ввиду широкого спектра обязанностей контроллера — эмулятора PDC его следует поместить на DC, не имеющий других ролей.
Мастер инфраструктуры Infrastructure master (доменная роль). Мастер инфраструктуры отслеживает объекты в своем домене и предоставляет эту информацию остальным контроллерам домена. Для того чтобы отслеживать объекты, мастер инфраструктуры сравнивает их данные с данными в GC, который получает регулярные обновления через репликацию. Когда данные не совпадают, мастер инфраструктуры запрашивает у GC обновление.
По существу, данные, хранимые мастером инфраструктуры, являются доменным каталогом. И здесь как раз кроется потенциальная проблема. Поскольку GC имеет преимущество перед мастером инфраструктуры, если он расположен на DC, выполняющем функции мастера инфраструктуры, данные этого домена никогда не реплицируются на другие DC. Поэтому, распределяя роли среди DC, не следует помещать копию GC на DC, выполняющий функции мастера инфраструктуры. Эта проблема не возникает, если в сети только один домен и в домене только один DC, потому что в таком случае GC является доменным каталогом. И еще, если все контроллеры домена содержат GC, то все DC будут иметь текущие данные, поэтому неважно, какому именно DC назначена роль мастера инфраструктуры.
Переназначение ролей
Когда устанавливается первый контроллер Windows 2003 или Windows 2000 Server и создаются первые лес и домен, этот DC содержит все роли леса и домена. По мере добавления контроллеров роли на другие DC автоматически не перемещаются. Если администратор добавляет домены в лес, первый DC в домене выполняет все доменные роли, и добавление в лес DC ситуации не меняет. Следует выполнить переназначение ролей вручную и можно как угодно распределить роли между DC. Инструкции по перемещению ролей среди DC приведены во врезке «Перемещение ролей DC».
Продуманное назначение ролей позволяет сохранить производительность сети на самом высоком уровне. Роли нужно переназначать, только когда это необходимо. Вообще рекомендую придерживаться основных принципов администратора: «Чем проще, тем лучше» и «Не пытайся чинить то, что не сломалось». Если из-за наличия нескольких ролей производительность DC заметно падает, можно переместить одну или несколько его ролей на другие DC. Или, если большинство администраторов предприятия находятся на одном узле, а роли леса расположены на DC в другом узле, следует переместить роли леса на ближайший к администраторам DC, так чтобы им не приходилось работать через WAN.
Кэти Ивенс — редактор Windows 2000 Magazine. Участвовала в написании более 40 книг по компьютерной тематике, включая «Windows 2000: The Complete Reference» (Osborne/McGraw-Hill). С ней можно связаться по адресу: kivens@win2000mag.com.
Перемещение ролей DC
Для перемещения ролей с одного контроллера домена на другой используется оснастка Active Directory консоли Microsoft Management Console (MMC). Можно работать на том DC, который в данный момент исполняет роль, или на том DC, на который требуется эту роль переместить. Первоначальным держателем роли считается DC, созданный первым в первом лесу.
Мастер схемы
Члены группы Schema Admins могут перемещать роль мастера схемы с любого DC в лесу. Все остальные, прежде чем приступать к выполнению задачи, должны добавить себя в группу Schema Admins. Для работы с этой ролью нужно установить оснастку MMC Active Directory Schema. Для загрузки и регистрации данной оснастки следует открыть командную строку и ввести:
regsvr32 schmmgmt.dll
Система выведет на экран сообщение об успешном выполнении команды. Нужно щелкнуть OK и закрыть командную строку, а затем загрузить оснастку в консоли MMC и переместить роль. Для этого требуется:
- Выбрать Choose Start, Run и ввести
mmc /a
Щелкнуть OK, чтобы открыть консоль в авторском режиме. - В меню Console (для Windows Server 2003) или в меню File (для Windows 2000 Server) выбрать пункт Add/Remove.
- Щелкнуть Add, чтобы открыть окно Add Standalone Snap-in.
- Выбрать Active Directory Schema, щелкнуть Add, затем щелкнуть Close для возврата к диалоговому окну Add/Remove Snap-in.
- Щелкнуть OK для загрузки оснастки в панель консоли. Когда оснастка загрузится, объект в панели консоли выведет имя DC, выполняющего роль мастера схемы.
- Щелкнуть правой кнопкой по Active Directory Schema и выбрать из контекстного меню Change Domain Controller.
- Щелкнуть Specify Name и ввести имя DC, на который требуется переместить роль мастера схемы. Можно ввести netbios-имя (Windows автоматически применит имя Fully Qualified Domain Name - FQDN).
- Щелкнуть OK для возврата к консоли; имя нового сервера появляется как имя объекта Active Directory Schema.
- раз щелкнуть правой кнопкой объект Active Directory Schema и выбрать из контекстного меню пункт Operations Master, чтобы открыть диалоговое окно Change Schema Master.
- Щелкнуть Change. Если кнопка Change недоступна, значит, недостаточно полномочий для внесения таких изменений. В таком случае следует добавить себя в группу Schema Admins, завершить сеанс, зарегистрироваться снова, затем вернуться к диалоговому окну Change Schema Master и щелкнуть Change.
- Подтвердить сделанные изменения, нажать OK, чтобы закрыть окно сообщения об успешно выполненной операции и щелкнуть Close.
Мастер именования домена
Для того чтобы переместить роль мастера именования домена на другой DC, можно работать на текущем держателе роли или на DC, на который требуется переместить роль. Если используется DC, выполняющий в данный момент роль мастера именования домена, необходимо сделать следующее:
- В меню Administrative Tools открыть оснастку MMC Active Directory Domains and Trusts.
- Щелкнуть правой кнопкой MMC Active Directory Domains and Trusts и выбрать в контекстном меню Connect to Domain Controller, чтобы открыть диалоговое окно Connect to Domain Controller. Для перемещения роли на DC в другом домене следует щелкнуть Browse, затем выбрать домен.
- Ввести имя назначаемого DC или выбрать имя из списка DC.
- Щелкнуть OK.
- Снова щелкнуть правой кнопкой Active Directory Domains and Trusts и выбрать в меню Operations Master, чтобы открыть диалоговое окно Change Operations Master.
- Щелкнуть Change для перемещения роли на новый DC.
- Подтвердить сделанные изменения, нажать OK, чтобы закрыть окно с сообщением об успешно выполненной операции, и щелкнуть Close.
Если используется тот DC, на который необходимо переместить роль, для перемещения роли требуется выполнить меньше шагов:
- Открыть оснастку Active Directory Domains and Trusts в меню Administrative Tools.
- Щелкнуть правой кнопкой Active Directory Domains and Trusts и выбрать в меню Operations Master.
- В диалоговом окне Change Operations Manager появляется имя текущего контроллера - мастера схемы; система предполагает, что нужно переместить роль на текущий DC. Следует щелкнуть Change.
- Подтвердить сделанные изменения, нажать OK, чтобы закрыть окно с сообщением об успешно выполненной операции, затем щелкнуть Close.
RID-мастер, эмулятор PDC и мастер инфраструктуры
Роли RID-мастера, эмулятора PDC и мастера инфраструктуры перемещаются одинаково. Для перемещения одной из этих доменных ролей, используя текущий исполнитель роли, нужно выполнить следующие шаги:
- Открыть оснастку Active Directory Users and Computers.
- Щелкнуть правой кнопкой Active Directory Users and Computers и выбрать Connect to Domain Controller.
- Ввести имя назначаемого DC или выбрать назначаемый контроллер из списка доступных DC.
- Щелкнуть OK.
- Снова щелкнуть правой кнопкой Active Directory Users and Computers и выбрать All Tasks, Operations Master.
- В диалоговом окне Operations Master щелкнуть подходящую вкладку (RID, PDC или Infrastructure).
- Щелкнуть Change.
- Подтвердить сделанные изменения, нажать OK, чтобы закрыть окно с сообщением об успешно завершенной операции, затем щелкнуть Close.
Если работа выполняется на DC, который должен принять на себя функции какой-либо доменной роли, для перемещения роли от DC, выполняющего роль в данный момент, нужно сделать следующее:
- Открыть оснастку Active Directory Users and Computers.
- Щелкнуть правой кнопкой Active Directory Users and Computers и выбрать All Tasks, Operations Master.
- В диалоговом окне Operations Master щелкнуть подходящую вкладку (RID, PDC или Infrastructure).
- Щелкнуть Change.
- Подтвердить сделанные изменения, нажать OK, чтобы закрыть окно с сообщением об успешно выполненной операции, и щелкнуть Close.