Wie migriere ich einen Fileserver? 5. Juni 2012

Wer einen Fileserver migrieren möchte, dem stehen mehrere Möglichkeiten zur Verfügung, diese Aufgabe zu lösen. Ich möchte in diesem Artikel eine relativ einfache Möglichkeit aufzeigen.

Migration mit Robocopy und Registryexport der Freigaben

Dieser Weg ist gerade in kleineren Umgebungen mein Favorit. Er ist relativ einfach umzusetzen und die Benutzer merken nicht, dass der Server umgestellt wurde. Ein weiterer Vorteil ist, dass “Robocopy” seit Windows Server 2008 in der Betriebssyteminstallation enthalten ist und nicht als Zusatztool heruntergeladen werden muss. Folgende Anforderungen soll die Migration erfüllen:

  • Übernahme aller NTFS Berechtigungen
  • Übernahme aller Freigaben
  • Nahtloser Übergang zu dem neuen System

In meiner Demoumgebung handelt es sich um zwei Fileserver FSSRV-ALT und FSSRV-NEU. Auf dem Server FSSRV-ALT existieren zwei Volumes. Auf dem Volume C: ist das Betriebssystem installiert und auf dem Volume D: befinden sich die Benutzerdaten. Bei den Benutzerdaten handelt es sich um die Benutzerprofile, Abteilungslaufwerke und sonstige Daten. Diese Daten gilt es zu migrieren.

Bevor es aber richtig losgehen kann, gilt es noch eine kleine Hürde zu überwinden. Robocopy kopiert leider unter Windows Server 2008 und 2008 R2 nicht ohne Handarbeit die NTFS Berechtigungen mit, wenn man mit dem eigenen Benutzerkonto keinen Zugriff auf die zu kopierenden Ordner hat. Selbst beim Einsatz des Schalters “/ZB” gelingt das nicht. Dieser Fehler kann mit der Installation eines Hotfixes behoben werden.

Nach der Installation des Hotfixes, der übrigens keinen Neustart erfordert, kann es an das Kopieren der Daten gehen. Auf welchem der beiden Server dann Robocopy ausgeführt wird, ist egal. In meinem Beispiel, führe ich Robocopy lokal auf dem Server “FSSRV-ALT.SPIELWIESE.INTERN” aus. Das Benutzerkonto, was die Daten kopiert, muss auf beiden Servern in der Gruppe der Sicherungsoperatoren sein. Der Aufruf von Robocopy mit den einzelnen Parametern sieht dann so aus:

robocopy D:\Profile \\FSSRV-NEU\E$\Profile /COPYALL /MIR /ZB /R:1 /W:5

Der Parameter “/COPYALL” veranlasst Robocopy alle Dateiinformation mit zu kopieren. Zu diesen Informationen zählen die Zeitstempel, Datei- und Ordnerattribute und alle DACLs und SACLs. Mit dem Parameter “/MIR” werden die beiden Verzeichnisse gespiegelt. Dadurch kann man eine “schleichende” Migration durchführen, da Robocopy immer wieder gestartet werden kann. Es werden dann nur noch die Änderungen zwischen den beiden Verzeichnissen übertragen. Das ist besonders günstig, wenn man größere Datenbestände migrieren muss, die man nicht an einem Tag zwischen beiden Servern kopieren kann. Mit dem Parameter “/ZB” erreicht man, dass der Kopiervorgang bei einem unvorhergesehen Abbruch wieder gestartet werden kann. Zusätzlich umgeht man dadurch auch die NTFS Berechtigungen da Robocopy im Backupmode ausgeführt wird. Dieser Parameter setzt aber voraus, dass der Benutzer, der Robocopy ausführt, über das Recht “Sichern und wiederherstellen von Daten (SeBackupPrivilege, SeRestorePrivilege)” auf beiden Servern verfügt. Sollte beim Kopiervorgang ein Fehler auftreten, dann wartet in meinem Beispiel Robocopy fünf Sekunden bis es eine Wiederholung durchführt (“/R:1″ für die Anzahl der Wiederholungen und “/W:5″ für die Wartezeit von fünf Sekunden”). Zusätzlich könnte man mit dem Parameter “/LOG” bzw. “/LOG+” eine Logdatei erstellen lassen, damit man nach Abschluss des Kopiervorgangs genau prüfen kann, ob der Kopiervorgang erfolgreich war oder Probleme aufgetreten sind.

Wenn die Dateien erfolgreich kopiert wurden, dann sollte die Ausgabe von Robocopy in etwa so aussehen:

Jetzt müssen noch die Freigaben migriert werden. Die Freigaben inklusive der Berechtigungen werden von Windows in der Registrierung abgespeichert. Dieser Zweig der Registrierung muss einfach auf dem Quellserver exportiert werden und auf dem Zielserver wieder importiert werden. Die Einstellungen findet man unter “HKLM\SYSTEM\CurrentControlSet\Services\LanManServer\Shares”.

In meinem Beispiel habe ich extra die Pfade verändert. Die Ordner liegen auf dem alten Server auf dem Volume D: und bei dem neuen Server auf dem Volume E:. Deshalb muss die exportierte Registrierungsdatei noch angepasst werden. Um das zu erledigen, habe ich die REG-Datei auf den Zielserver kopiert, anschließend importiert und danach im Registryeditor geöffnet. Jetzt muss nur noch der Laufwerksbuchstabe in den Freigaben angepasst werden.

Wenn jetzt der Serverdienst auf dem Server “FSSRV-NEU” neu gestartet wird, dann werden die neuen Freigaben erstellt. Jetzt müssen die Profilpfade der Benutzerobjekte im Active Directory geändert werden. Das lässt sich relativ einfach über die Powershell von einem Domänencontroller aus lösen.

#Umstellung der Profilpfade auf den neuen Fileserver
import-module ActiveDirectory
get-adobject -ldapFilter "(profilepath=*FSSRV-ALT*)" -properties profilepath | %{set-aduser $($_.distinguishedName) -profilePath $($_.profilepath -replace "FSSRV-ALT","FSSRV-NEU")}

Bei einer Migration von Fileservern kommt es meistens zu Problemen, wenn die Benutzer oder auch Software auf einen UNC Pfad referenzieren. Da der neue Server auch einen neuen Hostnamen trägt, sind diese UNC Pfade dann nicht erreichbar. Damit der Zugriff weiterhin funktioniert, muss in der DNS Forward Lookup Zone der Domäne ein Alias gesetzt werden.

Unter Umständen könnte es beim Zugriff auf den UNC Pfad aber trotzdem zu einer Fehlermeldung kommen. Auf dem Client müsste dann folgende Fehlermeldung erscheinen:

Ein gleicher Name ist im Netzwerk bereits vorhanden.

Diese Fehlermeldung ist etwas irreführend. Die Fehlermeldung rührt daher, dass der Fileserver nur Zugriffe auf UNC Pfade zulässt, die seinen echten Namen enthalten. Um den Zugriff trotzdem zu ermöglichen, muss ein Registry Wert gesetzt werden.

Pfad: HKLM\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters
Name: DisableStrictNameChecking
Typ: REG_DWORD
Wert: 1

Jetzt kann der alte Server heruntergefahren werden.

Kommen wir jetzt zu dem guten alten NetBIOS. Wenn der neue Server auch mit dem Namen des alten Servers in der NetBIOS Welt auftauchen soll, müssen wir dem Serverdienst einen weiteren Registrierungswert unterschieben.

Pfad: HKLM\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters
Name: OptionalNames
Typ: REG_MULTI_SZ
Wert: FSSRV-ALT

Wenn beide Registrierungswerte gesetzt wurden, muss der Serverdienst “lanmanserver” neu gestartet werden, damit er die neuen Werte übernimmt. Damit ist die Fileservermigration abgeschlossen. Zusätzlich gibt es aber noch ein paar Dinge zu beachten, die von der individuellen Umgebung abhängig sind.

  • Ordnerumleitungen die eventuell angepasst werden müssen
  • Laufwerksmappings über Anmeldeskripte oder GPPs
  • Einstellungen in Anwendungen, die über UNC Pfade auf eine Freigabe zugreifen

Diese Anpassungen müssen dann noch zusätzlich vorgenommen werden.

One Comments
Joerg Schnettker Februar 1st, 2016

Mit dieser Anleitung lief der Umzug reibungslos! Danke dafür!!

Leave a Reply

*