Кріплення Union на Linux


11

Монтаж об'єднання представляє комбінований вигляд декількох каталогів (гілок) в одній ієрархії. Гаразд, але як я можу використовувати один на практиці, а який?

У сучасній системі Linux доступно багато технологій кріплення об'єднань: OverlayFS , aufs , UnionFS , різні файлові системи на базі FUSE,…

З огляду на випадок використання, як я можу вирішити, які з них підходять? Зокрема:

  • Для яких потрібен кореневий доступ у типовій системі? (Іншими словами, чи може непривілейований користувач створити об'єднання кріплення?)
  • На яких з них можна встановити /(звичайно, з кореневим доступом)?
  • Які підтримують написання до основних гілок? (Тобто, якщо /fooі /barвстановлено об'єднання /union, я можу написати /fooі /bar?)
  • Які підтримують настроювані політики для запису? (Наприклад, чи можу я надіслати новостворені файли до гілки B, хоча я отримую вміст із гілки A, коли файл існує в обох гілках?)
  • Які підтримують пріоритетний порядок між гілками, що залежить від файлів? (Наприклад, чи завжди я можу отримати найновіший файл серед усіх галузей, які мають його?)

Приклади використання були б вдячні.

Будь ласка, уникайте відповідей, зосереджених на певній точці. Я шукаю вичерпні відповіді, які переглядають доступне програмне забезпечення (щось подібне до Що таке кріплення прив’язки? ). Гарні відповіді будуть рясні.

Відповіді:


12

По кожному з конкретних пунктів:

  • Кореневий доступ: Якщо він використовує FUSE, йому не потрібен root, якщо він не використовує FUSE, йому потрібен root, якщо ви не зробите спеціальні настройки з можливостями (потенційно небезпечними) або просторами імен.

  • Підготовка /: Я припускаю, що ви маєте на увазі як кореневу файлову систему при запуску, і в цьому випадку будь-яка з них, яка працює в режимі ядра, теоретично повинна працювати, хоча деякі є більш надійними, ніж інші. Більшість LiveCD роблять це, тому я б запропонував шукати інформацію з цього питання.

  • Запис до основних галузей: Це залежить від того, що ви маєте на увазі. Якщо ви маєте на увазі розповсюдження записів на змонтований вигляд вниз до нижніх гілок, я поняття не маю. Якщо ви маєте на увазі запис у нижчі гілки поза діапазоном від самої основної файлової системи, технічно всі великі трійки роблять, але всі вони потребують перезарядки, щоб переконатися, що зміна переноситься на змонтований вигляд.

  • Налаштування політики запису: я не знаю конкретно про це, але я думаю, що великі 3 (UnionFS, AUFS та OverlayFS) не підтримують це.

  • Порядок пріоритетності, залежний від файлу: я думаю, що цей вид підпадає і під третім під питанням, і, як там, я не знаю жодного, який би його спеціально підтримував.

Щодо додаткових особливостей кожного з них:

  • UnionFS: Наскільки я можу сказати, це була оригінальна реалізація файлової системи об'єднання для Linux. Він існує протягом багатьох століть, і використовується багатьма LinuxCD LiveCDs. Він запускається в режимі ядра і вимагає використання патчів до ядра вище.

  • AUFS: Виникла як вилка UnionFS, а потім вид став її власною справою. Цей спробував об'єднати основну лінію, і її було відхилено через якість коду. Він замінений UnionFS в деяких дистрибутивах LiveCD, в основному похідних Debian і Gentoo. Як і UnionFS, він працює в режимі ядра і вимагає виправлень до верхнього ядра.

  • OverlayFS: Я не знаю багато про оригінальну розробку цього, окрім того, що він підтримується і для кількох похідних BSD. Це, зокрема, реалізація файлової системи накладки / об'єднання в ядрі Linux. Він також працює в режимі ядра.

  • UnionFS-FUSE: Цей дещо заплутано названий проект насправді не має нічого спільного з UnionFS, окрім надання по суті тієї ж функціональності. Це найпоширеніша реалізація FUSE файлової системи об'єднання, але це приблизно все, що я знаю про неї.

  • mhddfs: Цей дивний зовнішній вигляд, більше схожий на реалізацію RAID-0 зернистості файлів, ніж звичайна файлова система об'єднання. Він підтримує балансування файлів у кількох резервних каталогах на основі використання місця. Це також FUSE.

Кілька конкретних речей, які слід зазначити, не характерні для конкретної реалізації:

  • Усі параметри внутрішнього ядра мають обмеження щодо того, якими можуть бути резервні файлові системи, особливо це стосується того, що вони не працюють з мережевими файловими системами або BTRFS.

  • Усі реалізації FUSE мають проблеми при використанні в якості кореневої файлової системи. Це не характерно для реалізації файлової системи об'єднання, але це більше проблема з FUSE загалом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.