TGViewer
Записки IT специалиста Записки IT специалиста @interface31 · 9.03K subscribers
Post #4344 2.49K
​​Потоки целостности ReFS – плюсы, минусы и подводные камни

Потоки целостности ReFS – это дополнительная функция файловой системы, которая позволяет осуществлять контроль целостности данных путем использования контрольных сумм. При этом ReFS всегда использует контрольные суммы для метаданных.

Потоки целостности можно включить для файла, директории или тома. По умолчанию они выключены. Потоки целостности наследуются от родительского каталога или корня тома, т.е. включив потоки целостности для каталога вы включите их для всех находящихся в нем файлов и папок.

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

При повреждении данных возможны два варианта действия.

1️⃣ Если ReFS используется на одиночном томе или на Дисковых пространствах без отказоустойчивости, то поврежденный файл блокируется и приложению сообщается об ошибке чтения.

2️⃣ Если используется зеркало или пространства четкости, то ReFS попробует восстановить файл, при успехе приложению будет отдан восстановленный файл, при неудаче – сообщение об ошибке чтения.

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

Проверить состояние потоков целостности для файлов можно командой:

Get-FileIntegrity -FileName H:\Docs\TextDocument.txt

Для всех файлов в каталоге:

Get-Item -Path 'C:\Docs\*' | Get-FileIntegrity

Включить потоки целостности можно для файла, каталога или тома:

Set-FileIntegrity H:\Docs\TextDocument.txt -Enable $True
Set-FileIntegrity H:\Docs -Enable $True
Set-FileIntegrity H:\ -Enable $True

Вроде бы пока все хорошо и интересно, но есть один неочевидный момент.

Если мы посмотрим в вывод команды Get-FileIntegrity то увидим:

FileName Enabled Enforced
 --------               ------- --------

 H:\Docs\TextDocument.txt False   True


Ну с колонкой Enabled – понятно, а вот что такое Enforced?

Выше мы говорили, что в случае неудачного восстановления доступ к файлу будет заблокирован. Параметр Enforced как раз отвечает за блокировку файла.

🆘 Применительно к ReFS блокировка означает фактическое удаление, так как нет никаких способов разблокировать такой файл.

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

Такое поведение можно выключить, для этого используйте

Set-FileIntegrity H:\Docs\TextDocument.txt -Enforce $False

Но помните, что по умолчанию оно включено для всех объектов тома.

Отключить потоки целостности тоже легко:

Set-FileIntegrity H:\Docs\TextDocument.txt -Enable $False

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

С другой она же позволит обеспечить лучшую целостность при наличии отказоустойчивости, либо поможет проще справиться с повреждениями диска.

👆В общем – применяйте с умом.
  • 👍 28
  • ❤ 4
More from @interface31
  1. Oct 16, 2026Selectel обновил пользовательское соглашение. А что там? Правильно: 6.4. Исполнитель не не…
  2. Oct 16, 2026Post #6889
  3. Oct 15, 2026И еще немного про алиасы в PowerShell PowerShell предлагает большой набор встроенных алиас…
  4. Oct 15, 2026Post #6883
  5. Oct 15, 2026Настраиваем политику паролей в Linux Во многих дистрибутивах Linux (а более подробно мы бу…
  6. Oct 15, 2026Post #6881
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →