Многие люди задумываются о выборе лучшей файловой системы для своего компьютера. У пользователей Windows и MacOS X небольшой выбор, им доступна только одна стандартная файловая система, это NTFS и HFS+. В операционной системе Linux все по-другому, здесь доступно множество файловых систем на любой вкус.
Очень широко в Linux используется Ext4, её можно считать файловой системой по умолчанию. Но есть несколько поводов попробовать что-то новое. Например, Btrfs vs XFS. Действительно ли она из них лучше других? Давайте сначала рассмотрим самые популярные файловые системы и особенности их работы, так сказать, сделаем небольшое сравнение.
Содержание статьи
Как работает файловая система?
Если вы незнакомы с основами работы файловых систем, скажу об этом несколько слов чтобы вы смогли лучше понять, в чем разница Btrfs vs Ext4 vs XFS. Файловые системы используются для того, чтобы контролировать способ записи данных на диск, доступ к этим данным, а также хранят информацию, метаданные о файлах. Фактически, все данные в файловой системе делятся на две части - это метаданные и данные пользователя. Это не просто запрограммировать, но файловые системы постоянно совершенствуются. Постоянно дорабатывается новая функциональность, и они становятся более эффективными.
Обзор Ext4 vs Btrfs vs XFS
Файловая система Ext4 это улучшенная версия Ext3, которая, в свою очередь, не что иное, как переработанная Ext2. Ext4 - очень стабильная файловая система, которая была выбрана по умолчанию в большинстве дистрибутивов Linux, за несколько последних лет. Но её код уже порядочно устарел. Кроме того, пользователи Linux хотят новых возможностей и функций, которых нет в Ext4, но они есть в других файловых системах, например, в Btrfs и XFS. Сюда относятся запись добавлением, снапшоты, подразделы, увеличенный объем данных и количество файлов, а также многое другое. Дальше мы кратко рассмотрим каждую из предложенных файловых систем, чтобы вы смогли выбрать какая файловая система Btrfs или Ext4 лучше именно для вас.
Файловая система Ext4
- Максимальный размер раздела: 50-100 Тб.
- Максимальный размер файла: 16 Тб.
- Максимальное количество файлов: 4 млрд.
- Максимальная длина имени: 255 символов.
- Количество вложенных каталогов: не ограничено.
Изначально в Linux использовалась файловая система операционной системы Minix, но она имела много ограничений, поэтому в 1992 году Реми Кард начал работать над файловой системой Ext. Тогда, эта файловая система могла использоваться на разделах до двух гигабайт, а максимальный размер имени файла уже был 255 символов.
Спустя немного времени вышла Ext2, в которой было много улучшений, и максимальный размер раздела был увеличен до нескольких терабайт, но у файловой системы была ещё одна проблема - при любом сбое питания был огромный риск потерять все данные. Если во время сбоя записывались какие-либо данные, то файловая система переходила в неопределённое состояние, что могло привести к потере данных вообще не связанных с записываемыми данными.
Чтобы исправить эту проблему Стефан Твидл начал работать над ext3, которая была принята в состав ядра в 2001 году. Для решения такой проблемы все популярные на тот момент файловые системы использовали журналирование. Каждая транзакция записывалась в журнал, а для самой файловой системы применялась только после того, как данные будут полностью записаны на диск. При следующей загрузке файловая система определяла проблему и просто откатывалась к предыдущему состоянию по журналу.
Современная файловая система Ext4 была анонсирована Теодором Цо в 2006 году. Здесь снова были увеличены лимиты, но при этом была сохранена обратная совместимость с Ext3. Файловая система может оперировать разделами, размеров 1 000 000 терабайт или один экзабайт, однако делать этого не стоит. При создании разделов размером больше 50-100 терабайт возникают проблемы масштабирования из-за необходимости сохранять очень большие адреса блоков. Ещё один недостаток Ext4 - это отсутствие поддержки выявления повреждения данных из-за выхода из строя аппаратного обеспечения и отсутствие поддержки менеджера томов. Таким образом. Плюсы Ext4:
- Очень стабильная, проверенная временем файловая система;
- Поддерживается во всех дистрибутивах по умолчанию;
- Продолжает развиваться и улучшаться;
- Поддерживает прозрачное шифрование;
Минусы Ext4:
- Не поддерживает менеджер томов;
- Реальный максимальный объем раздела намного меньше одного экзабайта;
- Не поддерживает новые модные технологии вроде шифрования и сжатия на лету, copy-on-write, дедупликацию, снапшоты и многое другое.
Файловая система Btrfs
- Максимальный размер раздела: 16 экзабайт.
- Максимальный размер файла: 16 экзабайт.
- Максимальное количество файлов: 2 в 64 степени.
- Максимальная длина имени: 256 символов.
- Количество вложенных каталогов: не ограничено.
Btrfs - это новая файловая система, разработанная с нуля. Расшифровывается как B-Tree Filesystem. Она была анонсирована Крисом Масоном в 2006 году во время его работы в Oracle. Btrfs поддерживает управление несколькими томами на одном разделе, контрольные суммы для блоков, асинхронную репликацию, прозрачное сжатие, а также многие другие возможности современных файловых систем.
В наши дни её уже можно считать стабильной и использовать в качестве основой файловой системы для Linux. Её можно использовать в качестве альтернативы Ext4 как файловую систему для одного раздела, но такие дополнительные функции как менеджер томов, топография из нескольких дисков и управление снапшотами, лучше не использовать. Они могут вызывать проблемы с производительностью или даже потерю данных.
Btrfs уже давно полноценно добавлена в ядро и некоторые дистрибутивы поддерживают её выбор на этапе установки. Например, SUSE Linux использует её в качестве файловой системы по умолчанию с 2015 года. Зато Red Hat больше поддерживает Btrfs с 2017. Возможно для серьезных Enterprice систем эта файловая система ещё не подходит, зато для домашнего использования она вполне готова. Преимущества Btrfs:
- Большие лимиты и хорошая масштабируемость по сравнению с Ext4.
- Поддержка большинства возможностей современных файловых систем, таких как менеджер томов, сжатие на лету, дедупликация, copy-on-write, снапшоты и многое другое.
- Поддержка проверки контрольных сумм, что позволяет точно обнаружить повреждение данных из-за аппаратных проблем.
Минусы Btrfs:
- Файловая система относительно новая и совсем недавно она считается стабильной. Использование новых возможностей может привести к повреждению данных.
- Отсутствие шифрования на лету.
Файловая система XFS
- Максимальный размер раздела: 8 экзабайт.
- Максимальный размер файла: 8 экзабайт.
- Максимальное количество файлов: 2 в 64 степени.
- Максимальная длина имени: 256 символов.
- Количество вложенных каталогов: не ограничено.
XFS считается расширенной файловой системой. Это высоко производительная 64-битная, журналируемая файловая система. Поддержка XFS была добавлена в ядро в 2002 году. А в 2009 она впервые была использована в Red Hat Enterprise Linux 5.4. Файловая система рассчитана на очень высокую производительность для больших файловых систем, а также может обеспечивать хорошую производительность для большого количества параллельных операций.
Тем не менее эта файловая система не завоевала большой популярности. Она очень стабильная и производительная, поэтому используется по умолчанию в RHEL 7 и уже в 8, однако в ней нет ничего такого, чего бы не было в Ext4. XFS явно не относится к файловым системам следующего поколения, как Btrfs. К тому же она имеет ограничения, которые могут мешать обычным пользователям. Плюсы XFS:
- Очень стабильная и производительная.
Минусы XFS:
- Не поддерживает возможности файловых систем следующего поколения, такие как управление томами, сжатие, дедупликацию и другие возможности.
- Разделы с XFS можно только расширять, уменьшать нельзя.
Заключение и выводы
Показатель | Ext4 | XFS | Btrfs |
Дата выхода | 1992 | 2002 | 2006 |
Максимальный размер раздела | 50-100 Тб | 8 Эб | 16 Эб |
Максимальный размер файла | 16 Тб | 8 Эб | 16 Эб |
Максимальное количество файлов | 2 в 32 степени | 2 в 64 степени | 2 в 64 степени |
Максимальная длина имени | 255 | 255 | 255 |
Прозрачное шифрование | Да | Нет | Нет |
Прозрачное сжатие | Нет | Нет | Да |
Управление томами | Нет | Нет | Да |
Дедупликация | Нет | Нет | Да |
Уменьшение размера раздела | Да | Нет | Да |
Создание снапшотов | Нет | Нет | Да |
Copy-on-write | Нет | Да | Да |
Так что же лучше использовать? До сих пор Ext4 была победителем, несмотря на идентичную производительность. Но почему? Ответ - удобство и популярность. Ext4 - по-прежнему отличная файловая система для рабочих станций и настольных компьютеров. Она поставляется по умолчанию, а потому пользователь получит её просто установив ОС. Кроме того, Ext4 поддерживает разделы до 100 терабайт и файлы до 16 терабайт, а это по-прежнему очень много. Обычным пользователям столько точно не надо.
Btrfs предлагает большие объемы до 16 экзабайт как для разделов так и для файлов, а также повышение отказоустойчивости и много дополнительных и очень интересных возможностей. Она уже интегрирована в ядро, однако её ещё многие боятся, потому что файловая система относительно новая и пока не совсем понятно чего от неё ждать.
Даже если скорость передачи данных не очень важна, есть такая характеристика, как скорость работы с файлами. В Btrfs есть много полезных функций: копирование при записи, контрольные сумы, снимки, очистка, самовосстановление данных, дедупликация, а также другие интересные улучшения, которые обеспечивают сохранность данных. В ней только недостает функции ZFS - Z-RAID, так что RAID пока находиться на экспериментальной стадии. Для обычного хранения данных Btrfs лучше подходит чем Ext4, но как будет на самом деле покажет время. Что использовать Btrfs или Ext4 - это только дело вашего вкуса.
На данный момент Ext4 - лучший выбор для обычных пользователей, так как она распространяется как файловая система по умолчанию, а также она быстрее Btrfs при передаче файлов. Btrfs, безусловно, стоит попробовать, но полностью заменять ext4 еще рано, это можно будет сделать лишь через несколько лет. Забавно, то же самое, говорили и несколько лет назад, с тех пор много чего поменялось, но Btrfs все еще не считается стабильной. Если у вас есть другое мнение по этому поводу, оставляйте комментарии!
Кстати, если вы используете Windows и Linux на одной машине, вам может быть интересна моя статья: Подключение ext4 в Windows
Хорошая статья. До этого момента, даже и не знал чем отличаются файловые системы. Хотя в обычной юзерской жизни, я не думаю, что кто-то почувствует разницу между виндовским NTFS и линуксовским ext4.
Ты вообще думаешь что говоришь это ты не чувствуешь разницы из-за ntfs
Windows кокраз и замыкает
Fedora 18? Btrfs? В 23-й по умолчанию все еще ext4.
афтар видимо ошибся и имелось ввиду не fedora а OpenSuse в ней как раз по умолчанию под корень Btrfs а под home XFS
а где reiserfs4 - лучшая фс? дайте Райзера
Btrfs быстрее работает у меня чем ext4
Есть обновленная статья?
у Btrfs прозрачное сжатие много чего стоит и снапшоты(яля точки восстановления в винде), скажем в openSUSE при полном крахе системы, всегда можно загрузиться с нужного снимка, снимки делаются автоматически. 3 год стоит и пока не рушиться, комп стоит без ups выключения/включения не рушили ФС. (включено сжатие zstd + снапшоты каждые 3 часа).
Fedora 33 внедряет Btrfs, как основную ФС.
ZFS не включили сюда потому что на энтерпрайз она рвёт всех. Может всё из таблицы, но за это надо платить производительностью. Впринципе для энтерпрайза это не проблема, так как используется топ железо.
Хммм. Я пользовался снепшотами на xfs, только не помню на какой версии ядра, видать на новой поддерживается.
"Минусы Ext4:
Не поддерживает менеджер томов;"
Неправда. Работает LVM с EXT4 на ура. Или о чем речь?
О встроенном менеджере томов, как в Btrfs или Zfs.
Хорошо бы ещё сравнение по производительности привести при desktopном сценарии использования. И сравнить расходы на хранение служебных данных (типа таблиц inode).
Ext4 Стабильная версия: 21 октября 2008 Тестовая версия: 10 октября 2006 (Linux 2.6.28, 2.6.19)... Про какую FS 1992 год идет речь? Или я что то пропустил? Статья поверхностная и не профессиональная. Скорее всего недоперевод или копи-паста
Enterprise (not Enterprice)
важный момент против ext4, после форматирования 8тб винта занято 400! гб, для 16тб винта это 800 гб. При этом для 8тб hdd XFS - занято 56 гб, btrfs - 2,2 гб
Возник вопрос: почему в большинстве обзоров почти не уделяется внимания такой файловой системе, как JFS? Проводил тут бенчмарки у себя на ноутбуке, и она показала существенный отрыв при работе с множеством мелких файлов. Подумываю перейти на её использование как основной, но возникает вопрос: может у неё есть какие скрытые недостатки?
Роман, это из-за резервирования блоков, доступных только root-пользователю. По умолчанию оно равно 5%, что может быть полезно для серверов, но слишком избыточно для рабочих компьтеров. Легко исправляется с помощью команды tune2fs -m число_резервных_блоков /dev/sdXY
ZFS, кстати, как и все COW системы очень красиво смотрятся по производительности, пока совсем свежие, но при высоком заполнении она становится похожа на сыр с дырками. Как результат, после 1-2 лет использования файловой системы количество IOPS на дисках ее составляющих вырастает в разы при том же количестве IOPS на логическом томе/файловой системе.