WinFS предназначена для замены FAT и NTFS Около 20 лет тому назад в компьютерном мире повсеместно использовалась операционная система MS DOS 2.0 от Microsoft, которая поддерживала жёсткие диски объёмом до 16 Мбайт. Если сегодня подобное ограничение кажется весьма странным, в те дни оно не составляло какой-либо проблемы, поскольку жёсткие диски тогда стоили не меньше цветного телевизора. Ещё хуже было то, что некоторая часть драгоценной дисковой памяти в 80-х и 90-х годах терялась впустую под DOS. Даже первые версии Windows не могли в полной мере использовать всё физическое пространство приводов.
С того времени едва ли прошло четверть века, но несколько поколений компьютеров перевернули проблему с ног на голову. Разработчикам не пришлось бороться с ограничениями ёмкости жёстких дисков: они получили в своё распоряжение гигантские объёмы данных. Система FAT никогда не предназначалась для работы с несколькими сотнями мегабайт данных на дисках в 200 Гбайт.
Дилемма заставила Microsoft вплотную заняться следующим поколением Windows. Вместе с Longhorn, преемником XP, будет использоваться файловая система Windows Future Storage (Win FS). Впервые на домашних компьютерах появится серверная технология реляционной базы данных. В данной статье мы проследим этапы разработки новой системы и обсудим файловую систему будущего.
Longhorn уже прокладывает путь в будущее благодаря новому принципу фильтрации. Система создаёт множество индексов файлов вместо каталогов, которые теряют своё значение.
Кластеры, секторы и таблицы
Чтобы считывать и записывать информацию на диск, ему необходима файловая система - чаще всего используется FAT (File Allocation Table, таблица размещения файлов). Данное утверждение относится, прежде всего, к жёстким дискам, но также применимо к CD и флоппи-дискам. Система хранения данных ответственна за именование, хранение и доступ к данным, для чего используется надёжная система управления. Хотя у текущего набора файловых систем Windows присутствуют различия, скажем, в разметке разделов и шифровании файлов, но все они ограничены использованием кластеров и количеством данных, которое система может обработать.
Кластер является наименьшим возможным блоком данных на жёстком диске. Секторы определяют, сколько байт пространства физически доступно на диске. В зависимости от типа раздела, в каждом кластере содержатся несколько секторов по 512 байт. То есть 4 кбайт дисковой памяти содержат восемь секторов. Размер кластера определяется файловой системой и размером томов. Пользователь может регулировать назначение кластеров с помощью инструментов типа Fsutil, но только под Windows XP. Для систем FAT существует правило: чем меньше размер кластера, тем лучше используется жёсткий диск.
Пример: пользователи Windows 95 ограничены использованием системы FAT 16. На маленьких разделах до 256 Мбайт размер кластера составляет 4 кбайт, в то время как на разделах по 2 Гбайт он составляет 32 кбайт. В этом случае файл размером в 35 кбайт будет занимать два кластера, при этом потеря пространства впустую составляет 29 кбайт (во втором кластере), поскольку в каждый кластер можно записать только один файл. Скажем по-другому: если жёсткий диск будет содержать 1000 файлов по 40 кбайт каждый, то они займут всего лишь 391 Мбайт на разделе 500 Мбайт FAT 16. На разделе 1,2 Гбайт та же тысяча файлов будет занимать пространство более 620 Мбайт.
Таблица размещения файлов FAT распределяет файлы по кластерам. Каждая запись в таблице соответствует одному назначению кластера. В таблице содержится информация о кластере начала файла, последующих кластерах и идентификаторе последнего кластера. В целях обеспечения отказоустойчивости система создаёт вторую копию таблиц FAT. На системах FAT 16 и FAT 32 таблица находится на внешней дорожке диска. На системах NTFS она хранится в файлах.
Проблемы с FAT под Windows XP
Начиная с Windows 95, FAT 16 получила модифицированный вариант файловой системы, названной V-FAT. Это была первая система, которая могла работать с длинными именами. В 1996 году, с объявлением Windows 95 OSR2, Microsoft выпустила систему FAT 32, которая широко используется до сих пор. Система FAT 32 позволяет пользователю создавать 8 Гбайт разделы с размером кластера всего 4 кбайт. При максимальном размере жёсткого диска до 32 Гбайт размер кластера составляет 16 кбайт. FAT 32 также не ограничивает число каталогов или файлов в корневой директории.
Несмотря на все свои недостатки, системы FAT 16 и FAT 32 никуда не исчезли. Компьютеры с несколькими операционными системами всё ещё их используют. Если вам необходим доступ к разделу под Windows XP, Windows 98, Linux или DOS, вам придётся прийти к "наименьшему общему множителю" - к чему-то такому, что сможет считывать и записывать на всех системах. В данном случае лучшим вариантом является файловая система FAT 16.
Однако за всё приходится платить свою цену: Windows XP может форматировать разделы даже под FAT 32 с максимальным размером всего 32 Гбайт. Операционная система работает с разделами больших размеров, если они были созданы под другими системами. Конечно, разделы с такими размерами имеют смысл в каких-либо частных случаях.
NTFS: разделы терабайтного размера
Файловая система NTFS была выпущена вместе с Windows NT 3.5 в 1993 году. До выхода Windows 2000 разработка двух линий операционных систем была раздельной, и потребительские операционные системы Windows 95, 98 и Me были ограничены использованием FAT 16 или FAT 32. В отличие от них, линейка NT, включая Windows XP, поддерживает все системы - за исключением Windows NT4, не знакомой с FAT 32. Существует множество профессиональных инструментов, которые решают проблему чтения данных разделов NTFS под старыми версиями Windows. Один из наиболее качественных и известных инструментов - Ntfsdos, который позволяет получать доступ к разделам NTFS даже с дискеты DOS.
Система NTFS содержит множество улучшений по сравнению с системами FAT. Наиболее важные относятся к оптимизированному использованию пространства на больших разделах, исправлению ошибок после аварий, защите данных от несанкционированного доступа, службе индексации, сжатию и шифрованию данных. Специально следует упомянуть возможности системы NTFS по восстановлению: Windows записывает в реальном времени все изменения файловой системы с помощью точек отсчёта, которые она затем использует в фоне для коррекции системных ошибок даже в случае принудительной перезагрузки. NTFS может управлять разделами размером в несколько сотен терабайт (один терабайт - это миллион мегабайт). Что касается безопасности, то администраторы получают немалое преимущество от использования встроенных функций защиты, типа политики доступа пользователей к файлам и папкам и системы шифрования файлов EFS (Encryption File System).
Развитие NTFS
Несмотря на указанные преимущества, система NTFS в версиях Windows, вплоть до Windows 2000, не соответствует современным требованиям. Версия NTFS, поставляемая с Windows NT, ограничивает число разделов 26-ю (диски от A до Z). Кроме того, изменение раздела всегда требует перезагрузки. К тому же, информация о томах NTFS хранится в реестре, что усложняет использование диска с другой системой.
Проблема была решена в Windows 2000 с помощью Logical Disk Manager (LDM), который больше не требует присвоения букв дискам. Эта система NTFS способна также сохранять информацию о системе на жёстком диске, что решает проблему замены дисков. Улучшения NTFS в Windows XP незначительны по сравнению с Windows 2000. Была улучшена пропускная способность данных, и вместо фиксированного размера кластера по 512 байт можно устанавливать другие значения. Также были улучшены и административные функции, к примеру, индексация папок и ограничение непредвиденных расходов памяти.
Утилита fsutil.exe под DOS с сайта www.sysinternals.com позволяет получать доступ к системам NTFS с Windows XP, а также обеспечивает статистический анализ.
Microsoft также добавила утилиту командной строки fsutil.exe. Она позволяет выполнять множество работ с файловой системой. Однако вы вряд ли найдёте множество официальной документации об этом инструменте, поскольку утилита позволяет вносить изменения в Master File Table (MFT). Мы не рекомендуем экспериментировать с fsutil.exe. Однако одну вещь вы можете выполнить безбоязненно: введите команду fsutil fsinfo для вызова разнообразной статистической информации о файловой системе, томе и MFT.
Организация данных под NTFS
В отличие от FAT, которая хранит таблицы отдельно, в начале тома, NTFS помещает свою святая святых - Master File Table (MFT) - в скрытых файлах. MFT управляет всеми файлами тома и, так называемыми, метаданными с помощью реляционной базы данных. Информация о файлах размещается в строчках, а в столбцах записаны атрибуты файлов (скрытый, шифрованный, сжатый, системный и т.д.). Метаданные, содержащие информацию о самой MFT, хранятся в первых 16-ти записях, что в сумме составляет 16 кбайт.
Ниже в таблице MFT показаны первые записи. Следующее записи MFT отражают информацию о расположении в MFT, содержании и свободном пространстве. Кстати, файлы размером до 900 байт могут полностью помещаться в одну запись. Для файлов большего размера MFT содержит указатели на их расположение в дисковой памяти. То же самое относится и к папкам: если они имеют достаточно малый размер, то полностью входят в MFT. NTFS управляет и большими папками, при этом используются ссылки на внешние кластеры в виде, так называемых, B-деревьев. Преимущество использования B-деревьев заключается в том, что NTFS индексирует файлы или их имена, что ускоряет поиск файлов.
Заключение: Win FS - будущее
Сегодня ходит множество слухов о будущей файловой системе для Windows с кодовым названием Windows Future Storage (Win FS). Брайан Валентайн (Brian Valentine), вице-президент MS, ответственный за Windows, назвал разработку новой файловой системы настолько важным шагом вперед, что она не должна быть ограничена лишь частной клиентской системой (Longhorn). Брайан сообщил о планах MS включить Win FS в линейку Windows Server 2003.
Как нам сообщили немецкие сотрудники Microsoft, похоже, что интеграция системы в Longhorn ещё далека от своего завершения. Пока что очевидно одно: Win FS моделируется на базе файловой системы будущего SQL-сервера (Yukon), которая полностью построена на реляционной базе данных. NTFS, как описывалось выше, уже пытается применять кросс-индексирование для быстрой работы с файлами и папками. Однако, даже при намного улучшенном индексировании, Win FS не будет использовать Master File Table как NTFS.
Новая файловая система предназначена для хранения файлов на основе критериев их содержания, то есть автора, содержания, имени, источника и последнего обратившегося пользователя. Структура папок, отображаемая в Windows Explorer, представляет собой просто виртуальную карту. Структура, конечно, помогает в навигации, но вовсе не отражает актуальную схему хранения файлов или способ их организации.
В последней версии (M4) Longhorn содержится несколько намёков на реализацию технологии. Один из них заключается в файле winfs.exe, занимающем более 20 Мбайт. Этот файл содержит будущий движок файловой системы. Однако на данный момент все существующие системные файлы не запускаются вообще или выдают сообщение об ошибке. В конце концов, Win FS будет играть роль опциональной файловой системы, помимо FAT и NTFS. Однако, скорее всего, Win FS вытеснит своих предшественников. В результате у владельцев компьютеров с несколькими системами могут возникнуть проблемы, поскольку смогут ли получать другие операционные системы доступ к Win FS и каким образом - пока неизвестно.