Плюсы и минусы BTRFS

Напишу пришедшие в голову плюсы и минусы BTRFS после нескольких лет ее использования.

Плюсы BTRFS (сочиняю на ходу, может быть путано):

1) снапшоты позволяют очень удобно создавать точки отката, при необходимости доступные как обычные папки в файловой системе, со стремящимися к нулю временными и дисковыми затратами на создание или удаление точки отката
2) все рабочие станции автоматически снапшотятся при любых операциях с пакетами (apt-btrfs-snapshot)
3) в том числе при автоматических обновлениях ОС на компьютерах (system-autoupdate)
4) btrfs send/receive позволяет легко переносить всю ОС/весь подтом целиком или дельту изменений между локальными дисками и удаленными хостами по SSH, актуально как для бекапа, в т.ч. с привлечением rsync для выборочности бекапа, так и, например, для переноса ОС из виртуальных машина в контейнеры (просто пример, что недавно делал)
5) архитектура BTRFS позволяет иметь гораздо большую максимальную длину пути к файлу, чем ext4; в реальности она ограничена искусственно для совместимости с остальными ФС, но ограничение снимаемо в случае большой необходимости
6) снапшоты позволяют организовать машину времени со старыми версиями рабочих файлов (однако до undo в HAMMER далеко)
7) возможность в рамках одного логического раздела диска выделить несколько подтомов, что позволяет удобно разделить задачи или даже ОС, экономя место на диске; например, у меня установлено 3 разных дистрибутива GNU/Linux в один раздел BTRFS с общим дисковым пространством, и в нем же есть отдельный подтом с общими для всех дистрибутивов файлов, монтируемый в каждый из них (да, если навернется ФС, то всё сразу)
8) нет особых требований к накопителю, как, например, у HAMMER2, который требует SSD >= 50 ГБ: BTRFS у меня работает даже на IDE-диске в ноутбуке IBM ThinkPad R40 15-летней давности
9) сжатие lzo/zstd позволяет здорово экономить пространство на диске без просадок производительности и даже с увеличением скорости чтения с HDD
8) CoW (cope-on-write) и сжатие отключаемо как аттрибуты директории или файла, что актуально, например, для бразов виртуальных машин
9) очень развитой драйвер для Windows — WinBTRFS, из всех линуксовых файловых систем поддержка BTRFS для Windows самая развитая

Минусы BTRFS:
1) нюансы с реальным и декларируемым свободным пространством из-за размера пространства под мета-данные
2) желательно осуществлять дополнительный уход (скрипты btrfsmaintenance), некоторые операции которого просаживают производительность, пока они выполняются (srub, balance) (уход нужен, например, чтобы внезапно не оказалось, что свободное простарнство декларируется, а на самом деле его использовать нелья, и нужно аккуратно почти вручную изменять место под мета-данные, которое закончилось)
3) ряд конфигураций типа RAID поддерживается, но официально нестабилен, впрочем, на вики и в документации к SUSE четко написано, что официально стабильно,а что нет
4) нетривиальное восстановление случайно удаленных файлов, для которых не было снапшота или бекапа
5) невозможность использовать очень старые Ынтырпрайзные ядра Linux
8) fsck все же требуется, как и в остальных файловых системах, было бы круто без него, как в HAMMER

Отправить ответ

avatar
  Subscribe  
Сообщать по почте