Файловая система ReFS

Файловая система ReFS

Знакомьтесь — новая файловая система 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

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

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

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

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

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

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

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

Файловая система ReFS
NTFS

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

Файловая система ReFS
ReFS

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

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

Файловая система ReFS
ReFS

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

Файловая система ReFS
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 КБ (264·16·210), стек Windows поддерживает 264.
Максимальное количество файлов в директории: 264.
Максимальное количество директорий в разделе: 264;
• Организация пулов и виртуализация для более простого создания разделов и управления файловой системой;
• Сегментация последовательных данных (data sriping) для повышения производительности, избыточная запись для отказоустойчивости;
• Поддержка техники чистки диска в фоновом режиме (disk scrubbing) для выявления скрытых ошибок;
• Спасение данных вокруг повреждённого участка на диске;
• Общие пулы хранения данных между машинами для дополнительной отказоустойчивости и балансировки нагрузки.

^