it-swarm.com.de

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

Szenario:

  • Führen Sie eine Servermigration von altem Server 2008 R2 zu neuem Server 2016 gemäß diesem Handbuch zu Serverfehlern durch: Dateiservermigration mit Robocopy

  • Aktivieren Sie nach Abschluss von Robocopy die Deduplizierung auf Server 2016 für das kopierte Volume und verwenden Sie dann PowerShell, um die Dedpulierung manuell zu starten. Nach vielen Stunden ist es fertig und stellt ungefähr 25% des Speicherplatzes wieder her.

  • Führen Sie Robocopy erneut aus, um alles zu kopieren, was in der ersten Kopie möglicherweise übersehen wurde, als letzte Überprüfung des neuen Servers.

.... aber Robocopy (ausgeführt von Server 2016) versteht die Deduplizierung nicht und fährt stattdessen damit fort, den Deduplizierungs-Chunkstore in den Papierkorb zu werfen.

-------------------------------------------------------------------------------
   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 es abgebrochen, nachdem ich diesen Vorbeiflug im Protokoll gesehen und erkannt hatte, was 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 Server-Laufwerkspartition wurde formatiert und von Server 2008 erneut kopiert.

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

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

13
Dale Mahalko

Das System Volume Information Verzeichnis sollte mit dem Schalter/XD ausgeschlossen werden. Wahrscheinlich eine gute Idee, andere versteckte/Systemverzeichnisse wie $RECYCLE.BIN.

16
Greg Askew

Zwei verwendete Kommandozeilenschalter führen dazu: /MIR Und /ZB. Wie die Dokumentation (robocopy /???) Beschreibt:

/ MIR :: MIRror ein Verzeichnisbaum (entspricht/E plus/PURGE).
/ZB :: Neustartmodus verwenden; Wenn der Zugriff verweigert wird, verwenden Sie den Sicherungsmodus.

Es ist die Kombination, in der Sie Folgendes ausgeführt haben: /MIR Wird gelöscht (wie beim Ausführen von robocopy ohne Argumente angegeben), und "Sicherungsmodus" besiegt die meisten Berechtigungen, um Dateien normal lesen zu können "unlesbar, um vollständige Backups zu erstellen.

"Sicherungsmodus" ist in der Beschreibung "Hilfe" insbesondere nicht definiert. Sie müssen wissen, dass die Windows-API CreateFile ein Flag namens FILE_FLAG_BACKUP_SEMANTICS Unterstützt, das in Kombination mit einem bestimmten Zugriffsrecht SE_BACKUP_NAME (Das der Administratorgruppe = zugewiesen wird standardmäßig - auch die Gruppe der Sicherungsoperatoren, duh) umgeht die normale Dateisicherheit.

Das wusstest du nicht? Dann wissen Sie vielleicht auch nicht, dass Robocopy ursprünglich überhaupt nicht Teil von Windows war - es war Teil einer Ergänzung namens "Windows Resource Kit", die damals hauptsächlich von Programmierern und Hardcore-Sysadmins verwendet wurde, und obwohl dies der Fall war wurde bereits in Windows Server 2008 in die Windows-Distribution aufgenommen und hat noch nie Beachtung gefunden - abgesehen von zusätzlichen Leistungsoptionen, woot! Insbesondere keine Aufmerksamkeit von Programmmanagern, die sich mit Benutzeroberfläche oder Benutzerfreundlichkeit befassen. Es ist also ein bisschen Kraft, die genutzt oder missbraucht werden kann! - auf eigene Gefahr.

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

Informationen, die Sie möglicherweise ü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/en-us/windows/desktop/FileIO/file-security-and-access-rights

5
davidbak

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

Die Robocopy-Befehlszeile hat sich so entwickelt, dass sie endlich so aussieht:

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"

Optionen und Zweck:

  • / MIR - Quelle zu Ziel spiegeln und Dateien und Verzeichnisse auf dem Ziel löschen, wenn sie nicht mehr in der Quelle vorhanden sind
  • / COPYALL - Kopiert alle Dateiinformationen: Daten, Attribute und Zeitstempel, NTFS-Sicherheits-ACLs, Eigentümerinformationen, Überwachungsinformationen (standardmäßig nicht alle enthalten)
  • / DCOPY: DAT - Alle Verzeichnisinformationen kopieren - Daten, Attribute, Zeitstempel (der ursprüngliche Erstellungszeitstempel wird standardmäßig nicht kopiert; normalerweise ändert sich dies zu dem Datum, an dem er von Robocopy kopiert wurde).
  • / NP - Zeigt keinen Fortschritt an
  • / Z - Neustartmodus verwenden
  • / B - Dateien im Sicherungsmodus kopieren (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 "System-Datenträgerinformationen" auszuschließen.)
  • / J - Kopieren mit ungepufferten E/A (schnellere Kopie großer Multi-Gig-Dateien)
  • / SL - Kopiert symbolische Links anstelle des Ziels
  • / MT: 128 - Maximale CPU-Threads verwenden (bessere Verwendung von 10 Gigabit Ethernet und vielen CPU-Kernen)
  • / R: 1 - Wenn der Dateizugriff fehlschlägt, wiederholen Sie den Vorgang einmal
  • / W: 10 - Wenn der Dateizugriff fehlschlägt, warten Sie 10 Sekunden, bevor Sie es erneut versuchen
  • / LOG + - Protokolliert die Ausgabe in einer Textdatei und hängt sie an, wenn bereits eine Protokolldatei vorhanden ist
  • / TEE - Druckt die Ergebnisse auf dem Bildschirm und in der Protokolldatei
  • / XD - Verzeichnisse und alles in ihnen ausschließen. Namen mit Leerzeichen müssen in Anführungszeichen gesetzt werden: "Recycler" "Recycled" "$ Recycle.bin" "System Volume Information"
  • / XF - Dateien ausschließen: Dateien mit virtuellem Speicher und Ruhezustand, falls sie 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

(Deuplication report

,

Außerdem kenne ich nicht die richtigen Kanäle, um Fehler an Microsoft zu melden, aber ich habe auf diese Diskussion am Ende der Deduplizierungsdokumentation von Microsoft auf ihrer Windows IT Pro Center Website verwiesen:

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

1
Dale Mahalko

ich denke, 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 Speicherort an einen anderen kopieren können. Wenn Sie weitere Informationen wünschen, lesen Sie diesen Artikel https://rocketfiles.com/articles/what-is-robocopy-in-windows

0
ANTROGOR