분명히 Robocopy는 Windows Server 2016 중복 제거를 이해하지 못합니다. 볼륨을 손상시키지 않고 작동시키는 방법이 있습니까?


13

대본:

  • 이 서버 오류 가이드에 따라 이전 Server 2008 R2에서 새 서버 2016으로 서버 마이그레이션 수행 : Robocopy를 사용한 파일 서버 마이그레이션

  • Robocopy가 완료되면 복사 한 볼륨에 대해 Server 2016에서 중복 제거를 활성화 한 다음 PowerShell을 사용하여 수동으로 중복 제거를 시작합니다. 몇 시간이 지나면 디스크 공간의 약 25 %가 완료되고 복구됩니다.

  • Robocopy를 다시 실행하여 새 서버의 최종 확인으로 초기 복사에서 누락 된 내용을 복사하십시오.

.... 그러나 서버 2016에서 실행되는 Robocopy는 중복 제거를 이해하지 못하므로 중복 제거 청크 저장소를 휴지통으로 이동합니다.

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

[......]

나는 로그 에서이 비행을보고 무슨 일이 일어나고 있는지 인식 한 후 순간을 중단했다. 그러나 이미 손상된 상태입니다. 중복 제거 된 새 서버의 데이터는 \ System Volume Information을 통해 폭풍으로 인해 Robocopy에 의해 즉시 손상되었습니다. 새 서버 드라이브 파티션이 Server 2008에서 다시 포맷되고 다시 복사되었습니다.

중복 제거 볼륨 데이터에 닿지 않도록 Robocopy를 사용하는 안전한 방법이 있습니까?

또한, 새로운 관심사가 있습니다. Robocopy가 중복 제거 된 볼륨을 파괴 할 수 있다면, 중복 제거 된 볼륨과 함께 사용하기에 안전하지 않은 것은 무엇입니까? (아마도 별도의 질문이어야합니다 ..)


5
/MIR스위치가 MIRror a directory tree (equivalent to /E plus /PURGE어디에서 일어날 것으로 예상 했 /PURGE :: delete dest files/dirs that no longer exist in source습니까? "미러"는 대상을 원본의 복사본으로 만드는 것을 의미합니다. Robocopy는 강력합니다. 물론 우리는 그 의미를 알고 있습니다.
davidbak

"\ 시스템 볼륨 정보"는 일반적으로 액세스 할 수 없으며 모든 프로그램은 일반적으로 액세스 할 수 없습니다. 관리자 명령 프롬프트에서 실행될 때에도 Robocopy가 들어갈 수있는 방법이 없어야합니다. 동일한 Server 2016에서 시작-> 명령 프롬프트-> 관리자 권한으로 실행하여 수동으로 액세스 해 봅시다. CD \ 시스템 볼륨 정보. 접근이 불가합니다.
데일 마할 코

사실입니다. 또한 /ZB :: use restartable mode; if access denied use Backup mode백업을 완료하기 위해 "일반적으로"읽을 수없는 파일을 읽을 수 있도록 백업 모드가 대부분의 권한을 무효화 하는 위치 를 사용했음을 지적해야합니다 . 그것은 따라서이었다 조합 의은 /B/MIR그에서 당신을했다있는 Robocopy이 강력하다 ... 제가 위에서 언급 한 바와 같이 ....
davidbak

선택의 여지가 있으면 마이그레이션이 완료 될 때까지 중복 제거를 해제하십시오.
팀 브리검

답변:


16

System Volume Information디렉토리는 / XD 스위치를 사용하여 제외해야합니다. 아마도 다른 숨겨진 / 시스템 디렉토리를 제외하는 것이 좋습니다 $RECYCLE.BIN.


5

사용 된 두 개의 명령 행 스위치는 다음 /MIR과 같습니다 /ZB. 설명서 ( robocopy /???)에 설명 된대로 :

/ MIR :: 디렉토리 트리를 미러링합니다 (/ E plus / PURGE와 동일).
/ ZB :: 재시작 가능 모드 사용; 액세스가 거부되면 백업 모드를 사용하십시오.

그것은 당신이 한 조합입니다 : /MIRdelete ( robocopy인수없이 실행할 때 지적한 바와 같이 ) 및 "백업 모드"는 파일을 "일반적으로"읽을 수 없어서 완전한 백업을하기 위해 대부분의 권한을 무효화합니다.

"백업 모드"는 "도움말"설명에서 특히 정의되지 않습니다. Windows CreateFileAPI는이라는 플래그를 지원합니다.이 플래그 FILE_FLAG_BACKUP_SEMANTICS는 특정 액세스 권한 SE_BACKUP_NAME( 기본적으로 관리자 그룹 부여 된 백업 운영자 그룹)과 함께 일반 파일 보안을 무시합니다.

당신은 몰랐어요? 그러면 robocopy가 원래 Windows의 일부가 아니었다는 것을 알지 못할 수도 있습니다. "Windows Resource Kit"라는 보조 장치의 일부였으며,이 프로그램은 주로 프로그래머와 하드 코어 sysadmins가 주로 사용했습니다. 추가 성능 옵션을 제외하고는 전혀 주목을받지 못했습니다! 특히 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


1
BTW /Z"재시작 가능 모드" 에 대해 위험한 것은 없습니다 (AFAIK) . 그것은 B문제가되는 것입니다 ...
davidbak

/ B를 사용하지 않고 관리자 계정을 사용하여 각 계정 디렉토리에 별도의 소유자 및 보안 데이터가있는 파일 서버 도메인 계정을 완전히 완전히 복사 할 수 있습니까 (/ COPYALL 또는 / COPY : DATSOU)?
Dale Mahalko

@DaleMahalko-TBH 몰라요. 나는 수십 년 동안 Windows를 프로그래밍 해 왔지만 피할 수있는 측면이 있으므로 필요할 때 나를 풀 수있는 Windows 보안에 대해서만 충분히 알고 있습니다 ... 나는 항상 로그인 한 사람입니다. 관리자 인 저는 그룹 정책에 들어가서 모든 것을 완전히 시행하지 않는 등의 일을합니다. 다른 사람이 알고 있습니까?
davidbak

1

제공된 다른 답변을 사용하고 중복 제거 된 대상으로 테스트 한 후속 결과는 다음과 같습니다. ( 메타 : 원래 질문의 맨 아래에 이것을 편집으로 포함시켜야하는지 모르겠습니다. )

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 기가비트 이더넷 및 많은 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에 버그를 신고 할 적절한 채널을 모르지만 Microsoft 중복 제거 설명서 하단의 Windows IT Pro Center 웹 사이트 에서이 토론에 연결했습니다 .

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


/MT:128다소 높은 것 같습니다. 그것을 높게 설정하는 것이 실제로 효과적이라는 것을 알았습니까?
davidbak

1
추신 : 나는 커맨드 라인에서 일하는 것을 좋아합니다. 이 정확한 기능을 얻기 위해 천천히 작업해야하는 불쾌한 탭 대화 상자를 상상해보십시오. 이러한 UI는 "저장"모드를 갖지 않으므로 매번 수행해야합니다!
davidbak

그들이 왜 최종 사용자에게 스레딩 제어를 노출시키는 것을 귀찮게하는지 모르겠습니다. 결국 1 분 안에 1.5TB의 데이터를 변경하지 않고 아무런 변화가 없으므로 max 스레드를 사용하는 "충격"이 무엇이든 상관 없습니다. 이 공연은 나에게 꽤나 수용 가능하다.
데일 마할 코

@ DaleMahalko-개인적으로 최대 스레드를 제어하는 ​​것이 유용하다는 것을 알았습니다. 각 파일에 몇 시간이 걸리는 곳에 10 개의 파일을 복사하는 경우 MT : 2를 설정하면 한 번에 2 개의 파일 복사 스레드 만 활성화 할 수 있습니다. MT : 2는 MT : 10 (모든 파일 복사가 동시에) 인 경우 10 개가 아닌 2 개 파일 사본 만 중단되도록 보장합니다. 이 경우 10 개 중 마지막 2 개 파일에서 중단이 발생하면 모든 파일이 아니라 다시 시작해야합니다 (다른 8 개는 이미 복사되어 있음).
Rod

내가 Robocopy를 마지막으로 사용한 지 오래되었지만 지금은 제한된 수의 스레드가 두 서버 간의 네트워크 링크를 포화시키지 않지만 더 많은 스레드가 있음을 기억합니다. 그리고 이것이 정말로 초점이되어야합니다. 최대 스레드를 지정하는 것은 도움이되지 않지만 "대역폭 X가 넘어갈 때까지 더 많은 복사 스레드를 천천히 추가하고 임계 값을 초과하면 복사가 완료 될 때 스레드를 더 추가하지 마십시오"는 실제로 유용하며 두 요구를 모두 충족시킵니다.
데일 마할 코

0

robocopy / Robocopy가 무엇인지 모른다고 생각합니다. Windows 명령 줄을위한 강력한 파일 복사 명령으로 파일, 디렉토리 및 드라이브를 한 위치에서 다른 위치로 복사 할 수 있습니다. 자세한 내용을 보려면이 기사 https://rocketfiles.com/articles/what-is-robocopy-in-windows를 확인 하십시오.


2
이것이 질문에 대한 명확한 대답인지 확실하지 않습니다. 이 답변은 중복 제거 문제와 어떤 관련이 있습니까?
토드 윌콕스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.