显然 Robocopy 不了解 Windows Server 2016 重复数据删除。有没有办法让它在不破坏音量的情况下工作?

Dal*_*lko 13 robocopy corruption deduplication windows-server-2016

设想:

  • 执行从旧 Server 2008 R2 到新 Server 2016 的服务器迁移,遵循此服务器故障指南:使用 Robocopy 进行文件服务器迁移

  • Robocopy 完成后,在 Server 2016 上为复制的卷启用重复数据删除,然后使用 PowerShell 手动开始重复数据删除。几个小时后,它完成并恢复了大约 25% 的磁盘空间。

  • 再次运行 Robocopy 以复制初始副本中可能遗漏的任何内容,作为对新服务器的最终检查。

....但是 Robocopy(从 Server 2016 运行)不理解重复数据删除,因此继续将重复数据删除块存储作为垃圾..

-------------------------------------------------------------------------------
   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
Run Code Online (Sandbox Code Playgroud)

[……]

*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
Run Code Online (Sandbox Code Playgroud)

[……]

我在日志中看到这个飞过并意识到发生了什么后立即中止了它。但是损坏已经造成,经过重复数据删除的新服务器上的数据被 Robocopy 立即破坏,因为它冲进了 \System Volume Information。新的服务器驱动器分区已从 Server 2008 重新格式化和重新复制。

是否有一种安全的方法来使用 Robocopy,使其不会触及重复数据删除卷数据?

另外,我有一个新的担忧..如果 Robocopy 可以破坏重复数据删除的卷,那么使用重复数据删除的卷还有什么不安全的,它可以看穿它并且可以破坏应该只能由服务器访问的底层数据?(可能应该是一个单独的问题..)

Gre*_*kew 16

System Volume Information应使用 /XD 开关排除该目录。排除其他隐藏/系统目录(例如$RECYCLE.BIN.


dav*_*bak 5

使用的两个命令行开关导致了这一点:/MIR/ZB. 正如文档 ( robocopy /???) 所描述的:

/MIR :: MIRror 目录树(相当于 /E 加 /PURGE)。
/ZB :: 使用可重启模式;如果访问被拒绝使用备份模式。

它是您的组合: /MIR将删除(如您在robocopy不带参数的情况下运行时指出的那样)和“备份模式”取消大多数权限,以便能够读取“通常”不可读的文件以进行完整备份。

“备份模式”在“帮助”描述中明显未定义。您必须知道 Windows CreateFileAPI 支持一个名为 的标志FILE_FLAG_BACKUP_SEMANTICS,它与特定的访问权限SE_BACKUP_NAME默认情况下授予管理员组- 也是备份操作员组)相结合,绕过了正常的文件安全性。

你不知道吗?那么你可能也不知道 robocopy 最初根本不是 Windows 的一部分——它是一个名为“Windows Resource Kit”的补充的一部分,当时主要由程序员和硬核系统管理员使用,尽管它早在 Windows Server 2008 中就被继承到 Windows 发行版中,它从未受到任何关注 - 除了额外的性能选项,哇!特别是,专注于 UI 或可用性的程序经理没有关注。所以这是一种可以使用或误用的原始力量!- 风险自负。

(一个很好的经验法则:不要使用您并不真正理解的命令行选项。)

您可能想了解的有关“备份模式”文件访问的信息:

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