Mit der Tombstone Lifetime (zu Deutsch Grabstein Lebenszeit) wird bestimmt, wie lange ein gelöschtes Objekt noch in der Active Directory-Datenbank (NTDS.dit) gespeichert wird. Wenn ein Objekt gelöscht wird, verschwindet es nicht sofort aus der AD-Datenbank. Stattdessen wird das Objekt als gelöscht markiert, in dem das Attribut is-Deleted auf True gesetzt wird. Des Weiteren werden die meisten Attribute entfernt und das Objekt wird wie folgt umbenannt:
CN=<alter RDN>\0ADEL:<Object-GUID>.


Nach dem umbenennen wird das Objekt in den versteckten Container Deleted Objects der entsprechenden Verzeichnispartition verschoben. Ab diesem Zeitpunkt wird das gelöschte Objekt als Tombstone (Grabstein) bezeichnet. Anschließend werden diese Änderungen auf alle anderen Domänencontroller (DC) repliziert. Erst wenn die Tombstone Lifetime (TSL) überschritten wurde, wird das Objekt endgültig aus der AD-Datenbank entfernt.


Dieser Prozess ist deshalb notwendig, damit sichergestellt ist das auch jeder DC bei einer aufwändigen (weltweiten) Replikationstopologie, von dieser Löschung informiert wird. Endgültig gelöscht wird das Objekt dann nach Ablauf der TSL von dem Garbage Collection Prozess, der standardmäßig auf allen Domänencontrollern (DC) alle 12 Stunden läuft. Diese Zeit kann zwar verändert werden, jedoch besteht in der Praxis i.d.R. kein Bedarf dies zu tun.


Weiterhin bestimmt die TSL auch, wann sich spätestens ein DC einmal mit seinen Replikationspartnern repliziert haben muss, ehe Replikationsprobleme entstehen.


 


Wann wird die Tombstone Lifetime festgelegt?


Die TSL wird mit dem Installieren des ersten DCs in einer Gesamtstruktur und zwar für alle Domänen festgelegt. Die TSL kann nicht pro Domäne konfiguriert werden. Der Wert der TSL kann aber jederzeit manuell verändert werden (wozu Organisations-Admins Rechte benötigt werden), was jedoch begründet sein sollte. Dabei spielt weder der Domänenfunktionsmodus, noch der Gesamtstrukturfunktionsmodus eine Rolle.


Der Active Directory-Installationsassistent DCPROMO erzeugt aus der Datei schema.ini die TSL für die Gesamtstruktur. Unter Windows 2000 sowie Windows Server 2003 befindet sich diese Datei im Verzeichnis %systemroot%\system32 und unter Windows Server 2008 im Verzeichnis
%systemroot%\winsxs\x86_microsoft-windows-d..rvices-domain-files_31bf3856ad364e35_6.0.6001.18000_none_9b0b0e3a43600e0c
Der DCPROMO-Assistent nutzt diese Datei als Vorlage und entnimmt daraus seine Angaben, um das Basisschema entsprechend dem Serverbetriebssystem zu erstellen.


Vor dem Heraufstufen des ersten DCs, kann man die TSL in der schema.ini kontrollieren. Der Eintrag in der Datei lautet: tombstoneLifetime=<Wert in Tagen>.


Die TSL beträgt unter:




  • Windows 2000 (mit allen SPs) = 60 Tage


  • Windows Server 2003 ohne SP = 60 Tage


  • Windows Server 2003 mit Service Pack 1 = 180 Tage


  • Windows Server 2003 R2 mit Service Pack 1, installiert mit beiden R2-CDs = 60 Tage


  • Windows Server 2003 R2 mit Service Pack 1, installiert nur mit der ersten R2-CD = 180 Tage


  • Windows Server 2003 mit Service Pack 2 = 180 Tage


  • Windows Server 2003 R2 mit Service Pack 2 = 180 Tage


  • Windows Server 2008 = 180 Tage



  • Windows Server 2008 R2 = 180 Tage

 



Überprüfen und Bearbeiten der Tombstone Lifetime


Kontrollieren kann man das Attribut tombstoneLifeTime mit Dsquery wie folgt. Der Befehl lautet:

Dsquery * “CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=Root-Domäne” -attr tombstoneLifetime


Falls kein Wert angezeigt wird, dann gilt der Standardwert von 60 Tagen. Ansonsten gilt der angezeigte Wert in Tagen.



Die TSL lässt sich auch mit ADSIEdit überprüfen und bearbeiten. Dazu gilt es, zuerst zum folgenden Container zu navigieren:

CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=Root-Domäne


Dort befindet sich in den Eigenschaften des Containers das Attribut tombstoneLifetime. Ist dort ein Wert gesetzt, beträgt die TSL den eingetragenen Wert in Tagen. Steht im Attribut als Wert hingegen <Not Set>, so beträgt die TSL den Standardwert von 60 Tagen.



Mit der AD-PowerShell kann man die TSL folgendermaßen überprüfen:

Get-ADObject -Identity “CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=Root-Domäne” -Properties tombstoneLifetime | Select tombstoneLifetime | FL



Mit diesem Befehl lässt sich die TSL in der AD-PowerShell bearbeiten:


Set-ADObject -Identity “CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=Domäne,DC=de” –Partition “CN=Configuration,DC=Domäne,DC=de” –Replace:@{“tombstoneLifetime” = Wert}




Hinweis: Das installieren eines Service Packs oder das Aktualisieren des Serverbetriebssystems verändert niemals den Wert der Tombstone Lifetime!



 


Auf was ist zu achten?




  • Die TSL darf keinen niedrigeren Wert enthalten, als die Replikation benötigt um alle DCs über einen Löschvorgang zu informieren. Ansonsten entfernt der Garbage Collection Prozess das gelöschte Objekt endgültig aus der AD-Datenbank, bevor alle Replikationspartner von der Löschung informiert wurden. Dies würde zu Inkonsistenzen in der AD-Datenbank führen.



  • Eine System State-Sicherung die älter als die TSL ist, darf nicht mehr verwendet werden. Die TSL gibt das maximale Alter einer Systemstatus-Sicherung an.

    Wird ein DC während der TSL mit einer Systemstatus-Sicherung die das Benutzerobjekt Yusuf enthält wiederhergestellt, nachdem das Objekt Yusuf gelöscht wurde, so würde der gelöschte Status von dem Objekt Yusuf auf den wiederhergestellten DC repliziert werden. Das Benutzerobjekt Yusuf wäre weiterhin nicht vorhanden, da die Wiederherstellung während der TSL durchgeführt wurde. Falls der DC nach der TSL wiederhergestellt werden würde, wäre das Benutzerobjekt Yusuf jedoch vorhanden. Denn auf den anderen DCs wäre das Objekt bereits aus der AD-Datenbank vom Garbage Collection Prozess entfernt worden. Das Benutzerkonto würde aber nur auf dem wiederhergestellten DC existieren. Dieser Zustand führt zu Inkonsistenzen in der AD-Datenbank und das Benutzerobjekt Yusuf wäre ein Lingering Object (herumlungerndes Objekt).


  • Ein DC darf nicht länger als die TSL offline sein. Wenn dies der Fall sein sollte, bekommt der nicht erreichbare DC von den mittlerweile gelöschten Objekten nichts mit und so kommt es dann zu Lingering Objects.

 



Welche Auswirkung hat das Erhöhen der Tombstone Lifetime?




  • Eine Systemstatus-Sicherung hat eine längere Nutzungsdauer.


  • Das Heraufstufen eines Servers durch die IFM-Funktion (Install from Media) zu einem DC hat durch das erhöhen der TSL, ebenfalls eine höhere Nutzungsdauer.


  • Ein DC kann länger offline bleiben und kann dadurch, nach einer längeren Offlinezeit wieder erfolgreich zur Domäne hinzugefügt werden.


  • Die gelöschten Objekte (Tombstones) bleiben länger auf den DCs erhalten und können dadurch ab Windows Server 2003, länger wiederhergestellt werden. Dadurch erhöht sich aber auch die Größe der AD-Datenbank.

 



Fazit: Die TSL sollte wenn möglich nicht verändert werden. Falls ein triftiger Grund besteht die TSL doch zu ändern, sollte der Wert nicht allzu groß gewählt werden.


 



Weitere Informationen:
The default tombstone lifetime (TSL) value remains at 60 days instead of increasing to 180 days in Windows Server 2003 R2
The Active Directory database garbage collection process

Comments are closed, but trackbacks and pingbacks are open.