Если вам уже довелось установить и поработать с новыми ОС от Microsoft: Windows Server 2012 и Windows 8, вы, вероятно уже заметили, что теперь новые тома можно форматировать в файловой системе ReFS. Что же такое файловая система ReFS? Аббревиатура ReFS расшифровывается, как Resilient File System, т.е. по-русски «Отказоустойчивая файловая система».
Microsoft прочит файловую систему ReFS в качестве преемника самой популярной на данный момент файловой системы NTFS, технологические возможности которой уже подошли к своим границам. В частности при работе с носителями данных большого размера возникают сложности с их работой: это и слишком длительное время при выполнении операции проверки на наличие ошибок, и медленная работа журнала, и достижение ограничений на максимальный размер файлов на файловой системе NTFS.
Особенности файловой системы ReFS
Большинство новшеств ReFS лежит в области создания структур файлов и папок, и управления ими. Эти функции реализованы с целью автоматического исправления ошибок, обеспечения высокой масштабируемости и работы в режиме Always Online (постоянного подключения). Папки в файловой системе ReFS структурированы в виде таблиц с файлами в качестве записей, которые в свою очередь могут обладать собственными атрибутами, организованными в виде подтаблиц, реализую иерархическую древовидную структуру B+-деревьев, знакомую нам по базам данных. Свободное место на дисках также организовано в таблицах.
При разработке ReFS преследовались следующие цели:
- Обеспечение максимальной совместимости с существующими функциями NTFS, и избавление от ненужных, которые усложняют систему
- Верификация и автоматическое исправление данных.
- Масштабируемость.
- Гибкость архитектуры с использованием функции Storage Spaces, которая собственно и была задумана для ReFS.
Основные возможности ReFS
- Увеличенные лимиты на размер разделов, директорий и файлов (таблица ниже)
- Целостность метаданных с контрольными суммами.
- Специальная методика записи на диск — Integrity streams, обеспечивающая дополнительную защиту данных при повреждении части диска.
- Новая модель транзакций «allocate on write» (copy on write)
- Disk scrubbing – технология чистки диска в фоновом режиме
- Возможность организации пулов хранения, которые могут применяться в виртуализации, в т.ч. для обеспечения отказоустойчивости виртуальных машин и балансировки нагрузки.
- Для повышения производительности используется сегментация последовательных данных (data sriping)
- Спасение данных вокруг повреждённого участка на диске.
Ограничения файловой системы ReFS
Максимальный размер файла | 264-1 байт |
Максимальные размер тома | 278 байт при размере кластера 16 КБ |
Максимальное количество файлов на томе/в директории | 264 |
Максимальная длина имени файла | 32000 символов Unicode |
Максимальная длина пути к файлу | 32000 |
Максимальный размер любого пула хранения | 4 ПБ |
Количество пулов хранения в системе | Не ограничено |
Поддерживаемые функции 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
Отключить проверку целостности:
integrity /disable /s d:\*
Version number is reported by fsutil fsinfo refsinfo
, available on Windows 10 and Windows Server 2016.
ReFS 1.1
- Version of formatted by Windows Server 2012.
- Version 1.1 is used already in Windows Server 8 Beta. I have never seen version 1.0.
- Can use and store alternate data streams, when mount on 8.1/2012 R2 or later.
ReFS 1.2
- Version of formatted by Windows 8.1, Windows 10 v1507 to v1607, Windows Server 2012 R2, and when specified ReFSv1 on Windows Server 2016 or later.
- Cannot use alternate data streams, when mount on 2012.
ReFS 7.2
- Version that can be formatted with Windows 10 Build 9780
ReFS 9.2
- Version that can be formatted with Windows 10 Technical Preview build 9841 to 9860 and Windows Server 2016 TP1 (It’s not default). Could not mount in 10 9879 or 2016 TP2 and later.
ReFS 11.2
- Version that can be formatted with Windows 10 Technical Preview build 9879 (It’s not default). Could not mount in 9926 and later.
ReFS 12.2
- Version that can be formatted with Windows 10 Technical Preview build 9926 (It’s not default). Could not mount in 10041 and later.
ReFS 22.2
- Version that can be formatted with Windows 10 Technical Preview build 10041 to 10049 (It’s not default). Could not mount in 10061 and later.
ReFS 2.0
- Version of formatted by Windows Server 2016 TP2/TP3.
- Version that can be formatted with between Windows 10 Technical Preview build 10061 or later and earlier than 10130 (It’s not default). Could not mount in Windows 10 Insider Preview build 10130 and later, or Windows Server 2016 TP4 and later.
ReFS v2 Overview
http://www.snia.org/sites/default/files/SDC15_presentations/file_sys/JRTipton_ReFS_v2.pdf
http://www.snia.org/events/storage-developer/presentations15#file_sys
ReFS 3.0
- Version of formatted by Windows Server 2016 TP4/TP5.
- Upgrade to 3.1 when writable mount from Windows Server 2016 RTM.
ReFS 3.1
- Version of formatted by Windows Server 2016.
ReFS 3.2
- Version of formatted by Windows 10 v1703.
- Version that can be formatted with Windows 10 Insider Preview 15002 or later (It’s not default at 15002) and Windows Server Insider Preview build 16237.
- It became the default between after than 15002 and 15019 or earlier.
ReFS 3.3
- Version of formatted by Windows 10 Enterprise v1709 and Windows Server version 1709.
- Version of formatted by Windows 10 Enterprise Insider Preview build 16257 and Windows Server Insider Preview build 16257.
- Creation ReFS volume ability was removed from Home and Pro at build 16226 and later.
ReFS 3.4
- Version of formatted by Windows 10 Enterprise v1803, Windows Server 2019 and Windows Server version 1803.
- Version of formatted by Windows 10 Enterprise Insider Preview build 17083 and Windows Server Insider Preview build 17079.
ReFS 3.5
- Version of formatted by Windows 10 Enterprise Insider Preview build 19536 and Windows Server Insider Preview build 19551.
- Added hardlink support if fresh formatted volume.
- Can’t use hardlink if upgraded from previous version.
- Upgrade to 3.6 when writable mount from Windows 10 Insider Preview build 21292.
ReFS 3.6
- Version of formatted by Windows 10 Enterprise Insider Preview build 21292 and Windows Server Insider Preview build 20282.
- Upgrade to 3.7 when writable mount from Windows 10 Insider Preview build 21313.
ReFS 3.7
- Version of formatted by Windows 11 Enterprise v21H2 and Windows Server 2022.
- Version of formatted by Windows 10 Enterprise Insider Preview build 21313 and Windows Server Insider Preview build 20303.
ReFS 3.9
- Version of formatted by Windows 11 Enterprise v22H2.
- Version of formatted by Windows 11 Enterprise Insider Preview build 22598 and Windows Server Insider Preview build 25099.
- Added post process compression with LZ4 & ZSTD, transparent decompression.
ReFS 3.10
- Version formatted by Windows 11 Enterprise Insider build 25324 through 25997 and builds 26010
ReFS 3.12
- Version formatted by Windows 11 Enterprise Insider build 26002. Build 26010 reverts back to 3.10
Mountability
ReFS\Windows | 2012 | 8.1/2012 R2 | 10 v1507 | 2016 | 10 v1703 | 10 v1709 | 10 v1803/2019 | 11 v21H2/2022 | 11 v22H2 | Canary Channel |
---|---|---|---|---|---|---|---|---|---|---|
1.1 | Yes | Yes1 | Yes1 | Yes1 | Yes1 | Yes1 | Yes1 | Yes1 | Yes1 | |
1.2 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
3.1 | No | No | No | Yes | Yes2 | Yes3 | Yes4 | Yes56 | Yes76 | |
3.2 | No | No | Yes | Yes3 | Yes4 | Yes56 | Yes76 | |||
3.3 | No | No | Yes | Yes4 | Yes56 | Yes76 | ||||
3.4 | No | Yes | Yes56 | Yes76 | ||||||
3.7 | No | Yes | Yes8 | |||||||
3.9 | No | Yes | ||||||||
3.10 | No | No | Yes9 | |||||||
3.12 | No | No | Yes |
License: CC BY
-
«Volume «?:» was mounted in an older version of Windows. Some features may be lost.» was recorded to event log when writable mount. I don’t know what’s been lost. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8
-
Upgrade to 3.2 when writable mount. ↩
-
Upgrade to 3.3 when writable mount. ↩ ↩2
-
Upgrade to 3.4 when writable mount. ↩ ↩2 ↩3
-
Upgrade to 3.7 when writable mount. ↩ ↩2 ↩3 ↩4
-
Can’t use hardlink. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8
-
Upgrade to 3.9 when writable mount. Can’t mount read-only. ↩ ↩2 ↩3 ↩4
-
Upgrade to 3.9 when writable mount. ↩
-
Builds 25324 to 25997 ↩
Время на прочтение4 мин
Количество просмотров28K
«ReFS» (Resilient File System) – это новая файловая система от Microsoft, которая создавалась как замена «NTFS». У нее есть несколько солидных преимуществ, а именно, разработчики исправили все ошибки «NTFS». Она гораздо больше защищена от повреждения информации, она лучше переносит возросшую нагрузку, а также масштабируется гораздо проще.
Основные функции Resilient File System
Целостность информации, использование контрольных сумм для метаданных.
Запись информации — Integrity streams (повышенная защита файлов при ошибке части носителя).
«allocate on write» — новая транзакционная модель.
Масштабируемость, увеличенные лимиты на объем каталогов, файлов, разделов.
Работа с пулами разделов, виртуализация разделов.
«data sriping» — система увеличивает производительность и отказоустойчивость данных, избыточная запись информации как в RAID массивах.
Чтобы выявить скрытые ошибки используется функция — «disk scrubbing», очистка диска в фоне.
Пересохранение информации возле проблемных блоков диска.
Единые пулы носителей, на нескольких компьютерах по сети, повышает отказоустойчивость, уменьшает нагрузку.
Поддержка большинства стандартных функций «NTFS».
Система верификации информации.
Отключение «ReFS» невозможно, так как сбойные сектора изолируются.
«Storage Spaces» — новая уникальная гибкая архитектура.
Еще новая ФС унаследовала часть функционала «NTFS»: работа с «BitLocker», «USN» журналирование, «ACL» контролируемый доступ, «mount points»… Естественно, общий объем данных и подключение к разделам«ReFS», доступны по тем же «API».
Особенности «ReFS»
Контрольные суммы теперь используются для метаданных по умолчанию, также их применяют и к данным отдельных файлов. Так, в процессе чтения\записи, осуществляется верификации «на лету». Когда ФС обнаружит повреждение файлов, то моментально удалит записи без перезагрузки компьютера. То есть, «ReFS» теперь самостоятельно себя корректирует при появлении ошибок.
«ReFS» обеспечивает более высокую надежность сохранения информации, по сравнению со старой ФС. Для хранения файлов и метаданных используются «B+-деревья». Размеры, количество разделов и файлов теперь ограничены максимальным 64-битным значением. Пустое пространство хранится в трех разных таблицах, разбитых по объемам фрагментов (малых, средних, больших). Названия файлов и пути пишуться в «Unicode», они не должны превышать 32 килобайта, то есть название файла можно указывать в 30 тысяч знаков.
Защита от отключения питания. Допустим вы прописываете новое имя файла (или другие метаданные), пропало электричество и вы не успели их сохранить. В «NTFS» — файл будет поврежден, так как вы меняете метаданные напрямую. Но «ReFS» всего лишь делает копию метаданных, и не меняет основные пока не произойдет сохранение, особенность работы функции «Copy-on-write».
Технология «Storage Spaces» — это функция виртуализации носителей. Она позволяет создать единое пространство из нескольких физических дисков на одном ПК или нескольких по локальной сети. Также есть возможность настроить «зеркалирование» как RAID массивах.
Отличия от NTFS
«ReFS» изначально создана для поддержки больших объемов разделов, файлов, каталогов и их имен. Новая ФС может включать до двести шестидесяти двух тысяч эксабайт информации, а «NTFS» — только шестнадцать эксабайт.
Еще, в ней отсутствуют функции шифрования, сжатия, дедупликации, дисковые квоты, жесткие ссылки и расширенные атрибуты. Некоторые из них заменены на новые, например, «ReFS» полностью поддерживает шифрование «BitLocker».
Сейчас, в файловую систему «ReFS» вы сможете отформатировать только пул дисков (пространство хранения), где новая ФС покажет себя во всей красе. Но Windows 10 не разрешит отформатировать обычный носитель в «ReFS». Разработчики подчеркивают значение «ReFS» именно для серверов, она доступна на серверных ОС или в «LTSC» версии.
ОС Windows Server 2016 позволит отформатировать обычные тома в «ReFS», но не позволит отформатировать загрузочный диск, потому что загрузочный сектор должен быть на «NTFS» разделе.
Архитектура файловой системы
Структур ReFS значительно отличается от всех остальных файловых систем для Windows. Главными структурными элементами выступают «B+ деревья». Они бывают одноуровневыми (как листья) и многоуровневыми (как деревья). Это обуславливает хорошее масштабирование, для каждого элемента, входящего в структуру ФС. Эта схема, а также 64-битная адресация каждого элемента, делают невозможным проблемы при ее дальнейшем увеличении.
Как корневая запись B+дерева, остальные записи имеют такой же объем в 16 кб, для блока метаданных. Размер в 60 байт — выделен для промежуточных (адресных) узлов. Следовательно, для правильного описания масштабных структур хранения потребуется малое количество уровней. Это позволило увеличить производительность ФС, по сравнению с другими.
Структура файловой системы ReFS
«ReFS» можно определить по специфической сигнатуре, которая расположена в начале раздела:
0x4000 байт — длина всех страниц ReFS.
Номер первой страницы — 0x1e, то есть 0x78000 байт которые идут сразу за загрузочным разделом. Это стандартное отображение Microsoft, которое информирует, что первые метаданные нужно искать после фиксированного смещения.
Алгоритм поиска удаленных данных
Утилиты для восстановления данных выполнят полное сканирование дискового пространства, отформатированного под «ReFS», используя алгоритм анализа по сигнатурам. Проверяя диск блок за блоком, они обнаружат готовые последовательности данных, определят их и выведут результаты. Так как API для работы с дисками для «ReFS» и «NTFS» одинаковы, то и процессы восстановления данных предельно схожи.
Сначала определяется «Volume Header», в нем записано количество секторов на кластер и какой объем сектора. Основная версия лежит в нулевом секторе, а копия расположена в последнем. Далее считывается «Superblock», он расположен в 30-ом блоке и также есть 2 копии во втором и третьем блоке в конце. Из него, извлекается ссылки на «чекпоинт» и его копию, определяется его последняя актуальная версия по «Virtual Allocated Clock».
Checkpoint содержит информацию об основных таблицах, далее считываются заголовки «Page Header» и блоки с указателями (Pointers) на полный список таблиц. Потом ищется «Container Table» для получения физических адресов из виртуальных, и выполняется поиск по «Object ID Table» — все таблицы найдены.
Утилиты доходят до нулевых уровней — то есть «листов b-дерева», и считывают данные файлов. Так как поиск ведется постранично, то если есть сбои — эти элементы просто исключаются из анализа, а сам процесс сканирования идет дальше. Таким образом утилиты для восстановления данных находят всю информацию, которую возможно «достать» с диска.
Полную версию статьи со всеми дополнительными видео уроками смотрите в источнике.
Reading Time: 4 minutes
With Windows Server 2012, Microsoft introduces a new local file system, called Resilient File System (ReFS). This file system can be used as an alternative to NTFS, the file system we’ve come to love and use on our servers in the past years.
When it comes to Active Directory, however, you should be aware of a couple of issues.
What is ReFS?
The codename for the Resilient File System (ReFS) was the Protogon. ReFS is quite different from NTFS. Quoting the “Application Compatibility with ReFS” document from Microsoft, when used, ReFS offers the following capabilities:
- Integrity: ReFS stores data in a way that it is protected from many of the common errors that can cause data loss. File system metadata is always protected. Optionally, user data can be protected on a per-volume, per-directory, or per-file basis. If corruption occurs, ReFS can detect and, when configured with Storage Spaces, automatically correct the corruption. In the event of a system error, ReFS is designed to recover from that error rapidly, with no loss of user data.
- Availability: ReFS is designed to prioritize the availability of data. With ReFS, if corruption occurs, and it cannot be repaired automatically, the online salvage process is localized to the area of corruption, requiring no volume down-time.
- Scalability: As the amount and the size of the data we store in computers increases, it is critical to have a system that is designed with such data sets in mind. ReFS is designed for data sets sizes of today and the data set sizes of tomorrow, optimized for high scalability.
- Application Compatibility: To maximize AppCompat, ReFS supports a subset of NTFS features and Win32 APIs that are widely adopted.
- Proactive Error Identification: The integrity capabilities of ReFS are leveraged by a data integrity scanner (commonly known as a “scrubber”) that periodically scans the volume, attempting to identify latent corruption and then proactively triggering a repair of that corrupt data.
- Architectural Evolution: A new architecture allows ReFS to evolve in conjunction with new storage devices, new data types, and new access patterns, providing a file system platform for the future.
For more information on ReFS, see Building the next generation file system for Windows: ReFS.
What’s the impact of using ReFS?
From the official Microsoft documentation, ReFS sounds like the best thing since sliced bread; it makes your file systems resilient to disk corruptions, battles bit rot and elimates the (offline) use of chkdsk.exe.
You’d be tempted to select ReFS for the file system within the New Simple Volume Wizard, right? Luckily, the Volume Wizard doesn’t select ReFS as the default file system to format new volumes with. Also, by default your Windows Server installation does not reside on a ReFS-formatted volume.
General deployment considerations
The official documentation states two deployment considerations:
- ReFS is available only in Windows Server.
- ReFS can be configured only as a data volume; you cannot install an operating system on a ReFS volume or use it as a boot volume.
Active Directory considerations
On top of these two considerations, there are two more considerations when using ReFS in Active Directory environments:
- You cannot store the Active Directory database or the System Volume (SYSVOL) on a ReFS-formatted volume or disk.
- Dynamic Access Control (DAC) is not supported on ReFS.
Storing the Active Directory database and SYSVOL on ReFS
It is a best practice to store Active Directory files on a different disk, spindles or volumes than the disk, spindles or volumes the Operating System resides on.
Before choosing ReFS for a volume of disk on your proposed Windows Server 2012-based Domain Controllers, make sure you’re not going to use them as storage for the Active Directory database or the System Volume (SYSVOL). Use the NTFS file system for these volumes or disks.
Using Dynamic Access Control with ReFS
Also, when deploying Windows Server 2012-based File Servers, make sure you don’t format the volumes and disks containing group data with ReFS.
In the future, when you want to use fullblown Dynamic Access Control, you will need to migrate this data to a NTFS-formatted disk or volume first. As stated here, Dynamic Access Control is not supported on ReFS. You cannot apply Dynamic Access Control policies on files and folders hosted on ReFS-formatted disks and folders and you could only use claims inside the ACLs directly.
Further reading
Building the next generation file system for Windows: ReFS
ReFS, Microsoft’s next generation file system revealed
What The Hell Is WS2012 ReFS?
Microsoft’s ReFS Filesystem for Windows 8 Server Explained
New Protogon file system in Windows 8 renamed to ReFS
The mystery of Windows 8’s new ‘Protogon’ file system
Windows 8: New «Protogon» filesystem could be the next big thing
Storage GaGa – Protogon File System
Не так давно вышла публичная бета-версия 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 возможна, но в данной редакции Windows Server она не реализована.
Защищенность от сбоев
Цели проверить стабильность существующей реализации 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.
По материалам СисДев Лабораториз
Перепечатка или цитирование разрешены при условии сохранения ссылки на первоисточник: R.LAB, восстановление файлов.
Комментарии
Ну никто в здравом уме и не будет ставить бета версию на рабочий сервер. Для это существуют тестовые сервера.
Я бы не рисковал пока использовать ReFS на боевых серверах.
Отзывы о статье Файловая система ReFS изнутри