顯然 Robocopy 不了解 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
$$ ……. $$
*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
CreateFile
API 支持一個名為 的標誌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