!
Linux User Group НовосибирскЧто за BTRFS?https://ru.wikipedia.org/wiki/BTRFS писал:Btrfs (B-tree FS, «Better FS» или «Butter FS») — файловая система для Linux, основанная на структурах B-деревьев и работающая по принципу «копирование при записи» (copy-on-write). Опубликована корпорацией Oracle в 2007 году под лицензией GNU General Public License. Среди первоначальных целей разработки было обеспечение конкуренции файловой системе ZFS (использование которой в Linux было затруднено лицензионными ограничениями) и избавление от недостатков, характерных ранним файловым системам для Linux. Основной автор — Крис Мэйсон (англ. Chris Mason) — отмечал также наличие простого интерфейса управления файловой системой в качестве одной из целей создания.
Правда, зачем писать своё определение, если можно процитировать готовое?
Файловая система #
BTRFS включена в ядро Linux в 2009 году, с 2013 считается стабильной. Однако особого внимания от пользователей и создателей дистрибутивов она не получила. Red Hat сначала включил её в свою RHEL, затем с версии 7.4 объявил её устаревшей, не предложив ничего взамен. SUSE Linux, один из первых дистрибутивов объявивших о поддержке, не поддался на эту уловку и по прежнему поддерживает #
BTRFS.
Вместо вводных данныхЯ не буду вдаваться в описание того, что она умеет, это можно вычитать в официальной документации.
Расскажу о своём опыте использования данной файловой системы на ноутбуке и стационарном компьютере.
Почему вобще решил использовать:
1. Хотелось поэкспериментировать. Почему бы и нет?
2. Контрольные суммы по файлам, архивация данных на лету и снимки дисков без вреда для производительности.
3. Дедупликация данных, пусть и внешними утилитами.
Отчасти привлекала возможность заменить LVM, но быстро стало понятно, что это вещи независимые и вполне сочетающиеся, если нужно.
Эксперимента ради сначала #
BTRFS была установлена на стационарный компьютер на HDD поверх LVM раздела. Весь объём раздела был отдан под файловую ситему, которая потом была разделена на subvolumes.
Следом, на SSD в ноутбук была так же поставлена #
BTRFS под систему с разделением на subvolumes и отдельно выделен раздел под LVM для виртуальных машин.
Выводы#BTRFS бесполезно ставить на HDD.Первый вывод, быстро приходящий в голову после установки на HDD и SSD.
Причина тут, видимо, в архитектуре #
BTRFS, в частности в механизме COW, контрольных суммах и большом количестве метаданных необходимых для построения B-дерева — всё это заставляет головку диска метаться из стороны в сторону, чтобы счиитать и записать необходимую информацию.
Скорость чтения и записи на HDD с #
BTRFS после привычных EXT заметно ниже.
Однако я не могу сказать, что нестерпимо низкая, жить с этим можно. При наличии двух дисков под #
BTRFS в режиме Stripe она будет, скорее всего, вполне приемлемой.
Но в целом, оно того просто не стоит, поскольку снижают производительность ровно все те возможности, ради которых имеет смысл ставить #
BTRFS.
На SSD небольшое снижение производительности тоже есть, но тут уже вопрос, хотите вы дополнительные возможности этой файловой системы или же больше пропускной способности. Всю пропускную способность SSD я всё равно не использую и, честно признаться, с трудом могу представить, где она может потребоваться на рабочем компьютере используемом одним человеком.
#BTRFS устойчивее EXT к отключениям питанияКонтрольные суммы и COW защищают от потери и частичной записи данных лучше механизма журналирования, и позволяют быстрее восстановить работоспособность.
Это оказывается особенно важным для переносимого ноутбука. В моём случае он уже достаточно старый, батарея основательно изношена и найти замену уже крайне сложно. Часто бывает так, что нужно отправить его в сон, бросить в сумку и бежать на другой конец города, а на улице хорошо если только -25..-30. Вопреки укрепившемуся мнению, в состоянии сна энергия компьютеру необходима. В результате он может успеть выключиться от недостатка питания, что приводит к повреждению файловой системы. Обычно fsck с этим справлялся, иногда с дополнительной перезагрузкой после проверки, но часто попадались повреждённые файлы, которые приходилось восстанавливать из других источников.
С #
BTRFS таких проблем не было за 2 года ни разу на ноутбуке. На стационарном с HDD статистика отключений питания значительно меньше, но для него это наверняка тоже будет справедливым.
Кроме того, существует такой замечательный феномен как
Гниение бит, которое контрольные суммы должны определять.
Снимки (snapshots) без потери производительностиКто пытался делать снимки в LVM, скорее всего понимают в чём тут плюс. Кто работал с ZFS это всё читает просто чтобы поржать, наверное.
Снимки #
BTRFS не сказываются на производительности ни в случае SSD, ни в случае HDD. Их можно делать в любых количествах, цепочкой друг от друга, перемещать, переименовывать и удалять почти моментально.
Снимки могут быть read-only и read/write, что переключается на ходу, однако некоторые операции возможны только с read-only.
Тему снимков я собираюсь разобрать позже на примерах, иначе этот пост рискует раздуться до непозволительных размеров.
Сжатие и дедупликацияДостаточно приятные возможности, особенно в виду цены за гигабайт на SSD. Но не стоит от них ждать волшебства и двухкратной экономии места на диске. Большая часть того, что может быть сжато в Linux уже хранится в сжатом виде. Дедуплицировать там тоже уже почти нечего.
С другой стороны, в домашнем каталоге наверняка найдётся и большое количество несжатых файлов, включая текстовые, и большое количество копий с незначительными отличиями, которые хорошо дедуплицируются на уровне файловой системы.
Особенно хорошо дедуплицируются образы виртуальных машин и контейнеров, поскольку у них как правило много общих частей, а так же как правило есть копии, бэкапы, снимки сделанные системой виртуализации.
В моих случаях экономия составляет около 5% от объёма данных без заметной потери производительности что на HDD, что на SSD.
В общем и целом#
BTRFS вполне рабочая, надёжная и весьма функциональная файловая система.
Её имеет смысл ставить, если у вас есть SSD, лишние 500МиБ памяти на накладные расходы и необходимость в каком-либо её функционале. Даже если это только контрольные суммы данных, это уже достаточный повод.
Если же у вас нет SSD, мало памяти или скорость чтения/записи для вас является приоритетом, скорее всего она доставит вам больше хлопот, чем радости.