Я выбрал btrfs в качестве формата моей файловой системы /
в установщике Ubuntu 12.04 LTS. После завершения установки я добавил compress=lzo
в опции монтирования в /etc/fstab
и перезагрузился.
Будут ли существующие файлы автоматически сжиматься или я должен явно что-то сделать, чтобы это произошло?
Вам нужно будет запустить btrfs fi defragment
для принудительного повторного сжатия существующих данных. В противном случае будут сжаты только новые данные.
Из часто задаваемых вопросов :
... рассмотрите возможность перемонтирования с помощью
BLOCKQUOTE>-o compress
и либо перезапишите определенные файлы на месте, либо выполнитеbtrfs fi defragment
, чтобы перекомпрессировать все. Это может занять некоторое время.
Согласно документации Oracle, вы можете сжать существующие файлы в существующей сетевой файловой системе, дефрагментируя каждый файл в ней с помощью параметров -c, -clzo или -czlib. LZO рекомендуется для скорости.
find / -xdev \( -type f -o -type d \) -exec btrfs filesystem defragment -v -clzo -- {} +
Используется команда find для запуска дефрагментатора btrfs для каждого файла в корневой файловой системе (задается косой чертой сразу после команды «find» в начале). Если у вас есть другие подобъемы, вы можете использовать его снова с путем подобъема (например, у меня он есть в / home) вместо одиночного слеша.
Для этого вам понадобятся привилегии суперпользователя, поэтому добавьте sudo на первый план, если вам это нужно.
См .:
Я сделал то, что сказал Norbert Fabritius, но я не заметил сжатия в существующих файлах - df-h / прежде btrfs fi дефрагментация = 658 МБ | df-h / после btrfs fi дефрагментация = 658 МБ. Новые файлы в порядке. Поиск немного приносит мне эту кавычку:
Выполнение этого:
# btrfs filesystem defragment ~/stuff
не дефрагментирует содержание каталога.
Это дизайном. btrfs fi дефрагментация воздействует на единственный объект файловой системы, переданный> это. Это означает, что команда дефрагментирует просто метаданные, сохраненные каталогом> объект а не содержание каталога. Если бы Вы хотите дефрагментировать содержание> каталога, что-то вроде этого было бы более полезным:
# find -xdev -type f -exec btrfs fi defrag '{}' \;
После этого мой / это - occupping 656 МБ - ничто огромное, но конечно существует сжатие.
Источник: https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#Defragmenting_a_directory_doesn.27t_work
Надеюсь эта справка.
Извините мой английский язык.
Согласно https://btrfs.wiki.kernel.org/index.php/Mount_options#List_of_options доступны следующие алгоритмы сжатия:
compress,compress-force
Enable compression. Starting with kernel 2.6.38 you can choose the algorithm for compression:
- compress=zlib - Better compression ratio. It's the default and safe for olders kernels.
- compress=lzo - Faster compression.
- compress=no - Disables compression (starting with kernel 3.6).
compress-force= - Enable compression even for files that don't compress well, like videos and dd images of disks. The options compress-force=zlib and compress-force=lzo works for kernels >2.6.38.
Note that old (before 2012) btrfs-progs versions will probably fail some operations (e.g. fsck) on filesystems with LZO compression.
ответьте на дополнительный вопрос о том, какой тип алгоритмов сжатия доступен, который был задан ниже ... поэтому, пожалуйста, не вините меня.
Согласно ArchWiki :
Совет: Сжатие также можно включить для каждого файла без использования опции монтирования
blockquote>compress
; просто применитеchattr +c
к файлу. При применении к каталогам новые файлы будут автоматически сжиматься по мере их поступления.Очень мило! Да благословит Бог BTRFS!
Кроме того, из вики BTRFS :
Можно ли принудительно сжимать файл, не используя сжатие [ 116] опция монтирования?
Да. Утилита
BLOCKQUOTE>chattr
поддерживает установку атрибута файла c, который отмечает индекс для сжатия вновь записанных данных.
Сжатие по умолчанию включено в Btrfs, поэтому, если вы явно не отключили его, оно должно быть сжато.