Сайт | Скачать | Видео | Wiki

Автор Тема: btrfs - файловая система с сжатием и пр.  (Прочитано 24001 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: btrfs - файловая система с сжатием и пр.
« Ответ #30 : 03 Январь 2019, 09:30:13 »
Расшифруй - я в linux все же еще новичок, не все знаю.
Это я про наше ядро у его сборщика спросил

Оффлайн stea.61

  • Пользователь
  • **
  • Сообщений: 45
  • Репутация: +6/-0
Re: btrfs - файловая система с сжатием и пр.
« Ответ #31 : 03 Январь 2019, 09:32:14 »
А по горячему корень перемонтировать с компрессией не прокатит?
Прокатит.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: btrfs - файловая система с сжатием и пр.
« Ответ #32 : 03 Январь 2019, 09:35:01 »
Тогда , получается можно и в PRA заюзать

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: btrfs - файловая система с сжатием и пр.
« Ответ #33 : 03 Январь 2019, 14:33:37 »
    поддержка в ядре только c 4.14
Pro - в твоем конфиге -pf есть?
Код
live@pra-roll ../kernel-4.19.2-pf5_src_patched_64/usr/src/linux-4.19.2-pf5 % cat .config |grep -i btrfs
CONFIG_BTRFS_FS=m
# CONFIG_BTRFS_FS_POSIX_ACL is not set
# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
# CONFIG_BTRFS_DEBUG is not set
CONFIG_BTRFS_ASSERT=y
# CONFIG_BTRFS_FS_REF_VERIFY is not set
Код
live@pra-roll ..s/000-kernel-4.19.2-pf5_64.pfs/usr/lib % sudo find . |grep btrfs
./modules/4.19.2-pf5/kernel/fs/btrfs
./modules/4.19.2-pf5/kernel/fs/btrfs/btrfs.ko

Оффлайн ilfat

  • Ветеран
  • *****
  • Сообщений: 438
  • Репутация: +11/-0
Re: btrfs - файловая система с сжатием и пр.
« Ответ #34 : 04 Январь 2019, 01:23:39 »
А по горячему корень перемонтировать с компрессией не прокатит?
Если компрессия нужна, то наверно проще активировать её через xattrs, чтоб монтировать проще было.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: btrfs - файловая система с сжатием и пр.
« Ответ #35 : 04 Январь 2019, 08:14:17 »
активировать её через xattrs
Можно подробнее..

Оффлайн ilfat

  • Ветеран
  • *****
  • Сообщений: 438
  • Репутация: +11/-0
Re: btrfs - файловая система с сжатием и пр.
« Ответ #36 : 04 Январь 2019, 08:37:10 »
Можно подробнее
Спойлер
Цитата
Команда:

btrfs property get {путь куда смонтирован подтом}
Показывает свойства установленные для подтома или каталога, а команда:

btrfs property set {путь куда смонтирован подтом} {имя свойства} {значение}
Устанавливает свойство в указанное значение. Свойств пока всего 3:

ro - флаг read-only, значения true или false
label - метка тома, значение - строка символов или пустая строка, когда метку нужно сбросить.
compression - сжатие подтома или каталога, значения lzo, zlib или пустая строка, когда сжатие нужно отключить.
Обратите внимание - у каждого свойства своя сфера применения и область действия:
ro может относится только к подтому (попытка установить это свойство на каталог подтома приведет к ошибке). Действует ro на весь подтом в целом.
label может устанавливаться и относится только к файловой систем btrfs в целом - т.е. корневому подтому или подтому по умолчанию.
compression можно установить как на подтом (включая корневой с ID=5) так и на отдельный каталог подтома или даже на отдельный файл. Действует compression только на тот объект на котором стоит, но установленный на каталог compression будут унаследован всеми новыми вложенными файлами и каталогами. Если установить compression на каталог, в котором уже есть другие файлы/каталоги, то они не получат свойство compression автоматически. Более подробно вопросы сжатия будут рассмотрены в разделе «Упаковка данных».
[свернуть]
Спойлер
Цитата
когда том смонтирован без опции compress:
существующий файл при перезаписи: если на файле стоит свойство compression, то после перезаписи файл будет упакован (до этого файл мог быть не упакован). Если свойство не стоит, а ранее файл был упакован, то при перезаписи он не будет упакован.
новый файл при создании: если на каталоге, в котором создается файл, стоит свойство compression, то все новые вложенные файлы и каталоги унаследуют это свойство и с-но все новые файлы будут упакованы. Если свойство compression на родительском каталоге не установлено, то и новые файлы не будут сжаты.
когда том смонтирован с опцией compress:
существующий при перезаписи и новый при создании: файл будет упакован даже если на нем не стоит свойство compression, свойство compression можно применить только для смены алгоритма сжатия.
Существующие файлы никак не меняют свое состояние в плане упаковки, несмотря ни на опции монтирования, ни на свойства которые на них устанавливают. Если нужно упаковать всю ФС или наоборот распаковать все файлы, то нужно воспользоваться дефрагментацией с ключом -c.
btrfs filesystem defrag -r -c lzo {путь куда смонтирован подтом btrfs}    # упаковка всех файлов на ФС
btrfs filesystem defrag -r -c "" {путь куда смонтирован подтом btrfs}     # распаковка всех файлов ФС
Как видно монтирование с опцией compress дает глобальную настройку, которую нельзя отменить. Свойство compression (без монтирования с опцией compress) позволяет более гибко управлять тем, что на томе пакуется, а что нет. Однако нужно следить за наследованием и расстановкой свойств.

Надо заметить, что свойство файла/каталога compression это - надстройка над атрибутом 'с' (из числа расширенных атрибутов файлов, управлять которыми можно через chattr/lsattr). И для того, чтобы снять атрибут compression можно просто выключить атрибут 'с'

chattr -R -c *   # снимает свойство compression со всех файлов рекурсивно, начиная с текущего каталога.
А вот установить свойство compression через расширенный атрибут 'c' не удастся, ведь кроме наличия самого по себе сжатия на файле должен быть настроен алгоритм упаковки (которых в btrfs белее чем один). Поэтому установить compression на файле/каталоге можно только командой btrfs property set.
[свернуть]
Источник

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: btrfs - файловая система с сжатием и пр.
« Ответ #37 : 04 Январь 2019, 08:56:03 »
А по горячему корень перемонтировать с компрессией не прокатит?
Если компрессия нужна, то наверно проще активировать её через xattrs, чтоб монтировать проще было.
Судя по описанию xattrs никак не поможет для включения компрессии, только для выключения.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн ilfat

  • Ветеран
  • *****
  • Сообщений: 438
  • Репутация: +11/-0
Re: btrfs - файловая система с сжатием и пр.
« Ответ #38 : 04 Январь 2019, 15:32:33 »
Судя по описанию xattrs никак не поможет для включения компрессии
xattrs это же не утилита, это расширенные атрибуты. Каким инструментом включать атрибуты и задавать им значение (если требуется), это уже другой вопрос.
Да, алгоритм можно задать только с помощью btrfs property set, но включить атрибут можно и с помощью chattr, просто будет алгоритм по умолчанию - zlib, возможно на новых ядрах zstd, точно не скажу. Возможно это изменилось со временем и приведенная дока чуть отстает от действительности.
Так или иначе я имел ввиду установку компрессии в расширенных атрибутах, чтоб она всегда была, а не только если смонтировано с опцией компрессии. Мне кажется это удобнее и можно выбирать что сжимать, а что нет.

Оффлайн ilfat

  • Ветеран
  • *****
  • Сообщений: 438
  • Репутация: +11/-0
Re: btrfs - файловая система с сжатием и пр.
« Ответ #39 : 04 Январь 2019, 15:41:22 »
Кстати, хорошо подойдёт для сохраненки, если она в папке или если фулл в папке. Папку с модулями то сжимать смысла нет, даже не смотря на то, что умные алгоритмы и так их не будут пережимать, но все равно будут какие-то лишние проверки и попытки сжатия.

P.S. C модулями я конечно погорячился, не так уж их часто переписываешь, но вот grub2 сжатый btrfs читать не умел, когда я проверял, поэтому я перестал использовать компрессию через монтирование. Мне через xattrs удобнее :)
« Последнее редактирование: 04 Январь 2019, 16:05:51 от Ильфат »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: btrfs - файловая система с сжатием и пр.
« Ответ #40 : 04 Январь 2019, 17:13:52 »
А по горячему корень перемонтировать с компрессией не прокатит?
https://wiki.archlinux.org/index.php/Btrfs#Compression
 Чтобы включить сжатие при установке Arch на пустой раздел Btrfs, используйте параметр compress при монтировании файловой системы:
Код
mount -o compress=zstd /dev/sdxY /mnt/
Чтобы применить сжатие к существующим файлам, используйте команду btrfs filesystem defragment -c alg , где alg - это zlib , lzo или zstd . Например, чтобы повторно сжать всю файловую систему с помощью zstd , выполните следующую команду:
Код
# btrfs filesystem defragment -r -v -czstd /
  Резюмирую. Параметр compress= распространяется только для новых файлов. Т.е. если при перемонтировании в директории были уже несжатые файлы, то они и останутся такими.

P.s. Так же с арчвики:
 Сжатие также можно включить для каждого файла без использования опции монтирования compress ; для этого примените chattr +c к файлу. При применении к каталогам новые файлы будут автоматически сжиматься по мере их поступления.
« Последнее редактирование: 04 Январь 2019, 17:29:50 от krasnyh »

Оффлайн FelenAmvrosiy

  • Пользователь
  • **
  • Сообщений: 56
  • Репутация: +2/-0
Re: btrfs - файловая система с сжатием и пр.
« Ответ #41 : 15 Январь 2019, 19:02:45 »
Не делайте так!
GRUB2 отказывается грузить btrfs под таким сжатием! Сделал как тов. krasnyh на Manjaro 18.0.2,система отказалась грузится! Не наступайте на мои грабли!
UPD.
Не используйте только сжатие zstd

Оффлайн ilfat

  • Ветеран
  • *****
  • Сообщений: 438
  • Репутация: +11/-0
Re: btrfs - файловая система с сжатием и пр.
« Ответ #42 : 15 Январь 2019, 19:10:37 »
Не используйте только сжатие zstd
А что остальные понимает?
На grub 2.00 у меня и с lzo не грузило, я писал об этом:
но вот grub2 сжатый btrfs читать не умел, когда я проверял
Сейчас grub 2.02, его пока не проверял.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: btrfs - файловая система с сжатием и пр.
« Ответ #43 : 15 Январь 2019, 19:32:27 »
GRUB2 отказывается грузить btrfs под таким сжатием
https://wiki.archlinux.org/index.php/Btrfs#Compression
Warning:

    Systems using older kernels or btrfs-progs without zstd support may be unable to read or repair your filesystem if you use this option.
    Stable GRUB and rEFInd currently lack support for zstd, either switch to grub-gitAUR, use a separate boot partition without zstd or reset compression of boot files to something supported using for example the command:

    $ btrfs filesystem defragment -v -clzo /boot/*


Оффлайн FelenAmvrosiy

  • Пользователь
  • **
  • Сообщений: 56
  • Репутация: +2/-0
Re: btrfs - файловая система с сжатием и пр.
« Ответ #44 : 15 Январь 2019, 20:12:24 »
Не используйте только сжатие zstd
А что остальные понимает?
На grub 2.00 у меня и с lzo не грузило, я писал об этом:
но вот grub2 сжатый btrfs читать не умел, когда я проверял
Сейчас grub 2.02, его пока не проверял.
Понимает,lzo грузит