AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 920018
Accepted
Dale Mahalko
Dale Mahalko
Asked: 2018-07-09 10:03:44 +0800 CST2018-07-09 10:03:44 +0800 CST 2018-07-09 10:03:44 +0800 CST

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

  • 772

设想:

  • 执行从旧 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

[.......]

*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

[……]

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

有没有一种安全的方法来使用 Robocopy,这样它就不会触及重复数据删除卷数据?

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

windows-server-2016
  • 5 5 个回答
  • 18511 Views

5 个回答

  • Voted
  1. Best Answer
    Greg Askew
    2018-07-09T10:34:11+08:002018-07-09T10:34:11+08:00

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

    • 17
  2. davidbak
    2018-07-10T09:03:15+08:002018-07-10T09:03:15+08:00

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

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

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

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

    你不知道吗?那么您可能也不知道 robocopy 最初根本不是 Windows 的一部分 - 它是一个名为“Windows 资源工具包”的补充程序的一部分,当时主要由程序员和核心系统管理员使用,尽管它早在 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

    • 7
  3. Dale Mahalko
    2018-07-14T22:13:53+08:002018-07-14T22:13:53+08:00

    以下是使用提供的其他答案的后续结果,并使用重复数据删除的目标进行测试。(元:我不知道我是否应该将其作为编辑包含在原始问题的底部。)

    Robocopy 命令行最终演变为如下所示:

    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"
    

    选项和目的:

    • /MIR - 将源镜像到目标,如果源上不再存在文件和目录,则删除目标上的文件和目录
    • /COPYALL - 复制所有文件信息:数据、属性和时间戳、NTFS 安全 ACL、所有者信息、审计信息(默认情况下不包括所有信息)
    • /DCOPY:DAT - 复制所有目录信息 - 数据、属性、时间戳(默认情况下不复制原始创建时间戳;通常这会更改为 Robocopy 复制的日期)
    • /NP - 不显示进度
    • /Z - 使用可重启模式
    • /B - 在备份模式下复制文件(我不知道这对于他们是独占所有者的用户目录是否需要,不包括管理员。此选项将销毁重复数据删除的目标卷而不排除“系统卷信息”)
    • /J - 使用无缓冲 I/O 进行复制(大型多演出文件的更快复制)
    • /SL - 复制符号链接而不是目标
    • /MT:128 - 使用最大 CPU 线程(更好地使用 10 Gb 以太网和许多 CPU 内核)
    • /R:1 - 如果文件访问错误,重试 1 次
    • /W:10 - 如果文件访问错误,请等待 10 秒后再重试
    • /LOG+ - 将输出记录到文本文件,如果日志文件已经存在则追加
    • /TEE - 将结果打印到屏幕和日志文件
    • /XD - 排除目录以及其中的所有内容。包含空格的名称需要用引号引起来:“Recycler”“Recycled”“$Recycle.bin”“System Volume Information”
    • /XF - 排除文件:虚拟内存和休眠文件,如果它们碰巧出现在源上:“pagefile.sys”“swapfile.sys”“hiberfil.sys”

    最后重新运行:

                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
    

    去重报告

    ,

    此外,我不知道向 Microsoft 报告错误的适当渠道,但我已在其Windows IT Pro Center网站上的 Microsoft 重复数据删除文档底部链接到此讨论:

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

    • 1
  4. GeoSimos
    2022-01-11T13:47:02+08:002022-01-11T13:47:02+08:00

    问题是您没有复制您需要的文件夹,而是整个卷,其中包含隐藏的系统文件夹“系统卷信息”,用于与文件系统相关的任何内容。重复数据删除和文件服务器资源管理器也在其中存储他们的数据。通过将卷复制到另一个卷并使用 /MIR*,也通过使用 /B** 您正在使用可以复制您的管理员帐户无法复制的文件夹的备份模式,您实际上是在替换系统卷信息目标,这会破坏 Dedup 的块存储。我建议不要进行这种类型的复制,最好通过文件夹进行复制,或者完全排除“系统卷信息”文件夹(这将在短期/长期内节省大量的头发拉扯和咒骂)。

    “*” 将源中的内容镜像到目标,从目标中删除源中不存在的文件。** 备份模式,复制管理员帐户无法访问的文件(使用 SeBackupPrivilege 进行源读取,使用 SeRestorePrivilege 复制到目标文件夹)。

    • 1
  5. Mike Walker
    2021-03-18T17:36:20+08:002021-03-18T17:36:20+08:00

    也许只有我一个人,但我的第一个想法是——永远不要试图复制驱动器本身“e$”。我只会 Robocopy 为用户内容创建的特定文件夹,而不是 Windows 本身创建的任何系统文件夹。

    • 0

相关问题

  • 将 Windows Server 2012 Essentials 直接升级到 Windows Server 2016 Standard

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve