Які переваги та недоліки використовувати файлові системи FuseFS?


19

Я знаю, що деякі файлові системи представлені через Fuse, і мені було цікаво плюси та мінуси такого підходу.

Відповіді:


17

Я не позитивний, якщо ви маєте на увазі реальну, дискову файлову систему або будь-яку файлову систему. Я ніколи не бачив, щоб нормальна файлова система використовувала FUSE, хоча, мабуть, це можливо; головна перевага FUSE полягає в тому, що він дозволяє вам представити щось додаткам (або користувачеві), схожим на файлову систему, але насправді просто викликає функції у вашій програмі, коли користувач намагається робити такі речі, як список файлів у каталозі або створення нового файл. Plan9 добре відомий тим, що намагається зробити все доступним через файлову систему, і /procпсевдофайлова система походить від них; FUSE - це спосіб програм легко слідувати цій схемі

Наприклад, ось скріншот (дуже функціональної) файлової системи FUSE, що надає доступ до даних про сайт SE:

Знімок екрана файлової системи FUSE в дії

Звичайно, жоден із цих файлів насправді не існує; на lsзапит про список файлів у каталозі FUSE викликав функцію в моїй програмі, яка зробила запит API на цей сайт для завантаження інформації про користувача 73 (мені); catнамагаючись читати display_nameі website_urlвикликати більше функцій, які повертали кешовані дані з пам'яті, без нічого фактично існуючого на диску



2
Ви знайдете файлові системи важких режимів, реалізовані в запобіжниках: LessFS, GlusterFS, MooseFS. GFS Google (не POSIX) також працює в просторі користувачів.
Tobu

Де ти знайшов цю програму?!?!
Натан Осман

4
@George Я написав це, коли я возився з API SO. Він не використовує жодних маршрутів, окрім / користувачів, тому ви в основному бачите всі реалізовані функції на цьому скріншоті; було лише побачити, як важко буде
Майкл Мрозек

5
@George Я поставив це на github
Michael Mrozek

19

Файлові системи Unix традиційно реалізуються в ядрі. FUSE дозволяє реалізувати файлові системи користувальницькою програмою.

Файлові системи в ядрі краще підходять для основних файлових систем для програм і даних:

  • Їх можна використовувати на завантажувальних носіях (програма, що реалізує файлову систему FUSE, повинна бути кудись завантажена).
  • Вони більш надійні, тому що вони не відійдуть через процес аварії або вбиття помилково.
  • Вони дещо швидші.

Файлові системи FUSE мають і інші переваги, в основному обертаючись навколо своєї гнучкості:

  • Вони можуть завантажуватися та монтуватися звичайними користувачами, тому вони зручні для файлових систем, які користувачі, як правило, змонтують самі: для доступу до мережі, для перегляду файлів архіву, для змінних носіїв тощо.
  • Якщо драйвер файлової системи FUSE виходить з ладу, він не буде панікувати ваше ядро: ви не побачите нічого гіршого за помилки вводу / виводу в додатках, які отримували доступ до файлової системи.
  • Вони можуть бути запрограмовані дуже швидко; Є прив'язки FUSE для багатьох мов сценаріїв, де корисний драйвер файлової системи FUSE може бути записаний у декілька сотень рядків коду.
  • Вони можуть бути розгорнуті дуже швидко, як через те, що для їх встановлення немає необхідності втручання адміністратора, так і тому, що вони легко переносяться між підтримуваними ОС .
  • Немає проблем з ліцензуванням, пов’язаних із статичним зв’язком з ядром (це впливає на zfs ).

7

FUSE насправді не є файловою системою, але кодом, який дозволяє файлові системи реалізовуватись як процеси замість модулів ядра.

Однією з найкорисніших переваг FUSE є надання дозволу GPL-коду "змішуватися" з не-GPL. Наприклад, Gnu / Linux і ZFS http://zfs-fuse.net/ або NTFS-3G на багатьох ОС, таких як OpenSolaris і * BSD http://www.tuxera.com/community/ntfs-3g-download/

Основним недоліком є ​​вплив на продуктивність порівняно з рідними (ядрами) драйверами.

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