Новости IT, хостинга
Новость от 28.10.2014

Адрес в интернете:
https://news.hostdb.ru/index/show/id/9900

Код OverlayFS принят в состав ядра Linux 3.18


В тестовом выпуске ядра Linux 3.18-rc2 появилась поддержка файловой системы OverlayFS, разработанной компанией SUSE в качестве более прогрессивной замены UnionFS и AUFS. В процессе цикла подготовки первого кандидата в релизы, включение OverlayFS в состав ядра было отложено, но в последний момент разработчикам удалось устранить финальные замечания и код был принят во второй кандидат в релизы.

OverlayFS позволяет создать виртуальную многослойную файловую систему, объединяющую несколько частей других файловых систем. OverlayFS входит в число наиболее ожидаемых в ядре возможностей, так как многослойная ФС востребована в Live-дистрибутивах и системах контейнерной виртуализации, и в частности, необходима для организации работы контейнеров отдельных десктоп-приложений. При помощи OverlayFS можно организовать файловую систему, которая будет сформирована поверх доступной только на чтение основы, созданной из существующей директории в уже примонтированной типовой ФС.

ФС создаётся из нижнего и верхнего слоёв, каждый из которых прикрепляется к отдельным директориям. В качестве нижнего слоя, используемого только для чтения, могут применяться директории любых поддерживаемых в Linux систем, включая NFS и другие экземпляры OverlayFS. Верхний слой, который может быть доступен на запись, будет перекрывать состав нижнего слоя, т.е. если файлы дублируются, в итоговой ФС будет виден только перекрывающийся контент верхнего слоя. При этом все записываемые и изменяемые данные будут сохраняться только в верхнем слое, даже если изначально они размещались в нижнем слое ФС, что позволяет использовать одну основу для создания серии одинаковых окружений (контейнеры приложений), гарантировать неизменность базовых данных (гостевые сеансы) или организовать полноценную работу поверх накопителя, не поддерживающего запись (CD/DVD).

Основным недостатком ранее существующей файловой системы UnionFS и созданного на её основе ответвления AUFS является излишне усложнённая кодовая база, составляющая примерно 60 тысяч строк кода, не использующая штатную подсистему VFS. Код AUFS и UnionFS очень трудоёмок для сопровождения и не отвечает требованиям к оформлению кода для ядра Linux, что не позволяло включить его в основной состав ядра. Кроме того, производительность и надёжность данных систем оставляет желать лучшего. В рамках проекта OverlayFS предпринята попытка создания компактного, надёжного и высокопроизводительного аналога UnionFS, построенного поверх штатной подсистемы VFS.

Механизм работы OverlayFS в корне отличается от UnionFS: после открытия файла, все операции с ним напрямую транслируются непосредственно в базовые файловые системы, из которых составлен раздел OverlayFS. Подобный подход позволяет существенно упростить реализацию многослойной ФС и добиться производительности на уровне основной ФС. В OverlayFS поддерживается отдельное дерево элементов директорий (dentry), дублирующее подобные структуры низлежащих ФС, что позволяет обеспечить быстрое кэширование запросов без внесения изменений в VFS, но приводит к дополнительным затратам памяти за счёт дублирования в памяти параметров inode (предусмотрена возможность оптимизации для совместного использования inode, не привязанных к директориям).


Распечатано с HostDB.ru.