LINUX.ORG.RU

btrfs-progs 6.13

 , , , ,


0

5

15 февраля состоялся выпуск версии 6.13 набора консольных утилит btrfs-progs для работы с файловой системой Btrfs в пользовательском окружении.

Одним из значительных изменений этой версии является добавление опции --compress в утилиту mkfs.btrfs. При помощи этой новой опции можно включить и настроить алгоритм и степень сжатия. Она должна использоваться в сочетании с аргументом --rootdir для указания нужных директорий для сжатия, например: mkfs.btrfs --compress zlib:9 --rootdir Documentation img. Поддерживаются следующие алгоритмы сжатия: zlib, lzo, zstd.

Основные изменения:

  • в утилиту scrub добавлена опция --limit для установки ограничения пропускной способности на время выполнения;
  • добавлена опция для отключения squota;
  • небольшая оптимизация расчёта контрольной суммы crc32c;
  • удалена поддержка давно объявленной устаревшей опции --leafsize;
  • минимальная версия криптографической библиотеки Botan повышена до 3.x;
  • улучшения и рефакторинг кода.

Утилиты написаны на языке C и распространяются по лицензии GNU GPL 2.

>>> Список изменений на GitHub



Проверено: CrX ()
Последнее исправление: CrX (всего исправлений: 6)

Поддерживаются следующие алгоритмы сжатия: zlib, lzo, zstd.

zlib

Медленное.

lzo

Бесполезное.

zstd

Более-менее, но нужно уметь правильно подбирать степень под данные, чтобы не нагружать зря процессор.

И весьма странно что lzo поддерживается, а lz4 нет, ведь последний эффективнее, при этом ресурсов требует плюс-минус столько же.

mord0d ★★★★★
()

При помощи этой новой опции можно включить и настроить алгоритм и степень сжатия

То есть в ядре поддержка была и раньше но включить было невозможно?

firkax ★★★★★
()
Ответ на: комментарий от mord0d

Более-менее, но нужно уметь правильно подбирать степень под данные, чтобы не нагружать зря процессор.

Можно просто везде хотя бы 3 врубить, а уже потом поставить повыше под отдельные данные, если появится желание сжать что-то получше.

altwazar ★★★★★
()
Ответ на: комментарий от altwazar

Можно просто везде хотя бы 3 врубить

Всё равно оверхед на несжимаемых данных. У lz4 алгоритм хитрый, он просто не пытается сжимать несжимаемое, а zstd будет пыхтеть до посинения. Да, нагрузка при 3 небольшая, но она ощутимо больше, чем у lz4.

Поэтому мой выбор (на ZFS, естественно) по умолчанию это именно lz4. А где надо посильнее, там можно уже и zstd врубить. До того как в ZFS завезли zstd, приходилось использовать очень медленный и весьма жручий zlib, но жмёт он вполне себе хорошо.

а уже потом поставить повыше

Чтобы изменения "вступили в силу", данные надо перезаливать (как на ZFS), или Btrfs пережимает данные на лету?

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

Некорректно сравнивать журналируемые файловые системы и файловые системы с CoW.

У линуксоидов нет выбора, единственная нативная файловая система с CoW это Btrfs (я в курсе про bcachefs, но она ещё слишком сырая), так что да, если нужно, то плакать и продолжать жрать кактус. (=

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

Всё равно оверхед на несжимаемых данных.

btrfs не сжимает несжимаемые данные, если не включать принудительное сжатие. Что-то схожее хотели в zfs 2.2 добавить (https://github.com/openzfs/zfs/pull/13244/commits/c6652731d91eef1377a1fae7acbc25c934511bde), но не в курсе чем это кончилось (у меня zfs только на проксмоксе).

Чтобы изменения «вступили в силу», данные надо перезаливать (как на ZFS), или Btrfs пережимает данные на лету?

Надо «перезалить».

altwazar ★★★★★
()
Последнее исправление: altwazar (всего исправлений: 1)

А вот интересно, кому ещё надо использовать crc32c, когда уже давно есть более быстрый xxhash ?

efoxxi
()
Ответ на: комментарий от dataman

Ух-ты, Шрайку модератора дали! :)

// давно пора

pihter ★★★★★
()
Ответ на: комментарий от firkax

Всё можно было. Судя по контексту, эта опция включит сжатие и сожмет уже записанные данные.

MagicMirror ★★★
()
Ответ на: комментарий от efoxxi

У меня на Intel SSE4.2 crc32 в два раза быстрее:

$ ./SMHasher --test=Speed xxHash64
--- Testing xxHash64 "xxHash, 64-bit" GOOD
Bulk speed test - 262144-byte keys
...
Average      -  6.126 bytes/cycle - 17526.63 MiB/sec @ 3000 MHz


$ ./SMHasher --test=Speed xxHash32
--- Testing xxHash32 "xxHash, 32-bit for x86" POOR
...
Average      -  3.091 bytes/cycle - 8843.48 MiB/sec @ 3000 MHz


$ ./SMHasher --test=Speed crc32_hw1
--- Testing crc32_hw1 "Faster Adler SSE4.2 crc32 on Intel HW" POOR
...
Average      - 11.904 bytes/cycle - 34056.36 MiB/sec @ 3000 MHz

Бенчмарк: https://github.com/rurban/smhasher

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

Он не писал про XFS, только про Ext4 и ReiserFS (или Reiser4?).

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

zstd будет пыхтеть до посинения

Читал, что и zstd скипает несжимаемое.

https://github.com/facebook/zstd/issues/3779

If you were to test zstd speed on incompressible data, you would notice that it doesn’t spend much time on such data, and moves on quickly.

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

Читал, что и zstd скипает несжимаемое.

Если на zfs выставить сжатие в zstd > 10, то скорость записи «несжимаемых» данных упадет в разы, а порой и на порядок (возможно с «умным» сжатием в свежей версии стало лучше).

altwazar ★★★★★
()

Одним из значительных изменений этой версии является добавление опции –compress в утилиту mkfs.btrfs

В этом убогом поделии можно включить сжатие только при создании? У людей вот так в любой момент zfs set compress=lz4 /pool/data ))

mkfs.btrfs –compress zlib:9 –rootdir Documentation img

За такой синтаксис я в детстве убивал из рогатки.

Поддерживаются следующие алгоритмы сжатия: zlib, lzo, zstd.

Давно предполагал что над этой недоФС работают умственно отсталые, мои подозрения подтвердились. Где lz4?

Pohmetolog
()
Ответ на: комментарий от Pohmetolog

Где lz4?

«Как я писал LZ4 плагин компрессии для Reiser4»

https://habrahabr.ru/post/183230/

В ходе дальнейших исследований (fullbench из состава LZ4 и lz4c vs lzop), было выяснено, что LZ4 теряет все свои свойства при блоках маленького размера, а проявляет заявленные свойства [5] только на больших блоках, к примеру в fullbench по умолчанию 4MiB, в lz4c 8MiB.
greenman ★★★★★
()
Ответ на: комментарий от greenman

что LZ4 теряет все свои свойства при блоках маленького размера, а проявляет заявленные свойства [5] только на больших блоках, к примеру в fullbench по умолчанию 4MiB, в lz4c 8MiB

Это чьи то бредни. На zfs с recordsize/volblocksize по умолчанию 128к, lz4 показывает такую же степень сжатия, как и при recordsize=1М. Кмк, ссылаться на хабр, себя не уважать.

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

Кмк, ссылаться на хабр, себя не уважать.

Писать домыслы, не прочитав текст по ссылке…

http://forums.debian.net/viewtopic.php?f=20&t=134182

My retest result show lzo's (mem_used_total/orig_data_size) is better(smaller) than lz4.
greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 1)
Ответ на: комментарий от greenman

Писать домыслы

Где я писал домыслы?

не прочитав текст по ссылке….

Я прочитал текст, который ты привёл в сообщении. Читать записки школьников на хабаре я не буду.

Pohmetolog
()
Ответ на: комментарий от Pohmetolog

В этом убогом поделии можно включить сжатие только при создании?

Это расширение возможностей опции --rootdir у mkfs.btrfs, так как способы настройки сжатия на этапе после создания fs к ней применить не выйдет.

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

Рейзер выкинули из ядра. Эта утилита позволяет по-моему делать с btrfs всё операции, включая онлайн изменение размера. Самое лучшее можно сказать дак это-то, что можно свободно преобразовать ФС ext4 в неё.

nicholas_ru
()
Ответ на: комментарий от nicholas_ru

Ты путаешь reiser-3.6 и reiserfs. Она поддерживается через модуль ядра, также как и ntfs-3g. А преобразавывать ext-4 в btrfs это тот ещё изврат. Так никто не делает. Btrfs такое же извращение как и Вайланд, интересно, но сырое, и даже не альдентэ, и никому не нужно.

piwww ★★★★
()
Ответ на: комментарий от piwww

А где популярность рейзер…был смысл ставить рейзер, если бы сейчас была компания namesys. Кто сейчас особо хорошо поддерживает ее? Почему изврат?к этой функции есть отдельная утилита btrfs-convert.

nicholas_ru
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.