OverlayFSфайлова система, розроблена компанією SUSE як прогресивніша заміна UnionFS і AUFS.

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, що не прив'язані до директорій).

OverlayFS вперше включений до складу ядра Linux 3.18-rc2 у жовтні 2014.[1][2]

Примітки ред.

  1. Архівована копія. Архів оригіналу за 15 грудня 2014. Процитовано 1 листопада 2014.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  2. Код OverlayFS принят в состав ядра Linux 3.18 [Архівовано 1 листопада 2014 у Wayback Machine.] // opennet.ru 28.10.2014

Посилання ред.

  • OverlayFS[недоступне посилання з серпня 2019] на git