DFS: How to kill your DFS …

Nach einer leider längeren Pause melde ich mich hiermit wieder zurück. Neulich habe ich ein Szenario gesehen, welches – wenn nicht sofort die Problematik erkannt worden wäre in einem mittleren Desaster geendet wäre.

Konkret geht es um DFS-N und DFS-R und um den folgenden Gedanken-Gang eines Kunden.

Ausgangslage:

In einem DFS-Namespace sind insgesamt drei Server vorhanden, welche sich replizieren. Einer dieser drei Server soll abgeschaltet werden, besitzt aber noch File-Shares welche nicht im DFS vorhanden sind. Da eine Umstellung an den Clients vermieden werden soll, überlegt sich der Kunde die Shares in gleicher Weise auf einem der anderen Server nachzubilden. Die Anfragen der Clients werden durch einen CNAME im DNS auf den anderen Server weitergeleitet (auf dem die strickte Namensprüfung/DisableStrictNameChecking deaktiviert wurde.

Setzen des Werts DisableStrictNameChecking (DWORD) auf 1 unter HKLMSYSTEMCurrentControlSetServicesLanmanServerParameters

Der alte Server wird im DFS deaktiviert (als Target) und runter gefahren. Nach gut einer Woche ist der Kunde davon überzeugt, dass alles klappt und beschließt den Server aus dem DFS raus zu nehmen.

Das Desaster beginnt:

Dazu öffnet er das DFS-Management, und klickt unter Namespaces auf den Folder-Target (alten Server) welchen er entfernen möchte. Bestätigt verschiedene Meldungen und der Server wird entfernt. Da aber im DNS ein CNAME für den alten Server gesetzt wurde, entfernt das DFS-Management zwar den alten Server als Folder-Target, löscht aber hier zu den neuen Server (auf den der CNAME zeigt) aus dem Replication Set. Der alte bleibt stehen, und ein hinzufügen des “versehentlich” gelöschten neuen Servers klappt danach nicht mehr…. Der Replication-Set ist im Eimer!

Wie man es trotzdem machen kann:

Das passiert nur wenn man dem DFS-Management die Tasks in Summe überlässt. Mit dem folgenden Ablauf kann ohne die oben beschriebenen Probleme der alte Server gelöscht werden. Idealer Weise führt man dann die folgenden Schritt in einem Wartungsfenster durch.

  1. Löschen des CNAMES und warten bis die Änderung durch den DNS repliziert ist
  2. Löschen des alten Servers in den DFS Folder-Targets, OHNE dabei den Server aus den Replication-Sets entfernen zu lassen
  3. Löschen des alten Servers in den jeweiligen Replication-Sets / Memberships
  4. Nach dem vollständigen Löschen den CNAME wieder anlegen

Wäre dem Kunden nicht nach den ersten zwei Targets zufällig aufgefallen, dass die Replikation nicht mehr funktioniert, hätte er einiges an Arbeit vor sich gehabt, aber manchmal hat man ja auch Glück!

Enjoy it, b!