LINUX.ORG.RU

Лучшие практики и будущее btrfs на десктопе

 


1

4

Привет! Поскольку Майкрософт и Сергей Гуриев заблокировали мне Xbox, я решил играть в btrfs холодными декабрьскими вечерами.

Мне очень нравится скорость на десктопной нагрузке, компрессия и relink. И я буду признателен за мнения и отклик по нескольким открытым для меня вопросам:

1. Организация swap

Btrfs не поддерживает файл подкачки на нескольких дисках, но нафиг она нужна на одном диске — не понятно. Когда в Fedora перешли на btrfs, а затем подумали, они не нашли решения и отказались от физического swap в пользу zram.

Как пользователи btrfs организуют swap?

Для наилучшей производительности у себя c несколькими дисками я не могу придумать варианта лучше, чем отдельные разделы на каждом из дисков, подключаемые в swap с одинаковым приоритетом.

2. Шифрование

В начале года были новости о поддержке fscrypt в btrfs: Йосеф Бачик даже что-то коммитил. А дальше backlog и туман.

Слышно ли ещё что-нибудь? Есть ли инсайды и прогнозы?

3. Per subvolume raid profile

Почему до сих пор нельзя использовать разные профили raid для разных subvolume?

Каждый subvolume — отдельное b-tree, казалось бы, ничего не мешает. В устаревшем FAQ из 2015 разработчики писали, что им так сложно считать df, но они вот-вот научатся.

Вот в LVM я могу в одной VG собирать тома каких угодно профилей: raid1 для нужного, raid0 для быстрого на одних и тех же PV.

Когда в Fedora перешли на btrfs, а затем подумали, они не нашли решения и отказались от физического swap в пользу zram.

Я и без всякого бтрфс отказался от свопа, зачем он вообще нужен в нынешние времена?

Что такое dty? Dirty?

MoldAndLimeHoney
()

Btrfs не поддерживает файл подкачки на нескольких дисках, но нафиг она нужна на одном диске — не понятно.

А в чём прикол свопа не нескольких? У меня подключены ещё два SSD и что будет, если я раскидаю своп по ним?

papin-aziat ★★★★★
()
Ответ на: комментарий от wonit

Я ничего не говорил о шифровании /etc или /usr. Что и где требует шифрования — зависит от модели угроз. С fscrypt можно шифровать отдельные каталоги, не разменивая полосу и зедержки всей файловой системы на безопасность, как с luks.

Но можно придумать и такую модель угроз, в которой шифрование /etc с /usr будет оправдано.

emmawatsondtypants
() автор топика
Ответ на: комментарий от LongLiveUbuntu

У btrfs нет будущего на десктопе. У него даже настоящего нет.

Вы говорите, что Linux free as in beer. Горькое, но справедливое замечание. Это всё лишено всякого смысла. Стоит принять меры.

emmawatsondtypants
() автор топика

Вот в LVM я могу в одной VG собирать тома каких угодно профилей: raid1 для нужного, raid0 для быстрого на одних и тех же PV.

На днях собирал raid0 из двух дисков (hdd) и решил поверхностно глянуть скорость работы. Копировал директорию на 400gb с кучей файлов (с pci4 ssd на raid0 hdd):

32m 35s - xfs raid0 (md рейд)

26m 59s - btrfs raid 0 nocow

24m 13s - btrfs raid 0 zstd3

26m 29s - ext4 raid0 (md рейд)

Я к тому, что при создании такого гибкого raid0 на lvm стоит присмотреться к скорости в результате. raid0 lvm для скорости на диске рядом с raid1 выглядит прям сомнительной затеей, особенно на операциях чтения.

altwazar ★★★★
()
Последнее исправление: altwazar (всего исправлений: 3)
Ответ на: комментарий от altwazar

Лично у меня на десктопе тоже только raid0 — скорость! Но как было бы круто делать btrfs subvolume create -d raid1 ~/quality_memes просто для отдельного каталога.

Только смешные картинки сейчас наиболее перспективная валюта, неохота терять.

emmawatsondtypants
() автор топика

Write amplification в реальности

Я от btrfs ожидал заметного прироса физической записи на SSD. Но в моём случае по динамике Total_LBAs_Written я значимой разницы не заметил: в нагрузке где на ext4 был прирост 5 КБ/c, на btrfs стал 10 КБ/c; но где был 150 КБ/c — такой и остался. Только это в моём самом примитивном сценарии: профили Firefox и текстовые файлы в vim.

Тестирование 🔥

Я взял пустой SSD и протестировал, как два крайних случая отразятся на физической записи на накопитель в разных конфигурациях ФС:

  • последовательная запись — копирование корневого раздела локалхоста на ФС;
  • агрессивные малые модификации файлов — sqlite insert в индексируемые БД, 32 экземпляра с данными из теста pts.

Ядро 6.8.0-49-generic #49-Ubuntu, SSD ширпотреб Samsung SSD 860 EVO.

Ниже данные прироста 241 Total_LBAs_Written, приведённые к килобайтам.

ext4btrfsbtrfsbtrfsbtrfs
defaultscompress=lzo,autodefragcompress=lzodefaultsnodatacow
cp -ax / ./8 423 8885 823 7525 826 4608 135 9688 372 896
SQLite INSERT7 914 66421 356 89621 805 68024 689 86417 122 532
rm -rf ./137 9245841 008712456

Безотвественный вывод

Что вы и так знали: в последовательной записи btrfs пишет столько же или меньше, где есть сжатие. На модификациях файлов в экстремальных случаях объём физической записи до 3 раз выше, чем у ext4. Это заметно, но не достаточно для убийства SSD.

Что вы могли не знать: btrfs filesystem defragment на живой файловой системе с 50 GB данных у меня даёт запись примерно 50 GB на накопители. Практики btrfs-kiddies, такие как еженедельные запуски defrag и balance, могут увеличивать объёмы физической записи на порядки. И вот их уже может быть достаточно для убийства бытового SSD с DWPD 0.1.

Могу рекомендовать лучшую альтернативу для btrfsmaintenance: defrag98.com

emmawatsondtypants
() автор топика