Windows 10 какая файловая система. Файловые системы: сравнение, секреты и уникальные особенности

Знакомьтесь - новая файловая система ReFS (Resilient File System - отказоустойчивая файловая система).

В принципе не такая уж она и новая, Microsoft разрабатывала ReFS не с нуля, ранее известная под кодовым названием Protogon, которая разрабатывалась для Windows Server 8 теперь будет устанавливаться на клиентских машинах Windows 8.

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

Прошлая файловая система NTFS (New Technology File System) в версии 1.2 была представлена в далёком 1993 году как часть Windows NT 3.1, а к появлению Windows XP в 2001 году NTFS доросла до версии 3.1, и только тогда её начали ставить на клиентские машины.
Постепенно возможности NTFS подошли к своим границам: проверка носителей данных большой емкости занимает слишком много времени.
Журнал (файл регистрации) тормозит доступ, а максимальный размер файлов уже практически достигнут.

Большинство нововведений ReFS лежит в области создания структур файлов и папок, а также управления ими.
Они рассчитаны на автоматическое исправление ошибок, максимальное масштабирование и работу в режиме постоянного подключения (Always Online).
Для этих целей Microsoft использует знакомую по базам данных концепцию B+-деревьев.
Это означает, что папки в файловой системе структурированы в виде таблиц с файлами в качестве записей.

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

ReFS избавилась от сложного управления журналом и теперь фиксирует новую информацию о файле в свободном месте, что предотвращает ее перезаписывание.
Но даже если такое вдруг произойдет, система заново пропишет ссылки на записи в структуре B+-дерева.

Как и NTFS, система ReFS принципиально различает информацию о файле (метаданные) и содержимое файла (пользовательские данные), однако щедро предоставляет и тем и другим одинаковые защитные функции.
Так, метаданные по умолчанию предохраняются с помощью контрольных сумм.
Такую же защиту по желанию можно предоставить и пользовательским данным.
Эти контрольные суммы располагаются на диске на безопасном удалении друг от друга, чтобы в случае возникновения ошибки данные можно было восстановить.

Передача данных из NTFS в ReFS

Можно ли будет в Windows 8 легко и просто конвертировать данные из системы NTFS в ReFS и наоборот?
В Microsoft говорят, что никакой встроенной функции для преобразования форматов не предполагается, но информацию все же можно будет копировать.
Область применения ReFS очевидна: поначалу она может использоваться лишь как крупный диспетчер данных для сервера.
Следовательно, пока еще нельзя запустить Windows 8 с диска под управлением новой файловой системы.
Внешних накопителей с ReFS пока не будет - только внутренние.

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

Сравниваем файловые системы NTFS И ReFS.

Переименовать файл


NTFS

1. NTFS записывает в Журнал, что имя файла должно быть изменено.
Там же NTFS регистрирует все действия.
2. Только после этого она на месте меняет имя файла.
Таким образом, старое имя переписывается новым.
3. В заключение в Журнале (файле регистрации файловой системы) появляется отметка об успешном завершении заданной операции.


ReFS

1 - Новое название записывается в свободное место.
При этом очень важно, что прежнее имя поначалу не стирается.
2 - Как только новое название записано, ReFS изменяет ссылку на поле имени.
Теперь в файловой системе она ведет не на старое имя, а на новое.

Переименование файла при отказе питания


ReFS

1. NTFS, как обычно, записывает запрос на изменение в Журнал.
2. После этого из-за отказа питания процесс переименования прерывается, и не остается записи ни о прежнем, ни о новом именах.
3. Происходит перезагрузка Windows.
4. Вслед за этим запускается программа для исправления ошибок - Chkdisk.
5. Только теперь с помощью Журнала при применении отката восстанавливается изначальное имя файла.


NTFS

1. На первом этапе ReFS записывает новое имя в другом месте файловой системы, однако в этот момент электропитание прекращается.
2. Отказ приводит к автоматической перезагрузке Windows.
3. После нее стартует программа Chkdisk. Она анализирует файловую систему на наличие ошибок и при необходимости исправляет их.
Между тем набор данных ReFS находится в стабильном состоянии. Прежнее имя файла снова становится действующим сразу после отказа питания.

Ключевые цели ReFS:

Сохранить максимальную совместимость с набором широко используемых фич NTFS, и в то же время избавиться от ненужных, которые только усложняют систему;
. Верификация и автоисправление данных;
. Максимальная масштабируемость;
. Невозможность полного отключения файловой системы за счёт изоляции сбойных участков;
. Гибкая архитектура с использованием функции Storage Spaces, которая задумана и реализована специально для ReFS.

Ключевые функции ReFS (некоторые доступны только со Storage Spaces):

Целостность метаданных с контрольными суммами;
. Integrity streams: метод записи данных на диск для дополнительной защиты данных при повреждении части диска;
. Транзакционная модель «allocate on write» (copy on write);
. Большие лимиты на размер разделов, файлов и директорий.
Размер раздела ограничен 278 байт при размере кластера 16 КБ (2 64 ·16·2 10), стек Windows поддерживает 2 64 .
Максимальное количество файлов в директории: 2 64 .
Максимальное количество директорий в разделе: 2 64 ;
. Организация пулов и виртуализация для более простого создания разделов и управления файловой системой;
. Сегментация последовательных данных (data sriping) для повышения производительности, избыточная запись для отказоустойчивости;
. Поддержка техники чистки диска в фоновом режиме (disk scrubbing) для выявления скрытых ошибок;
. Спасение данных вокруг повреждённого участка на диске;
. Общие пулы хранения данных между машинами для дополнительной отказоустойчивости и балансировки нагрузки.

Труборез и трубогиб для самостоятельной сборки СЖО

Два инструмента компании EK Water Blocks адресованы тем, кто собирает СЖО самостоятельно: резак EK-Loop Soft Tube Cutter и приспособление для гибки труб EK-Loop Modulus Hard Tube Bending Tool.

Первый январский 2020 г. набор графических драйверов Radeon Software Adrenalin 2020 Edition 20.1.1 содержит оптимизации для игры Monster Hunter World: Iceborne и исправляет почти три десятка ошибок, выявленных в предшествующих релизах.

Google продолжит поддержку браузера Chrome для Windows 7

Многие пользователи, особенно корпоративные, не спешат отказываться от Windows 7, хотя расширенная поддержка Windows 7 для обычных пользователей завершается 14 января 2020 года.

Накопительное обновление Creators Update, привнёсшее в систему Windows 10 много новых возможностей, в их числе реализовало официальную поддержку современной файловой системы REFS - преемницы NTFS, ныне используемой в операционных системах от Microsoft. Особой шумихи этот факт не вызвал, поскольку REFS – далеко не новая наработка софтверного гиганта. Её и раньше можно было использовать в среде Windows 10, но только для создаваемых средствами системы дисковых пространств (программных RAID). Для обычных разделов диска эта возможность не предусматривалась, однако её и в Windows 10, и в Windows 8.1 (в 64-битных редакциях) можно было реализовать путём ручной правки системного реестра или внесения изменений с помощью REG-файлов, выложенных на форумах для компьютерных гиков.

Современная файловая система REFS: особенности и сюрпризы

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

Особенности REFS

REFS – это аббревиатура от Resilient File System, что по-русски обозначает отказоустойчивая файловая система. Это, как упоминалось выше, преемница NTFS, но пока что в далёком, плохо обозримом будущем. Новая файловая система компанией Microsoft представлена миру ещё в 2012 году. Все эти годы она проходила «обкатку» на серверных редакциях Windows, начиная с версии Server 2012. 6 лет её тестирования привели лишь к скромной участи быть альтернативой для несистемных разделов диска в последней версии клиентской операционной системы. Впрочем, если взглянуть на историю внедрения NTFS, получается, что в случае с REFS всё идёт своим чередом. Ведь NTFS на клиентские Windows компания Microsoft внедряла долгих 7 лет.

Новая файловая система – не просто преемница NTFS, она базируется на последней, но устраняет её недостатки и открывает новые возможности. Ключевая особенность REFS – отказоустойчивость, защита от потери данных, что обеспечивается рядом механизмов поддержки их целостности. Microsoft настолько уверена в своей наработке, что для отформатированных в REFS разделов диска даже убрала из их свойств возможность запуска проверки на предмет наличия ошибок файловой системы.

От NTFS новая файловая система унаследовала:

  • Списки контроля доступа ACL;
  • Журнал USN;
  • Символьные ссылки;
  • Точки монтирования, соединения и повторной обработки;
  • Технологию шифрования BitLocker.

В REFS упразднены невостребованные возможности NTFS:

  • Шифрование на уровне файлов EFS;
  • DOS-совместимые короткие имена файлов 8.3;
  • Жёсткие ссылки;
  • Дисковые квоты.

В числе возможностей REFS, отсутствующих у NTFS:

  • Предотвращение потери данных – сведение к минимуму случаев возникновения ошибок файловой системы, изоляция повреждённых секторов, профилактические меры во избежание повреждения данных;
  • Как заверяют разработчики, увеличенная производительность;
  • Оперативное проведение проверки дисков на предмет наличия ошибок;
  • Прочие возможности, приведённые ниже в таблице сравнения с NTFS.


Реальные выгоды для обычных пользователей

Что из описанных выше преимуществ есть хорошо для обычных пользователей? Которым и предельные возможности NTFS кажутся астрономическими за неимением возможности реализовать их.

Увы, в сухом остатке получим только возможность больше не томиться в ожидании, наблюдая на экране предзагрузки мельтешащие циферки прогресса проверки файловой системы на ошибки, если работа Windows завершится некорректно. Ну и ещё меньшую вероятность потери ценных данных. Меньшую, но не 100%-ную. Отказоустойчивая файловая система – это очень хорошо, но она, естественно, решает только свои проблемы. Какая-бы файловая система ни использовалась, пользовательским данным по-прежнему угрожает теоретическая вероятность выхода из строя жёсткого диска, упредить которую – задача самих пользователей. Конечно, REFS может решить эту задачу за пользователей, но только в рамках использования технологии дисковых пространств и создания пула носителей по типу зеркального RAID 1 (как минимум).

В этом случае связка «надёжная файловая система + надёжное хранилище», бесспорно, даст наибольшие гарантии. Вот только что такого ценного должно храниться на диске обывателя, чтобы он заморачивался и финансово вкладывался в RAID вне зависимости от технологии его реализации?

А что же с заявленным улучшением производительности REFS? Это в большей степени касается использования той самой технологии дисковых пространств. Новая файловая система изначально предусматривает запись данных на более быстрый жёсткий диск. А во время простоя компьютера большие файлы будут перемещаться на более медленный жёсткий диск.

На что могут рассчитывать обычные пользователи, на борту компьютера которых установлен единственный HDD? Увы, ни на что. В ходе тестирования REFS и её сравнения с NTFS на обычном разделе HDD улучшений в производительности отметить не удалось. В одинаковых условиях тестирования – с одним и тем же размером тестового файла, с одинаковым числом циклов чтения и записи, на одном и том же разделе диска - программа Crystal Disk Mark зафиксировала примерно одинаковые показатели. Значимые для быстродействия случайные чтение и запись мелких файлов у REFS на мизер превысили скорости NTFS.

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

Выгоды для работающих с гипервизорами

Но по части производительности есть и хорошие новости, правда, не совсем для обычных пользователей, скорее для продвинутых, работающих с гипервизором от Microsoft Hyper-V. Если виртуальные машины расположить на разделе, отформатированном в REFS, процессы их клонирования и слияния с контрольными точками будут проходить в разы быстрее. Поскольку для новой файловой системы достаточно записать новые метаданные и сослаться на записанные на диске данные, но не проводить их физическое копирование.

Также REFS умеет быстро записывать в большой файл нули, а это значит, что при создании виртуальных дисков с фиксированным размером нужно будет подождать несколько секунд, а не минут, как это происходит в NTFS. И это весомый прорыв. NTFS не только долго создаёт фиксированные виртуальные диски, она ещё и нагружает HDD, не давая возможности параллельно работать с другими программами. При тестировании создания 60-гигабайтного VHD-файла фиксированного размера на разделе с REFS этот процесс занял 1 секунду. Тогда как на разделе с NTFS создание точно такого же VHD-файла длилось почти 7 минут с загрузкой диска на 99%.

Предполагается, что эти возможности будут реализованы и при работе с виртуальными машинами VMware и VirtualBox.

Недостатки REFS

С плюсами REFS разобрались, а что же с недостатками? Они есть, но если Microsoft примет решение по активному внедрению новой файловой системы, часть недостатков со временем устранится. Пока что же имеем то, что имеем - REFS:

  • Можно использовать только для несистемных разделов диска, а для раздела с Windows – нельзя;
  • Можно использовать только для внутренних носителей, а для внешних – нельзя;
  • В неё нельзя преобразовать NTFS-раздел без потери данных, только форматировать, что обуславливает необходимость временного переноса данных куда-то;
  • С ней работают не все сторонние программы, в частности, это касается реаниматоров удалённых данных.

Ну и главный сюрприз : друзья, узнаёте версию Windows?

Вот так и храни данные в новых файловых системах. Не то что Windows 7, даже Windows 8.1 не видит раздел с REFS. В случае с Windows 8.1 была совершена попытка дать шанс новой файловой системе быть распознанной, и в системный реестр внеслась правка, которая обеспечила поддержку REFS. Но реализовалась только возможность форматирования новых разделов в среде Windows 8.1.

Если вам уже довелось установить и поработать с новыми ОС от Microsoft: Windows Server 2012 и Windows 8, вы, вероятно уже заметили, что теперь новые тома можно форматировать в файловой системе ReFS. Что же такое файловая система ReFS ? Аббревиатура ReFS расшифровывается, как Resilient File System , т.е. по-русски «Отказоустойчивая файловая система».

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

Особенности файловой системы ReFS

Большинство новшеств ReFS лежит в области создания структур файлов и папок, и управления ими. Эти функции реализованы с целью автоматического исправления ошибок, обеспечения высокой масштабируемости и работы в режиме Always Online (постоянного подключения). Папки в файловой системе ReFS структурированы в виде таблиц с файлами в качестве записей, которые в свою очередь могут обладать собственными атрибутами, организованными в виде подтаблиц, реализую иерархическую древовидную структуру B+-деревьев, знакомую нам по базам данных. Свободное место на дисках также организовано в таблицах.

При разработке ReFS преследовались следующие цели:

  • Обеспечение максимальной совместимости с существующими функциями NTFS, и избавление от ненужных, которые усложняют систему
  • Верификация и автоматическое исправление данных.
  • Масштабируемость.
  • Гибкость архитектуры с использованием функции , которая собственно и была задумана для ReFS.

Основные возможности ReFS

  • Увеличенные лимиты на размер разделов, директорий и файлов (таблица ниже)
  • Целостность метаданных с контрольными суммами.
  • Специальная методика записи на диск — Integrity streams, обеспечивающая дополнительную защиту данных при повреждении части диска.
  • Новая модель транзакций «allocate on write» (copy on write)
  • Disk scrubbing – технология чистки диска в фоновом режиме
  • Возможность организации пулов хранения, которые могут применяться в виртуализации, в т.ч. для обеспечения отказоустойчивости виртуальных машин и балансировки нагрузки.
  • Для повышения производительности используется сегментация последовательных данных (data sriping)
  • Спасение данных вокруг повреждённого участка на диске.

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

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

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

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

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

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

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

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

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

Не так давно вышла публичная бета-версия Microsoft Windows 8 Server с поддержкой анонсированной файловой системы ReFS (Resilient File System - отказоустойчивая файловая система), ранее известной под кодовым названием “Protogon”. Данная файловая система предлагается как альтернатива зарекомендовавшей себя годами файловой системе NTFS в сегменте систем хранения данных на базе продуктов Microsoft, с дальнейшей ее миграцией в область клиентских систем.

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

Windows Server 8 Beta

Вариант файловой системы, доступный в данной версии операционной системы, имеет поддержку кластеров данных размером только 64КБ и кластеров метаданных размером 16КБ. Пока не ясно, будет ли поддержка файловых систем ReFS с другим размером кластера: в настоящее время параметр «Размер кластера» при создании тома ReFS игнорируется и всегда принимается умалчиваемым. При форматировании ФС единственным доступным вариантом для выбора размера кластера является 64КБ. Он также является единственным упоминаемым в блогах разработчиков.

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

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

Несмотря на частые упоминания о схожести 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 не стояло. С точки зрения же архитектуры файловой системы она обладает всеми необходимыми инструментами для безопасного восстановления файлов даже после серьезного сбоя оборудования. Части структур метаданных содержат собственные идентификаторы, что позволяет проверить принадлежность структур; ссылки на метаданные содержат 64-бит контрольные суммы блоков, на которые производится ссылка, что позволяет оценить целостность прочитанного по ссылке блока.

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

Любое изменение структуры метаданных осуществляется в два этапа: сначала создается новая (измененная) копия метаданных в свободном дисковом пространстве, потом, в случае успеха, атомарной операцией обновления производится перевод ссылки со старой (неизмененной) на новую (измененную) область метаданных. Такая стратегия (Copy-on-Write (CoW) -копирование-при-записи) позволяет обойтись без журналирования, сохраняя автоматически целостность данных.

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

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

Избыточность хранения данных

В данном случае речь идет о расходовании дискового пространства за счет схемы хранения данных. Для целей тестирования установленный Windows Server был скопирован на раздел ReFS размером 580ГБ. Размер метаданных на пустой ФС составлял около 0.73ГБ.

При копировании установленного Windows Server на раздел с ReFS избыточность хранения данных файлов выросла с 0.1% на NTFS почти до 30% на ReFS. При этом еще около 10% избыточности добавилось за счет метаданных. В итоге «пользовательские данные» размером 11ГБ (более 70 тыс. файлов) на NTFS с учетом метаданных заняли 11.3ГБ, тогда как на ReFS те же данные заняли 16.2ГБ; это означает, что избыточность хранения данных на ReFS составляет почти 50% для этого типа данных. При небольшом количестве файлов большого размера такого эффекта, естественно, не наблюдается.

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

Ввиду того, что речь идет о 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 бета-версии Microsoft Windows 8 Server уже успешно реализована в продуктах UFS Explorer и доступна для закрытого бета-тестирования среди партнеров. Официальный релиз инструментов для восстановления удаленных файлов с ReFS, а также восстановления данных после повреждения файловой системы в результате сбоев оборудования, планируется чуть ранее или одновременно с выходом релиза Microsoft Windows 8 Server с поддержкой ReFS.

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

Перепечатка или цитирование разрешены при условии сохранения ссылки на перво

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

20 лет спустя

Однако у всего есть предел, и у возможностей файловых систем - тоже. Сегодня возможности NTFS подошли к своим границам: проверка ёмких носителей данных занимает слишком много времени, «Журнал» тормозит доступ, а максимальный размер файлов уже практически достигнут. Понимая это, Microsoft реализовала в Windows 8 новую файловую систему - ReFS (Resilient File System - отказоустойчивая файловая система). Считается, что ReFS обеспечивает лучшую защиту данных на ёмких и быстрых жестких дисках. Наверняка у нее есть и свои недостатки, но до начала по-настоящему массового использования в Windows 8 говорить о них трудно.

Так что пока попробуем разобраться во внутреннем устройстве и преимуществах ReFS.

Изначально ReFS была известна под кодовым названием «Protogon». Впервые о ней широкой публике примерно год назад рассказал Стивен Синофски - президент подразделения Windows в Microsoft, отвечающий за разработку и маркетинг Windows и Internet Explorer .

Рассказал такими словами:

«Сегодня система NTFS является наиболее широко используемой, передовой и функционально богатой файловой системой. Но переосмысливая Windows, а мы в данный момент разрабатываем Windows 8, - мы не останавливаемся на достигнутом. Поэтому вместе с Windows 8 мы также внедряем совершенно новую файловую систему. ReFS создана на основе NTFS, поэтому в ней сохранились важнейшие возможности совместимости, в то же время она разработана и спроектирована с учетом нужд нового поколения технологий и сценариев хранения данных.

В Windows 8, ReFS будет введена только как часть Windows Server 8, такой же подход мы использовали для внедрения всех предыдущих файловых систем. Конечно же, на прикладном уровне клиентам будет предоставляться доступ к данным ReFS такой же, как к данным NTFS. Нельзя забывать о том, что NTFS все еще является ведущей технологией в индустрии среди файловых систем для ПК».

Действительно, впервые ReFS мы увидели в серверной ОС Windows Server 8. Новая файловая система разработана все же не с нуля. Например для открытия, закрытия, чтения и записи файлов ReFS использует те же интерфейсы доступа API, что и NTFS. Также из NTFS перекочевали многие хорошо знакомые возможности - например, шифрование диска Bitlocker и символьные ссылки для библиотек. Зато исчезло, например, сжатие данных и ряд прочих функций.

Основные инновации ReFS сосредоточены в области создания структур файлов и папок, а также управления ими. Их задача - обеспечить автоматическое исправление ошибок, максимальное масштабирование и работу в режиме постоянной подключенности (Always Online).

Архитектура ReFS

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

Наряду с реальной 64-битной нумерацией всех элементов системы это исключает появление «узких мест» при дальнейшем ее масштабировании

Как результат, ядром системы в ReFS стала таблица объектов - центральный каталог, в котором перечислены все таблицы в системе. Есть у такого подхода важное преимущество: ReFS отказалась от сложного управления журналом и фиксирует новую информацию о файле в свободном месте - это предотвращает ее перезаписывание.

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

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

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

Подобно NTFS, в ReFS принципиально различается информация о файле (метаданные) и содержимое файла (пользовательские данные). Однако защитные функции предоставляются и тем, и другим одинаково. Метаданные по умолчанию предохраняются с помощью контрольных сумм - такую же защиту (по желанию) можно дать и пользовательским данным. Эти контрольные суммы располагаются на диске на безопасном удалении друг от друга - так будет проще восстановить данные в случае возникновения ошибки.

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

Вариант ReFS, который мы увидели в Windows Server 8 Beta , имеет поддержку кластеров данных размером только 64 Кб и кластеров метаданных размером 16 Кб. Пока параметр «Размер кластера» при создании тома ReFS игнорируется и всегда принимается умалчиваемым. При форматировании файловой системы единственным доступным вариантом для выбора размера кластера также является 64 Кб.

Признаем: такого размера кластера более чем хватит для организации файловых систем любого размера. Побочным эффектом, правда, становится ощутимая избыточность при хранении данных (файл размером в 1 байт на диске займет полный блок 64 Кб).

Защищенность ReFS

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

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

Всякое изменение структуры метаданных происходит в два этапа. Сперва создается новая (измененная) копия метаданных в свободном дисковом пространстве, и только после этого, в случае успеха, атомарной операцией обновления ссылка переводится со старой (неизмененной) на новую (измененную) область метаданных. Здесь это позволяет обойтись без журналирования, автоматически сохраняя целостность данных.

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

Отдельная тема - отказоустойчивость ReFS при повреждении диска. Система способна выявить все формы повреждений диска, включая потерянные или сохраненные не в том месте записи, а так же т. н. битовый распад (ухудшение состояния данных на носителе)

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


Еще одна интересная тема в вопросе безопасности ReFS - взаимодействие со Storage Spaces . ReFS и Storage Spaces разработаны так, чтобы взаимодополнять друг друга как два компонента единой системы хранения данных. Помимо улучшения производительности Storage Spaces защищают данные от частичных и полных сбоев диска за счет хранения копий на нескольких дисках. Во время сбоев при чтении Storage Spaces могут считывать копии, а при сбоях записи (даже при полной потере данных носителя при чтении/записи) возможно «прозрачно» перераспределять данные. Как показывает практика, чаще всего подобный сбой не имеет отношения к носителю - он происходит из-за повреждения данных, либо из-за потери данных или сохранения их не в том месте.

Как раз эти виды сбоев ReFS может обнаружить, используя контрольные суммы. Выявив сбой, ReFS связывается с Storage Spaces для того, чтобы считать все возможные копии данных, и выбирает нужную копию, основываясь на проверке контрольных сумм. После этого система дает Storage Spaces команду на восстановление поврежденных копий на основе верных копий. Все это происходит прозрачно с прикладной точки зрения.

Как указывается на сайте Microsoft, посвященном Windows Server 8 , контрольные суммы всегда включены для метаданных ReFS, и при условии, что том размещен на зеркальных Storage Spaces , включается также автоматическое исправление. Все целостные потоки защищены тем же способом. Это создает сквозное решение с высокой степенью целостности для пользователя, благодаря которому относительно ненадежное хранилище можно сделать весьма надежным.

Упомянутые целостные потоки защищают содержимое файла от всех видов повреждений данных. Впрочем, эта характеристика в некоторых случаях неприменима.

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


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

Чтобы преодолеть процесс битового распада , в Microsoft добавили фоновую системную задачу, которая периодически очищает метаданные и данные целостных потоков на томе ReFS, находящемся на зеркальном пространстве хранения. Очистка происходит посредством считывания всех лишних копий и проверки их на правильность с помощью контрольных сумм ReFS. Если контрольные суммы не сходятся, копии с ошибками исправляются с помощью годных копий.

Остается угроза, которую можно условно назвать «страшный сон сисадмина». Бывают случаи, хоть редкие, когда может быть поврежден даже том на зеркальном пространстве. Например, память неисправной системы может повредить данные, которые затем могут оказаться на диске и повредить избыточные копии. Кроме того, многие пользователи могут решить не применять зеркальные пространства хранения под ReFS.

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

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

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


ReFS на практике

Конечно, о практичности и удобстве (или обратных качествах) ReFS можно будет судить только после того, как компьютеры с Windows 8 получат широкое распространение и пройдет не менее полугода активной работы с ними. Пока же у потенциальных пользователей «восьмерки» больше вопросов, чем ответов на них.

Например, такой: можно ли будет в Windows 8 легко и просто конвертировать данные из системы NTFS в ReFS и наоборот? Представители Microsoft заявляют, что никакой встроенной функции для преобразования форматов не предполагается, но информацию все же можно будет копировать. Область применения ReFS очевидна: поначалу она может использоваться лишь как крупный диспетчер данных для сервера (собственно, уже используется). Внешних накопителей с ReFS пока не будет - только внутренние. Очевидно, со временем ReFS будет оснащена большим количеством функций и сможет заменить устаревшую систему.

В Microsoft говорят, что вероятнее всего, это произойдет уже с выходом первого пакета обновлений для Windows 8

Также в Microsoft утверждают, что протестировали ReFS:

«используя сложный обширный набор десятков тысяч тестов, которые создавались для NTFS в течение более чем двух десятилетий. Эти тесты воссоздают условия развертывания в усложненном виде, с которыми, как мы думаем, система может столкнуться, например, при сбое питания, при проблемах, часто связанных с масштабируемостью и производительностью. Следовательно, можно сказать, что система ReFS готова к тестовому развертыванию в управляемой среде».

При этом, правда, разработчики признают, что будучи первой версией крупной файловой системы, вероятно ReFS потребует осторожности в обращении:

«Мы не характеризуем ReFS для Windows 8 как бета-версию. Новая файловая система будет готова к выпуску, когда Windows 8 выйдет из стадии „бета“, потому что нет ничего важнее, чем надежность данных. Итак, в отличие от любого другого аспекта системы, здесь необходим консервативный подход к первоначальному использованию и тестированию».

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