Файловая система refs в windows 10

Появившуюся ещё в 2012 году новую файловую систему REFS сразу же окрестили как "убийца NTFS". Сегодня я хочу подробно рассказать о ней, о её основных преимуществах и недостатках

Сравнение возможностейFeature comparison

ОграниченияLimits

КомпонентFeature ReFSReFS NTFSNTFS
Максимальная длина имени файлаMaximum file name length 255 символов Юникода255 Unicode characters 255 символов Юникода255 Unicode characters
Максимальная длина имени путиMaximum path name length 32 КБ символов Юникода32K Unicode characters 32 КБ символов Юникода32K Unicode characters
Максимальный размер файлаMaximum file size 35 PB (петабайтов)35 PB (petabytes) 256 ТБ256 TB
Максимальный размер томаMaximum volume size 35 ПБ35 PB 256 ТБ256 TB
ФункциональностьFunctionality ReFSReFS NTFSNTFS
шифрование BitLocker;BitLocker encryption ДаYes ДаYes
дедупликация данных;Data Deduplication Да1Yes1 ДаYes
Поддержка общих томов кластера (CSV)Cluster Shared Volume (CSV) support Да2Yes2 ДаYes
Гибкие ссылкиSoft links ДаYes ДаYes
Поддержка отказоустойчивого кластераFailover cluster support ДаYes ДаYes
Списки управления доступомAccess-control lists ДаYes ДаYes
Журнал USNUSN journal ДаYes ДаYes
Уведомления об измененияхChanges notifications ДаYes ДаYes
Точки соединенияJunction points ДаYes ДаYes
Точки подключенияMount points ДаYes ДаYes
Точки повторного анализаReparse points ДаYes ДаYes
Моментальные снимки томовVolume snapshots ДаYes ДаYes
Идентификаторы файловFile IDs ДаYes ДаYes
Операционные блокировкиOplocks ДаYes ДаYes
Разреженные файлыSparse files ДаYes ДаYes
Именованные потокиNamed streams ДаYes ДаYes
Тонкая подготовкаThin Provisioning Да3Yes3 ДаYes
Обрезать/отменить сопоставлениеTrim/Unmap Да3Yes3 ДаYes
  1. Доступно в Windows Server версии 1709 и более поздних версиях.Available on Windows Server, version 1709 and later.
  2. Доступно в Windows Server 2012 R2 и более поздних версиях.Available on Windows Server 2012 R2 and later.
  3. Только дисковые пространстваStorage Spaces only

Следующие функции доступны только в ReFS:The following features are only available on ReFS:

ФункциональностьFunctionality ReFSReFS NTFSNTFS
Клонирование блоковBlock clone ДаYes нетNo
Разреженный метод VDLSparse VDL ДаYes нетNo
Четность с зеркальным ускорениемMirror-accelerated parity Да (в локальных дисковых пространствах)Yes (on Storage Spaces Direct) нетNo

Поддерживаемые функции NTFS

ReFS унаследовала многие функции и семантики своей предшественницы NTFS, в том числе:

  • Ширование BitLocker
  • журнал USN
  • списки контроля доступа (ACL)
  • символьные ссылки для библиотек
  • точки монтирования (mount points)
  • точки соединения (junction points)
  • точки повторной обработки (reparse points)

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

В ReFS отказались от следующих функций NTFS:

  • сжатие данных
  • шифрование на уровне файлов EFS
  • квоты
  • короткие имена файлов 8.3
  • Жесткие ссылки (Hard links)

Скорость работы

Ввиду того, что речь идет о Beta, замеров производительности ФС не проводилось. С точки же зрения архитектуры ФС можно сделать кое-какие выводы. При копировании более 70 тыс. файлов на ReFS, это создало B+-дерево «Каталога» размером в 4 уровня: «корень», промежуточный уровень 1, промежуточный уровень 2, «листья».

Таким образом, для поиска атрибутов папки (при условии кэширования корня дерева) требуется 3 чтения блоков по 16КБ. Для сравнения, на NTFS эта операция займет одно чтение размером 1-4КБ (при условии кэширования карты расположения $MFT).

Поиск атрибутов файла по папке и имени файла в папке (небольшая папка в несколько записей) на ReFS потребует те же 3 чтения. На NTFS же уже потребуется 2 чтения по 1КБ или 3-4 чтения (если запись о файле находится в нерезидентном атрибуте «индекс»). В паках большего размера количество чтений NTFS растет намного быстрее, чем количество чтений, требуемых для ReFS.

Точно так же дела обстоят и для содержимого файлов: там, где рост числа фрагментов файла на NTFS приводит к перебору длинных списков, разнесенных по разным фрагментам $MFT, на ReFS это осуществляется эффективным поиском по B+-дереву.

Применение ReFS

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

В Windows 10 ReFS применим только в совокупности с компонентом Storage Spaces. Обязательно отформатируйте свой диск, выделенный под хранение данных в ReFS, а не NTFS. В таком случае вы сможете в полной мере оценить надежность хранения данных.

В Windows Server вы сможете отформатировать раздел под ReFS с помощью стандартного инструмента Windows в консоли управления дисками. Рекомендуется обязательно отформатировать под ReFS, если вы используете виртуальные сервера. Но помните, что загрузочный диск должен быть отформатирован под NTFS. Загрузка из-под файловой системы ReFS не поддерживается операционными системами Windows.

Архитектура файловой системы

Несмотря на частые упоминания о схожести ReFS и NTFS на высоком уровне, речь идет всего лишь о совместимости некоторых структур метаданных, как-то: «стандартная информация», «имя файла», совместимость по значениям некоторых флагов атрибутов и т.д. Дисковая реализация структур ReFS кардинально отличается от других файловых систем Microsoft.

Основными структурными элементами новой файловой системы являются B+-деревья. Все элементы структуры файловой системы представлены одноуровневыми (списками) или многоуровневыми B+-деревьями, что позволяет значительно масштабировать практически любой из элементов файловой системы. Наряду с реальной 64-битной нумерацией всех элементов системы это исключает появление “узких мест” при дальнейшем ее масштабировании.

Кроме корневой записи B+-дерева, все остальные записи имеют размер целого блока метаданных (в данном случае — 16КБ); промежуточные же (адресные) ноды имеют небольшой полный размер (порядка 60 байт). Поэтому, обычно, требуется небольшое количество уровней дерева для описания даже очень крупных структур, что достаточно благоприятно сказывается на общей производительности системы.

Основным структурным элементом файловой системы является «Каталог», представленный в виде B+-дерева, ключом в котором является номер объекта-папки. В отличие от других подобных файловых систем, файл в ReFS не является отдельным ключевым элементом «Каталога», а лишь существует в виде записи в содержащей его папке. Возможно, именно ввиду этой архитектурной особенности жесткие ссылки на ReFS не поддерживаются.

«Листьями Каталога» являются типизированные записи. Для объекта-папки существуют три основных типа записей: описатель каталога, индексная запись и описатель вложенного объекта. Все такие записи упакованы в виде отдельного B+-дерева, имеющего идентификатор папки; корень этого дерева является листом B+-дерева «Каталога», что позволяет упаковать в папку практически любое количество записей. На нижнем уровне в листах B+-дерева папки находится в первую очередь запись описателя каталога, содержащая основные сведенья о папке (как-то: имя, «стандартная информация», атрибут имени файла и т.д.). Структуры данных имеют много общего с принятыми в NTFS, хотя и имеют ряд отличий, основным из которых является отсутствие типизированного списка именованных атрибутов.

Далее в каталоге следуют так называемые индексные записи: короткие структуры, содержащие данные об элементах, содержащихся в папке. По сравнению с NTFS эти записи значительно короче, что в меньшей степени перегружает том метаданными. Последними следуют записи элементов каталога. Для папок эти элементы содержат имя паки, идентификатор папки в «Каталоге» и структуру «стандартной информации». Для файлов идентификатор отсутствует, но вместо этого структура содержит все основные данные о файле, включая корень B+-дерева фрагментов файла. Соответственно, файл может состоять практически из любого числа фрагментов.

На диске файлы располагаются в блоках размером 64КБ, хотя адресуются точно так же, как и блоки метаданных (кластерами размером 16КБ). «Резидентность» данных файла на ReFS не поддерживается, поэтому файл размером 1 байт на диске займет целый блок 64КБ, что ведет к значительной избыточности хранения на мелких файлах; с другой стороны это упрощает управление свободным пространством и выделение свободного места под новый файл осуществляется значительно быстрее.

Размер метаданных пустой файловой системы составляет порядка 0.1% от размера самой файловой системы (т.е. около 2ГБ на том 2ТБ). Некоторые основные метаданные дублируются для лучшей устойчивости от сбоев.

Архитектурно загрузка с разделов ReFS возможна, но в данной редакции Windows Server она не реализована.

ReFS в Windows 8

Поддержка ReFS появилась в ОС Windows 8 и Windows Server 2012, причем только для томов с данными. То есть разделы с ReFS нельзя использовать для установки операционной системы и загрузки с него.  Со временем ReFS будет оснащена большим количеством функций и сможет целиком заменить устаревшую систему NTFS. Вероятно, все новые функции появятся в первом Service Pack-е для Windows 8.

Кроме того ReFS пока нельзя применять для съемных и переносных устройств хранения (ReFS пока применяется только для внутренних носителей).

Неприятным моментом является тот факт, что существующие NTFS тома нельзя конвертировать в ReFS на лету. Данные придется переносить обычным копированием.

Том можно отформатировать в файловую систему ReFS  через консоль Disk Management. Но дополнительные параметры, например, включение проверки целостности, можно включить только из командной строки.

Например,  включить проверку целостности ReFS  можно командой:

format /fs:refs /q /i:enable

Отключить проверку целостности:

integrity /disable /s d:\*

Преимущества файловой системы REFS

Производительность и скорость

Вообще, ReFS разрабатывалась не для повышения производительности файловой системы по сравнению, например, с той же старой доброй NTFS. Хотя в строго определённых случаях она значительно эффективнее и производительнее.
Например, если использовать её с функцией «Дисковое пространство», то ReFS может выполнять «оптимизацию в режиме реального времени». То есть, если у вас пул накопителей с двумя дисками, то один обеспечивает максимальную производительность, а другой будет использоваться для объема. ReFS будет записывать данные на более быстрый диск, обеспечивая максимальную производительность.

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

К сожалению, большинство подобных моментов связаны с серверными возможностями и обычному пользователю Windows 10 вряд ли будут интересны. Например, четность с зеркальным ускорением позволяет эффективно хранить данные на томе, используя многоуровневое хранилище.
Клонирование блоков обеспечивает значительный прирост производительности при слиянии виртуальных машин.
Разреженный метод «редкого VDL» позволяет мгновенно создать фиксированные файлы виртуального жесткого диска фиксированного размера (VHD). В NTFS эта операция занимает в среднем 5-10 минут, а в ReFS эта же операция займёт всего несколько секунд.

Надёжность и отказоустойчивость

REFS максимально защищена от сбоев. В случае с простым томом файловая система использует контрольные суммы для метаданных, а также может использовать контрольные суммы и для данных файла. Перед каждой операцией чтения/записи, данные проверяются на наличие ошибок и корректируются при необходимости в режиме реального времени. Кстати, из-за встроенных проверок ReFS не требует регулярного использования утилит проверки диска типа CHKDSK и если вы всё-таки попробуете это сделать, то получите ошибку. Возникает логичный вопрос — а вообще какая-то проверка проводится? Да, один раз в четыре недели запускается задача, которая в фоновом режиме сканирует том на наличие повреждений и, если такие обнаруживаются, то исправляются на лету.

ReFS отлично работает с функцией «Дисковое пространство». Стоит правильно настроить зеркальное хранилище данных и после этого ReFS в Windows будет внимательно следить за данными. Если обнаружит и повреждение файловой системы, то автоматически устранит их, скопировав данные с другого диска. Но вот если поврежденные данные не имеют альтернативной копии для восстановления — ReFS сразу же удалит эти данные с диска.

Ещё одна классная «фишка» — потоки целостности. По умолчанию в РЕФС потоки целостности включены только для метаданных, что позволяет держать файловую систему в непротиворечивом состоянии. Однако, при необходимости, Вы можете включить потоки целостности для всего тома или выбранных файлов/папок. В этом случае REFS гарантирует, что считанные данные являются тем, что Вы когда-то записали. Если контрольная сумма не совпадёт — REFS мгновенно сообщит об ошибке и удалит файл. Это будет сигналом к восстановлению файла из резервной копии.

В тех случаях, когда потоки целостности для данных включены у тома с избыточностью: RAID, чётность, двухстороннее или трехстороннее зеркало и т.п.  При таком раскладе, REFS при обнаружении ошибки контрольной суммы будет пробовать восстановить данные.

Ограничения файловой системы NTFS

ReFS более современна, чем NTFS и поддерживает гораздо большие объемы данных и более длинные имена файлов

В долгосрочной перспективе это очень важно

В файловой системе NTFS путь к файлу ограничен 255 символами. В ReFS максимальное количество символов составляет уже внушительные 32768 символов. В настоящее время в Windows 10 существует возможность отключить символьный элемент для NTFS. На дисковых томах ReFS такой лимит по умолчанию отключен.

ReFS не поддерживает имена файлов в формате DOS 8.3. На томах NTFS вам доступны папки “CProgram Files”, “CProgra`1”. Они нужны для совместимости со старым программным обеспечением. В ReFS вы не найдете привычных нам папок. Они удалены.

Теоретический максимальный объем данных, поддерживаемый NTFS – 16 эксабайт, ReFS поддерживает до 262144 эксабайт. Сейчас такая цифра кажется просто огромной.

REFS и NTFS — сходства и различия

Давайте теперь взглянем на функции новой операционной системы REFS — чем она похожа на NTFS, а в чём есть существенные отличия.

Основные преимущества REFS

— Максимальный размер тома — 262144 экзабайта (в NTFS — 16 экзабайт)
— Максимальная длина пути к файлу — 32768 символов (в NTFS — 255)
— Максимальное число файлов в каталоге — 18 446 744 073 709 551 616
— Максимальное число каталогов в томе — 18 446 744 073 709 551 616
— Максимальный размер любого пула носителей — 4 ПБ
— Максимальное число пулов носителей в системе — Не ограничено
— Максимальное число пространств в пуле носителей — Не ограничено
— Благодаря использованию B+-деревьев для хранения данных поиск по системе происходит значительно быстрее
— Улучшенная защита от потери данных

Общие функции в NTFS и REFS

— Символические ссылки
— Точки соединения
— Точки подключения
— Точки повторного анализа
— Шифрование BitLocker
— Offloaded Data Transfer (ODX)
— Trim/Unmap
— Дедупликация данных (Windows Server, v.1709 и позже)
— Поддержка общих томов кластера
— Поддержка отказоустойчивого кластера
— Списки управления доступом
— Журнал USN
— Уведомления об изменениях
— Моментальные снимки томов
— Идентификаторы файлов
— Нежесткая блокировка
— Разреженные файлы
— Именованные потоки
— Тонкая подготовка

Функции NTFS которых нет в REFS
В зависимости от версии, полный функционал файловой системы REFS может отличаться. Что-то может появится, что-то могут убрать. Это нормально. Я приведу тот список отсутствующих функций REFS, которых нет на конец 2018 года. Возможно позднее ситуация изменится.

— Сжатие файловой системы
— Короткие имена
— Дисковые квоты
— Жесткие ссылки
— Шифрование файловой системы (EFS)
— Транзакции
— Идентификаторы объектов
— Расширенные атрибуты
— Загрузка операционной системы
— Поддержка файла подкачки
— Поддержка съемных дисков

Совместимость REFS с операционными системами

На текущий момент файловая система ReFS существует в нескольких разных версиях, соответственно и совместимость между операционными системами отличается. Как правило, более новые версии операционных систем могут монтировать файловые системы, созданные с помощью более ранних версий ОС, а вот обратная совместимость не всегда работает. Некоторые функции могут быть несовместимы с набором функций операционной системы. Версия, размер кластера и другие особенности файловой системы можно посмотреть с помощью команды

fsutil fsinfo refsinfo volumename

Вот как-то так. Пока на этом всё, по возможности буду стараться дополнять статью последними данными.

Выводы

Окончательные выводы пока делать рано, но по текущей реализации файловой системы можно видеть подтверждение изначальной ориентированности файловой системы на серверный сегмент, и, прежде всего, на системы виртуализации, СУБД и сервера архивного хранения данных, где скорость и надежность работы имеют первостепенное значение. Основной недостаток файловой системы, такой как неэффективная упаковка данных на диске, сводится на нет на системах, оперирующих большими файлами.

СисДев Лабораториз будет следить за развитием данной файловой системы и планирует включение поддержки восстановления данных с этой файловой системы. Экспериментальная поддержка ReFS бета-версии Microsoft Windows 8 Server уже успешно реализована в продуктах UFS Explorer и доступна для закрытого бета-тестирования среди партнеров. Официальный релиз инструментов для восстановления удаленных файлов с ReFS, а также восстановления данных после повреждения файловой системы в результате сбоев оборудования, планируется чуть ранее или одновременно с выходом релиза Microsoft Windows 8 Server с поддержкой ReFS.

Версия от 16.03.2012.
По материалам СисДев Лабораториз

Отзывы о статье Файловая система ReFS изнутри

16.03.2012

Я бы не рисковал пока использовать ReFS на боевых серверах.

19.04.2012

Ну никто в здравом уме и не будет ставить бета версию на рабочий сервер. Для это существуют тестовые сервера.

20.04.2012

|

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделитесь с друзьями:
Технарь
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.