Назад | Перейти на главную страницу

Очевидно, Robocopy не понимает дедупликацию Windows Server 2016. Есть ли способ заставить его работать, не повредив том?

Сценарий:

.... но 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"

Варианты и назначение:

  • / MIR - Зеркальное отображение источника в место назначения и удаление файлов и каталогов в месте назначения, если их больше нет в источнике
  • / COPYALL - копировать всю информацию о файле: данные, атрибуты и временные метки, списки ACL безопасности NTFS, информацию о владельце, информацию аудита (не все включены по умолчанию)
  • / DCOPY: DAT - копировать всю информацию о каталоге - данные, атрибуты, временные метки (исходная временная метка создания не копируется по умолчанию; обычно это изменяется на дату, когда она была скопирована Robocopy)
  • / NP - не отображать прогресс
  • / Z - использовать перезапускаемый режим
  • / B - копировать файлы в режиме резервного копирования (я не знаю, требуется ли это для пользовательских каталогов, в которых они являются исключительным владельцем, за исключением администратора. Этот параметр уничтожит дедуплицированный целевой том без исключения «Информация о системном томе»)
  • / J - копирование с использованием небуферизованного ввода-вывода (более быстрое копирование больших файлов с несколькими гигабайтами)
  • / SL - Копировать символические ссылки, а не целевые
  • / MT: 128 - использовать максимальное количество потоков ЦП (лучше использовать 10-гигабитный Ethernet и много ядер ЦП)
  • / R: 1 - Если ошибка доступа к файлу, повторить попытку 1 раз
  • / W: 10 - Если ошибка доступа к файлу, подождите 10 секунд перед повторной попыткой
  • / LOG + - записывать вывод в текстовый файл, добавлять, если файл журнала уже существует
  • / TEE - Печатать результаты на экран и в файл журнала
  • / XD - Исключить каталоги и все, что в них. Имена с пробелами должны быть заключены в кавычки: "Recycler" "Recycled" "$ Recycle.bin" "Информация о системном томе"
  • / 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