Domain Controller virtualisieren – ja oder nein?

    FSMO thumbnail © MicrosoftMit immer leistungs­fähiger Hardware, immer mehr Funktionen sowohl in der Virtualisierungs­software selbst als auch in Management-, Backup- und sonstigen unterstützenden Tools von Drittanbietern sollten eigentlich im Bereich der Server-Virtualisierung alle Signale auf Grün stehen. Es gibt aber einige Aspekte, die bei Domain Controllern (DCs) einer allzu vorschnellen Virtualisierung entgegenstehen.

    Das bedeutet nun keineswegs, dass dieser Server-Typ nicht oder wesentlich schlechter für sie Virtualisierung geeignet sei, aber eben, dass er gesondert betrachtet werden muss.

    Sicherheit

    Domain Controller sind das Rückgrat der Sicherheits­infra­struktur. Domänen-Adminis­tratoren agieren deshalb auf der höchsten Vertrauensebene, sowohl was ihr Können als auch was ihre Sicherheitseinstufung betrifft. Diese Rechte brauchen sie auch, etwa um einen ausgefallenen DC wieder aufsetzen zu können. Müssen sie dazu erst mit einem Virtualisierungsadministrator verhandeln, um Zugriff auf den physischen Host zu bekommen, bringt dies Komplexitäten mit sich.

    Auch umgekehrt entspricht es nicht jedem Falle der Sicherheitshierarchie, dass die Virtualisierungsadministratoren physischen Zugriff auf die DCs haben sollten, die ja nur eine Datei darstellen. Nebeneinanderlaufende und sich ab und zu überkreuzende Rollen von VM- und AD-Admins bergen deshalb Konfliktpotential und können zu Reibungsverlusten führen, ganz abgesehen von potentiellen Sicherheitsproblemen. Wo dies unvermeidbar ist, sollten zumindest Dinge sichergestellt sein wie die, virtualisierte DCs automatisch mit dem Host starten zu lassen, damit eine solch grundlegende Aktion nicht etwa zwei Administratoren erfordert.

    Ressourcenbedarf

    DCs sind bekannt für ihre hohe Auslastung von Speicherplatz, I/O und Hauptspeicher. Eines der sonstigen Hauptargumente für Virtualisierung trifft bei ihnen fast nie zu, nämlich das, dass die meisten Server nur ca. 20% ausgelastet seien. Mehrere DCs auf einem physischen Host zu bündeln ist deshalb nicht sinnvoll: Das hierfür unterstellte Szenario wäre mit einem physischen DC besser bedient, der dann Storage, I/O und RAM exklusiv verwenden könnte. Außerdem schafft es einem empfindlichen SPOF. DC-Virtualisierung ist deshalb nur sinnvoll, wenn jeweils ein DC mit wirklich nur teilweise ausgelasteten anderen Servern zusammen auf einem physischen Host untergebracht wird.

    Ob diese wirklich so wenig Ressourcen abzweigen, dass dies den DC-Betrieb nicht beeinträchtigt, und ob diese Aussage auch für eventuelle Burst-Zeiten aufrechterhalten werden kann, muss gründlich evaluiert werden – gründlicher als für andere Server-Typen. Dass sich am Ende jeder DC aus seinem eigenen physischen Host befindet, ist ein sehr wahrscheinliches Ergebnis.

    Administration, Backup und Restore

    Domain Controller dürfen weder per VHD-Kopie gesichert, von einer solchen wiederhergestellt, noch Snapshots von ihnen erstellt werden. Wesentliche Vorteile der Virtualisierung treffen deshalb auf DCs nicht zu – kein Hinderungsgrund, aber einer mehr abzuwägen, ob ein DC auf einer VM wirklich sinnvoller untergebracht ist als auf einem physischen Host. Virtuelle Domain Controller müssen deshalb so konfiguriert werden, dass die im Falle eines Host-Shutdowns ebenfalls heruntergefahren werden, und zwar ohne dass ihr Status gesichert wird.

    Diese Überlegungen machen die Virtualisierung von Domain Controllern nicht unmöglich oder erschweren sie über die Maßen. Sie stellen allerdings die Frage nach dem Sinn bei diesem Server-Typ strenger, als dies bei anderen der Fall wäre. Generell gilt, dass man mit virtualisierten DCs nichts tun sollte, was dieser selbst – und damit das Active Directory – nicht wie ein physisches Pendant registrieren könnte, und damit fallen sehr viele Virtualisierungs­tools und -Techniken für diese VM-Klasse weg.

    5 Kommentare

    Bild von Dukelmann
    Dukelmann sagt:
    6. Juli 2010 - 6:53

    Es gibt noch einige Punkte, die bei der Virtualisierung von Domain Controllern beachtet werden sollten:

    1. Zeitsynchronisierung

    Virtuelle Maschinen holen sich grundsätzlich die Uhrzeit vom Hostsystem.

    Befinden sich DC und Host im selben Subnetz, was in der Regel dem selben Active Directory Standort entspricht, so besteht die Gefahr, dass es zu einem Loop kommt.
    Der DC holt sich die Zeit vom Host und der Host holt sich die Zeit vom virtuellen DC an seinem Standort. Es findet somit keine Synchronisation mit einer externen Zeitquelle statt.

    Dieses Loop muss unbedingt unterbrochen werden indem der Host beispielweise einem anderen AD Standort mit einem physischen DC, der seine Zeit mit einer externen Quelle synchronisiert, zugewiesen wird.

    Alternativ könnte ein Infrastruktur Subnetz für Hosts und physische Domain Controller und ein Produktiv Subnetz für VMs und Client PCs in Betracht gezogen werden.

    2. Host Shutdown/Reboot, Windows Firewall und NLA

    Im Prinzip das gleiche Problem wie unter Punkt 1.

    Befinden sich beide Systeme am selben AD Standort, findet der Host beim Hochfahren keinen Domain Controller, da dieser als VM noch nicht zur Verfügung steht.

    Dadurch kann es zu Problemen mit der Network Location Awareness kommen. Im Extremfall wird die Firewallkonfiguration des Hosts auf Öffentlich stehen und sämtliche Ports sind geschlossen.
    Dadurch ist dann kein Remotezugriff auf den Host mehr möglich.

    3. Einsatzszenarien für virtuelle Domain Controller

    Beachtet mann die Fallstricke bei dem Betrieb virtueller Domain Controller, so können die Vorteile dennoch überwiegen.

    Ein virtueller Domain Controller kann durchaus eine geringe Zeitspanne im gespeicherten Zustand verbleiben. D.h. falls der Host nach einem Update neu gestartet werden muss, so kann der DC für diese Zeitspanne in den gespeicherten Zustand gehen.
    Die Wiederanlaufzeiten der VMs nach einem Host Neustart sollten dabei so gewählt werden, dass der virtuelle DC auf jeden Fall vor den anderen VMs angefahren wird und rechtzeitig zur Verfügung steht. GGf. sollte noch ein Puffer eingesetzt werden, der es dem virtuellen DC ermöglicht, seine AD Datenbank mit einem anderen DC zu synchronisieren, bevor die restlichen Systeme online gehen.

    Für mittlere und größere Zweigstellen, die mehrere Server parallel betreiben müssen, kann es technisch und wirtschaftlich sinnvoll sein, nur eine physische Maschine aufzustellen und die Server inclusive des Domain Controller als virtuelle Machinen bereit zustellen.
    Je nach Anforderung kann dabei auch ein virtueller schreibgeschützter Domain Controller zum Einsatz kommen.

    Das Übertragen von FSMO Rollen an einen virtuellen Domain Controller dürfte hingegen nicht sinnvoll sein.
    Auf Intrastrukturebene sollten mindestens zwei oder mehr physische Domain Controller für die FSMO Rollen bereitstehen.

    Bild von Andreas Kroschel
    6. Juli 2010 - 14:41

    Hallo Herr Dukelmann,

    das war ja nahezu ein zweiter Teil des Artikels, vielen Dank. Was halten Sie von dem Ansatz, Komplexität zu verringern, indem die Hosts für virtuelle DCs selbst keine Domänenmitglieder sind, bzw. eine eigene Domain erhalten?

    Bild von Dukelmann
    Dukelmann sagt:
    6. Juli 2010 - 19:20

    Hallo Herr Kroschel,

    die Hosts würde ich nur im äußersten Notfall als Arbeitsgruppen Server laufen lassen - z.Bsp. bei Hosts für virtuelle DMZ Server. Der administrative Mehraufwand im Vergleich zu einem verwalteten Host in der Domäne wäre mir zu groß. Da sind die paar Kleinigkeiten, die es zu beachten gilt, deutlich leichter umzusetzen.

    Eine eigene Domäne für die Hosts und gff. weitere Infrastruktursysteme innerhalb einer Gesamtstruktur ist natürlich der Idealzustand. Allerdings müssen dafür die personellen, technischen und auch finanziellen Vorraussetzungen gegeben sein.

    Die Ziellgruppe für die Problemstellung "virtuelle Domain Controller" dürfte eher der Mittelstand mit begrenzten Ressourcen sein.

    In großen Strukturen, bei dem Anspruch einer Hochverfügbarkeitslösung oder bei sicherheitsrelevanten Aufgabenstellungen wird man nicht um eine physische Trennung von Domain Controller und Hostsystem herum kommen.

    Bild von hdmn
    hdmn sagt:
    6. Juli 2010 - 14:26

    Vorab vielen Dank für den sehr interessanten Artikel.
    Das mit den USNs leuchtet mir ein. Was ich allerdings nicht nachvollziehen kann ist, dass die DC-VM heruntergefahren werden muss, und nicht im gespeicherten Zustand verbleiben darf!?
    Virtuelle Domain Controller müssen deshalb so konfiguriert werden, dass die im Falle eines Host-Shutdowns ebenfalls heruntergefahren werden, und zwar ohne dass ihr Status gesichert wird.

    Bild von Andreas Kroschel
    6. Juli 2010 - 14:54

    Die Voreinstellung ist beim Host-Shutdown ist, die VM per Snapshot zu sichern, wovon der DC allerdings nichts „weiß“. Auch wenn mein Vorredner meint, für eine geringe Zeitspanne sei das auch für einen vDC kein Problem – mir widerstrebt es. Warum einen Snapshot erstellen (lassen), wenn ich um dessen Schadenspotential weiß? Was, wenn eine geplante Downtime doch nicht so gering bleibt, wie gedacht, weil ein anderes Problem auftritt? Ich sehe hier den Vorteil gegenüber einem regulären automatischen Shutdown der VM nicht.