EDVler-Blog.de: IT in der Praxis

Große Datenmengen kopieren mit robocopy


In diesem Tutorial möchte ich eine Möglichkeit vorstellen mit der eine große Datenmenge (mehr 150GB) bestehende aus vielen Dateien ( ca. 1.000.000 Dateien) von einem auf ein anderes Volume kopiert/gespiegelt werden kann.
Das Hauptaugenmerk liegt vorallem auf eine möglichst geringen Ausfallzeit des Programms, welches des Datenbestand nutzt.


Das Umfeld:
Auf einem Netzlaufwerk liegen ca. 800.000 JPG Dateien und ca. 200.000 PDF Dateien. Ein Serverprozess greift diese Daten ab und reicht sie an die Clients weiter.
Da vorallem die Performace des Filesystems auf dem Netzlaufwerk (es liegen noch mehrere Dateien anderer Systeme dort ab) sehr leidet müssen die Dateien auf ein Volume das per SAN dem Server präsentiert kopiert werden und der Serverprozess so angepasst werden, dass dieser aus dem neuen Datentopf liest.

Zum kopieren wird robocopy verwendet, andere Kopiertools können natürlich auch verwendet werden solang die unten genannten Bedingungen vom Kopierprogramm unterstützt werden.



Vorgehen:

Schritt 1 – Robocopy JOB anlegen:
Vor dem eigentlich kopieren wird mit robocopy und dem Parameter /SAVE: eine Schablone für den Kopiervorgang angelegt. Die mit /SAVE: angelegt Schablone kann dann mit /JOB: in jedem weiterem Kopiervorgang verwendet werden und es müssen nicht immer die einzelnen Parameter getippt werden.

Folgende Bedingungen müssen vom Kopierjob erfüllt werden:

  • Nur neue Dateien kopieren –> /XO
  • Unterordner unklusive leere Ordner kopieren –> /S /E
  • Voller Pfadname im Outputfile –> /FP
  • Output in das Logfile und in die Console –> /TEE
  • Als Schablone abspeichern –> /SAVE:“c:\copy.rcj“

Testkopie um Job anzulegen und Ordnerstruktur zu kontrollieren:

    robocopy /XO /S /E /FP /TEE p:\Archive c:\test\Archive /SAVE:"c:\copy.rcj"


Schritt 2 – Erster Kopiervorgang (zeitlich unabhängig vom Umschalttermin):
Beim ersten Kopiervorgang, währendessen das Programm noch mit dem Datenbestand abreitet und auch noch neue Dateien anlegt, wird sozusagen der größte Teil der Daten kopiert. Ziel bei diesem Vorgang ist nur den großteil der Daten zu kopieren.

robocopy /JOB:"C:\copy.rcj" p:\Archive d:\Archive


Schritt 3 – Zweiter Kopiervorgang (1 Tag vor der Umstellung):

Beim zweiten Kopiervorgang, muss bedingt durch die hohe Anzahl an Dateien ermittelt werden wie lange ein Synchronisierungslauf dauert.

robocopy /JOB:"C:\copy.rcj" p:\Archive d:\Archive\


Schritt 4 – Vor dem Umzug:
Mit der ermittelten Dauer aus Schritt 3 kann der Kopiervorgang nochmals angestoßen werden. Entscheidend ist hier den Zeitpunkt des Kopiervorgangs so zu wählen das dieser möglichst nah am Umstellungstermin liegt. Ziel ist es die Differenz an fehlenden Dateien so gering wie möglich zu halten.

robocopy /JOB:"C:\copy.rcj" p:\Archive d:\Archive\


Schritt 5 – Rest Kopieren und Serverdienst stoppen:

Im letzten Schritt wird der Serverdienst beendet und per Hand im Explorer, die in der kurzen Zeitspanne nach Schritt 4 entstandenen Differenzen, nachkopiert. Anschließend wird der Serverdienst wieder gestartet.


Schritt 6 – Für die Sicherheitsfanatiker:
Um 100% Sicherzustellen das alles passt kann z.B. mit dem Tool md5deep.exe noch geprüft werden ob keine Datei beschädigt ist. Hierzu aber mehr in einem anderen Blog.

You can follow any responses to this entry through the RSS 2.0 feed.