Клонування віртуального контролера домену в Windows Server 2012

Однією із стратегічних цілей, яку переслідує Microsoft в своїх останніх продуктах - віртуалізація всього, що тільки можливо, що є природним вимогам для тотальної міграції в хмари. Спеціально для цього, в нових версіях Hyper-V і Active Directory, які виходять в складі нової серверної ОС Windows Server 2012, був введений ряд істотних поліпшень і доповнень. Наприклад, Microsoft повідомляє про те, що тепер у віртуальній машині Hyper-V можна запускати навіть високонавантажені сервера SQL. Крім того Microsoft нарешті реалізувало можливість створювати повноцінні віртуальні контролери домену.

Якщо ви пам'ятаєте, в Windows Server 2008 R2 існували такі проблеми з виртуализацией контролерів домену Active Directory:

  • Не можна створювати снапшот віртуального контролера домену (якщо бути більш точним снапшот створити можна, але сенсу це не має)
  • Віртуальний DC можна клонувати
  • Неможлива онлайн міграція V2V контролера також
  • Відновлення віртуального DC засобами гипервизора неможливо
  • Для роботи кластера Windows Server 2008 R2 потрібна фізична контролер домену

Більшість з цих проблем пов'язано з роботою механізму USN (update sequence numbers). Коротенько нагадаємо, в чому ж була заковика. Для відстеження оновлень між партнерами по реплікації в лісі Active Directory використовуються ідентифікатори USN. За допомогою USN і ID виклику будь-контролер домену однозначно визначає, коли потрібно прийняти і застосувати зміни в AD від партнерів по реплікації, а коли переслати свої зміни. За допомогою цього механізму забезпечується несуперечність і актуальність бази AD.

У тому випадку якщо створити снапшот віртуального контролера домену, а потім відновити сервер з нього, то ми отримаємо контролер домену із застарілим USN. В результаті, зміни на такому контролері НЕ реплікуються на інші сервера в лісі, тому що партнери по реплікації вважають, що їх копія бази Active Directory актуальна. У разом це може привести до проблем невідповідності паролів, суперечливим значенням атрибутів і т.д.

У Windows Server 2012 контролери домену тепер можна віртуалізованних і працювати з ними так само, як з будь-якої іншої віртуальної машиною (можна робити снапшоти, клонувати DC і т.д.).

Даний функціонал ґрунтується на новій функції в Windows Server 2012 під назвою VM-GenerationID. На даний момент ця функція підтримується тільки в гіпервізора Hyper-V, але Microsoft рекомендує і іншим виробникам платформ віртуалізації інтегрувати цю функцію (зокрема VMware вже заявила про підтримку технології в наступній версії VSphere).

VM-Generation ID є функцією гипервизора і генерується їм при клонуванні і чи створенні снапшотов контролера домену. VM-Generation ID являє собою унікальний 128 бітний ідентифікатор, який доступний додатків через драйвер Windows Server 2012. Контролер домену зберігає значення VM-Generation ID в нерепліціруемом атрибуті бази Active Directory. І перед застосуванням змін до бази Active Directory, контролер домену порівнює значення VM-Generation ID в своїй базі AD зі значенням, отриманим від гипервизора через драйвер Windows Server 2012. Якщо значення відрізняються, здійснюється скид параметрів invocation ID і анулювання RID. Таким чином контролер домену визначає, що застосований снапшот або контролер домену клонований, і актуалізує свою базу відповідно до іншими контролерами домену AD.

Як клонувати віртуальний контролер домену

Підготовка до клонування DC

  • Потрібно сервер Windows Server 2012 з роллю Hyper-V (ймовірно, в майбутньому і інші Гіпервізор будуть підтримувати VM-GenerationID)
  • Встановлений контролер домена на Windows Server 2012 (фізичний або віртуальний) з роллю PDC. Знайти сервер з роллю PDC можна за допомогою команди:
    Get-ADComputer (Get-ADDomainController -Discover -Service "PrimaryDC"). Name -Property operatingsystemversion | fl
  • Віртуальний контролер домену з ОС Windows Server 2012 (НЕ PDC), розгорнутий на сервері Windows Server 2012 Hyper-V server. Це той самий контролер домену ... який ми будемо клонувати (нехай він буде називатися VirtualDC1).

Щоб контролер домену можна було клонувати, його потрібно додати до групи Cloneable Domain Controllers. Зробити це можна за допомогою консолі Active Directory Users and Computers, панелі управління Active Directory Administrative Center або ж команди PowerShell.

Команда PowerShell буде виглядати так:

Add-ADGroupMember -Identity "CN = Cloneable Domain Controllers, CN = Users, DC = winitpro, DC = ru" -Member "CN = VirtualDC1, OU = Domain Controllers, DC = winitpro, DC = ru"

На початковому контролері домену (VirtualDC1) запустимо команду New-ADDCCloneConfigFile , за допомогою якої налаштовуються IP адреса і ім'я нового віртуального контролера домену (клону). Нехай це буде VirtualDC2.

New-ADDCCloneConfigFile -Static -IPv4Address "10.2.2.2" -IPv4DNSResolver "10.2.2.1" -IPv4SubnetMask "255.255.0.0" -CloneComputerName "VirtualDC2" -IPv4DefaultGateway "10.2.0.1" -SiteName "Default-First-Site-Name"

Примітка: в даному випадку новий контролер домену буде знаходиться в цьому ж сайті. Більш докладно про інших параметрах клонування можна прочитати на TechNet-е).

Після цього з графічного GUI Hyper-V Manager запускаємо імпорт віртуальної машини, вибравши в якості параметра опцію Copy the virtual machine (create a new unique ID).

Після закінчення імпорту перейменуємо віртуальну машину в VirtualDC2 і запустимо її. Після її завантаження запуститися процедура клонування і через кілька миттєвостей в вашій мережі з'явиться новий віртуальний контролер домену.