Scénario:
Faire une migration de serveur de l'ancien Server 2008 R2 vers le nouveau Server 2016, en suivant ce guide de panne de serveur: Migration de serveur de fichiers à l'aide de Robocopy
Une fois Robocopy terminé, activez la déduplication sur Server 2016 pour le volume copié, puis utilisez PowerShell pour démarrer la déduplication manuellement. Après plusieurs heures, il se termine et récupère environ 25% de l'espace disque.
Exécutez à nouveau Robocopy pour copier tout ce qui peut avoir été manqué dans la copie initiale, comme vérification finale du nouveau serveur.
.... mais Robocopy (exécuté à partir de Server 2016) ne comprend pas la déduplication et procède donc à la place à la corbeille du chunkstore de déduplication ..
-------------------------------------------------------------------------------
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
[......]
Je l'ai avorté quelques instants après avoir vu ce vol dans le journal et reconnu ce qui se passait. Mais le dommage est déjà fait, les données sur le nouveau serveur dédupliqué ont été instantanément corrompues par Robocopy lors de sa traversée de \ System Volume Information. La nouvelle partition de lecteur de serveur a été formatée et recopiée à nouveau à partir de Server 2008.
Existe-t-il un moyen sûr d'utiliser Robocopy pour qu'il ne touche pas les données du volume de déduplication?
De plus, j'ai une nouvelle préoccupation ... si Robocopy peut détruire un volume dédupliqué, quoi d'autre n'est pas sûr à utiliser avec un volume dédupliqué, qui voit à travers et peut détruire les données sous-jacentes qui ne devraient être accessibles que par le serveur? (devrait probablement être une question distincte ..)
la source
/MIR
commutateur qui estMIRror a directory tree (equivalent to /E plus /PURGE
où/PURGE :: delete dest files/dirs that no longer exist in source
? "Miroir" signifie faire de la destination une copie de la source. Robocopy est puissant ... et bien sûr, nous savons ce que cela signifie: avec une grande puissance vient une grande responsabilité!/ZB :: use restartable mode; if access denied use Backup mode
où le mode Sauvegarde défait la plupart des autorisations afin de pouvoir lire des fichiers "normalement" illisibles afin de faire des sauvegardes complètes. C'était donc la combinaison de/B
et/MIR
qui vous a fait entrer. Robocopy est puissant ... comme je l'ai mentionné ci-dessus ...Réponses:
Le
System Volume Information
répertoire doit être exclu à l'aide du commutateur / XD. Probablement une bonne idée d'exclure d'autres répertoires cachés / système tels que$RECYCLE.BIN
.la source
Deux commutateurs de ligne de commande qui ont été utilisés conduisent à ceci:
/MIR
et/ZB
. Comme lerobocopy /???
décrit la documentation ( ):C'est la combinaison qui vous a fait:
/MIR
supprimera (comme indiqué lors de l'exécutionrobocopy
sans arguments) et le "mode de sauvegarde" défait la plupart des autorisations afin de pouvoir lire les fichiers "normalement" illisibles afin de faire des sauvegardes complètes.Le "mode de sauvegarde" n'est notamment pas défini dans la description "aide". Vous devez savoir que l'
CreateFile
API Windows prend en charge un indicateur appeléFILE_FLAG_BACKUP_SEMANTICS
, qui en combinaison avec un certain droit d'accèsSE_BACKUP_NAME
(qui est accordé au groupe Administrateur par défaut - également le groupe Opérateurs de sauvegarde, duh) contourne la sécurité normale des fichiers.Tu ne le savais pas? Ensuite, vous ne savez peut-être pas non plus que robocopy ne faisait pas du tout partie de Windows à l'origine - il faisait partie d'un supplément appelé "Kit de ressources Windows" qui était utilisé principalement par les programmeurs et les administrateurs système durs à l'époque, et bien qu'il a été protégé dans la distribution Windows dans Windows Server 2008, il n'a jamais reçu d'attention - à l'exception des options de performances supplémentaires, woot! En particulier, aucune attention des gestionnaires de programme dédiés à l'interface utilisateur ou à la convivialité . C'est donc un peu d'énergie brute qui peut être utilisée - ou mal utilisée! - à vos risques et périls.
(Une bonne règle d'or: n'utilisez pas les options de ligne de commande que vous ne comprenez pas vraiment.)
Informations que vous aimeriez connaître sur l'accès aux fichiers en "mode de sauvegarde":
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
la source
/Z
"mode redémarrable". C'estB
ça qui pose problème ...Voici les résultats du suivi en utilisant les autres réponses fournies et les tests avec une destination dédupliquée. ( Meta: Je ne sais pas si je devrais inclure cela en tant que modification au bas de ma question d'origine. )
La ligne de commande Robocopy a évolué pour finalement ressembler à ceci:
Options et objectif:
Re-run final:
,
De plus, je ne connais pas les canaux appropriés pour signaler des bogues à Microsoft, mais j'ai lié à cette discussion au bas de la documentation de déduplication de Microsoft, sur leur site Web Windows IT Pro Center :
https://docs.microsoft.com/en-us/windows-server/storage/data-deduplication/overview
la source
/MT:128
semble assez élevé; avez-vous découvert qu'il était vraiment efficace de le fixer à un niveau aussi élevé (et non contre-productif de dépasser une valeur inférieure)?je pense que vous ne savez pas ce que c'est robocopy / Robocopy - c'est une commande de copie de fichiers robuste pour la ligne de commande Windows qui vous permet de copier des fichiers, des répertoires et même des lecteurs d'un emplacement à un autre. Si vous souhaitez plus d'informations, consultez cet article https://rocketfiles.com/articles/what-is-robocopy-in-windows
la source