Поиск по сайту:

Сравнение файловых систем Btrfs и XFS


Существует множество файловых систем, доступных для использования с Linux. Наиболее распространенные файловые системы Linux включают Ext4, Btrfs, XFS и ZFS. Каждая файловая система имеет свои уникальные варианты использования, плюсы и минусы. Из-за множества доступных опций вам может быть трудно решить, какую файловую систему использовать. Чтобы помочь вам с выбором, в этой статье сравниваются файловые системы XFS и Btrfs. Если вам трудно решить, использовать ли файловую систему XFS или файловую систему Btrfs, эта статья должна помочь. Начнем!

Введение в файловые системы XFS и Btrfs

Файловая система XFS: XFS — это высокопроизводительная 64-разрядная файловая система с журналированием. Первоначально он был разработан Silicon Graphics, Inc. в 1993 году для операционной системы IRIX, а затем в 2001 году был портирован на ядро Linux.

Файловая система Btrfs. Btrfs или файловая система B-Tree — это современная файловая система с копированием при записи (CoW). Это новое по сравнению с файловой системой Ext. Первоначально Btrfs была разработана корпорацией Oracle в 2007 году для операционных систем Linux. В ноябре 2013 года файловая система Btrfs была объявлена стабильной для ядра Linux.

Сравнение функций

Файловые системы XFS и Btrfs были разработаны для решения различных типов проблем. Хотя цель разработки файловой системы XFS отличалась от цели файловой системы Btrfs, поскольку обе они являются файловыми системами, мы можем их подробно сравнить.

  • Максимальный размер раздела. Файловая система XFS поддерживает размер раздела до 1 байта меньше 8 EiB (8 EiB — 1 байт).

  • Файловая система Btrfs поддерживает размеры разделов до 16 EiB.

  • Максимальный размер файла. Файловая система XFS поддерживает файлы размером до 1 байта и менее 8 EiB (8 EiB — 1 байт).

  • Файловая система Btrfs поддерживает файлы размером до 16 EiB.

  • Максимальная длина имени файла. Файловая система XFS поддерживает имена файлов длиной до 255 символов (255 байт).

  • Файловая система Btrfs также поддерживает имена файлов длиной до 255 символов (255 байт).

  • Разрешенные символы в именах каталогов и файлов. В файловой системе XFS разрешены любые символы, кроме / и NULL (\0). символов в именах каталогов и файлов.

  • Файловая система Btrfs также допускает любые символы, кроме символов / и NULL (\0) в именах каталогов и файлов.

ПРИМЕЧАНИЕ. Вы не можете создать файл или каталог с именами . и .. ни в файловых системах XFS, ни в Btrfs.

  • Максимальная длина пути. В файловой системе XFS нет ограничений на длину пути к файлу или каталогу. Таким образом, вы можете создавать глубокие структуры каталогов и хранить свои файлы в этих структурах.

  • То же самое верно и для файловой системы Btrfs.

  • Максимальное количество файлов. В файловой системе XFS можно создать не более 264 (= 18 446 744 073 709 551 616 ~= 18 квинтиллионов) файлов.

  • То же самое верно и для файловой системы Btrfs.

  • Метод выделения инодов. Иноды — это структура данных файловой системы, используемая для описания файла или каталога. Таким образом, для одного каталога или файла требуется один индексный дескриптор, для двух каталогов или файлов потребуется два индексных дескриптора и так далее.

  • В файловой системе Ext4 вы определяете количество инодов, которые может поддерживать файловая система, при создании файловой системы. Вы не можете изменить это после создания файловой системы. Если вы создадите слишком много маленьких файлов, в вашей файловой системе может остаться свободное место на диске, но вы не сможете создавать новые файлы/каталоги, если у вас нет свободных индексных дескрипторов. Это основное ограничение файловой системы Ext4.

  • В отличие от файловой системы Ext4, размещение inode в файловой системе XFS является гибким. Таким образом, файловая система может добавлять столько инодов, сколько необходимо, и у вас никогда не закончатся иноды.

  • Вышесказанное верно и для файловой системы Btrfs.

  • Поддержка контрольной суммы/ECC: файловая система Btrfs хранит контрольную сумму crc32c данных и метаданных, хранящихся в файловой системе. Таким образом, в случае повреждения данных файловая система Btrfs может обнаружить повреждение и восстановить поврежденные файлы или метаданные.

  • Файловая система XFS хранит только контрольную сумму метаданных CRC32. Он не хранит контрольную сумму данных, хранящихся в файловой системе, в отличие от файловой системы Btrfs.

  • Поддержка журнала и копирования при записи. Файловая система XFS — это журналируемая файловая система. Он не поддерживает копирование при записи (CoW).

  • Файловая система Btrfs является файловой системой с копированием при записи (CoW) и не поддерживает журнал.

  • Снимок файловой системы. Файловая система XFS не может делать снимки файловой системы.

  • Файловая система Btrfs может делать снимки файловой системы. С помощью Btrfs вы можете делать моментальные снимки файловой системы только для чтения и доступные для записи.

ПРИМЕЧАНИЕ. Снимок файловой системы — важная функция. Вы можете сделать снимок своей файловой системы, используя эту функцию, прежде чем предпринимать какие-либо рискованные действия. Если что-то пойдет не так, как планировалось, снимок позволяет вернуться к более раннему состоянию, в котором все в системе работало. Это встроенная функция файловой системы Btrfs. Вам не нужны какие-либо сторонние инструменты или программное обеспечение для создания моментального снимка файловой системы Btrfs.

  • Шифрование на уровне файловой системы. Файловая система Btrfs не поддерживает шифрование на уровне файловой системы.

  • То же самое верно и для файловой системы XFS.

  • Дедупликация на уровне файловой системы. Файловая система Btrfs поддерживает дедупликацию на уровне файловой системы. Вам не нужны какие-либо сторонние инструменты или программное обеспечение, чтобы использовать эту функцию.

  • Файловая система XFS также поддерживает дедупликацию, но функция дедупликации файловой системы XFS все еще является экспериментальной.

ПРИМЕЧАНИЕ. Депуликация — это метод удаления дубликатов данных из файловой системы и сохранения только одной копии данных (уникальных данных) в файловой системе. Этот метод используется для экономии места на диске.

  • Поддержка нескольких устройств. Файловая система Btrfs поддерживает несколько устройств и включает встроенную поддержку RAID. Файловая система Btrfs имеет встроенный диспетчер логических томов (LVM) для добавления нескольких устройств хранения или разделов в одну файловую систему Btrfs. Одна файловая система Btrfs может охватывать несколько дисков и разделов.

  • Файловая система XFS не поддерживает несколько устройств, а это означает, что вы не можете охватить одну файловую систему XFS несколькими дисками или разделами. Чтобы объединить несколько устройств хранения и разделов в файловую систему XFS, вы должны использовать сторонние менеджеры логических томов, такие как LVM 2. Для настройки RAID необходимо использовать сторонние инструменты, такие как dm-raid или mdadm.

  • Файловая система XFS была разработана для параллельного выполнения операций ввода-вывода (ввода-вывода). Если вы распространите файловую систему XFS на несколько устройств с помощью LVM 2 или другого диспетчера логических томов, производительность файловой системы возрастет.

  • Сжатие на уровне файловой системы. Файловая система XFS не включает встроенную поддержку сжатия на уровне файловой системы.

  • Файловая система Btrfs включает встроенную поддержку сжатия на уровне файловой системы. Эта функция позволяет сжимать один каталог, один файл или всю файловую систему для экономии места на диске.

  • Возможности изменения размера файловой системы в автономном режиме. Вы не можете увеличить (увеличить размер файловой системы) или сжать (уменьшить размер файловой системы) файловую систему XFS, пока файловая система не смонтирована.

  • Вы можете увеличивать (увеличивать размер файловой системы) или сжимать (уменьшать размер файловой системы) файловую систему Btrfs, пока файловая система не смонтирована.

  • Возможности онлайн-изменения размера файловой системы. Вы можете увеличить (увеличить размер файловой системы) файловую систему XFS во время монтирования файловой системы, но вы не можете уменьшить (уменьшить размер файловой системы) файловую систему XFS во время монтирования файловой системы.

  • Вы можете увеличивать (увеличивать размер файловой системы) или сжимать (уменьшать размер файловой системы) файловую систему Btrfs во время ее монтирования.

  • Разреженные файлы. Функция разреженных файлов экономит место на диске, когда в файловой системе хранятся небольшие файлы (меньше размера блока). Файловые системы XFS и Btrfs поддерживают разреженные файлы.

  • Распределение блоков. Файловая система Btrfs поддерживает выделение блоков.

  • Файловая система XFS не поддерживает субраспределение блоков.

ПРИМЕЧАНИЕ. Когда файловая система хранит большие файлы в файловой системе, большой файл разбивается на блоки, а блоки сохраняются в файловой системе. Последний блок файла, называемый хвостовым блоком, не занимает весь блок. Когда хранится много маленьких файлов, они не занимают весь блок, и много места на диске тратится впустую. Подраспределение блоков позволяет хранить части другого блока файла в хвостовом блоке (последний блок другого файла, который не занимает весь блок) для экономии места на диске.

  • Упаковка хвостов. Файловая система Btrfs поддерживает упаковку хвостов.

  • Файловая система XFS не поддерживает упаковку хвостов.

ПРИМЕЧАНИЕ. Упаковка хвостов является частью подраспределения блоков. Как обсуждалось ранее, небольшие файлы не занимают весь файловый блок. Для эффективного хранения небольших файлов (например, исходных кодов программ) в файловой системе хвостовой блок небольшого файла используется для хранения других небольших файлов. Упаковка хвостов повышает производительность файловой системы и экономит место на диске в файловых системах, в которых хранится множество небольших файлов (например, исходные коды программ).

  • Файловая система на основе экстентов. Обе файловые системы XFS и Btrfs являются файловыми системами на основе экстентов.

ПРИМЕЧАНИЕ. Экстент — это непрерывная область устройства хранения, зарезервированная для файла в файловой системе. Файловые системы на основе экстентов хранят большие файлы в непрерывной области хранения. Это улучшает производительность файловой системы и повышает эффективность хранения.

  • Переменный размер блока файла: размер блока задается перед созданием файловой системы. После создания файловой системы вы не можете изменить размер блока.

  • Файловая система XFS поддерживает фиксированный размер блока.

  • Файловая система Btrfs поддерживает переменный размер блока. Файловая система может определить наилучший возможный размер блока для хранения файла в файловой системе на основе размера файла. Эта функция может сэкономить много места на диске.

  • Распределение при сбросе. Обе файловые системы XFS и Btrfs поддерживают размещение при сбросе.

ПРИМЕЧАНИЕ. Файловая система выделяет некоторый буфер в системной памяти. При наличии запросов на запись на диск файловая система не записывает блоки данных непосредственно на устройство хранения. Вместо этого файловая система хранит блоки данных в буферной памяти. Когда буферная память заполнена, файловая система сразу записывает все ожидающие блоки данных на устройство хранения. Это снижает нагрузку на ЦП, ускоряет запись на диск и уменьшает фрагментацию диска.

  • Поддержка TRIM: файловые системы XFS и Btrfs поддерживают TRIM, что является очень важной функцией для устройств хранения SSD.

ПРИМЕЧАНИЕ. Когда вы удаляете файл с SSD, команда TRIM уведомляет устройство хранения SSD о страницах (файловых блоках), которые больше не нужны. SSD стирает ненужные страницы (блоки файлов) из флэш-памяти и подготавливает страницы (блоки файлов) для хранения новых данных. Без поддержки TRIM скорость записи SSD будет постепенно снижаться по мере заполнения SSD новыми данными.

Преимущества XFS перед Btrfs

XFS — это стабильная 64-битная файловая система с журналированием для устройств хранения большой емкости.

Вы можете использовать файловую систему XFS по следующим причинам:

  • Поддержка параллельного ввода-вывода (ввода/вывода)

Файловая система XFS поддерживает параллельный ввод-вывод и может обеспечивать несколько потоков данных для файлов благодаря своей конструкции.

  • Поддержка больших разделов

Файловая система XFS поддерживает размеры разделов до 8 EiB (до 8 EiB — 1 байт).

  • Поддержка больших файлов

Файловая система XFS поддерживает файлы размером до 8 EiB (до 8 EiB — 1 байт).

  • Поддержка ведения журнала

Ведение журнала обеспечивает согласованность данных в файловой системе в случае отключения электроэнергии или сбоя системы. В случае отключения электроэнергии или сбоя системы данные, хранящиеся в журнале, будут восстановлены и применены к файловой системе.

  • Прямой ввод-вывод

Это важная особенность файловой системы XFS. Это важно для приложений, которым требуется высокая скорость чтения/записи на устройства хранения. Прямой ввод-вывод позволяет устройствам хранения напрямую обращаться к буферу данных с использованием DMA (прямой доступ к памяти), чтобы можно было использовать всю пропускную способность ввода-вывода устройства хранения.

  • Гарантированная скорость ввода-вывода

Файловая система XFS может резервировать пропускную способность устройства хранения для определенных приложений. Эта функция идеально подходит для приложений реального времени (например, потокового видео).

Недостатки файловой системы XFS

У файловой системы XFS есть некоторые недостатки.

Недостатки файловой системы XFS включают следующее:

  • Нет встроенной поддержки LVM

По сравнению с файловой системой Btrfs файловая система XFS не имеет встроенного диспетчера логических томов. Таким образом, вам придется использовать LVM 2 для управления логическими томами.

  • Нет встроенной поддержки RAID

По сравнению с файловой системой Btrfs файловая система XFS не имеет встроенной поддержки RAID. Таким образом, вам придется использовать dm-raid или mdadm для настройки RAID.

  • Нет поддержки снимков

Файловая система XFS не имеет функции моментального снимка файловой системы, в отличие от файловой системы Btrfs.

  • Ведение журнала нельзя отключить

Как и в случае с некоторыми другими журналируемыми файловыми системами, вы не можете отключить функцию журналирования файловой системы XFS. Ведение журнала не подходит для USB-накопителей. Если вы используете файловую систему XFS на USB-накопителе, срок службы USB-накопителя сократится из-за перегрузки журнала.

Преимущества Btrfs перед XFS

Файловая система Btrfs — это современная файловая система с копированием при записи (CoW), разработанная для серверов хранения большой емкости и высокой производительности. XFS также является высокопроизводительной 64-разрядной файловой системой с журналированием, которая также поддерживает параллельные операции ввода-вывода. Файловая система XFS содержит множество важных функций, включая прямой ввод-вывод, ввод-вывод с гарантированной скоростью и многое другое. Однако по сравнению с файловой системой XFS файловая система Btrfs имеет много преимуществ.

Преимущества файловой системы Btrfs по сравнению с файловой системой XFS заключаются в следующем:

i) Встроенные моментальные снимки на уровне файловой системы.

ii) Поддержка нескольких устройств.

iii) Встроенная поддержка RAID.

iv) Гибкое распределение инодов.

v) Оптимизация для хранения файлов меньшего размера (разреженные файлы, блочное выделение, упаковка хвостов, переменный размер блока).

vi) Встроенная поддержка сжатия на уровне файловой системы.

Это особенности файловой системы, которые могут заставить вас выбрать файловую систему Btrfs вместо файловой системы XFS.

Заключение

В этой статье сравнивались файловые системы Btrfs и XFS, включая сравнение наиболее важных функций каждой файловой системы. Эта статья должна помочь вам сделать выбор между файловыми системами Btrfs и XFS. Выберите ту систему, которая лучше всего подходит для вас, в соответствии с вашими уникальными потребностями и предпочтениями.

Использованная литература:

  1. XFS — Википедия — https://en.wikipedia.org/wiki/XFS

  2. Сравнение файловых систем — Википедия — https://en.wikipedia.org/wiki/Comparison_of_file_systems

  3. XFS — ArchWiki — https://wiki.archlinux.org/index.php/XFS

Статьи по данной тематике: