Сценарий:
Выполнение миграции сервера со старого 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 :: MIR Исключает дерево каталогов (эквивалент / E plus / PURGE).
/ ZB :: использовать перезапускаемый режим; если доступ запрещен, используйте режим резервного копирования.
Это комбинация, в которой вы оказались: /MIR
удалит (как указано при запуске robocopy
без аргументов) и «Режим резервного копирования» отменяет большинство разрешений, чтобы иметь возможность читать файлы, которые «обычно» не читаются, для создания полных резервных копий.
«Режим резервного копирования» не определен в описании «справки». Вы должны знать, что Windows CreateFile
API поддерживает флаг под названием FILE_FLAG_BACKUP_SEMANTICS
, что в сочетании с определенным правом доступа SE_BACKUP_NAME
(который предоставляется группе администраторов по умолчанию - также группа «Операторы резервного копирования», да) обходит обычную безопасность файлов.
Вы этого не знали? Тогда вы также можете не знать, что robocopy изначально вообще не входил в состав Windows - он был частью дополнения под названием «Windows Resource Kit», которое использовалось в основном программистами и заядлыми системными администраторами в свое время, и хотя он был включен в дистрибутив Windows еще в Windows Server 2008, он никогда не привлекал к себе внимания - кроме дополнительных параметров производительности, woot! В частности, отсутствие внимания со стороны менеджеров программ, посвященных пользовательскому интерфейсу или удобству использования. Так что это грубая сила, которую можно использовать - или недооценить! - на свой страх и риск.
(Хорошее практическое правило: не используйте параметры командной строки, которые вы действительно не понимаете.)
Информация о доступе к файлам в режиме резервного копирования:
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
Вот результаты контроля с использованием других предоставленных ответов и тестирования с дедуплицированным адресатом. (Мета: Я не знаю, стоит ли включать это как правку в конец моего исходного вопроса.)
Командная строка 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"
Варианты и назначение:
Окончательный повторный запуск:
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 интернет сайт:
https://docs.microsoft.com/en-us/windows-server/storage/data-deduplication/overview
Я думаю, вы не знаете, что это такое robocopy / Robocopy - это надежная команда копирования файлов для командной строки Windows, которая позволяет копировать файлы, каталоги и даже диски из одного места в другое. Если вам нужна дополнительная информация, проверьте эту статью https://rocketfiles.com/articles/what-is-robocopy-in-windows