Už jsem tu psal několikrát (tady a tady) o obnově řadičů domény a s tím souvisejícím GenerationId, pokud domain controller běží ve virtuálním počítači. Od Windows 2012 Hyper-V a pokud váš konkrétní virtuální DC je také alespoň Windows 2012, údajně ho "můžete bezpečně obnovit" z virtualizačního snapshotu (neboli dnes checkpointu).
Jak za jízdy (já si to nazývám live-snapshot), tak i z vypnutého snapshotu (offline-snapshot).
Podívejme se, jak to celé funguje a sami zvažte, jestli je dobrý nápad na to spoléhat.
GenerationId a jeho infrastruktura
Je to jednoduché. Ve virtuálkách, které mají nainstalovanou a vůbec správnou verzi integračních komponent (Hyper-V integration services) existuje ovladač jádra gencounter.sys (název v device manageru je Microsoft Hyper-V Generation Counter).
Tento driver se zavádí v režimu Manual. To znamená, že ho spouští něco jiného, nejspíš během svého vlastního startu.
Active Directory domain controller (ADDS DC) ve verzi Windows 2012 a novější se prostě tohoto driveru zeptá pokaždé, když chce dělat nějakou replikaci, nebo možná i někdy častěji, když je k tomu nějaký důvod. Zeptá se na aktuální GenerationId a zapíše si ho do nereplikovaného atributu msDS-GenerationID, který má ve své LDAP databázi na svém computer objektu (přímo na účtu počítače, obvykle v OU=Domain Controllers).
Pokud se GenerationId od posledně změnilo, rovnou provede opravu InvocationId a stane se novou instací LDAP databáze.
Smutná fakta
Pokud ten ovladač gencounter.sys z nějakého důvodu nenaběhne, prostě se vůbec nic nestane! DC vám vůbec nic nezaloguje, normálně naběhne, ale když potom obnovíte snapshot, tak se to prostě jenom nedozví, a normálně replikuje, jako by se nechumelilo. Žádný error v žádném logu. Ani v System logu, nikde.
Můžete to jednoduše vyzkoušet tak, že v registrech v HKLM\SYSTEM\CurrentControlSet\Services\gencounter změníte hodnotu Start = 4, tedy na Disabled a restartujete.
Ano, tohle byste normálně neudělali. Ale jakou máte tedy jistotu, že ten ovladač skutečně běží? Co když prostě jenom nenaběhne kvůli málo paměti? Kvůli nějakému timeoutu při restartu, nebo to prostě spadlo kvůli kdovíjaké chybě?
Spoléhat se na to podle mě nejde. Takže jako jsem říkal už předtím, obnovovat snapshot DC je nebezpečná hra s ohněm.