В операционной системе Linux доступно множество файловых систем на любой вкус. В Linux очень широко используется Ext4, но есть несколько поводов попробовать что-то новое. Например, Btrfs или Xfs.
Давайте рассмотрим самые популярные файловые системы и особенности их работы, а затем займемся их сравнением.
Функции файловых систем
Файловые системы используются для контроля способа записи данных на диск, контроля доступа к этим данным, а также хранения информации и метаданных о файлах. Файловые системы постоянно пересматриваются для предоставления большей функциональности и каждый раз становятся эффективнее.
Зачем разбивать на разделы?
У многих пользователей смутные представления о том, зачем нужны разделы диска. Все операционные системы поддерживают создание и удаление разделов. Linux использует более одного раздела на диске, даже при использовании стандартной процедуры установки. Главная цель разделения дисков на разделы — повышение безопасности в случае возникновения ошибок.
При разбиении жесткого диска на разделы, данные могут быть сгруппированы, а также разделены. При возникновении ошибок, будут потеряны только те, которые находились на поврежденном разделе. В это же время, данные других разделов подвергаются меньшей опасности. Эти принципы датируются днями, когда операционная система Linux не имела журналируемой файловой системы, и любой сбой питания мог привести к катастрофе.
Использование разделов оправдано в целях безопасности и надежности. Нарушение в одной части операционной системы не означает, что весь компьютер подвержен опасности. К примеру, пользователи создают скрипты, программы или веб-приложения, которые начинают заполнять диск. Если диск содержит только один большой раздел, то когда свободное место закончится, система полностью перестанет работать. Но если пользователь хранит данные в отдельных разделах, то переполнение затронет только этот раздел данных, в то время как системные разделы будут продолжать функционировать.
Имейте в виду, что наличие журналируемой файловой системы обеспечит защиту данных только в том случае, если произошел сбой питания или же внезапное отключение запоминающего устройства. Это не защитит данные от битых блоков и логических ошибок в файловой системе. В таких случаях пользователь должен использовать резервный массив нескольких дисков (RAID).
Зачем менять файловые системы?
Файловая система Ext4 — улучшенная версия Ext3, которая, в свою очередь, не что иное, как улучшенная Ext2. Ext4 — очень надежная ФС, которая используется практически во всех дистрибутивах в течение последних нескольких лет. Но её код уже достаточно устарел.
Кроме того, пользователи Linux хотят новых возможностей и функций, которых нет в Еxt4, но они есть в других файловых системах, например, Btrfs и Xfs. Существует программное обеспечение, которое удовлетворяет некоторые из таких потребностей, но поддержка на уровне файловой системы будет работать намного быстрее.
Файловая система Ext4
У Ext4 есть некоторые ограничения, которые впечатляют даже сейчас. Максимальный размер файла составляет 16 тебибайт (что составляет примерно 17,6 терабайт). А это намного больше, чем емкость любого жесткого диска, который может купить обычный пользователь. В то время как наибольший том / раздел, который вы можете сделать с помощью Ext4, составляет 1 эксабайт (что составляет примерно 1152921.5 терабайт).
Известно, что Ext4 работает быстрее, чем Ext3. Как и все современные файловые системы, она журналируемая, а это значит, что Ext4 будет вести журнал расположения файлов на диске, а также записывать туда любые изменения данных. Несмотря на все ее функции, она не поддерживает прозрачное сжатие, дедупликацию данных и прозрачное шифрование. Снимки состояния технически поддерживаются, но это только экспериментальная функция.
Файловая система Btrfs
Это файловая система, которая полностью создана с нуля. Она существует потому, что её разработчик захотел расширить функциональность стандартной файловой системы такими возможностями: снимки состояния, объединение, контрольные суммы и прозрачное сжатие.
Btrfs не зависит от Ext4, но реализует ее лучшие идеи и преимущества, а также свои дополнительные возможности, которые будут очень полезны пользователям, и особенно предприятиям.
Для предприятий, которые используют большие программы с большими базами данных, Btrfs создает непрерывную файловую систему на нескольких жестких дисках, что упрощает консолидацию данных. Дедупликация данных уменьшит фактически занимаемое данными пространство на диске. А зеркалирование данных с Btrfs станет намного проще.
Пользователь может выбрать создание нескольких разделов, чтобы не нужно было выполнять зеркалирование. Учитывая, что Btrfs может охватывать несколько жестких дисков, очень хорошо, что система может поддерживать в 16 раз больше места на жестком диске, чем Ext4. Максимальный размер раздела файловой системы Btrfs составляет 16 эксабайт, столько же составляет максимальный размер файла.
Файловая система XFS
XFS считается расширенной файловой системой. XFS — это высокопроизводительная файловая система с 64-разрядными журналами. Поддержка XFS была включена в ядро Linux примерно в 2002 году. XFS поддерживает максимальный размер файловой системы, равный 8 эксабайт для 64-битной файловой системы.
Но у XFS существуют некоторые ограничения. Например, раздел этой файловой системы не может быть уменьшен, а также наблюдается низкая производительность при работе с большим количеством файлов. RHEL 7.0 использует XFS в качестве файловой системы по умолчанию.
Итог
Итак, что лучше использовать? До сих пор Ext4 является наилучшим выбором, несмотря на идентичную производительность с XFS. Но почему? Удобство и «вездесущность» — основные причины. Ext4 — отличная файловая система для настольных или рабочих станций. Она предоставляется по умолчанию, поэтому пользователь может установить на ней операционную систему. Кроме того, Ext4 поддерживает тома до 1 Exabyte и файлы размером до 16 терабайт.
Btrfs предлагает большие объемы до 16 экзабайт как для разделов, так и для файлов, а также повышение отказоустойчивости. Но она до сих пор позиционируется как надстройка над файловой системой, а не интегрирована в операционную систему ФС. Например, чтобы отформатировать раздел в Btrfs необходимо, чтобы был установлен набор инструментов Btrfs.
Несмотря на то, что скорость передачи данных так важна, в Btrfs она выше в самой системе, чем непосредственно при передаче файлов. Btrfs имеет множество полезных функций, таких как Copy-on-Write (CoW), расширенные контрольные суммы, моментальные снимки, самовосстановление данных, дедупликация, а также улучшения, которые обеспечивают целостность данных. У Btrfs нет функций RAID-Z для ZFS, поэтому RAID все еще находится в экспериментальном состоянии с Btrfs. Тем не менее, для чистого хранения данных Btrfs лучше.
На данный момент Ext4 — лучший выбор, так как она распространяется как файловая система по умолчанию, а также она быстрее Btrfs при передаче файлов. Btrfs, безусловно, стоит попробовать, но полностью заменять Ext4 еще рано, это можно будет сделать лишь через несколько лет.
Спасибо за уделенное время на прочтение статьи!