Как программно имитировать повреждение файлов для проверки функций проверки и восстановления работоспособности ReFS? - PullRequest
0 голосов
/ 27 августа 2018

Я хотел бы программно протестировать Проверка работоспособности Windows ReFS и восстановление функций.

Примечание: ReFS обнаруживает только битрот (без самовосстановления). Чтобы ReFS и обнаружил и автоматически исцелил, необходимо также использовать Storage Spaces. Итак, я подготовил пул Storage Mirror Space S:\ с настройкой двустороннего зеркала.

Включены потоки целостности ReFS,

PS C:\> Set-FileIntegrity -FileName 'S:\' -Enable $True

согласно найденным инструкциям здесь .

Как программно смоделировать повреждение файла для тестирования функций проверки работоспособности ReFS и восстановления?

Я не могу найти простой способ ввести гниль. Все системы, которые я пробовал, выполняли только те изменения, которые допустимы для ReFS как законные.

Если возможно, лучше использовать метод PowerShell. Perl, Python или любой другой товар тоже.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

Чтобы создать повреждение, используйте разрушающий тест записи в Hard Disk Sentinel Pro.Настройте его на случайную, а не последовательную работу.Я установил это, чтобы написать случайные образцы битов.Просто запустите его на одну-три минуты, и вы увидите на отображенной карте целую кучу пятен по всему диску, которые разрушаются.

Вот как я провел некоторое тестирование (я печатаю быстро, поэтому янадеюсь, я ничего не пропущу)

  1. Почти заполнить зеркальное хранилище ReFS файлами.
  2. Включить целостность файлов для всех файлов:

    Get-ChildItem -Path 'i: *' -Recurse |Set-FileIntegrity -Enable $ True -Enforce $ False

Мы сделаем еще один тест позже с Enforce $ True, но сначала сделаем ложный.Вы поймете, почему позже.Читайте о включении и применении.

Извлеките один из дисков и подключите его к порту SATA на втором компьютере. На этом втором компьютере введите повреждение файла с помощью Hard Disk Sentinel Извлеките поврежденный диск и вставьтеэто обратно в первый компьютер с местом для хранения.Теперь у вас будет зеркальное хранилище, где один диск в порядке, а на другом - куча поврежденных файлов.

Попробуйте скопировать все файлы из хранилища на другой диск.

Мои тесты показывают, что почти ничего не ремонтируется и почти ничего не отображается в журнале событий.Может быть одна или две ошибки и все.Вы можете подумать, что, возможно, не так много было повреждено в первую очередьХорошо, теперь установите Enforce $ True и повторите операцию копирования.При включенном Enforce копия будет останавливаться на десятках файлов с ошибками контрольной суммы - доказывая, что ReFS в этом случае просматривает контрольные суммы.

Проблема в том, что опять почти ничего не отображается в журнале.Кроме того, при включенном Enforce я получил ошибку контрольной суммы для одного файла, который предположительно был исправлен во время первого теста с отключенным Enforce!

Проверьте эти темы:

Зачем использовать ReFS?

Проверка ReFS с поврежденными данными.Работает ли он

Кто-нибудь запускал сканирование целостности данных на томе ReFS?

ReFS / Storage Spaces время от времени регистрирует проблему, и людивидите, чтобы они просто предполагали, что это прекрасно работает.Кроме того, люди не могут найти хороший способ создать тестовое повреждение, чтобы они не беспокоились о тестировании.Я тестировал на Windows 10 Pro для SKU рабочих станций, и результаты ужасные.

Пожалуйста, запустите некоторые тесты самостоятельно, чтобы подтвердить мои выводы.

0 голосов
/ 29 августа 2018

Звучит так, будто вы хотите записать в основное хранилище напрямую, минуя файловую систему. Это означает запись прямо на диск / раздел / том. В Windows это можно сделать, работая с низкоуровневыми конструкциями, такими как \\.\PhysicalDrive0 - вы можете открыть дескриптор «file» для такого устройства и записывать данные непосредственно в сектора. Вы можете найти некоторые низкоуровневые инструменты, которые делают именно это.

В Linux это несколько проще, поскольку вы можете использовать dd для записи на любое блочное устройство.

Если ваш компьютер с Windows является виртуальной машиной, то может быть проще всего отредактировать файл VHDX («жесткий диск») с хост-машины, возможно, с помощью редактора HEX.

Может быть немного сложно сопоставить конкретный файл с секторами на диске, в которых содержатся данные. Существует несколько методов определения того, где на самом деле находятся данные, но вы можете прибегнуть к простому методу грубой силы - написать конкретный фрагмент, казалось бы, уникальных данных и просто отсканировать весь диск, чтобы найти его.

...