Меня давно интересует вопрос файловых систем. Их много, есть любимые. Время от времени я натыкаюсь на упоминания, сравнения, разговоры, но сам я плаваю в этом вопросе. Так что же лучше и почему, что выбрать? … … Здесь я попытался ответить на этот вопрос.
Btrfs
Btrfs – это файловая система, которая активно использует метаданные в своей работе, что ускоряет процесс, но если метаданные теряются, то теряются и сами данные.
При копировании данные записываются не полностью, записи подлежит только измененная часть.
Благодаря такому принципу работы, он хорошо подходит для создания моментальных снимков.
Управление томами и сжатие данных уже включены в файловую систему, поэтому установка дополнительного программного обеспечения не требуется.
Сама файловая система была разработана в 2007 году с учетом современных устройств, содержит оптимизации для работы с SSD, процессы обнаружения и исправления ошибок, дефрагментацию в реальном времени и поддерживается дедупликация (дедупликация – это процесс сжатия путем удаления неиспользуемых дубликатов файлов).
Формат хранения данных уже заморожен, и это основа ФС, но кодовая база находится в стадии разработки. Периодически появляются улучшения в самом ядре, над усовершенствованием работают различные крупные компании. Файловая система Btrfs очень интересна и перспективна.
Ext4
Пожалуй, самая известная и часто встречающаяся файловая система, которая используется по умолчанию в большинстве дистрибутивов. Самая стабильная, так как разработка была заложена еще в прошлом веке, планомерное развитие от Ext> Ext2> Ext3.
В своей работе использует журналирование, что дает большую надежность для файлов, но снижает скорость. При возникновении ошибки ФС возвращается к предыдущей версии из журнала. Благодаря журналу, даже при сбое записи файловая система остается в безопасности.
В Ext4 добавлена дефрагментация в реальном времени.
Несмотря на свой почтенный возраст, эта система все еще развивается. Разработчики планируют заставить FS работать с контрольными суммами в автоматическом режиме и улучшить квоты, перенеся их в ядро, это позволит повысить производительность.
Я получил в свое распоряжение различные современные механизмы повышения производительности, в том числе работу с SSD, но структура устарела.
Журнал, который используется в работе и часто встречается в описании, это принцип работы, при котором транзакции записываются сначала в журнал, а изменения/записи происходят после.
Другие
В этом посте я не упомянул такие варианты, как ZFS, ReiserFS, JFS и F2FS.
ZFS изначально была с открытым исходным кодом, разрабатывалась в Sun Microsystems, но затем была выкуплена Oracle, ее код закрыт, и форк последней доступной версии был выпущен как OpenZFS. Официально она отсутствует в ядре, поскольку ее лицензия противоречит GPL, а Л. Торвальдс выступает против. Но разработчики дистрибутивов могут обеспечить поддержку через слой совместимости. По ряду параметров она похожа на Btrfs, которая распространяется под свободной лицензией и официально поддерживается в ядре.
Все они либо не лучше, либо хуже по некоторым параметрам, чем вышеописанная. Такое разнообразие ФС создает “Проблему выбора”, на практике различия между ними не заметны. Поэтому для меня вывод остался прежним: Ext4 для дисков – старая технология записи, Btrfs для SSD – более современные устройства.
А какой вы пользуетесь файловой системой?