Многие люди задумываются о выборе лучшей файловой системы для своего компьютера. У пользователей 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:
- Очень стабильная, проверенная временем файловая система;
- Поддерживается во всех дистрибутивах по умолчанию;
- Продолжает развиваться и улучшаться;
- Поддерживает прозрачное шифрование;
- Не поддерживает менеджер томов;
- Реальный максимальный объем раздела намного меньше одного экзабайта;
- Не поддерживает новые модные технологии вроде шифрования и сжатия на лету, 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, снапшоты и многое другое.
- Поддержка проверки контрольных сумм, что позволяет точно обнаружить повреждение данных из-за аппаратных проблем.
- Файловая система относительно новая и совсем недавно она считается стабильной. Использование новых возможностей может привести к повреждению данных.
- Отсутствие шифрования на лету.
Файловая система 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 можно только расширять, уменьшать нельзя.
Заключение и выводы
Показатель | 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