Файловые системы поддерживаемые Linux

В этой статье познакомимся с тем, какие файловые системы могут быть использованы в операционной системе Linux: ext, btrfs, xfs и с другими.















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




Полезные данные, такие как файлы и каталоги, напрямую на диск не записываются. Между разделом диска и файлами существует прослойка в виде файловой системы.




Файловая система — это средство, которое определяет различные правила работы с файлами, например:




  • как данные будут располагаться на диске;
  • как будет происходить запись, поиск, чтение или удаление файлов;
  • какие метаданные будут использоваться;
  • как обезопасить файлы от порчи (например при некорректном выключении компьютера);




Метаданные — это данные о данных, например файл содержит какие-то данные, а метаданные это:




  • дата создания файла;
  • пользователь создавший этот файл;
  • тип файла;
  • права доступа к этому файлу;
  • и подобная информация о файле.




Разные файловые системы имеют разные ограничения, например:




  • максимальный размер раздела;
  • наибольший размер файла;
  • максимальная длина имени файла.




В этой статье пробежимся по файловым системам, которые можно выбрать при установки Debian 11 и Ubuntu 22.04. При установке Debian 11 вы можете выбрать следующие файловые системы:




Выбор файловых систем при установки Debian 10




Установщик Ubuntu 22.04 имеет несколько меньший выбор:




Выбор файловых систем при установки Ubuntu 20.04




Далее пробежимся по этим файловым системам:




  • Ext2
  • Ext3
  • Ext4
  • btrfs
  • JFS
  • XFS
  • FAT16
  • FAT32




Файловые системы семейства ext




EXT (Extended File System) — расширенная файловая система.




Ext2 была создана в январе 1993 года для linux, вот её особенности:




  • не журналируемая;
  • максимальная длина имени файла — 255B;
  • максимальный размер файла — 16GB-2TB (в зависимости от размера кластера);
  • максимальный размер раздела — 2TB-32TB (в зависимости от размера кластера);
  • поддержка POSIX ACL.




Ext2 старая файловая система без журнала, но достаточно быстрая. Современные системы Linux могут работать с этой файловой системой.








Ext3 была создана в ноябре 1999 года и также стала применяться по умолчанию во многих дистрибутивах Linux. Единственное улучшение — это добавление журналирования (что сделало файловую систему надежнее, но медленнее).








Ext4 была создана в октябре 2006 года, но стабильная версия появилось в октябре 2008 года. Она сейчас является самой распространенной файловой системой для LinuxУбрали некоторые ограничения и оптимизировали:




  • максимальный размер файла — 16 GB-16 TB (в зависимости от размера кластера);
  • наибольший размер раздела — 1 EB (1048576 TB);
  • максимальная длина имени файла — 255 B;
  • время изменения файлов протоколируется точнее;
  • упростилась работа с крупными файлами;
  • была оптимизирована скорость работы.




На данный момент по моему мнению EXT4 лучший выбор для Linux систем.




btrfs




btrfs — это более функциональная и сложная файловая система чем ext4. Начали разрабатывать для Linux в 2007 году, а в 2014 году признали стабильной. Вот некоторые интересные функции:




  • снимки состояния, которые позволяют запомнить состояние на определенный момент времени всех файлов и вернуться к этому состоянию в последующем. Полезно когда вы случайно удалили что-то важное или какой-то вирус зашифровал все ваши данные на компьютере;
  • создание RAID конфигурации на уровне файловой системы;
  • сжатие данных, когда данные при создании автоматически сжимаются экономя свободное место на диске;
  • дедупликация данных. Когда есть два или более одинаковых файла, то они занимают размер только одного файла, что очень экономит пространство на жестком диске;
  • контрольные суммы для данных и метаданных, что повышает надежность файловой системы;
  • дефрагментация данных на лету;
  • квоты на разделы;
  • динамическая аллокация inode;
  • максимальный размер файла 16 EB;
  • наибольший размер раздела 16 EB;
  • максимальный размер имени файла 255 B;




Из минусов: файловая система не так проверена временем как ext4, активно использует оперативную память и работает медленнее чем ext4.




JFS




JFS — это журналированная файловая система. На момент выхода в свет в 1999 году была наиболее производительной из существовавших файловых систем. Сейчас по функциональности сравнима с ext4, но менее популярна.




Вот некоторые её особенности:




  • максимальная длина имени файла 255 B;
  • максимальный размер файла 4 PB (4000 TB);
  • максимальный размер раздела 32 PB (32000 TB);
  • контрольные суммы;
  • поддержка acl.




Так как по функциональности эта файловая система сравнима с ext4, но по характеристикам и популярности отстаёт, то в Ubintu установщик уже не предлагает использовать её. Можно использовать, если у вас будут храниться файлы размером более 16 ТБ, хотя и в этом случае лучше выбрать XFS.




XFS




XFS — это журналированная файловая система. Особенно хорошо работает с большими неизменяемыми файлами. Имеет следующие особенности:




  • максимальная длина имени файла 255 B;
  • наибольший размер файла 9 EB;
  • максимальный размер раздела 9 EB;
  • автоматическая аллокация и высвобождение inode;
  • дефрагментация «на лету»;




Минусы:




  • низкая производительность при работе с большим количеством файлов;
  • невозможность уменьшить размер существующей файловой системы.




Эта файловая система позволит хранить просто огромные файлы, размер которых может достигать 9 EB.




Файловые системы семейства fat




Эти файловые системы могут работать в linux но создавались они для windows. Могут подойти для хранения файлов, но не для работы программ. Основной недостаток FAT — медленная работа с файлами:




  • fat16 — максимальный раздел 2 GB, в настоящее время потеряла свою актуальность;
  • fat32 — максимальный раздел 2 TB, для работы приложений не подходит, максимум можно использовать для хранения информации на флеш накопителе.




Итог




  • В настоящее время рекомендуется использовать ext4 для работы Linux систем, а если вам нужны дополнительные функции можно изучить и использовать btrfs, если планируете хранить крупные файлы то можно попробовать xfs.
  • Также если вам важнее скорость чем надежность можно использовать ext2, так как в ней нет журнала она должна работать быстрее чем ext4.
  • Ну а fat32 можно использовать для хранения информации на флеш накопителе.




Кроме перечисленных файловых систем Linux может работать и с другими, например ntfs или zfs. Но так как их нельзя выбирать при установке, они были опущены. На этом сайте я планирую познакомить вас с файловой системой zfs, так как имею большой опыт работы с ней, но не в этом курсе, а в отдельных статьях.










2021-05-11T14:52:43
Администрирование Linux