Типи файлових систем Linux: все, що потрібно знати

Існує кілька типів файлових систем (ФС) для Linux, кожна з яких визначає, як саме операційна система зберігає та управляє файлами на дисках. ФС створені для виконання різних завдань: від підвищення продуктивності до забезпечення сумісності з іншими ОС.

У цьому матеріалі ми розглянемо, що таке файлова система, які ФС використовуються для Linux та їхні основні характеристики.

Що таке файлова система

Файлова система — це набір стандартів, що визначає, як зберігатимуться дані на носії інформації та яким чином їх можна звідти вилучити. 

Віртуальна файлова система (VFS) — це абстрактний рівень поверх реалізації файлової системи. Її мета — забезпечити однаковий доступ клієнтських застосунків до різних типів файлових систем. Це можна порівняти з перекладачем, який допомагає ОС порозумітися та взаємодіяти з різними ФС.

В Linux застосовується така модель файлової системи:

З використанням цієї моделі не потрібно робити зміни в ядрі ОС, щоб додати підтримку нової файлової системи.

Ядро Linux підтримує різні типи файлових систем: ext3, ext4, ReiserFS, Btrfs, XFS тощо. Проте наразі найпоширеніша файлова система — це ext4.

Типи файлових систем і їхні особливості

Існує кілька типів сучасних файлових систем для Linux, і кожна з них має свої особливості. У цьому розділі ми розглянемо основні ФС і зрозуміємо, як вони працюють.

ext4 

Файлова система ext4 з’явилась у 2008 році з випуском ядра Linux 2.6.28. Ця ФС підтримує максимальний розмір файлу 16 ТіБ та обмежує довжину імені файлу — воно має бути не більше 255 байтів.

Особливості ext4:

  • сумісність з попередніми файловими системами;
  • поліпшення розподілу блоку даних перед записом на диск;
  • розширення діапазону міток часу до 10 травня 2446 року;
  • багатоблоковий розподіл, який зменшує фрагментацію диска;
  • відкладений розподіл, що виділяє блоки лише під час запису файлу на диск;
  • необмежена кількість каталогів завдяки деревоподібній структурі даних HTree;
  • швидка перевірка ФС;
  • підтримує утиліту e4defrag, що дозволяє дефрагментувати окремі файли чи всю ФС.

Файлова система ext4 вважається найкращою, хоча і має деякі обмеження:

  • неможливо відновити пошкоджені дані, які вже записані на диск;
  • максимальний розмір тому (логічної одиниці зберігання даних), який файлова система може обробляти без втрати продуктивності — 1 ЕіБ.

Як з’явилась система ext4

Файлова система ext4 пройшла довгий шлях до того, щоб стати такою, як є сьогодні. Пращуром ext4 є файлова система Minix.

Minix

Це перша файлова система та прообраз сучасних ФС для Linux. У 1987 році її у складі ОС Minix вперше представив Ендрю Таненбаум.

ОС та файлова система Minix використовувались як посібник для студентів, що вивчали основи будови ОС, і серед них був Лінус Торвальдс — батько ОС Linux. Через те, що Minix була переважно навчальною системою, вона мала багато недоліків. Наприклад, назви файлів мали бути не довше за 14 символів, а розміри розділів обмежуватися 64 МБ. 

ext або extfs (Extended File System)

Це перша файлова система, яка була призначена саме для ОС Linux. Вона з’явилась у 1992 році завдяки Ремі Карду, який надихнувся файловою системою Unix. У ФС ext були виправлені проблеми Minix: назви файлів могли складатися з 255 символів, а розмір розділу збільшився до 2 ГБ.

Попри всіх старань, система ext мала один суттєвий недолік — наявність лише однієї мітки часу. Для порівняння, кожен сучасний файл Linux має три мітки часу: доступ до файлу, зміна вмісту файлу та зміна властивостей і метаданих.

ext2

Через рік після створення ext Ремі Кард створює нову версію файлової системи — ext2. У цій системі були розширені можливості попередника:

  • покращена продуктивність ФС;
  • дані файлів зберігалися у блоках однакової довжини;
  • максимальний розмір файлів збільшився до 1 ТіБ;
  • довжина імені почала обмежуватися не кількістю символів, а байтами, і становила 225 байтів.

Система працювала швидше за попередників, проте не підтримувала механізм ведення логів. Це стало плюсом для роботи з обмеженими ресурсами, де немає потреби у надлишкових циклах перезапису даних. Проте відсутність запису логів призводила до:

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

Файлова система ext3 вийшла у 2003 році разом з релізом ядра Linux 2.4.15. Це оновлена версія ext2 з можливістю ведення логів. Система зберігає у логфайлах інформацію про всі зміни, які потрібно внести. Якщо станеться збій, ці дані можна буде відновити протягом хвилини.  

У ext3 були представлені три рівні ведення логів:

  1. Journal — запис метаданих і вмісту файлів у логфайл до внесення змін в основну систему.
  2. Ordered — спочатку в логфайл вносяться метадані, далі вміст файлу — в основну ФС, і пізніше метадані з’єднуються з основною ФС.
  3. Writeback — у логфайл записуються лише метадані, а вміст файлу зберігається в основній ФС.

XFS

Це 64-розрядна файлова система, яка була вбудована у ядро Linux з 2001 року. XFS підтримує максимальний розмір файлів у 8 ЕіБ та обмежує довжину назви файлу до 255 байтів. XFS підтримує ведення логів і зберігає зміни у логфайлі до того, як вони зафіксуються в основній ФС. Тому ймовірність того, що файли у системі XFS пошкодяться, мінімальна.

OpenZFS

OpenZFS поєднує функціонал традиційних ФС та диспетчер томів. Особливості цієї системи полягають у тому, що є можливості захисту даних від пошкодження, шифрування даних, підтримуються накопичувач збільшеного обсягу і копіювання даних під час запису. Максимальний розмір файлу, який підтримується — 16 ЕіБ, довжина імені файлу — 255 байтів. 

BTRFS

Файлова система, що розроблена компанією Oracle і була випущена у 2009 році. Максимальний розмір файлу та довжина імені збігаються з системою OpenZFS. З особливостей Btrfs можна виділити онлайн-дефрагментацію, онлайн-додавання та видалення блокових пристроїв, підтримка RAID, клонування файлів і стиснення, що налаштовується для кожного файлу чи тому.

JFS

Файлова система, яка розроблена компанією IBM в AIX Unix в 1990 році. Це повна альтернатива ext4 з однією основною відмінністю — ця система може стабільно працювати з меншою кількістю ресурсів, ніж потребує ext4.

ReiserFS

Альтернатива ext3 з розширеним функціоналом та покращеною продуктивністю. Раніше ця файлова система використовувалась як типова ФС у SUSE Linux. З переваг варто зазначити підтримку динамічної зміни розмірів файлової системи.

Післяслово

Для системних адміністраторів особливо важливо, щоб система була продуктивною та стабільною. Тому правильний вибір файлової системи — це вже вагома частина ефективної роботи з Linux. 

Якщо ти хочеш опанувати Linux, його файлові системи та інші ключові аспекти ОС, запрошуємо тебе на курси початкового та середнього рівня в ITEDU.

Залишити відповідь

Дякуємо, що поділились