Windows-Server-2016

顯然 Robocopy 不了解 Windows Server 2016 重複數據刪除。有沒有辦法讓它在不破壞音量的情況下工作?

  • April 23, 2022

設想:

  • 執行從舊 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 可以銷毀重複數據刪除卷,那麼使用重複數據刪除卷還有什麼不安全的,它可以直接看到它並且可以破壞只能由伺服器訪問的基礎數據?(可能應該是一個單獨的問題..)

System Volume Information應使用 /XD 開關排除該目錄。排除其他隱藏/系統目錄(例如$RECYCLE.BIN.

使用的兩個命令行開關導致了這一點:/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

引用自:https://serverfault.com/questions/920018