Мабуть, Robocopy не розуміє дедуплікації Windows Server 2016. Чи є спосіб змусити його працювати без пошкодження гучності?


13

Сценарій:

  • Здійснення міграції сервера зі старого сервера 2008 R2 на новий сервер 2016, дотримуючись цього керівництва про помилки сервера: міграція файлового сервера за допомогою роботокопії

  • Після завершення роботи Robocopy увімкніть дедуплікацію на сервері 2016 для скопійованого тома, а потім використовуйте PowerShell, щоб розпочати дедуплікацію вручну. Через багато годин він заповнює і відновлює близько 25% місця на диску.

  • Запустіть Робокопію ще раз, щоб скопіювати все, що можливо було пропущено в початковій копії, як остаточну перевірку нового сервера.

.... але Robocopy (запускається з сервера 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

[......]

Я перервав це хвилини після того, як побачив цю муху в журналі і визнав, що відбувається. Але шкода вже зроблена. Робокопія миттєво пошкодила дані на декомплікаційному новому сервері під час штурму через \ System Volume Information. Новий розділ накопичувача сервера відформатовано та знову відновлюється з 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? "Дзеркало" означає зробити призначення копією джерела. Робокопія є потужною ... і ми, звичайно, знаємо, що це означає: З великою силою приходить велика відповідальність!
davidbak

"\ Інформація про обсяг системи" зазвичай недоступна, і всі програми, як правило, не мають доступу до неї. Не повинно бути жодним чином, щоб Robocopy міг потрапити туди навіть під час запуску з командного рядка адміністратора. Давайте спробуємо отримати доступ до нього вручну на тому ж сервері 2016: Пуск -> Командний рядок -> Запустити як адміністратор. Інформація про гучність CD \ System. Доступ заборонено.
Дейл Махалко

Це правда. Я також повинен зазначити, що ви використовували /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 :: MIRror дерево каталогів (еквівалентно / E плюс / PURGE).
/ ZB :: використовувати режим перезавантаження; якщо доступ заборонено, використовуйте режим резервного копіювання.

Це поєднання, яке ви зробили: /MIRвидалить (як вказувалось, коли ви запускаєте robocopyбез аргументів), а "Резервне копіювання" переможе більшість дозволів, щоб можна було читати файли, "звичайно" нечитабельні, щоб зробити повне резервне копіювання.

"Режим резервного копіювання" в описі "довідки" помітно не визначений. Ви повинні знати, що CreateFileAPI Windows підтримує прапор під назвою FILE_FLAG_BACKUP_SEMANTICS, який у поєднанні з певним правом доступу SE_BACKUP_NAME(яке за замовчуванням надано групі адміністратора - також групі операторів резервного копіювання, так), що минає нормальну безпеку файлів.

Ви цього не знали? Тоді ви, можливо, також не знаєте, що роботокопія спочатку взагалі не була частиною Windows - вона була частиною доповнення під назвою "Комплект ресурсів Windows", який використовувався в основному програмістами і жорсткими системними адміністраторами ще в той час, і хоча був розібраний у дистрибутиві 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


1
До речі, в /Z"режимі перезавантаження" немає нічого небезпечного (AFAIK) . Це те, Bщо проблематично ...
davidbak

Чи можуть файли облікових записів серверів із окремими власниками та захищеними даними у кожному каталозі облікових записів повністю і повністю скопійовані (/ COPYALL або / COPY: DATSOU) за допомогою облікового запису адміністратора, не використовуючи / B?
Дейл Махалко

@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 - Скопіюйте всю інформацію про файл: дані, атрибути та часові позначки, ACL-файли безпеки NTFS, Інформація про власника, Інформація про аудит (не всі включені за замовчуванням)
  • / DCOPY: DAT - Скопіюйте всю інформацію каталогів - дані, атрибути, часові позначки (оригінальна часова марка створення за замовчуванням не копіюється; зазвичай це змінюється на дату, коли вона була скопійована Robocopy)
  • / NP - Не показувати прогрес
  • / Z - Використовуйте режим перезавантаження
  • / B - Скопіюйте файли в режимі резервного копіювання (я не знаю, чи потрібно це для каталогів користувачів, де вони є ексклюзивним власником, за винятком адміністратора. Ця опція знищить подвійний цільовий том, не виключаючи "Інформація про системний об'єм")
  • / J - Скопіюйте за допомогою небуферизованого вводу-виводу (швидша копія великих файлів з кількома гігами)
  • / SL - Скопіюйте символьні посилання, а не цільові
  • / MT: 128 - Використовуйте максимальні потоки процесора (краще використовувати 10 гігабітних Ethernet та багатьох ядер CPU)
  • / R: 1 - Якщо помилка доступу до файлу, повторіть спробу 1 раз
  • / Вт: 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
PS Я люблю працювати в командному рядку. Уявіть неприємне діалогове вікно з вкладками, яке вам доведеться повільно переробляти, щоб дістатись до цієї точної функціональності. І жоден з цих інтерфейсів не має режиму "збереження", тому вам доведеться робити це кожен раз!
davidbak

Я не знаю, чому вони намагаються піддавати контролю над потоками кінцевому користувачеві. Врешті-решт він перебирає 1,5 ТБ даних за одну хвилину, не показуючи жодних змін, тому який би "вплив" не використовував максимум потоків, здається, це не має значення. Цей виступ для мене цілком прийнятний.
Дейл Махалко

@DaleMahalko - особисто мені було корисно мати можливість керувати максимумом потоків. Якщо у мене є 10 файлів для копіювання, де кожен займає кілька годин, налаштування MT: 2 дозволяє мені мати лише 2 потоки копіювання файлів, щоб бути активними одночасно. У ненадійній або складній інфраструктурі, де трапляються перебої, MT: 2 гарантує, що лише 2 копії файлів будуть перервані, а не 10, якщо у мене MT: 10 (усі файли копіюються одночасно). У цьому випадку, якщо в останніх 2-х файлах з 10 відбудеться переривання, потрібно буде перезапустити лише ті (з іншими вже скопійованими 8), а не всі.
прут

Зараз минуло давно, коли я востаннє використовував Robocopy, але, схоже, я пам'ятаю, що обмежена кількість потоків не насичує мережевий зв’язок між двома серверами, але більше потоків. І це справді має бути в центрі уваги. Вказати максимум потоків не допомагає, але "повільно додайте більше ниток копіювання, поки смуга пропускання X не буде перекреслена, і якщо вище порогового значення, не додайте більше ниток, оскільки копії закінчуються" насправді корисно і відповідатиме обом нашим потребам.
Дейл Махалко

0

Я думаю, ви не знаєте, що це робокопія / Робокопія - це надійна команда копіювання файлів для командного рядка Windows, яка дозволяє копіювати файли, каталоги та навіть диски з одного місця в інше. Якщо ви хочете отримати додаткову інформацію, перегляньте цю статтю https://rocketfiles.com/articles/what-is-robocopy-in-windows


2
Я не впевнений, що це чітка відповідь на питання. Як ця відповідь пов’язана з проблемою дедупликації?
Тодд Вілкокс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.