Файловые системы Btrfs vs. Ext4
Файловые системы контролируют, где и как ваши данные хранятся и извлекаются с устройства хранения. У пользователей Windows и macOS мало причин беспокоиться о файловых системах, поскольку NTFS и HFS + являются единственным выбором файловых систем, которые у них есть, соответственно.
Пользователи Linux имеют возможность гибко выбирать файловую систему, используемую их машиной, поскольку ядро поддерживает множество из них. Ext4 является опцией по умолчанию для пользователей Linux. Тем не менее, существует еще одна файловая система под названием Btrfs, которую вы могли бы использовать.
Поскольку часть сообщества Linux настаивает на принятии Btrfs в качестве файловой системы по умолчанию, важно понимать функциональные возможности, преимущества и недостатки обоих.
Мы расскажем вам все, что вам нужно знать в этом посте.
Что такое файловая система Ext4?
Первая версия расширенной файловой системы (Ext4) вышла в октябре 2008 года и улучшила свою предшественницу Ext3. Многие дистрибутивы Linux начали использовать Ext4 в качестве файловой системы по умолчанию после ее запуска.
Ext4 — это журнальная файловая система, которая просто означает, что она “записывает” расположение файлов на диске и отслеживает изменения на диске.
Интересно, что первая версия файловой системы Ext4, Расширенная файловая система (“Ext”), вышла в 1992 году для ОС Minix. Позже он был разработан для Linux.
Что такое файловая система Btrfs?
В отличие от файловой системы Ext4, файловая система B-Tree является файловой системой копирования при записи. Это означает, что когда файл дублируется на Btrfs, он не создает другую копию файла. Вместо этого файл разделяется между оригиналом и фантомным файлом “копии”.
С другой стороны, если пользователь хочет изменить экстент данных (непрерывную область хранения), экстент копируется в другое место, а затем изменяется. Таким образом, Btrfs может предотвратить потерю данных в случае потери питания.
Однако файловая система также имеет тенденцию фрагментировать большие файлы, что означает, что вам нужно будет периодически дефрагментировать диск.
Его название происходит от B-деревьев, которые файловая система использует для хранения внутренних файловых структур. Oracle впервые разработала Btrfs в 2007 году, но такие компании, как Facebook и Redhat, с тех пор внесли свой вклад в ее развитие.
Разработчики создали Btrfs, чтобы иметь файловую систему с функциями, такими как моментальные снимки и контрольные суммы.
Тестирование двенадцати файловых систем в Linux
В прошлый раз мы тестировали производительность файловой системы ReFS в Windows 10. Там мы затронули некоторые ФС из мира Linux, которые показали достаточно вялые результаты, поскольку из-за ограничений Windows чтение и запись были недостаточно хорошо реализованы. На сей раз подобная несправедливость будет устранена, теперь роли меняются, и файловые системы NTFS, FAT32 и exFAT уже сами становятся гостями. Методика тестирования была усовершенствована, теперь все операции выполняются специальным скриптом, с точностью до миллисекунды замеряющим время, затраченное на определенную операцию. Кроме того был изменен набор данных, вместо поочередного копирования групп различных файлов проводится копирование сразу всех файлов разных типов. Также тестирование теперь не ограничивается только жестким диском, здесь были задействованы более актуальные в настоящее время твердотельные и flash накопители. На каждом из них для размещения тестовых данных был создан раздел объемом 4 Гб, вторым устройством для перемещения данных выступал созданный в оперативной памяти раздел объемом 2304 Мб с файловой системой TMPFS. Поскольку flash-память имеет ограниченное количество циклов перезаписи, то в оценке производительности на данном типе носителей участвовали только нежурналируемые файловые системы.
реклама
Тестовая система:
- Процессор: Xeon E5440 @ 3.4 ГГц
- GIGABYTE GA-P35-DS3L
- Оперативная память: 3584 МБ DDR2-800
- Жесткий диск: Seagate Barracuda 7200.10 3250410AS 250 ГБ
- Твердотельный накопитель: SanDisk SDSSDHII-120G-G25 120 ГБ
- MicroSD карта SanDisk Ultra 16 Гб UHS-I, поключенная с помощью адаптера MXT
- Ubuntu 16.04 x64 с последними обновлениями
Набор данных:
- 100 MP3 файлов — 681,3 Мб
- 880 JPEG изображений 268,8 Мб
- 4 видеоролика в формате MP4 — 492,7 Мб
- 1 ISO образ — 583 Мб
- Суммарный объем: ~2 Гб
реклама
Краткая характеристика участников тестирования:
EXT2 — расширенная версия первой файловой системы EXT для ОС на ядре Linux.
EXT3 — журналируемая EXT2.
реклама
EXT4 — значительно расширенная по функционалу EXT3.
BTRFS — прогрессивная файловая система, использующая СУБД-подобную структуру , а также предлагающая множество современных опций.
F2FS — файловая система от Samsung, предназначенная для использования на flash-памяти.
ReiserFS — журналируемая ФС от компании Namesys, позволяющая изменять свой размер на лету без размонтирования.
XFS — высокопроизводительная 64-битная журналируемая файловая система, созданная компанией Silicon Graphics.
JFS — 64-битная журналируемая ФС, разработанная IBM с прицелом на высокую производительность, надёжность и масштабируемость для многопроцессорных компьютеров.
HFS+ — файловая система, использующаяся в macOS.
NTFS — ФС для Windows NT, выросшая из HPFS, совместной разработки IBM и Microsoft для OS/2.
FAT32 — усовершенствованная версия файловой системы FAT для DOS и Windows.
exFAT — расширенная версия FAT32, предназначенная для flash-накопителей.
Результаты тестов:
Итак, для начала запишем наши данные на жесткий диск с гораздо более быстрой оперативной памяти. Считывание происходит моментально, а вот скорость записи служит характеристикой быстродействия конкретной файловой системы для данного типа накопителя.
Новая файловая система F2FS демонстрирует отличный результат, опережая своих оппонентов. За ней следуют продвинутые журналируемые ФС, в основном использующиеся в NIX системах. Гости из Windows, а также устаревшие EXT2 и EXT3 заметно отстают.
Теперь проделаем тоже самое, но уже с быстрым твердотельным накопителем.
Разрыв между первым и замыкающим участниками заметно вырос. На сей раз в лидерах созданная профессионалами Sun Microsystems система XFS, которая показала результат близкий к максимальной пропускной способности интерфейса SATA-II. BTRFS, все еще считающая в некоторых аспектах не совсем стабильной, находится в нижней части списка. Работающая в пользовательском пространстве с помощью специального драйвера, NTFS показала почти в четверо более низкий результат, чем XFS.
А теперь данные будут переноситься наоборот с дисков в ОЗУ. Так как запись происходит очень быстро, то распределение файловых систем в диаграмме будет зависеть от их производительности при считывании.
Ситуация похожа на ту, которая была продемонстрирована в первом тесте. Но тут FAT32 поднялась сразу на семь позиций, а на ее место переехала BTRFS. Устаревшие EXT2 и EXT3 снова замыкают список.
Видно, что разница сократилась, поскольку и твердотельный накопитель и оперативная память довольно быстрые устройства, и одно лишь это устраняет различные недостатки, присущие каждой их файловых систем. XFS выдала просто ошеломительный результат, практически уперевшись в пропускную способность SATA-II. Более усложненная BTRFS на второй позиции. Несмотря на прослойку в виде FUSE, NTFS заняла довольно почетное место.
Настала очередь flash-накопителей.
exFAT обошла F2FS в тесте записи примерно на 18%. EXT2, как и в предыдущих испытаниях, плетется в конце.
Ну и, наконец, чтение с flash-памяти.
FAT32 показывает, кто здесь царь. Несмотря на почтенный возраст, она и не собирается сдавать своих позиций. К сожалению максимальный размер файла в FAT32 ограничен четырьмя гигабайтами, что совершенно не подходит для тех же фильмов в высоком качестве. Однако, ее замена в лице exFAT отменяет данный изъян ценой всего лишь десятипроцентной потери производительности.
И ради интереса был проведен еще один тест с участием только RAM-дисков (копирование ISO-образа).
Мир Linux открывает перед пользователями Windows множество граней, одной из которых является наличие гораздо большего количества различных файловых систем. Каждая из них имеет свои достоинства и недостатки, кто-то силен в одних ситуациях, кто-то в других. И в проведенном тестировании мы попытались выявить данное распределение сил.
В результате наших проверок выяснилось, что более новые и хорошо отлаженные файловые системы стремятся показать более высокую производительность. И наоборот, устаревшие системы уменьшают скорость выполнения операций чтения-записи. Но данное правило не всегда строго выполняется, так как характеристики конкретной файловой системы могут не всегда соответствовать определенным в текущий момент условиям использования, для которых подходит пусть менее передовая, но более подходящая система.
Разумеется в подавляющем большинстве случаев нет возможности менять файловую систему одномоментно с изменившимися критериями эксплуатации. Но в этом и не будет особой необходимости, если заранее оценить рабочее окружение и возможные сценарии использования и лишь затем принимать решение о выборе файловой системы.
Подпишитесь на наш канал в Яндекс.Дзен или telegram-канал @overclockers_news — это удобные способы следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.
Сравнение файловых систем Linux: Btrfs и Ext4
Давно меня интересует вопрос о файловых системах. Их много, есть фавориты. Периодически натыкаюсь на упоминании, сравнения, разговоры, но сам плаваю в вопросе. Так что же лучше и почему, что выбрать ? . . Тут я попытался ответить на этот вопрос.
Btrfs
Файловая система, которая активно использует метаданные в своей работе, что ускоряет процесс, но при утере метаданных теряются и сами данные.
При копировании данные не записываются целиком, записи подлежит лишь изменённая часть.
Из-за принципа работы хорошо подходит для создания снимков.
Управление томами и сжатие данных уже содержатся в ФС, поэтому не требуется установка дополнительного ПО.
Сама ФС была разработана в 07 году с прицелом на современные устройства, содержит оптимизации для работы с SSD, процессы обнаружения и исправления ошибок, поддерживается дефрагментация и дедупликация в реальном времени (Дедупликация — процесс сжатия за счет удаления неиспользуемых дубликатов файлов).
Формат хранения данных уже заморожен, а это основа ФС, но кодовая база разрабатывается. Периодически улучшения появляются и в самом ядре, над улучшением работают различные крупные компании. Файловая система Btrfs очень интересная и перспективная.
Ext4
Пожалуй, самая известная и часто встречаемая ФС, которая используется по умолчанию в большинстве дистрибутивов. Наиболее стабильна, так как развитие положено ещё в прошлом веке, планомерное развитие из Ext > Ext2 > Ext3.
Использует в своей работе журналирование, что даёт большую надёжность для файлов, но снижает скорость. Если появляется ошибка, то ФС возвращается к предыдущей версии из журнала. Благодаря журналу, даже при сбое записи ФС остаётся в безопасности.
В Ext4 была добавлена дефрагментация в реальном времени.
Не смотря на почтенный возраст, всё ещё разрабатывается. Разработчики планируют заставить ФС работать с контрольными суммами а автоматическом режиме и улучшить квоты, переложить их на ядро, это улучшит производительность.
Получила в своё распоряжение различные современные механизмы для улучшения производительности, включая работу с SSD, но структура устарела.
Журнал, который используется в работе и часто встречается в описании — принцип работы, при котором транзакции записываются сначала в журнал, а изменение/запись происходят уже после.
Другие
В этом материале я не упомянул о таких вариантах как ZFS, ReiserFS, JFS и F2FS.
ZFS изначально была открытой, развивалась в Sun Microsystems, но потом выкуплена Oracle, её код закрыт, а форк последней доступной версии выпущен как OpenZFS. Официально в ядре отсутствует, потому что её лицензия конфликтует с GPL, а Л. Торвальдс высказывается против. Но разработчики дистрибутивов могут обеспечить её поддержку через слой совместимости. По ряду параметров схожа с Btrfs, которая распространяется под свободной лицензией и официально поддерживается в ядре.
Все они либо не лучше, либо хуже по каким-либо параметрам, чем вышеупомянутые. Такое разнообразные ФС создаёт «Проблему выбора», на практике отличия между ними не заметны. Поэтому для меня вывод остался прежним: Ext4 для дисков — старой технологии записи, Btrfs для SSD — более современных устройств.
В комментариях оставлю ссылку на скриншот из программы GParted. Там наглядно видно, что другие ФС не имеют такой широкой поддержки одной из самых известных и распространённых программ для работы с разделами.