Журнал Системный Администратор, Январь 2007

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

Январь 2007

Цена: $4.5 US

  Подписаться

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


Unionfs во FreeBSD: разбираемся в текущей реализации

Сергей Супрунов

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

Про гибкость, vnode и файловые системы

Как известно, на «физическом» уровне файлы в файловой системе ОС семейства UNIX определяются так называемыми индексными узлами (inode), которые хранят информацию об этих файлах. В первоначальных реализациях операционных систем файловые объекты, с которыми работала система, непосредственно сопоставлялись с inode.

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

Следующим шагом стали так называемые наращиваемые файловые системы. Интерфейс vnode достаточно гибок, чтобы позволить размещать несколько уровней vnode один над другим. В этом случае при получении запроса на выполнение той или иной операции с файловой системой, верхний уровень vnode может либо выполнить этот запрос сам, если располагает необходимой информацией, либо передать его на нижележащий уровень (без изменений или предварительно модифицировав). Следующий уровень vnode поступает аналогичным образом, и так до тех пор, пока запрос не будет удовлетворён, либо пока не будет возвращена ошибка «Операция не поддерживается».

Во FreeBSD концепция наращиваемых файловых систем поддерживается достаточно широко, что позволяет помимо «традиционных» ФС реализовать целый ряд довольно полезных и эффективных «виртуальных» файловых систем, таких как unionfs.

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

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

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