Doc24, Szablon dla tlumaczy


Rozdział 20

Sztuka szacowania rozmiarów Active Directory

Zależnie od rozmiarów i złożoności otoczenia sieciowego korporacji i liczby wąskich gardeł sieci WAN możemy obawiać się dodatkowego obciążenia, jakie wywoła Active Directory w istniejącej infrastrukturze serwerów i sieci komputerowej. No cóż, najlepszym sposobem na pokonanie strachu jest wiedza — którą Czytelnik będzie mógł zdobyć w bieżącym rozdziale. Rozdział ten pokaże od środka, czego oczekiwać od Active Directory pod względem rozmiarów bazy danych, oraz obciążenia kontrolerów domeny i wykazów globalnych, jak również dodatkowego obciążenia sieci powodowanego replikacjami. Jego lektura pozwoli oszacować sytuację instalacji w tych dwóch najważniejszych obszarach. Co ważniejsze, Czytelnik będzie w stanie wykorzystać tę wiedzę do rozwiązywania problemów i optymalizacji wydajności w tych żywotnych dziedzinach.

Osoby wdrażające Active Directory w sieciach rozległych czekają wartościowe informacje w dalszej części rozdziału, gdzie zamieściłem swoje dość rozległe doświadczenia z sieciami WAN. Proszę mi wierzyć iż można tam znaleźć kilka z trudem zdobytych informacji których, o ile wiem, Czytelnik nie znajdzie nigdzie indziej.

Pod sam koniec rozdziału znajdziemy krótki opis sposobów szacowania wymagań sprzętowych dla serwerów przeznaczonych na DC i GC. Wobec tego, po pomyślnym ukończeniu tego rozdziału Czytelnik powinien być w stanie odpowiedzieć na następujące pytania:

Bieżący rozdział nie omawia automatyzacji zapełniania katalogu danymi. Po takie informacje odsyłam do rozdziału 19., który zawiera podrozdział poświęcony masowemu wprowadzaniu danych do Active Directory. Rozdział bieżący nie obejmuje też testów pilotowego wdrożenia Active Directory. Etap planowania takich testów został omówiony do pewnego stopnia w dodatku A, podczas gdy rozdziały 17. i 18. zawierają mnóstwo porad dotyczących fazy implementacji. Aby znaleźć szczegółowe omówienie testowania pilotowego Czytelnik będzie musiał zwrócić się do książek o bardziej praktycznej orientacji.

Wnętrze Active Directory

Aby odświeżyć wiedzę o funkcjonowaniu Active Directory proszę przejrzeć podrozdział „Gdzie Active Directory mieści się w architekturze Windows 2000 Server” w rozdziale 4., gdzie zostało wyjaśnione (między innymi), iż Active Directory jest ulepszoną wersją --> aparatu [Author:AJ] bazy danych używanej w Microsoft Exchange Server, nazwanej Extensible Storage Engine (lub po prostu ESE) — a także, iż aparat bazy danych rezerwuje miejsce tylko na składowanie właściwości używanych w każdym obiekcie. Aby jednak zrozumieć bardziej szczegółowe właściwości Active Directory związane z rozmiarami bazy danych (a co za tym idzie, dysku twardego), musimy dokładnie wiedzieć, jak działa aparat bazy danych ESE — co przedstawia bieżący podrozdział.

Ponieważ baza danych ESE jest płaska (więc nie może bezpośrednio wyrażać hierarchicznej przestrzeni nazw, takiej jak Active Directory), Warstwa bazy danych (DB - DataBase Layer) udostępnia abstrakcyjną hierarchię obiektów. Czynnikiem, łączącym nazwy wyróżniające (DN - Distinguished Name) i względne nazwy wyróżniające (RDN - Relative Distinguished Name) używane przez interfejs protokołu LDAP (Lightweight Directory Access Protocol) Active Directory z leżącymi poniżej wpisami w bazie danych ESE, jest globalnie unikatowy identyfikator GUID (Globally Unique Identifier), którego nie można zmienić po utworzeniu obiektu, przydzielany do każdego obiektu bazy danych.

Chociaż więc interfejs LDAP przedstawia obiekty za pomocą nazw DN i RDN, ich wartości są wewnętrznie przetwarzane na GUID każdego obiektu, do którego chcą się odnieść. To z kolei zapewnia, iż odsyłacz zawsze wskazuje na ten sam obiekt, nawet jeśli obiekt ten zostanie przemianowany lub przeniesiony. I ponownie LDAP automatycznie przekształca GUID z powrotem na nazwy DN, dzięki czemu klient LDAP odczytujący atrybuty otrzymuje nazwę wyróżniającą a nie GUID.

Uwaga

Gdyby system musiał zawsze zapisywać i porównywać nieporęczne identyfikatory GUID, identyfikacja obiektu w obrębie tabeli w bazie danych ESE trwałaby zbyt długo; wobec czego każdy obiekt jest również identyfikowany za pomocą znacznika nazwy wyróżniającej (DNT - Distinguished Name Tag). DNT jest czterobajtową wartością DWORD, przyrastającą przy tworzeniu nowego obiektu w magazynie, przez co reprezentuje wiersz bazy danych dla danego obiektu. Powiązanie nadrzędny-podrzędny każdego obiektu jest zapisane w postaci znacznika nazwy wyróżniającej obiektu nadrzędnego (PDNT - Parent Distinguished Name Tag), dzięki czemu rozwiązywanie powiązań nadrzędny-podrzędny jest zoptymalizowane — ponieważ DNT i PDNT są polami indeksowanymi bazy danych.

Baza ESE posiada dwie główne tablice:

Oprócz tych podstawowych tablic możemy jeszcze znaleźć tablicę schematu, będącą schematem Active Directory z definicjami obiektów i atrybutów oraz stosunkami pomiędzy nimi. Jednakże ani tablica schematu, ani tablica łączy nie jest tak naprawdę zbyt ważna pod względem rozmiarów bazy danych, ponieważ obie powinny być o wiele mniejsze od tablicy danych (która reprezentuje większość faktycznych informacji zapisanych w Active Directory). Ponieważ tablica danych we wszystkich rzeczywistych instalacjach jest o wiele większa od tablic łączy i schematu, na niej będzie skupiać się pozostała część tego podrozdziału.

Zapoznanie z tablicą danych

Chociaż tablica danych jest w rzeczywistości płaskim plikiem, można wyobrazić sobie, że zawiera wiersze (każdy z nich odpowiada egzemplarzowi obiektu, np. użytkownikowi) oraz kolumny (z których każda reprezentuje atrybut schematu, jak np. userPrincipalName). Tablica danych zawiera kolumnę (lub: pole) dla każdego atrybutu w schemacie. Każda kolumna może być jednego z poniższych typów:

Tablica danych domyślnie zawiera tylko stosunkowo niewielką liczbę kolumn stałych i dużą liczbę kolumn cechowanych. Kolumny stałe są zasadniczo używane wyłącznie do obsługi struktury katalogu i nie są przez to widoczne dla klientów, podczas gdy kolumny cechowane zawierają atrybuty widziane i potrzebne dla klientów. Jeśli więc odnosimy wrażenie, iż Active Directory jest żarłoczna na przestrzeń dyskową, możemy przynajmniej pocieszyć się, iż mogło być o wiele gorzej.

Każda z tych kolumn może dalej należeć do jednego z dwóch typów z uwagi na wymiary:

Tabela 20.1 przedstawia podzbiór pól rzeczywistej tablicy danych z jedną kolumną stałą (DNT) i czterema kolumnami cechowanymi, aby dać pojęcie, jak wygląda tablica danych. Proszę pamiętać, że wszystkie atrybuty zdefiniowane w schemacie (schemat Active Directory standardowo zawiera około 800 atrybutów) są wprowadzone do każdego wiersza, niezależnie od tego, czy są wykorzystane lub czy stosują się do obiektu w danym wierszu. Tablica danych nie zawiera reguł strukturalnych; do tego służy agent usługi katalogowej (DSA - Directory Service Agent) w połączeniu z tablicą schematu. Wobec tego tabela 20.1 pokazuje tylko maleńki podzbiór kolumn dostępnych w rzeczywistej tablicy danych.

Tabela 20.1

Tablica danych z czterema kolumnami cechowanymi i jedną stałą

Nagłówek kolumny

DNT

CN

objectclass

OS

userPassword

Wiersz x

3512

JDavies

Top# person# organizational Person# user

******

Wiersz y

4092

KJensen

Top# person# organizational Person# user

Windows 2000

********

Ponieważ preferowane są kolumny cechowane, dokładna ilość pamięci użytej do przechowywania obiektu w bazie danych zależy zarówno od liczby atrybutów, dla których wartości są ustawione, jak od rozmiarów tych wartości. Na przykład, jeśli weźmiemy dwa obiekty użytkowników o tych samych rozmiarach i długości, a następnie dodamy 20-znakowy opis do jednego z atrybutów dostępnych dla pierwszego użytkownika (typu łańcucha znaków Unicode), przestrzeń zajęta przez pierwszego użytkownika będzie o 40 bajtów większa od drugiego.

Uwaga

Obecny aparat bazy danych ESE nie pozwala rekordom rozciągać się na więcej niż jedną stronicę bazy danych, wobec czego każdy obiekt jest ograniczony do 8 kB. Jednakże niektórych wartości atrybutów ta granica nie dotyczy w pełni. Wartości długie, o zmiennej długości, mogą być składowane w innej stronicy niż rekord obiektu, pozostawiając za sobą tylko 9-bajtowy odsyłacz. W ten sposób obiekt z wszystkimi atrybutami może rozrosnąć się ponad limit 8 kB.

Jak działa baza danych

Jak już wspomniano, usługa Active Directory jest zaimplementowana na podstawie aparatu bazy danych ESE. ESE jest menedżerem tablic o indeksowanej sekwencyjnej metodzie dostępu (ISAM - indexed sequential access method). Wcześniejsze wersje ESE nosiły nazwę Jet i zostały wykorzystane w usłudze WINS, usłudze certyfikatów, FRS, Edytorze konfiguracji zabezpieczeń (SCE) i różnych innych składnikach systemu Windows 2000 Server.

Plik zawierający bazę danych ESE (a wobec tego bazę danych Active Directory) nosi nazwę ntds.dit i mieści się w katalogu, który został podany w Kreatorze instalacji usługi Active Directory (domyślnym ustawieniem jest folder WINNT\NTDS). ESE jest transakcyjnym systemem bazy danych, korzystającym z plików dziennika do obsługi semantyki odtwarzania transakcji, aby zapewnić dokonanie transakcji w bazie danych. Inaczej mówiąc, każda zmiana w bazie danych odbywa się jako pojedyncza operacja, tak że za każdym razem, gdy cokolwiek zostaje zmienione w bazie danych, cztery poniższe czynności zachodzą jako grupa (tzn. jeśli zawiedzie jedna, zawiodą wszystkie):

Uwaga

Po zapełnieniu bieżącego dziennika — to znaczy, gdy dziennik osiągnie ustaloną liczbę plików — należy zdecydować, czy system powinien utworzyć nowy plik dziennika (non-circular logging - rejestrowanie niecykliczne), czy zastąpić najstarszy plik dziennika (circular logging - rejestrowanie cykliczne). Domyślnie ustawione jest rejestrowanie niecykliczne. Aby to ustawienie zmienić, wystarczy zmodyfikować klucz Rejestru HKEY_Local_Machine\CurrentControlSet\NTDS\Parameters\CircularLogging z 0 na 1. Jeśli zdecydujemy się pozostać przy rejestrowaniu niecyklicznym, proszę pamiętać, iż zapisywane są wówczas wszystkie zmiany w bazie danych, które następnie nie zostaną usunięte w procesie porządkowania, zanim wszystkie wpisy nie zostaną zaimplementowane w bazie danych.

Pliki dziennika powinny mieć zawsze rozmiar 5MB — inny rozmiar najprawdopodobniej oznacza uszkodzenie pliku. Wszystkie pliki dziennika używane przez ESE łatwo jest zauważyć, ponieważ mają rozszerzenie .log.

Dlatego też w idealnych warunkach baza danych systemu (ntds.dit) oraz pliki dziennika (*.log) powinny mieścić się na osobnych napędach dyskowych. Jeśli rozdzielimy te odmienne typy plików, zauważymy polepszenie wydajności, zaś w przypadku poważnej awarii dysku odzyskiwanie będzie o wiele lepiej obsługiwane. Zysk wydajności będzie proporcjonalny do ilości zapisów w domenie Active Directory — jak niektórzy mogą pamiętać z Exchange Server 4 i 5, mającego takie same zalecenia projektowe. Aby zapobiec utracie danych spowodowanych uszkodzeniem twardego dysku, należy też optować za dyskami RAID na partycje zawierające system, bazę danych i pliki dziennika.

Mówiąc o wnętrzach baz danych, Czytelnik powinien też być zaznajomiony z podstawami --> czyszczenia pamięci[Author:AJ] (garbage collection, dosł. „zbieranie śmieci”). Czyszczenie pamięci jest dość prozaicznym określeniem odnoszącym się do faktu, iż Active Directory musi od czasu do czasu dokonać porządków samej siebie. Proces czyszczenia pamięci uruchamiany jest niezależnie w każdym DC (domyślnie co 12 godzin nieprzerwanej pracy), usuwając obiekty i pliki już niepotrzebne dla Active Directory. Mówiąc dokładniej, proces czyszczenia pamięci wykonuje następujące zadania: