Rõ ràng Robocopy không hiểu sự trùng lặp của Windows Server 2016. Có cách nào để làm cho nó hoạt động mà không làm hỏng âm lượng?


13

Kịch bản:

  • Thực hiện di chuyển máy chủ từ Máy chủ cũ 2008 R2 sang Máy chủ mới 2016, theo hướng dẫn Lỗi Máy chủ này: Di chuyển máy chủ tệp bằng Robocopy

  • Sau khi Robocopy hoàn tất, hãy bật tính năng sao chép trên Máy chủ 2016 cho khối lượng được sao chép, sau đó sử dụng PowerShell để bắt đầu phân tích thủ công. Sau nhiều giờ, nó hoàn thành và phục hồi khoảng 25% dung lượng đĩa.

  • Chạy Robocopy một lần nữa để sao chép bất cứ thứ gì có thể đã bị bỏ sót trong bản sao ban đầu, như là một kiểm tra cuối cùng của máy chủ mới.

.... nhưng Robocopy (chạy từ Máy chủ 2016) không hiểu sự trùng lặp và vì vậy thay vào đó tiến hành dọn rác chunkstore ..

-------------------------------------------------------------------------------
   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

[......]

Tôi đã hủy bỏ nó ngay sau khi nhìn thấy con ruồi này trong nhật ký và nhận ra những gì đang xảy ra. Nhưng thiệt hại đã được thực hiện, dữ liệu trên máy chủ mới bị trùng lặp đã bị hỏng ngay lập tức bởi Robocopy khi nó xông vào thông tin \ System Volume Information. Phân vùng ổ đĩa máy chủ mới đã được định dạng và nhận lại từ Server 2008.

Có cách nào an toàn để sử dụng Robocopy để nó không chạm vào dữ liệu âm lượng trùng lặp không?

Ngoài ra, tôi có một mối quan tâm mới .. nếu Robocopy có thể phá hủy âm lượng bị trùng lặp, thì điều gì khác không an toàn khi sử dụng với âm lượng bị trùng lặp, có thể thấy ngay thông qua nó và có thể phá hủy dữ liệu cơ bản mà máy chủ chỉ có thể truy cập? (có lẽ nên là một câu hỏi riêng biệt ..)


5
Bạn đã mong đợi điều gì xảy ra với công /MIRtắc MIRror a directory tree (equivalent to /E plus /PURGEở đâu /PURGE :: delete dest files/dirs that no longer exist in source? "Gương" có nghĩa là làm cho đích đến là một bản sao của nguồn. Robocopy rất mạnh ... và tất nhiên chúng ta biết điều đó có nghĩa là gì: Với sức mạnh lớn đi kèm với trách nhiệm lớn!
davidbak

"\ Thông tin khối lượng hệ thống" thường không thể truy cập và tất cả các chương trình thường bị chặn truy cập. Không nên có bất kỳ cách nào mà Robocopy có thể vào được ngay cả khi chạy từ dấu nhắc lệnh của Quản trị viên. Hãy thử truy cập thủ công trên cùng một Máy chủ 2016: Bắt đầu -> Dấu nhắc lệnh -> Chạy với tư cách Quản trị viên. CD \ Thông tin khối lượng hệ thống. Truy cập bị từ chối.
Dale Mahalko

Đúng. Tôi cũng nên chỉ ra rằng bạn đã sử dụng /ZB :: use restartable mode; if access denied use Backup modechế độ Sao lưu đánh bại hầu hết các quyền để có thể đọc các tệp "bình thường" không thể đọc được để tạo bản sao lưu hoàn chỉnh. Vì vậy, đó là sự kết hợp của /B/MIRbạn đã tham gia. Robocopy rất mạnh mẽ ... như tôi đã đề cập ở trên ...
davidbak

Theo dõi câu trả lời tuyệt vời của Greg - đưa ra lựa chọn chỉ cần loại bỏ sự trùng lặp cho đến khi bạn hoàn thành việc di chuyển.
Tim Brigham

Câu trả lời:


16

Thư mục System Volume Informationnên được loại trừ bằng cách sử dụng chuyển đổi / XD. Có lẽ là một ý tưởng tốt để loại trừ các thư mục ẩn / hệ thống khác như $RECYCLE.BIN.


5

Hai công tắc dòng lệnh đã được sử dụng dẫn đến điều này: /MIR/ZB. Như tài liệu ( robocopy /???) mô tả:

/ MIR :: MIRror một cây thư mục (tương đương với / E plus / PURGE).
/ ZB :: sử dụng chế độ khởi động lại; nếu truy cập bị từ chối sử dụng chế độ Sao lưu.

Đó là sự kết hợp mà bạn đã thực hiện: /MIRsẽ xóa (như được chỉ ra khi bạn chạy robocopymà không có đối số) và "Chế độ sao lưu" đánh bại hầu hết các quyền để có thể đọc các tệp "thông thường" không thể đọc được để tạo bản sao lưu hoàn chỉnh.

"Chế độ sao lưu" đáng chú ý là không được xác định trong mô tả "trợ giúp". Bạn đã biết rằng CreateFileAPI Windows hỗ trợ một cờ được gọi FILE_FLAG_BACKUP_SEMANTICS, kết hợp với một quyền truy cập nhất định SE_BACKUP_NAME(được trao cho nhóm Quản trị viên theo mặc định - cũng là nhóm Toán tử sao lưu, duh) bỏ qua bảo mật tệp thông thường.

Bạn đã không biết điều đó? Sau đó, bạn cũng có thể không biết rằng robocopy ban đầu không phải là một phần của Windows - nó là một phần của phần bổ sung được gọi là "Bộ tài nguyên Windows" được sử dụng chủ yếu bởi các lập trình viên và các sysadins lõi cứng vào thời đó, và mặc dù vậy được đưa vào phân phối Windows trở lại trong Windows Server 2008, nó chưa bao giờ nhận được bất kỳ sự chú ý nào - ngoại trừ các tùy chọn hiệu suất bổ sung, woot! Đặc biệt, không có sự chú ý từ các nhà quản lý chương trình dành riêng cho UI hoặc khả năng sử dụng . Vì vậy, đó là một chút sức mạnh có thể được sử dụng - hoặc bị đánh lừa! - có nguy cơ của riêng bạn.

(Một nguyên tắc nhỏ: Đừng sử dụng các tùy chọn dòng lệnh mà bạn không thực sự hiểu.)

Thông tin bạn có thể muốn biết về quyền truy cập tệp "Chế độ sao lưu":

https://isc.sans.edu/forums/diary/Use+The+Priv đặc biệt / 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


1
BTW không có gì nguy hiểm (AFAIK) về /Z"chế độ khởi động lại". Đó là Bvấn đề ...
davidbak

Có thể sao chép tài khoản miền máy chủ, với chủ sở hữu và dữ liệu bảo mật riêng biệt của họ trên mỗi thư mục tài khoản, có thể được sao chép đầy đủ và hoàn toàn (/ COPUALL hoặc / COPY: DATSOU) bằng tài khoản quản trị viên mà không cần sử dụng / B không?
Dale Mahalko

@DaleMahalko - TBH tôi không biết. Mặc dù tôi đã lập trình Windows được vài thập kỷ nhưng vẫn có những khía cạnh tôi tránh và vì vậy tôi chỉ biết đủ về bảo mật của Windows để giúp tôi không bị ràng buộc khi cần thiết ... Tôi là kiểu người luôn đăng nhập như một thành viên của Quản trị viên, tôi tham gia Chính sách nhóm và làm cho mọi thứ hoàn toàn không bị ràng buộc, v.v. Có lẽ ai đó biết?
davidbak

1

Dưới đây là kết quả tiếp theo bằng cách sử dụng các câu trả lời khác được cung cấp và thử nghiệm với đích đến bị trùng lặp. ( Meta: Tôi không biết liệu tôi có nên đưa nó vào đây như là một chỉnh sửa ở cuối câu hỏi ban đầu của mình không. )

Dòng lệnh Robocopy đã phát triển để cuối cùng trông như thế này:

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"

Tùy chọn và mục đích:

  • / MIR - Phản chiếu nguồn tới đích và xóa các tệp và thư mục trên đích, nếu chúng không còn hiện diện trên nguồn
  • / COPianceL - Sao chép tất cả thông tin tệp: dữ liệu, thuộc tính và dấu thời gian, ACL bảo mật NTFS, thông tin chủ sở hữu, thông tin kiểm toán (không bao gồm tất cả theo mặc định)
  • / DCOPY: DAT - Sao chép tất cả thông tin thư mục - dữ liệu, thuộc tính, dấu thời gian (dấu thời gian tạo ban đầu không được sao chép theo mặc định; thông thường, điều này thay đổi vào ngày được sao chép bởi Robocopy)
  • / NP - Không hiển thị tiến trình
  • / Z - Sử dụng chế độ khởi động lại
  • / B - Sao chép tệp trong chế độ Sao lưu (Tôi không biết liệu điều này có cần thiết cho các thư mục người dùng nơi họ là chủ sở hữu độc quyền, ngoại trừ quản trị viên hay không.
  • / J - Sao chép bằng cách sử dụng I / O không có bộ đệm (sao chép nhanh hơn các tệp nhiều gigabyte)
  • / SL - Sao chép các liên kết tượng trưng thay vì mục tiêu
  • / MT: 128 - Sử dụng các luồng CPU tối đa (sử dụng tốt hơn 10 gigabit Ethernet và nhiều lõi CPU)
  • / R: 1 - Nếu lỗi truy cập tệp, thử lại 1 lần
  • / W: 10 - Nếu lỗi truy cập tệp, hãy đợi 10 giây trước khi thử lại
  • / LOG + - Ghi nhật ký đầu ra vào tệp văn bản, nối thêm nếu tệp nhật ký đã tồn tại
  • / TEE - In kết quả ra màn hình và ghi nhật ký tệp
  • / XD - Loại trừ các thư mục và mọi thứ trong đó. Các tên có khoảng trắng trong chúng cần được đặt trong dấu ngoặc kép: "Recycler" "Tái chế" "$ Recycl.bin" "Thông tin khối lượng hệ thống"
  • / XF - Loại trừ các tệp: bộ nhớ ảo và các tệp ngủ đông nếu chúng tình cờ xuất hiện trên nguồn: "pagefile.sys" "exchangefile.sys" "hiberfil.sys"

Chạy lại lần cuối:

            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

Báo cáo chống trùng lặp

,

Ngoài ra, tôi không biết các kênh thích hợp để báo cáo lỗi cho Microsoft, nhưng tôi đã liên kết với cuộc thảo luận này ở cuối tài liệu về sự trùng lặp của Microsoft, trên trang web Windows IT Pro Center của họ:

https://docs.microsoft.com/en-us/windows-server/st Storage / data -ded repeatation / view


/MT:128có vẻ khá cao; Bạn có phát hiện ra rằng nó thực sự hiệu quả khi đặt nó ở mức cao (và không phản tác dụng khi vượt qua giá trị thấp hơn)?
davidbak

1
PS Tôi thích làm việc tại dòng lệnh. Hãy tưởng tượng hộp thoại theo thẻ khó chịu mà bạn phải từ từ làm việc để có được chức năng chính xác này. Và không ai trong số các UI đó có chế độ "lưu", vì vậy bạn phải làm điều đó mỗi lần!
davidbak

Tôi không biết lý do tại sao họ bận tâm để kiểm soát luồng cho người dùng cuối. Cuối cùng, nó lưu thông qua 1,5TB dữ liệu trong một phút cho thấy không có thay đổi, do đó, bất kể "tác động" nào khi sử dụng các luồng tối đa đều có vẻ như không có vấn đề gì. Hiệu suất này là khá chấp nhận với tôi.
Dale Mahalko

@DaleMahalko - Cá nhân tôi thấy nó hữu ích khi có thể kiểm soát các chủ đề tối đa. Nếu tôi có 10 tệp để sao chép, mỗi tệp mất vài giờ, cài đặt MT: 2 cho phép tôi chỉ có 2 luồng sao chép tệp được kích hoạt tại một thời điểm. Trên cơ sở hạ tầng không đáng tin cậy hoặc phức tạp khi xảy ra gián đoạn MT: 2 sẽ đảm bảo rằng chỉ có 2 bản sao tệp sẽ bị hủy bỏ thay vì 10 nếu tôi có MT: 10 (tất cả các tệp sao chép cùng một lúc). Trong trường hợp này, nếu sự gián đoạn xảy ra trên 2 tệp cuối cùng trong số 10 tệp thì chỉ những tệp đó sẽ cần được khởi động lại (có 8 tệp khác đã được sao chép) chứ không phải tất cả chúng.
Rod

Đã lâu rồi kể từ lần cuối tôi sử dụng Robocopy nhưng tôi dường như nhớ lại rằng một số lượng hạn chế của các luồng không bão hòa liên kết mạng giữa hai máy chủ, nhưng nhiều luồng hơn thì có. Và điều này thực sự nên là trọng tâm. Chỉ định các chủ đề tối đa là không có ích, nhưng "từ từ thêm nhiều chủ đề sao chép cho đến khi băng thông X vượt qua và nếu vượt quá ngưỡng, đừng thêm nhiều chủ đề khi bản sao kết thúc" thực sự hữu ích và sẽ đáp ứng cả hai nhu cầu của chúng tôi.
Dale Mahalko

0

Tôi nghĩ bạn không biết bản sao chép / Robocopy là gì - đó là lệnh sao chép tệp mạnh mẽ cho dòng lệnh Windows cho phép bạn sao chép tệp, thư mục và thậm chí ổ đĩa từ vị trí này sang vị trí khác. Nếu bạn muốn biết thêm thông tin, hãy kiểm tra bài viết này https://rocketfiles.com/articles/what-is-robocopy-in-windows


2
Tôi không chắc đây là câu trả lời rõ ràng cho câu hỏi. Làm thế nào để câu trả lời này liên quan đến vấn đề trùng lặp?
Todd Wilcox
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.