Журнал Системный Администратор, Апрель 2006

Журнал Системный Администратор

Апрель 2006

Цена: $4.5 US

  Подписаться

Зарегистриванные пользователи, пожалуйста следуйте этой ссылке


Как устроена файловая система reiser4

Андрей Пешеходов

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

Их насчитывается более двух десятков. Между собой они отличаются не только по дисковой структуре и алгоритмам обработки данных, но и по предоставляемой функциональности. Большую часть составляют так называемые сторонние файловые системы, реализованные для совместимости, например, vfat, ntfs, UFS, и т. д. «Родных» же файловых систем для этой ОС, обеспечивающих все необходимые функции, до недавнего времени было пять: ext2, ext3, reiserfs, XFS, и JFS.

Сегодня вы познакомитесь с новинкой в этой группе – файловой системой reiser4, спроектированной Гансом Рейзером и его компанией NameSys. Несмотря на название, эта ФС написана с нуля, хотя и унаследовала некоторые особенноcти своего «идеологического» предшественника – reiserfs.

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

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

Примечание: все пути отсчитываются от каталога fs/reiser4/ в дереве исходников ядра Linux.

Плагины

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

Жестко в драйвер reiser4 зашит только код, занимающийся работой с диском, поддержкой различных абстракций и балансировкой дерева, операции же почти над всеми объектами файловой системы – как внутренними, так и экспортируемыми, как дисковыми, так и in-memory – реализованы в виде плагинов и могут быть расширены дополнительными типами или вовсе заменены пользовательскими альтернативами. В настоящее время reiser4 не поддерживает динамическую регистрацию плагинов (т.е. для подключения нового модуля придется перекомпилировать весь драйвер), однако в будущих версиях файловой системы эта возможность будет реализована.

Reiser4 не имеет жестко определенной ни дисковой, ни алгоритмической структуры, практически любая ее часть может быть легко изменена или дополнена. Я опишу сегодня то, что разработчики называют «format40» – семейство свойств файловой системы, определенных стандартным набором плагинов от NameSys.

Детали реализации плагинной инфраструктуры будут рассмотрены ниже.

Оставшая часть статьи доступна только подписчикам. Если вы желаете продолжить чтение этой статьи, то вам необходимо подписаться на эту статью или весь номер.

Подписаться на весь номер

Зарегистриванные пользователи, пожалуйста следуйте по этой ссылке