370 likes | 513 Views
Replikacja – czyli podróż przez katalog tam i z powrotem. Tomasz Onyszko. Senior Consultant | Microsoft. O mnie. … przy klawiaturze od dobrych 18 lat, z tego ostatnie 9 zawodowo … grafomańsko prowadzę blog W2K.PL (jak i angielską wersję na stronach DirTeam.Com )
E N D
Replikacja – czyli podróż przez katalog tam i z powrotem Tomasz Onyszko Senior Consultant | Microsoft
O mnie ... • … przy klawiaturze od dobrych 18 lat, z tego ostatnie 9 zawodowo • … grafomańsko prowadzę blog W2K.PL (jak i angielską wersję na stronach DirTeam.Com) • … udzielam się czasami na wss.pl (5.5k+ ) i grupach Usenet • … w wolnychodpowyższegochwilachpracuję w Microsoft Consulting Services jako Senior Consultant (Identity & Access Management)
Agenda • Anatomia DC • Topologia replikacji • Mechanika raplikacji • Linked Value Replication (LVR) • Urgent replication • Replikacja haseł
DC jaki jest każdy widzi ... FQDN ... czyli po prostu nazwa DNS: MTSLHFDC01.W2K.PL DC GUID: objectGUID: 04b1beca-e875-4378-8fd2-59f7b98c13e8; Invocation ID: invocationId: 04b1beca-e875-4378-8fd2-59f7b98c13e8; Partycje katalogu: DN: DC=W2K, ...... DN:DC=Configuration, ....
Identyfikatory DC • DC GUID: • Wartość atrybutu objectGUID instancji obiektu NTDSDSA kontrolera • Identyfikator rejestrowany w ramach _msdcs • Rekord wymagany do poprawnej replikacji • Używany w ramach • Topologii replikacji generowanej przez KCC • High-Watermark Vector (HVM) • Niezmienny w okresie życia DC
Identyfikatory DC • Invocation ID • Wartość atrybut invocationID instancji obiektu NTDSDSA kontrolera • Domyślnie taki sam jak DC GUID • Zmieniany po: • Odtworzeniu bazy danych DC (poprawnym !!!) • Re-host partycji aplikacyjnej (+, -, +) • Wymuszoniu przez wpis w rejestrze • Poprzednie wartości przechowywane są w retiredReplDSASignatures
Naming Context (NC) • Kontekst nazewniczy (NC) • Partycja katalogu LDAP • Partycje w ramach bazy danych DIT • DIT == Directory Information Tree • Wyznaczają granice replikacji danych • Typy • Domeny • Konfiguracji • Schemat • Aplikacyjna • NDNC == Non-Domain Naming Context • Kontrolowany zakres replikacji
Metoda replikacji • Replikacja katalogu (Intra-site) == Notify & pull • Zmiany wprowadzone na DC1 • DC1 wysyła powiadomienie do partnerów replikacji (DC2) (notify) • W ramach lokacji: • Windows 2000: 5 minut (+ 30 sek) • Windows 2003 i późniejsze: 15 sekund (+ 5 sek) • DC2 żąda zmian (pull) • DC1 wysyła zmiany do DC1 • W przypadku replikacji Inter-site brak powiadmień (domyślnie) == Store & Forward • Replikacja wg ustalonego harmonogramu
Topologia replikacji • Topologia replikacji generowana jest przez KCC \ ISTG • KCC == Knowledge Consistancy Checker • ISTG == Inter-Site Topology Generator • Rola przydzielana per-site • Domyślnie pierwszy DC w lokacji, chyba że: • Zostanie zmieniony przez administratora: nTDSSiteSettings -> interSiteTopologyGenerator • Nastąpi failover w wyniku braku oznak życia obecnego ISTG • Topologia replikacji generowana w oparciu o obiekty lokacji (site), łączy (site links) i powiązanych z nimi kosztem (cost)
Topologia intra-site Powyżej 7 DC w ramach lokacji dodawane są dodatkowe obiekty połączeń (losowo) DC2 DC5 DC1 DC3 DC4 DC6 Tworzona według kolejności GUID DC
Change notification • Replikacja inter-site domyślnie podlega harmonogramowi • Możliwe jest włączenie powiadomień o zmianach: • Atrybut options: • Obiektu łącza (site link): 1 bit (0001) • Obiektu połączenia (connection): 3 bit (0100) • Wymaga wydajnego łącza WAN • Efektywnie replikacja jak w ramach jednej lokacji
Replikacja katalogu AD • Multimaster • Oparta na numerach sekwencyjnych USN • Dotyczy • Utworzenia \ zmian obiektów • Poza atrybutami „non-replicated” • Usunięcie obiektu • Poprzez obiekty „tombstone” • Poza obietami tymczasowymi • Originating update • Informacja o DC, na którym dokonana została zmiana • Replicated update • Wszystkie inne zmiany
USN • Update Sequence Number • 64-bitowy numer • Utrzymywany lokalnie dla każdego DC • Przypisany do każdej wykonanej transakcji • Niezależne od czasu • Do czasu • USN przypisane do obiektu • usnCreated, usnChanged • USN przypisane do atrybutu • Lokalny USN, originating USN
Jak to działa? • Dodanie nowego użytkownika: • DC: DC 1 • Lokalny USN: 1000 USN: 1000 DB GUID == InvocationID
Jak to działa? • Replikacja nowego użytkownika • DC: DC2 • Lokalny USN: 2500 USN: 2500 DB GUID == InvocationID
Jak to działa? • Zmiana atrybutu obiektu na DC2 USN: 2501 givenName: Jan givenName: Marian DB GUID == InvocationID
Jak to działa? • Replikacja zmiany z DC2 na DC1 USN: 1701 givenName: Jan givenName: Marian givenName: Marian DB GUID == InvocationID
High-Watermark vector • Utrzymywany per-DC, dla każdej z partycji katalogu • Zawiera informację o najwyższych numerach USN zreplikowanych od partnera replikacji • Przechowywany w atrybucie repsFrom obiektu partycji katalogu DC1 USN: 1500 DC4 USN: 2350 repadmin /showrepl /verbose DC2 USN: 34565 DC3 USN: 15432
Up-to-dateness vector • Utrzymywany per-DC, dla każdej partycji katalogu • Zawiera informację o najwyższych numerach originating USN dla „wszystkich” DC • Przechowywany w atrybucie replUpToDateVector obiektu partycji katalogu DC1 USN: 1000 DC4 USN: 1111 repadmin /showutdvec DC2 USN: 2501 DC3 USN: 12456
Up-to-dateness vector Up-to-date vector: DC1 DC1 USN: 1000 DC1 USN: 1001 DC4 USN: 1111 Up-to-date vector: DC4 DC2 USN: 2501 DC3 USN: 12456
Replikacja wielowartości • Replikacja wielowartości (na przykładzie grup): • Użytkownik dodany do grupy na DC2 • W tym samym czasie dodany zostaje inny użytkownik na DC1 • Według standardowych reguł rozwiązywania konfliktów • Zachowana zostaje ostatnia zmiana • Zmiany z DC2 zostają utracone Jan Jan Borys Borys Tomek Tomek Tomek @ 2:14 Czarek @2:13 DC2 DC1 Replikacja danych + rozwiązanie konfliktu
Linked Value Replication • Replikacja wielowartości z użyciem LVR: • Użytkownicy dodani na różnych DC w tym samym czasie • Każda z wartości posiada własne metadane replikacji • ->BRAK KONFLIKTU DANYCH • Usuwa ograniczenie do 5 tys członków w grupie Jan Jan Borys Borys Tomek Czarek Tomek @ 2:14 Czarek @2:13 DC2 DC1 Tomek Replikacja danychKażda z wartości to osobna zmiana Czarek repadmin /showvalue <DC> <object DN>
Urgent replication • „Pilna” replikacja danych • Wywoływana przez SAM lub LSA, nigdy przez zmiany z użyciem LDAP • Wyzwalana w wypadku: • Zmiany hasła LSA • Replikacji informacji o zablokowaniu konta (lockout) • Zresetowaniu hasła użytkownika • Wymuszenie wygaśnięcia hasła konta użytkownika • Zmiana właściciela roli RID Master • Zmiana wartości atrybutu userAccountControl • Pilna oznacza: • Wymuszenie natychmiastowe cykly replikacji w ramach lokacji • Ustawienie flagi „urgent” dla powiadomienia o zmianach
Replikacja hasła • Użytkownik zmienia hasło • Domyślnie hasło jest przekazywane do PDC Emulator • -> bezpośrednie wywołanie RPC • -> „best effort”, czyli nie ma gwarancji dostarczenia hasła do PDCE • AvoidPDConWAN (rejestr) • -> Standardowa replikacja danych Zmiana hasła Bezpośrednie wywołanie RPC Replikacja danych katalogu DC1 PDC
PDC chaining • Administrator resetuje hasło \ zmiana na innym DC • Użytkownik loguje się • -> błąd hasła • DC przekazuje hasło do PDC Emulator • -> Poprawnie zweryfikowane hasło • PDC Emulator inicjuję replikację danych • -> Replicate single object (repadmin.exe) • Użytkownik może się zalogować Logowanie Zmiana hasła DC1 PDC
Oceń moją sesję • Ankieta dostępnana stronie www.mts2008.pl • Dodatkowe komentarze mile widziane: • E-mail: t.onyszko@w2k.pl • Blog: http://www.w2k.pl