Windows - Active Directory replikáció

Az Active Directory adatbázisát nem csak egy, hanem több kiszolgáló is képes tárolni, megosztva a feladatokat és fenntartva egy vagy több biztonsági másolatot. A replikációs folyamat gondoskodik ennek kivitelezéséről. Cikkünkben bemutatjuk hogyan. Veszélyes lehet csupán egy kiszolgálón tárolni az Active Directory adatbázisát. Nézzünk meg két végletes eshetőséget, hogy miért:

Tegyük fel, hogy kevés és könnyen reprodukálható adatokat tartalmaz. Ha közbejön egy rendszerösszeomlás (pl. tönkremegy az adatbázist is tároló merevlemez) a hiba elhárítása után, nagy valószínűséggel újra kell telepíteni az operációs rendszert. Ez időbe telik és az üzemkiesés alatt a felhasználók nem tudják elérni a címtárat, nem tudnak bejelentkezni.

A másik lehetőség, ha sok adatot tárol a címtár, ezek nem reprodukálhatók (vagy csak az utolsó biztonsági másolatig) és fontos a folyamatos üzemelés, nem lehet kiesés. Rendszerösszeomlásnál ebben az esetben úgymond "megáll az élet".

Mindkét esetben a több helyen, több példányban tárolt információ jelentené a megoldást. Az a lehetőség, hogy egy kiszolgáló kiesését ne lehessen - vagy csak kismértékben - észrevenni. Figyelembe véve egy Windows 2000 Server telepítésének idejét (kb. 30-90 perc hardvertől függően) az első esetben is gondot okozhat a hálózat "hiánya". Míg a második eshetőségnél beláthatatlanok lehetnek a következmények (pl. tőzsde-szerver). Az Active Directory működési folyamataiba beépítésre került egy mechanizmus, amely gondoskodik az adatbázis átmásolásáról (replikálásáról) egy másik kiszolgálóra. Bármelyik kiesésekor a megmaradt(ak) képesek helyettesíteni, átvenni a szerepét. Figyelembe véve, hogy nagy - akár több 10 MB-os - adatmozgatásról is szó lehet, a fejlesztők ezt úgy oldották meg a túlzott hálózati terhelés elkerülése végett, hogy a teljes adatbázis csak egy új kiszolgáló üzembe helyezésekor másolódik át, ezt követően pedig csak az előzőhöz viszonyított különbségek. Ez is, ha lehetséges műveletek leírásával: például egy felhasználó létrehozása után nem az ebből keletkezett bájtok kerülnek replikálásra, hanem csak egy parancs, hogy létre kell hozni egy felhasználót, a feladat befejezését a replikációs partner saját maga oldja meg.

A biztonságon túl az egész hálózat sebességére is jótékony hatást gyakorol a több helyen tárolt címtári adatbázis. Az ügyfélkéréseket kiszolgálva lehet, hogy egy szerver túlterhelődik, míg egy másik alig végez tényleges kiszolgálást. Ezt és hogy a várakozási idő csökkenjen, minden ügyfélkérést az a gép szolgál ki, amelyik a leggyorsabban képes ezt megoldani, nincs egyiknek sem megkülönböztetett feladata (kivéve a PDC-t, de más szempontból). Ezért, hogy a felhasználók melyik gépre jelentkeznek be és melyiktől kapják az adatokat, tisztán annak a függvénye, hogy melyik képes gyorsabban válaszolni az adott kérésekre. Felmerül egy kérdés ezzel kapcsolatban: Mi van, ha két különböző kiszolgálón módosul ugyanaz az adat? Hogy vezetődik ez át a többi kiszolgálóra? Ilyenkor replikációs konfliktus keletkezik, amelynek a feloldása úgy történik, hogy a rendszer megvizsgálja, hogy melyik műveletnek magasabb a verziószáma, ha ez megegyezik megnézi, hogy melyik történt előbb és azt teszi érvényessé. Bár gyakorlatilag nulla a valószínűsége, hogy az időpontok is megegyeznek, számolni kell ezzel a lehetőséggel is. Ekkor a nagyobb számértékű GUID (Globálisan egyedi azonosító) lesz az érvényes, ebben viszont semmilyen körülmények között nem lehet két egyforma.

Hogy alakítható ki a replikáció? Gyakorlatilag nincs semmi teendőnk, amikor a második tartományvezérlőt telepítjük a címtárba, automatikusan létrejön. Ellenőrizhető viszont, hogy a partnerek elérhetők-e. Kattintsunk a Felügyeleti eszközök > Active Directory - helyek és szolgáltatások > Sites > Alapértelmezett-elso-hely-neve > Servers (Administrative Tools > Active Directory Sites and Services > Sites > Default-First-Site-Name > Servers) mappára. Ebben találhatók a tartományvezérlők, válasszuk a partner gépet, kattintsunk rá, ekkor az ablak jobb oldalán megjelenik az "NTDS Settings" elem, amin kattintsunk a jobb oldali egérgombbal és a menüben válasszuk Az összes feladat > Replikáció topológiájának ellenőrzése (All Tasks > Check Replication Topology) pontot.

Ha minden rendben van "Az Active Directory befejezte a replikáció topológiájának ellenőrzését" ("Active Directory has checked the replication topology") felirat lesz látható.

Ellenkező esetben "A tartományvezérlőhöz kapcsolódás közben a következő hiba történt: …" ("The following error occured during the attempt to contact the domain controller: …) tartalmú ablak jelenik meg.

Ez eddig rendben is van, de ehhez tudni kell, hogy ki a replikációs partner. Ezt onnan tudjuk meg, hogy az előbbi MMC konzolon rákattintunk a szerver előtti + jelre, ezt követően az "NTDS Settings" elemre és a jobb oldalon megjelenő táblázat "Forráskiszolgáló" ("From Server") oszlopában megnézzük az ott szereplő gép nevét - amely egyben a replikációs partner szerepét is betölti.

A Windows nagyon logikusan felépítve, mindig az adott körülményekhez igazodva hozza létre a replikációs topológiát. A legtöbb esetben nem szükséges módosítani rajta, de ha mégis meg akarjuk tenni, lehetséges új partnerek felvétele. Az előbb említett ablakban válasszuk ki az "Új Active Directory kapcsolat" ("New Active Directory Connection") menüpontot, egy listában megjelennek az elérhető tartományvezérlők, itt kattintsunk az új partner nevére, majd az "OK" gombra, adjunk nevet a kapcsolatnak, kattintsunk ismét az "OK"-ra és már fel is vettük a listába.
Meglévő kapcsolat törléséhez kattintsunk a nevére a jobb oldali egérgombbal és lépjünk a "Törlés" ("Delete") sorra.

Mikor történik a replikáció? Alapértelmezésben 5 percenként és mindig a partnerek között. Ha történik egy adatmódosítás az egyik kiszolgálón, 5 perc elteltével kapja meg a partnere és annak a partneréhez újabb 5 perc elteltével jut el az információ. Tehát nem jelentkezik azonnal minden gépen a változás. A Windows úgy alakítja ki a topológiát, hogy ez maximum 15 perc legyen. Vannak speciális esetek, amikor azonnal replikálódnak az adatok, nem várják meg az 5 percet, ilyen például egy jelszó megváltoztatása. Mi magunk is beavatkozhatunk ebbe a folyamatba az azonnali replikáció kérésével. Ehhez még mindig az előbbi ablaknál maradva kattintsunk a kapcsolat nevére a jobb oldali egérgombbal és válasszuk a "Replikáció most" ("Replicate Now") menüpontot.

A replikáció során másolandó adatok az alábbi fő részekre oszthatók (példáinkban feltételezünk egy animare.zp nevű tartomány meglétét):
  • Sémapartíció (Schema partition) LDAP szintaxis szerinti elérési útja: CN=Schema, CN=Configuration, DC=animare, DC=zp
  • Konfigurációs partíció (Configuration partition) LDAP szintaxis szerinti elérési útja: CN=Configuration, DC=animare, DC=zp
  • Tartományi partíció (Domain partition) LDAP szintaxis szerinti elérési útja: DC=animare, DC=zp
Van még egy replikált adatbázis összetevő - a globális katalógus - amely alapértelmezésben csak a legelőször telepített kiszolgálón található meg. Mindegyik többszörözése elvégezhető külön is, erre alkalmas külső programmal. Az LDAP szintaxis használatának szintén külső programokból való elérésnél van jelentősége, ezzel lehet hivatkozni az adott összetevőre.