Point de montage d’une base de données Active Directory avec des snapshot (Instantané)

13 01 2009

Windows 2008 amène sont lot de nouveauté, parmi celle qui concerne le service d’annuaire, il y a les snapshot de base Active Directory.

Windows 2008 apporte un nouvel outil complémentaire, DSAMAIN, à ntdsutil.exe déjà présent dans les versions précédentes de Windows et amélioré dans Windows 2008. Cet outil permet de créer des points de montage d’une base Active Directory à partir d’un cliché instantané ou d’une sauvegarde.

Cela apporte donc une amélioration des processus de récupération, mis à disposition des administrateurs pour la maintenance de leurs contrôleurs de domaine. L’avantage est surtout qu’il n’est plus nécessaire de restaurer plusieurs sauvegarde pour visualiser les données qui était présentes dans la base au moment de la sauvegarde. Cet outil utilise le principe des VSS de Microsoft.

Pour plus d’information sur les VSS Microsoft: Le site MSDN – Shadow Copies and Shadow Copy Sets

Voyons plus en détails comment le mettre en œuvre. Commençons par créer le cliché… lancez:

ntdsutil –> snapshot –> Activate Instance NTDS –> Create

create

Ensuite continuons par monter le cliché dans un dossier du système de fichiers.

mount {GUID_Cliché}

mount

Votre instantané vient d’être monté dans le dossier spécifié:

C:\$SNAP_200805251520_VOLUMEC$\ (pour l’exemple ci-dessus)

cdisk

Il ne vous reste plus qu’a lancer l’outil dsamain pour accéder à votre instantané de base Active Directory.

Syntaxe de DSAMAIN:

dsamain /dbpath <filepath> [/logpath <path>] [/adlds] /ldapPort <number> 
[/sslPort <number>] [/gcport <number>] [/gcSslport <number>] [/allowUpgrade] 
[/allowNonAdminAccess]
Pour plus de détails sur la syntaxe de DSAMAIN, visitez le site TECHNET de Microsoft à l’URL suivante:
Technet - Syntaxe de Dsamain
Lancez dsamain pour monter votre instantanée sur un port d’écoute

dsamain

Dans l’exemple ci-dessus, je monte mon instantané qui se trouve à l’emplacement suivant  C:\$SNAP_200805251520_VOLUMEC$\NewBaseAD\ntds.dit sur les ports d’écoute 51395 pour LDAP, 51396 pour LDAP SSL, 51397 pour le port du catalogue global et 51398 pour le port catalogue Global SSL.

 dsamain_result

Utilisez, ensuite l’outil LDP.EXE pour vous connecter à l’instantané que vous venez d’activer :

ldp_connect

ldp_namespace

 ldp_viewnamespace

Voila, pour continuer vous pouvez naviguer dans votre instantané de base Active Directory, visualiser les objets, leurs attributs….

N’oubliez pas par la suite de supprimer vos instantanés du système de fichiers:

ntdsutil –> snapshot –> delete {GUID_Snapshot}

delete_snapshot

vous pouvez regarder cet article en vidéo ci-dessous, j’espère que cette démonstration vous plaira, alors n’hésitez pas à commenter….

(Cliquez sur l’image pour lancer la visualisation – Attention 7 Mo)

Lancez la vidéo





Gestion des bases de données des contrôleurs de domaine Active Directory

13 01 2009

La gestion des bases de données Active Directory sur les contrôleurs de domaine est une tâche d’administration essentielle, qui vous permet de maintenir sur le long terme le bon fonctionnement de ceux-ci.

Les services de domaine Active Directory possèdent leur propres moteurs de base de données de type ESE (Extensible Storage Engine), introduit par Exchange Serveur, il gère le stockage de tous les objets du service d’annuaire dans la base de données.

C’est une base de données orienté objets, chaque objet occupe une position unique dans la hiérarchie de l’espace de nom.

Le moteur ESE utilise des transactions, au même sens que dans SQL serveur, et utilise des fichiers journaux pour assurer l’intégrité de la base. Active Directory.

Les fichiers utilisés par Active Directory

  • NTDS.DIT (Correspond à la base elle même)
  • Edb*.log (Correspond au journaux de transactions)
  • Edb.chk (Fichier de point de contrôle, qui permet de suivre les données écrites dans la base)
  • edbres0001.jrs – edbres0002.jrs (Fichier de réservation d’espace disque pour les transactions d’une taille de 10 Mo chacun) (Res1.log et Res2.log sous Windows 2000 et 2003)

Par défaut tous ces fichiers sont placés dans: %systemroot%\NTDS

Modification de la base de données des services d’annuaire

le processus de modification des données comprend six étapes:

  1. La transaction est lancée: Un objet vient d’être modifié (par exemple)
  2. Le moteur ESE écrit la modification dans le tampon des transactions (La mise en mémoire cache améliore les performances des transactions)
  3. Le moteur ESE écrit la transaction dans le fichier Edb.log
  4. Le moteur écrit dans la base de données NTDS.DIT
  5. Le moteur ESE valide la transaction (Compare le fichier Log et les données dans la base NTDS.DIT)
  6. Le moteur ESE met à jour le fichier de vérification de point de contrôle Edb.chk

Les fichiers LOG du moteur ESE Active Directory

Le service d’annuaire utilisent la fonctionnalité d’enregistrement circulaire dans les logs. Chaque fichier de log peut atteindre une taille maxi de 10 Mo par défaut, avant que le moteur ESE ne renomme le log en cours de manière edbnnnnn.log, ou nnnnn correspond à l’ordre chronologique de création, et récrée un nouveau fichier edb.log vide.

D’autres services Microsoft utilisent également le même principe de modèle transactionnel:

  • Exchange Server (Exchange Serveur 2007 –> Fichier log limité à 1 Mo par défaut)
  • SQL server

Points clés

La gestion de la base du service d’annuaire se fait à travers l’outil en ligne de commande NTDSUTIL.EXE.

Grace à cet outil, vous pouvez gérer les principales tâches de maintenance de vos bases AD, qui ne peuvent pas être effectué en interface graphique utilisateur (GUI). NTDSUTIL utilise des contexte à la manière de NETSH.

NTDSUTIL 

Utilisez NTDSUTIL pour:

  • Exécuter la maintenance courante de vos bases AD
  • Défragmenter la base AD
  • Déplacer la base AD
  • Déplacer les fichiers de log
  • Créer un snapshot (Cliché instantané) de la base AD sur un contrôleur de domaine
  • Monter un snapshot d’une base AD
  • Gérer les opérations à rôle unique
  • Configurer le port LDAP d’une instance AD
  • Configurer le port LDAP SSL d’une instance AD
  • Supprimer les métadonnées  laissé par un contrôleur de domaine qui n’existerait plus
  • Changer le mot de passe du mode ‘Restauration du service d’annuaire’

etc…. Voila une partie de la liste des possibilités des opérations réalisables avec l’outil NTDSUTIL.EXE.

Déplacement de la base de données AD

En cas d’espace disque devenant insuffisant ou pour augmenter les performances de vos DC (Domain Controler), vous pouvez modifier l’emplacement de stockage de la base AD sur votre DC.

Step by step

Arrêter les services de domaine Active Directory

ServicesAD

Acceptez l’avertissement

Avertissement

Ouvrez une Invite de commandes et lancez NTDSUTIL

Vous devez activez l’instance NTDS, avant de pouvoir toucher aux fichiers de la base NTDS

lancez la commande: Activate Instance NTDS

activateInstanceAD

Entrez ensuite dans le contexte de gestion des fichiers: Files

Files

deux commandes sont à présent à notre disposition pour déplacer soit la base, soit les fichiers logs:

Base: Move DB to …

Logs: Move logs to ….

maintenant pour déplacer, la base, tapez: Move DB to c:\BaseAD (exemple pour moi, spécifiez votre propre chemin pour l’emplacement de votre base)

MoveDB

Voilà, votre base vient d’être déplacé vers le répertoire que vous avez spécifié plus haut. n’oubliez pas de redémarrer les services que vous avez arrêter plus avant.

Déplacement des fichiers LOGS

Les étapes de déplacements des fichiers log restent identiques au déplacement de la base, seul la commande utilisée est différente:

tapez : Move logs to  c:\LogsAD (exemple pour moi, spécifiez votre propre chemin pour le stockage de vos fichiers logs)

MoveLogs

Défragmentation de la base Active Directory

Au fil du temps, la fragmentation de la base de données Active Directory impact les performances de votre contrôleur de domaine. Vous créez, supprimez des objets qui laissent des ‘trous’ dans les données de la base. Ainsi, le système doit parcourir la base de données pour y retrouver les enregistrements, et ce, à chaque fois que cette dernière est ouverte.

les conditions qui pourrait provoquer la nécéssité d’une défragmentation hors-ligne peuvent-être multiple, tels que par exemple:

  • Après avoir supprimé un Catalogue Global d’un contrôleur de domaine
  • Suppression importante d’objets
  • Suppression des données DNS intégrées à Active Directory

Pour surmonter les problèmes lié à la fragmentation, Active Directory fait de la défragmentation en ligne (Toutes les 12 heurs par défaut), mais ce type de défragmentation ne réduit pas la taille de la base et ne réécrit pas les données dans des secteurs d’espace contigües.

la seul méthode qui permettent de réduire la taille et restructurer les données dans des secteurs d’ espaces contigües, est la défragmentation hors-ligne.

Toujours dans le contexte Files de NTDSUTIL, tapez:

Compact to c:\CompactAD (exemple pour moi, spécifiez votre propre chemin pour le stockage de votre base AD temporaire)

compactAD

ATTENTION: La base qui vient d’être créé dans le répertoire spécifié doit remplacer la base NTDS.DIT original dans son emplacement de stockage d’origine. Les fichiers *.log doivent être supprimés, le moteur recréera ces fichiers au redémarrage du service.

Copier la base NTDS.DIT compacté vers votre emplacement de stockage de votre base Active Directory.

copy c:\CompactAD\NTDS.DIT c:\BaseAD\NTDS.DIT /Y

copyad

del c:\LogsAD\*.log

dellogsAD

Active Directory et le registre Windows

Active Directory stocke ses données de configuration dans le registre windows à l’emplacement suivant:

HKLM\System\CurrentControlSet\Services\NTDS\Parameters

Stocke les paramètres de configuration du services NTDS

regeditParameters

HKLM\System\CurrentControlSet\Services\NTDS\Diagnostics

Stocke les données liées aux niveaux de diagnostiques du service NTDS, chaque entrée supporte une valeur allant de 0 (Pas de journalisation) à 5 (Journalisation élevée)

regeditdiagnostics

Je vous conseille de jeter un coup d’œil sur le site Technet pour Windows Server:

Site Microsoft Technet – Windows Serveur