pr0nyze0
Goto Top

Datenmigration über 2 ADs

Guten Morgen,

wir müssen im Zuge einer Umstellung alle DFS Daten (ca. 3-4TB) vom alten DFS auf das neue DFS in einer anderen Domain kopieren. Optimalerweise exklusive Berechtigungen da die neue AD eine andere Berechtigungsstruktur hat. Ich habe einzelne Ordner schonmal per Drag and Drop über Remoteverbindungen kopiert, da wir einige User bereits in die neue AD aufgenommen haben.

Leider war dies unerwartet komplett unperformant. Hat jemand damit Erfahrung bzw. einen Tipp wie ich das ganze schnell und sicher über die Bühne bekomme? Ich würde dies gerne über Nacht machen ohne alle Stunde schauen zu müssen ob er wegen eines Fehlers abgebrochen hat.


Danke im Voraus!!


Grüße

Nyze

Content-ID: 2702283710

Url: https://administrator.de/contentid/2702283710

Ausgedruckt am: 24.11.2024 um 22:11 Uhr

141986
141986 06.05.2022 um 07:43:07 Uhr
Goto Top
Guten Morgen,

robocopy?

@echo off
 
SET SOURCEDIR=E:\Quellordner
SET TARGETDIR=\\zielserver\zielfreigabe
SET LOGFILE=C:\Users\xxx\Desktop\Logfile.txt
SET OPTIONS=/E /LOG+:"%LOGFILE%"  
 
@echo on
robocopy "%SOURCEDIR%" "%TARGETDIR%" %OPTIONS%  
 
PAUSE

Damit sollte das recht zügig funktionieren.

Tipp: die Batch nicht robocopy.bat nennen :D

VG
pr0nyze0
pr0nyze0 06.05.2022 um 07:47:13 Uhr
Goto Top
Zitat von @141986:

Guten Morgen,

robocopy?

@echo off
 
SET SOURCEDIR=E:\Quellordner
SET TARGETDIR=\\zielserver\zielfreigabe
SET LOGFILE=C:\Users\xxx\Desktop\Logfile.txt
SET OPTIONS=/E /LOG+:"%LOGFILE%"  
 
@echo on
robocopy "%SOURCEDIR%" "%TARGETDIR%" %OPTIONS%  
 
PAUSE

Damit sollte das recht zügig funktionieren.

Tipp: die Batch nicht robocopy.bat nennen :D

VG

Muss ich da Credentials mitgeben? Die Daten unterscheiden sich von AD zu AD.

:D Danke für den Tipp :D
141986
141986 06.05.2022 um 07:49:16 Uhr
Goto Top
Muss ich da Credentials mitgeben
wäre schon sinnig? :D

Kann man ja recht bequem via Tresor regeln.
ElmerAcmeee
ElmerAcmeee 06.05.2022 um 07:55:27 Uhr
Goto Top
Moin,
oder auf dem Quellserver das Zielverzeichnis mit entsprechendem User mappen.

Bei Robocopy nutze ich für die größeren Migrationen immer dir /MIR Option. D.h. das Script überträgt initial alle Ordner und Dateien. Und ab dem zweiten Start nur noch das Delta, was dann entsprechend schnell durch ist.
Gruß
141986
141986 06.05.2022 um 07:58:03 Uhr
Goto Top
Bei Robocopy nutze ich für die größeren Migrationen immer dir /MIR Option. D.h. das Script überträgt initial alle Ordner und Dateien. Und ab dem zweiten Start nur noch das Delta, was dann entsprechend schnell durch ist.

Das macht robocopy mit dem o.g. Script auch schon.

Genau dafür nutze ich das. Neue Dateien werden übertragen, bereits übertragene werden abgeglichen und übersprungen.

           Insgesamt   KopiertšbersprungenKeine šbereinstimmung    FEHLER    Extras
Verzeich.:    209865       351         0         0         0       119
  Dateien:    680611      1399    679212         0         0       284
    Bytes: 648.147 g   1.804 g 646.343 g         0         0   96.06 m
   Zeiten:   0:05:48   0:00:51                       0:00:00   0:04:56

Grüße
MysticFoxDE
Lösung MysticFoxDE 06.05.2022 aktualisiert um 08:25:06 Uhr
Goto Top
Moin Zusammen,

folgend eine kleine Korrektur, damit es noch etwas schneller geht.

@echo off
 
SET SOURCEDIR=E:\Quellordner
SET TARGETDIR=\\zielserver\zielfreigabe
SET LOGFILE=C:\Users\xxx\Desktop\Logfile.txt
SET OPTIONS=/E /j /LOG+:"%LOGFILE%"  
 
@echo on
robocopy "%SOURCEDIR%" "%TARGETDIR%" %OPTIONS%  
 
PAUSE

Wenn du noch zusätzlich auf den Quell- und Zielserver die folgenden Optimierungen per Power-Shell vornimmst ...

# SMB CLIENT OPTIMIZATION
Set-SmbClientConfiguration -DirectoryCacheLifetime 0
Set-SmbClientConfiguration -EnableBandwidthThrottling $false
Set-SmbClientConfiguration -FileInfoCacheLifetime 0
Set-SmbClientConfiguration -FileNotFoundCacheLifetime 0
Set-SmbClientConfiguration -WindowSizeThreshold 1
Set-SmbClientConfiguration -EnableLargeMtu $true
Set-SmbClientConfiguration -ConnectionCountPerRssNetworkInterface 4
Set-SmbClientConfiguration -MaxCmds 100
Set-SmbClientConfiguration -EnableSecuritySignature $false
Set-SmbClientConfiguration -RequireSecuritySignature $false


## SMB SERVER OPTIMIZATION
Set-SmbServerConfiguration -CachedOpenLimit 0
Set-SmbServerConfiguration -EnableLeasing $false
Set-SmbServerConfiguration -EnableMultiChannel $false
Set-SmbServerConfiguration -MaxChannelPerSession 32
Set-SmbServerConfiguration -MaxMpxCount 2048
Set-SmbServerConfiguration -MaxThreadsPerQueue 40
Set-SmbServerConfiguration -MaxWorkItems 8192
Set-SmbServerConfiguration -AsynchronousCredits 2048
Set-SmbServerConfiguration -TreatHostAsStableStorage $true
Set-SmbServerConfiguration -EnableSecuritySignature $false
Set-SmbServerConfiguration -RequireSecuritySignature $false

dann flutscht es definitiv noch ein Stück besser, vor allem wenn es sich bei dem Quell.- oder Zielserver
um einen Server 2019 oder 2022 handelt. 😉😎

Beste Grüsse aus BaWü
Alex
Lochkartenstanzer
Lochkartenstanzer 06.05.2022 aktualisiert um 08:30:51 Uhr
Goto Top
Moin,

Robocopy oder Backup&Restore. Und viel Zeit dafür planen. Wenn das über Netzwerk gehen soll, würde im optimalen Fall dafür 4TB/100MB/s =40000s ~= 11,5h benötigt, wenn man davon ausgeht, das ihr ein Gigabit-Ethernet habt. Die Erfahrung zeigt, daß es eher ein großes Vielfaches davon ist, wenn man sehr viele kleine Einzeldateien kopiert. Deswegen hat es sich als schneller erwiesen, sofern in den Systemen deutlich schnellere Platten stecken, die Daten auf eine interne Platte zu kopieren und diese dann im Zielsystem einzuspielen.

Oder wenn man ein regelmäßiges Backup macht, dieses einzuspielen und anschließend noch per Robocopy die fehlenden Dateien zu synchronisieren.

Die Rechte ândert man danach anschließend wie gewünscht.

lks
ElmerAcmeee
ElmerAcmeee 06.05.2022 um 09:04:07 Uhr
Goto Top
Hallo,
Zitat von @141986:

Das macht robocopy mit dem o.g. Script auch schon.

Genau dafür nutze ich das. Neue Dateien werden übertragen, bereits übertragene werden abgeglichen und übersprungen.

Stimmt.
Unterschied /e zu /mir: gelöschte Dateien an der Quelle werden nicht am Ziel gelöscht. Daher bevorzuge ich bei Migrationen die u.U. über mehrer Tage gehen /mir.
Aber, das ist ja von Fall zu Fall unteschiedlich.
Hier auch noch die Doku von MS:
https://docs.microsoft.com/en-us/windows-server/administration/windows-c ...

Gruß
pr0nyze0
pr0nyze0 09.05.2022 um 11:00:36 Uhr
Goto Top
Zitat von @MysticFoxDE:

Moin Zusammen,

folgend eine kleine Korrektur, damit es noch etwas schneller geht.

@echo off
 
SET SOURCEDIR=E:\Quellordner
SET TARGETDIR=\\zielserver\zielfreigabe
SET LOGFILE=C:\Users\xxx\Desktop\Logfile.txt
SET OPTIONS=/E /j /LOG+:"%LOGFILE%"  
 
@echo on
robocopy "%SOURCEDIR%" "%TARGETDIR%" %OPTIONS%  
 
PAUSE

Wenn du noch zusätzlich auf den Quell- und Zielserver die folgenden Optimierungen per Power-Shell vornimmst ...

# SMB CLIENT OPTIMIZATION
Set-SmbClientConfiguration -DirectoryCacheLifetime 0
Set-SmbClientConfiguration -EnableBandwidthThrottling $false
Set-SmbClientConfiguration -FileInfoCacheLifetime 0
Set-SmbClientConfiguration -FileNotFoundCacheLifetime 0
Set-SmbClientConfiguration -WindowSizeThreshold 1
Set-SmbClientConfiguration -EnableLargeMtu $true
Set-SmbClientConfiguration -ConnectionCountPerRssNetworkInterface 4
Set-SmbClientConfiguration -MaxCmds 100
Set-SmbClientConfiguration -EnableSecuritySignature $false
Set-SmbClientConfiguration -RequireSecuritySignature $false


## SMB SERVER OPTIMIZATION
Set-SmbServerConfiguration -CachedOpenLimit 0
Set-SmbServerConfiguration -EnableLeasing $false
Set-SmbServerConfiguration -EnableMultiChannel $false
Set-SmbServerConfiguration -MaxChannelPerSession 32
Set-SmbServerConfiguration -MaxMpxCount 2048
Set-SmbServerConfiguration -MaxThreadsPerQueue 40
Set-SmbServerConfiguration -MaxWorkItems 8192
Set-SmbServerConfiguration -AsynchronousCredits 2048
Set-SmbServerConfiguration -TreatHostAsStableStorage $true
Set-SmbServerConfiguration -EnableSecuritySignature $false
Set-SmbServerConfiguration -RequireSecuritySignature $false

dann flutscht es definitiv noch ein Stück besser, vor allem wenn es sich bei dem Quell.- oder Zielserver
um einen Server 2019 oder 2022 handelt. 😉😎

Beste Grüsse aus BaWü
Alex

Hallo Alex,

kannst du mir evtl. sagen wie der Command ist um zu sehen wo er derzeit kopiert? Es wird zwar alles in Logs ausgegeben aber ich finde nichts dazu, wie ich ihm sage ich will in der CMD stehen was gerade passiert?! Hab jetzt auf ca. 8 Seiten geschaut und nix dazu gefunden.

und Danke für deine Hilfe.
141986
Lösung 141986 09.05.2022 aktualisiert um 11:19:43 Uhr
Goto Top
Hi,

@echo off 
rausnehmen aus dem Script
bzw. in
@echo on
ändern.

Dann solltest Du sehen, an welcher File robocopy gerade arbeitet.

VG

Edit: wenn gelöst, bitte auf gelöst setzen (evtl. kannst Du das ja bei deinen anderen Anfragen auch noch umsetzen; die Helfenden wissen es zu schätzen)
pr0nyze0
pr0nyze0 09.05.2022 um 13:47:35 Uhr
Goto Top
Hab ich bei den anderen Anfragen doch gemacht?
MysticFoxDE
Lösung MysticFoxDE 09.05.2022 um 14:26:47 Uhr
Goto Top
Moin Nyze,

Hallo Alex,

kannst du mir evtl. sagen wie der Command ist um zu sehen wo er derzeit kopiert? Es wird zwar alles in Logs ausgegeben aber ich finde nichts dazu, wie ich ihm sage ich will in der CMD stehen was gerade passiert?! Hab jetzt auf ca. 8 Seiten geschaut und nix dazu gefunden.

und Danke für deine Hilfe.

dafür musst du im Skript die folgende Zeile
SET OPTIONS=/E /j /LOG+:"%LOGFILE%"   
nur um den Parameter /tee, sprich,
SET OPTIONS=/E /j /tee /LOG+:"%LOGFILE%"   
erweitern.

Beste Grüsse aus BaWü
Alex