Cenário:
Fazendo uma migração de servidor do antigo Server 2008 R2 para o novo Server 2016, seguindo este guia de Falhas no Servidor: Migração do servidor de arquivos usando Robocopy
Após a conclusão do Robocopy, habilite a desduplicação no Server 2016 para o volume copiado e use o PowerShell para iniciar a despulificação manualmente. Depois de muitas horas, ele completa e recupera cerca de 25% do espaço em disco.
Execute o Robocopy novamente para copiar qualquer coisa que tenha sido perdida na cópia inicial, como uma verificação final do novo servidor.
.... mas o Robocopy (executado no Server 2016) não entende a desduplicação e, em vez disso, continua a lixeira do chunkstore de desduplicação.
-------------------------------------------------------------------------------
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
[......]
Abortei-o momentos depois de ver essa mosca no tronco e reconhecer o que estava acontecendo. Mas o dano já está feito, os dados no novo servidor desduplicado foram instantaneamente corrompidos pelo Robocopy, uma vez que invadiram \ System Volume Information. A nova partição da unidade do servidor foi formatada e copiada novamente do Server 2008.
Existe uma maneira segura de usar o Robocopy para que ele não toque nos dados do volume de deduplicação?
Além disso, tenho uma nova preocupação. Se o Robocopy pode destruir um volume deduplicado, o que mais é perigoso usar com um volume deduplicado, que é visualizado através dele e pode destruir os dados subjacentes que devem ser acessíveis apenas pelo servidor? (provavelmente deve ser uma pergunta separada ..)
fonte
/MIR
switch que éMIRror a directory tree (equivalent to /E plus /PURGE
onde/PURGE :: delete dest files/dirs that no longer exist in source
? "Espelho" significa tornar o destino uma cópia da fonte. A robocópia é poderosa ... e é claro que sabemos o que isso significa: com grande poder vem uma grande responsabilidade!/ZB :: use restartable mode; if access denied use Backup mode
modo de backup que derrota a maioria das permissões para poder ler arquivos "normalmente" ilegíveis para fazer backups completos. Por isso, foi a combinação de/B
e/MIR
que fez você em Robocopy é poderoso ... como eu mencionei acima ....Respostas:
O
System Volume Information
diretório deve ser excluído usando a opção / XD. Provavelmente é uma boa idéia excluir outros diretórios ocultos / do sistema, como$RECYCLE.BIN
.fonte
Duas opções de linha de comando que foram usadas levam a isso:
/MIR
e/ZB
. Como a documentação (robocopy /???
) descreve:É a combinação que você fez:
/MIR
irá excluir (conforme indicado quando você executarobocopy
sem argumentos) e o "Modo de backup" derrota a maioria das permissões para poder ler arquivos "normalmente" ilegíveis para fazer backups completos."Modo de backup" é notavelmente indefinido na descrição da "ajuda". Você precisa saber que a
CreateFile
API do Windows suporta um sinalizador chamadoFILE_FLAG_BACKUP_SEMANTICS
, que em combinação com um certo direito de acessoSE_BACKUP_NAME
(que é fornecido ao grupo Administrador por padrão - também o grupo Operadores de Backup, duh) ignora a segurança normal dos arquivos.Você não sabia disso? Talvez você também não saiba que a robocopy não era originalmente parte do Windows - fazia parte de um suplemento chamado "Windows Resource Kit", usado principalmente por programadores e administradores de sistemas do passado, e embora foi avô na distribuição do Windows no Windows Server 2008 e nunca recebeu atenção alguma - exceto por opções adicionais de desempenho, woot! Particularmente, nenhuma atenção dos gerentes de programas dedicados à interface do usuário ou à usabilidade . Portanto, é um pouco de energia que pode ser usada - ou mal interpretada! - por sua conta e risco.
(Uma boa regra geral: não use opções de linha de comando que você realmente não entende.)
Informações que você gostaria de saber sobre o acesso ao arquivo "Modo de backup":
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
fonte
/Z
"modo reinicializável". ÉB
isso que é problemático ...Aqui estão os resultados do acompanhamento usando as outras respostas fornecidas e testando com um destino deduplicado. ( Meta: não sei se devo incluir isso como uma edição na parte inferior da minha pergunta original. )
A linha de comando do Robocopy evoluiu para finalmente ficar assim:
Opções e finalidade:
Execução final:
,
Além disso, não conheço os canais adequados para relatar erros à Microsoft, mas vinculei-me a essa discussão na parte inferior da documentação de desduplicação da Microsoft, no site do Windows IT Pro Center :
https://docs.microsoft.com/en-us/windows-server/storage/data-deduplication/overview
fonte
/MT:128
parece bastante alto; você descobriu que era realmente eficaz defini-lo tão alto (e não é contraproducente ultrapassar um valor mais baixo)?Eu acho que você não sabe o que é robocopy / Robocopy - é um comando robusto de cópia de arquivo para a linha de comando do Windows que permite copiar arquivos, diretórios e até unidades de um local para outro. Se você quiser obter mais informações, consulte este artigo https://rocketfiles.com/articles/what-is-robocopy-in-windows
fonte