Anscheinend versteht Robocopy die Windows Server 2016-Deduplizierung nicht. Gibt es eine Möglichkeit, dies zu erreichen, ohne das Volume zu beschädigen?

13

Szenario:

  • Durchführen einer Servermigration von altem Server 2008 R2 zu neuem Server 2016 gemäß diesem Serverfehlerhandbuch: Dateiservermigration mithilfe von Robocopy

  • Aktivieren Sie nach Abschluss von Robocopy die Deduplizierung auf Server 2016 für das kopierte Volume und starten Sie die manuelle Deduplizierung mithilfe von PowerShell. Nach vielen Stunden ist der Vorgang abgeschlossen und es werden ungefähr 25% des Speicherplatzes wiederhergestellt.

  • Führen Sie Robocopy erneut aus, um alle Objekte zu kopieren, die in der Erstkopie möglicherweise übersehen wurden, um den neuen Server endgültig zu überprüfen.

.... aber Robocopy (wird von Server 2016 ausgeführt) versteht die Deduplizierung nicht und löscht stattdessen den Deduplizierungs-Chunkstore.

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows                              
-------------------------------------------------------------------------------

  Started : Sunday, July 8, 2018 12:10:02 PM
   Source : \\SERVER-2008\e$\
     Dest : \\SERVER-2016\e$\

    Files : *.*

  Options : *.* /TEE /S /E /COPYALL /PURGE /MIR /ZB /NP /MT:32 /R:1 /W:10 

------------------------------------------------------------------------------

    *EXTRA Dir        -1    \\SERVER-2016\e$\System Volume Information\Dedup\
    *EXTRA Dir        -1    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\
    *EXTRA Dir        -1    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\
      *EXTRA File         253504    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\DedupFileList.1
      *EXTRA File         253504    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\DedupFileList.2
      *EXTRA File             28    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\stamp.dat
    *EXTRA Dir        -1    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\COW\
    *EXTRA Dir        -1    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\COW\00010000\
      *EXTRA File         196608    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\COW\00010000\00000046.00.RB
      *EXTRA File         106496    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\COW\00010000\00000048.00.RB

[.......]

*EXTRA File           30.3 m    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\Stream\000f0000.00000002.ccc
*EXTRA Dir        -1    \\SERVER-2016\e$\System Volume Information\Dedup\Logs\
  *EXTRA File         29.7 m    \\SERVER-2016\e$\System Volume Information\Dedup\Logs\00000001.kmchange.log
  *EXTRA File        999.8 m    \\SERVER-2016\e$\System Volume Information\Dedup\Logs\changes.optimization.1.10.archive.etl
  *EXTRA File       1000.0 m    \\SERVER-2016\e$\System Volume Information\Dedup\Logs\changes.optimization.1.11.archive.etl
  *EXTRA File        735.5 m    \\SERVER-2016\e$\System Volume Information\Dedup\Logs\changes.optimization.1.12.archive.etl
  *EXTRA File        999.8 m    \\SERVER-2016\e$\System Volume Information\Dedup\Logs\changes.optimization.1.9.archive.etl
  *EXTRA File          1.3 m    \\SERVER-2016\e$\System Volume Information\Dedup\Logs\changes.optimization.2.1.archive.etl
*EXTRA Dir        -1    \\SERVER-2016\e$\System Volume Information\Dedup\Settings\
  *EXTRA File             76    \\SERVER-2016\e$\System Volume Information\Dedup\Settings\Dedup.00.cfg
  *EXTRA File             76    \\SERVER-2016\e$\System Volume Information\Dedup\Settings\Dedup.01.cfg
  *EXTRA File           2228    \\SERVER-2016\e$\System Volume Information\Dedup\Settings\dedupConfig.01.xml
  *EXTRA File           2228    \\SERVER-2016\e$\System Volume Information\Dedup\Settings\dedupConfig.02.xml
  *EXTRA File              0    \\SERVER-2016\e$\System Volume Information\Dedup\Settings\VolumeJobLock.bin
*EXTRA Dir        -1    \\SERVER-2016\e$\System Volume Information\Dedup\State\
  *EXTRA File           2982    \\SERVER-2016\e$\System Volume Information\Dedup\State\chunkStoreStatistics.xml
  *EXTRA File           2592    \\SERVER-2016\e$\System Volume Information\Dedup\State\dedupStatistics.xml
  *EXTRA File         11.5 m    \\SERVER-2016\e$\System Volume Information\Dedup\State\GCReservedSpaceBitmap.tmp
  *EXTRA File          1.0 g    \\SERVER-2016\e$\System Volume Information\Dedup\State\GCReservedSpaceContainer.ccc
  *EXTRA File         46.0 m    \\SERVER-2016\e$\System Volume Information\Dedup\State\GCReservedSpaceDeleteLogs.tmp
  *EXTRA File          1.0 m    \\SERVER-2016\e$\System Volume Information\Dedup\State\GCReservedSpaceFileList.tmp
  *EXTRA File           4096    \\SERVER-2016\e$\System Volume Information\Dedup\State\GroupCommitFlushControl0.bin
  *EXTRA File           2066    \\SERVER-2016\e$\System Volume Information\Dedup\State\optimizationState.xml

[......]

Ich habe den Vorgang abgebrochen, nachdem ich gesehen hatte, wie dieser im Log vorbeigeflogen war und erkannt hatte, was gerade geschah. Der Schaden ist jedoch bereits behoben. Die Daten auf dem deduplizierten neuen Server wurden sofort von Robocopy beschädigt, als sie durch \ System Volume Information stürmten. Die neue Serverlaufwerkspartition wurde von Server 2008 neu formatiert und kopiert.

Gibt es eine sichere Möglichkeit, Robocopy so zu verwenden, dass die Deduplizierungsdatenträgerdaten nicht berührt werden?

Außerdem habe ich ein neues Problem. Wenn Robocopy ein dedupliziertes Volume zerstören kann, was ist für die Verwendung mit einem deduplizierten Volume, das es durchschaut und die zugrunde liegenden Daten zerstören kann, auf die nur der Server zugreifen darf, noch unsicher? (sollte wohl eine eigene Frage sein ..)

Dale Mahalko
quelle
5
Was haben Sie mit dem /MIRSchalter erwartet, der MIRror a directory tree (equivalent to /E plus /PURGEwo ist /PURGE :: delete dest files/dirs that no longer exist in source? "Spiegeln" bedeutet, dass das Ziel eine Kopie der Quelle ist. Robocopy ist leistungsstark ... und natürlich wissen wir, was das bedeutet: Mit großer Kraft geht große Verantwortung einher!
Davidbak
Auf "\ System Volume Information" kann normalerweise nicht zugegriffen werden, und alle Programme können normalerweise nicht darauf zugreifen. Es sollte keine Möglichkeit geben, dass Robocopy dahin gelangt, selbst wenn es über eine Administrator-Eingabeaufforderung ausgeführt wird. Versuchen wir, auf demselben Server 2016 manuell darauf zuzugreifen: Start -> Eingabeaufforderung -> Als Administrator ausführen. CD \ System Volume Information. Der Zugriff wird verweigert.
Dale Mahalko
Das ist richtig. Ich hätte auch darauf hinweisen sollen, dass Sie im /ZB :: use restartable mode; if access denied use Backup modeSicherungsmodus die meisten Berechtigungen verlieren, um Dateien "normal" lesen zu können, die nicht lesbar sind, um vollständige Sicherungen durchzuführen. Es war also die Kombination von /Bund /MIR, in der Sie sich
befanden
Gregs großartige Antwort weiterverfolgen - lassen Sie die Deduplizierung einfach so lange aus, bis Sie die Migration abgeschlossen haben.
Tim Brigham

Antworten:

16

Das System Volume InformationVerzeichnis sollte mit der Option / XD ausgeschlossen werden. Wahrscheinlich eine gute Idee, andere versteckte / Systemverzeichnisse wie auszuschließen $RECYCLE.BIN.

Greg Askew
quelle
5

Zwei verwendete Befehlszeilenoptionen führen dazu: /MIRund /ZB. Wie die Dokumentation ( robocopy /???) beschreibt:

/ MIR :: MIRspiegelt einen Verzeichnisbaum (entspricht / E plus / PURGE).
/ ZB :: Verwenden Sie den neustartfähigen Modus. Wenn der Zugriff verweigert wird, verwenden Sie den Sicherungsmodus.

Dies ist die Kombination, in der Sie /MIRFolgendes getan haben: Löscht (wie beim Ausführen robocopyohne Argumente hervorgehoben), und "Sicherungsmodus" besiegt die meisten Berechtigungen, um Dateien "normal" lesen zu können, die nicht lesbar sind, um vollständige Sicherungen durchzuführen.

"Sicherungsmodus" ist insbesondere in der Beschreibung "Hilfe" nicht definiert. Sie müssen wissen, dass die Windows- CreateFileAPI ein genanntes Flag unterstützt FILE_FLAG_BACKUP_SEMANTICS, das in Kombination mit einem bestimmten Zugriffsrecht SE_BACKUP_NAME(das standardmäßig der Administratorgruppe erteilt wird - auch der Gruppe Sicherungs-Operatoren, duh) die normale Dateisicherheit umgeht.

Das wusstest du nicht? Dann wissen Sie vielleicht auch nicht, dass Robocopy ursprünglich überhaupt nicht zu Windows gehörte - es war Teil eines Supplements mit dem Namen "Windows Resource Kit", das früher hauptsächlich von Programmierern und Systemadministratoren mit festem Kern verwendet wurde wurde bereits in Windows Server 2008 in die Windows-Distribution integriert und hat bis auf zusätzliche Leistungsoptionen, woot! Insbesondere keine Aufmerksamkeit von Programmmanagern, die der Benutzeroberfläche oder der Benutzerfreundlichkeit gewidmet sind . Es ist also eine rohe Kraft, die genutzt werden kann - oder fehl am Platz! - auf eigene Gefahr.

(Eine gute Faustregel: Verwenden Sie keine Befehlszeilenoptionen, die Sie nicht wirklich verstehen.)

Informationen, die Sie über den Dateizugriff im Sicherungsmodus wissen möchten:

https://isc.sans.edu/forums/diary/Use+The+Privilege/20483/

https://docs.microsoft.com/en-us/windows/desktop/api/FileAPI/nf-fileapi-createfilea

https://docs.microsoft.com/de-de/windows/desktop/FileIO/file-security-and-access-rights

Davidbak
quelle
1
Übrigens, es gibt nichts Gefährliches (AFAIK) am /Z"neustartbaren Modus". Es ist das B, was problematisch ist ...
Davidbak
Können Dateiserver-Domänenkonten mit ihren separaten Besitzer- und Sicherheitsdaten in jedem Kontoverzeichnis vollständig und vollständig mit dem Administratorkonto kopiert werden, ohne / B zu verwenden?
Dale Mahalko
@ DaleMahalko - TBH Ich weiß es nicht. Obwohl ich seit ein paar Jahrzehnten Windows programmiere, vermeide ich einige Aspekte und weiß nur genug über die Windows-Sicherheit, um mich bei Bedarf zu entkoppeln ... Ich bin der Typ, der immer als angemeldet ist Mitglied des Administrators, ich gehe in die Gruppenrichtlinie und mache alles völlig uneingeschränkt usw. Vielleicht weiß jemand anderes?
Davidbak
1

Hier sind die Folgeergebnisse unter Verwendung der anderen angegebenen Antworten und Testen mit einem deduplizierten Ziel. ( Meta: Ich weiß nicht, ob ich dies als Änderung am Ende meiner ursprünglichen Frage einfügen soll. )

Die Robocopy-Befehlszeile sah nun endlich so aus:

robocopy \\OLD-SERVER\e$\ \\NEW-SERVER\e$\ /MIR /COPYALL /DCOPY:DAT /NP /Z /B /J /SL /MT:128 /R:1 /W:10 /LOG+:robocopy-log.txt /TEE /XD "Recycler" "Recycled" "$Recycle.bin" "System Volume Information" /XF "pagefile.sys" "swapfile.sys" "hiberfil.sys"

Möglichkeiten und Zweck:

  • / MIR - Quelle auf Ziel spiegeln und Dateien und Verzeichnisse auf dem Ziel löschen, wenn sie nicht mehr auf der Quelle vorhanden sind
  • / COPYALL - Kopiert alle Dateiinformationen: Daten, Attribute und Zeitstempel, NTFS-Sicherheits-ACLs, Eigentümerinformationen, Überwachungsinformationen (nicht alle standardmäßig enthalten)
  • / DCOPY: DAT - Kopiert alle Verzeichnisinformationen - Daten, Attribute, Zeitstempel (der ursprüngliche Erstellungszeitstempel wird nicht standardmäßig kopiert; normalerweise ändert sich dies zu dem Datum, an dem er von Robocopy kopiert wurde)
  • / NP - Zeigt keinen Fortschritt an
  • / Z - Neustartmodus verwenden
  • / B - Kopieren von Dateien im Sicherungsmodus (Ich weiß nicht, ob dies für Benutzerverzeichnisse erforderlich ist, in denen sie der ausschließliche Eigentümer sind, mit Ausnahme des Administrators. Diese Option zerstört ein dedupliziertes Zieldatenträger, ohne die "Systemdatenträgerinformationen" auszuschließen.)
  • / J - Kopieren mit ungepufferter E / A (schnellere Kopie großer Multi-Gig-Dateien)
  • / SL - Kopiert eher symbolische Links als das Ziel
  • / MT: 128 - Maximale CPU-Threads verwenden (bessere Verwendung von 10-Gigabit-Ethernet und vielen CPU-Kernen)
  • / R: 1 - Wenn beim Dateizugriff ein Fehler auftritt, versuchen Sie es noch einmal
  • / W: 10 - Warten Sie bei einem Dateizugriffsfehler 10 Sekunden, bevor Sie es erneut versuchen
  • / LOG + - Protokolliert die Ausgabe in eine Textdatei und hängt sie an, wenn die Protokolldatei bereits vorhanden ist
  • / TEE - Druckt die Ergebnisse auf den Bildschirm und in die Protokolldatei
  • / XD - Schließt Verzeichnisse und alle darin enthaltenen Verzeichnisse aus. Namen mit Leerzeichen müssen in Anführungszeichen gesetzt werden: "Recycler" "Recycled" "$ Recycle.bin" "System Volume Information"
  • / XF - Dateien ausschließen: Dateien für virtuellen Speicher und Ruhezustand, wenn sie zufällig in der Quelle vorhanden sind: "pagefile.sys" "swapfile.sys" "hiberfil.sys"

Letzte Wiederholung:

            Total    Copied   Skipped  Mismatch    FAILED    Extras 
 Dirs :    158189    153466    158186         0         0         0
Files :   1116292         0   1116296         0         0         0
Bytes :   1.350 t         0   1.350 t         0         0         0
Times :   0:01:04   0:00:00                       0:00:00   0:01:04

Deuplizierungsbericht

,

Ich kenne auch nicht die richtigen Kanäle, um Microsoft Fehler zu melden, habe jedoch auf der Windows IT Pro Center- Website unten in der Microsoft-Deduplizierungsdokumentation auf diese Diskussion verwiesen :

https://docs.microsoft.com/en-us/windows-server/storage/data-deduplication/overview

Dale Mahalko
quelle
/MT:128scheint ziemlich hoch zu sein; Haben Sie herausgefunden, dass es wirklich effektiv ist, es so hoch einzustellen (und nicht kontraproduktiv, einen niedrigeren Wert zu überschreiten)?
Davidbak
1
PS Ich liebe es, an der Kommandozeile zu arbeiten. Stellen Sie sich das unangenehme Dialogfeld mit den Registerkarten vor, das Sie langsam durcharbeiten müssten, um zu dieser genauen Funktionalität zu gelangen. Und keine dieser Benutzeroberflächen verfügt über einen "Speichern" -Modus, sodass Sie dies jedes Mal tun müssen!
Davidbak
Ich weiß nicht, warum sie sich die Mühe machen, die Threading-Kontrolle dem Endbenutzer zu überlassen. Am Ende tuckert es 1,5 TB Daten in einer Minute und zeigt keine Änderungen an. Es scheint also egal zu sein, welche "Auswirkung" die Verwendung von max-Threads hat. Diese Leistung ist für mich durchaus akzeptabel.
Dale Mahalko
@DaleMahalko - Ich persönlich fand es nützlich, maximale Threads kontrollieren zu können. Wenn ich 10 zu kopierende Dateien habe, für die jeweils einige Stunden erforderlich sind, kann ich mit MT: 2 nur 2 Dateikopiethreads gleichzeitig aktivieren. In einer unzuverlässigen oder komplexen Infrastruktur, in der Unterbrechungen auftreten, stellt MT: 2 sicher, dass nur 2 Dateikopien abgebrochen werden, anstatt 10, wenn MT: 10 vorhanden ist (alle Dateien werden gleichzeitig kopiert). In diesem Fall müssen bei einer Unterbrechung der letzten 2 von 10 Dateien nur diese neu gestartet werden (wobei die anderen 8 bereits kopiert wurden) und nicht alle.
Rod
Es ist schon lange her, dass ich Robocopy das letzte Mal verwendet habe, aber ich erinnere mich offenbar daran, dass eine begrenzte Anzahl von Threads die Netzwerkverbindung zwischen zwei Servern nicht überlastet, mehr Threads jedoch. Und das sollte wirklich im Mittelpunkt stehen. Das Festlegen der maximalen Anzahl von Threads ist nicht hilfreich. "Fügen Sie langsam weitere Kopierthreads hinzu, bis die Bandbreite X überschritten ist, und fügen Sie bei Überschreitung des Schwellenwerts keine weiteren Threads hinzu, wenn die Kopien fertig sind."
Dale Mahalko
0

Ich glaube, Sie wissen nicht, was es ist Robocopy / Robocopy - es ist ein robuster Befehl zum Kopieren von Dateien für die Windows-Befehlszeile, mit dem Sie Dateien, Verzeichnisse und sogar Laufwerke von einem Ort zum anderen kopieren können. Weitere Informationen finden Sie in diesem Artikel unter https://rocketfiles.com/articles/what-is-robocopy-in-windows

ANTROGOR
quelle
2
Ich bin mir nicht sicher, ob dies eine klare Antwort auf die Frage ist. In welcher Beziehung steht diese Antwort zum Deduplizierungsproblem?
Todd Wilcox