Sysadminium
В этой статье познакомимся с тем, какие файловые системы могут быть использованы в операционной системе Linux: ext, btrfs, xfs и с другими.
Что такое файловая система
Полезные данные, такие как файлы и каталоги, напрямую на диск не записываются. Между разделом диска и файлами существует прослойка в виде файловой системы.
Файловая система — это средство, которое определяет различные правила работы с файлами, например:
- как данные будут располагаться на диске;
- как будет происходить запись, поиск, чтение или удаление файлов;
- какие метаданные будут использоваться;
- как обезопасить файлы от порчи (например при некорректном выключении компьютера);
Метаданные — это данные о данных, например файл содержит какие-то данные, а метаданные это:
- дата создания файла;
- пользователь создавший этот файл;
- тип файла;
- права доступа к этому файлу;
- и подобная информация о файле.
Разные файловые системы имеют разные ограничения, например:
- максимальный размер раздела;
- наибольший размер файла;
- максимальная длина имени файла.
В этой статье пробежимся по файловым системам, которые можно выбрать при установки Debian 11 и Ubuntu 22.04. При установке Debian 11 вы можете выбрать следующие файловые системы:
Установщик Ubuntu 22.04 имеет несколько меньший выбор:
Далее пробежимся по этим файловым системам:
Файловые системы семейства 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, так как имею большой опыт работы с ней, но не в этом курсе, а в отдельных статьях.
Debian linux file systems
Debian GNU/Linux придерживается стандарта Filesystem Hierarchy Standard для каталогов и имён файлов. Этот стандарт позволяет пользователям и программному обеспечению быть уверенным в расположении файлов и каталогов. Уровень корневого каталога представляется просто косой чертой / . На корневом уровне, все системы Debian содержат следующие каталоги:
Каталог | Содержит |
---|---|
bin | необходимые исполняемые файлы |
boot | статичные файлы системного загрузчика |
dev | файлы устройств |
etc | настройки системы данной машины |
home | домашние каталоги пользователей |
lib | необходимые библиотеки общего пользования и модули ядра |
media | содержит точки монтирования для съёмных носителей |
mnt | точка монтирования для временно монтируемой файловой системы |
proc | виртуальный каталог для системной информации |
root | домашний каталог суперпользователя |
run | изменяемые данные времени выполнения |
sbin | необходимые системные исполняемые файлы |
sys | виртуальный каталог для системной информации |
tmp | временные файлы |
usr | вторичная иерархия |
var | изменяемые данные |
srv | Данные сервисов, предоставляемых системой |
opt | дополнительное программное обеспечение |
Далее следует список важных предположений относительно каталогов и разделов. Заметьте, что дисковое пространство может использоваться совершенно по-разному, в зависимости от настроек системы и специфики решаемых задач. Приводимые здесь рекомендации являются лишь отправной точкой в решении задачи разметки.
- На корневом разделе / всегда физически должны находиться каталоги /etc , /bin , /sbin , /lib и /dev , иначе будет невозможна загрузка системы. Обычно, для корневого раздела требуется 150–310 МБ.
- В /usr хранятся: все пользовательские программы ( /usr/bin ) , библиотеки ( /usr/lib ), документация ( /usr/share/doc ) и так далее. Этой части файловой системы требуется много места. Вы должны выделить как минимум 500 МБ дискового пространства. Объём этого раздела зависит от числа и типа пакетов, планируемых к установке. Для рабочих станций общего назначения или серверов цифра может вырасти до 4–6 ГБ.
- В настоящее время рекомендуется создавать /usr в корневом разделе / , в противном случае возможна проблема с запуском системы. Это означает, что вы должны иметь не менее boot time. This means that you should provide at least 600–750 МБ на диске в корневом разделе, содержащим /usr , или 5–6 ГБ для установки на рабочую станцию или сервер.
- Каталог /var содержит: все изменяющиеся данные типа новостных статей, сообщений электронной почты, веб-сайтов, баз данных, кэша системы управления пакетами и т.д. Размер каталога целиком зависит от степени использования компьютера, но для большинства людей он определяется работой с системой управления пакетами. Если вы собираетесь установить всё, что предлагает Debian, при чём сразу, то 2 или 3 гигабайта для /var должно хватить. Если вы собираетесь производить установку по частям (то есть, установить службы и утилиты, потом программы для работы с текстом, потом X, . ), то можно уложиться в 300–500 МБ. Если пространство жёсткого диска дорого и вы не планируете делать глобальных обновлений системы, то вам будет достаточно 30 или 40 МБ.
- Каталог /tmp содержит: временные данные создаваемые запущенными программами. Обычно достаточно 40–100 МБ. Некоторые приложения — управление резервным копированием, утилиты работы с CD/DVD и мультимедийными данными — могут использовать /tmp для временного хранения файлов. Если вы планируете использовать данные приложения, то должны выделить пространство под /tmp согласно вашим потребностям.
- Каталог /home содержит: отдельный подкаталог для каждого пользователя, где хранятся личные данные. Его размер зависит от количества пользователей в системе и какие файлы они будут хранить в своих каталогах. В зависимости от планируемого использования вы должны зарезервировать около 100 МБ для каждого пользователя, но можете изменить это значение согласно своим требованиям. Выделите больше места, если планируете хранить много мультимедийных файлов (картинок, MP3, фильмов) в своём домашнем каталоге.