ZFS не сжимает файлы, и все настройки выглядят правильно

Недавно я создал том ZFS, чтобы проверить его возможности сжатия. Я' m сравнивая его рядом с томом ext4. После создания нового тома и включения сжатия с помощью sudo zfs set Compression = gzip postgres-zfs я скопировал файл размером ~ 3 ГБ с тома ext4 в файл ZFS, но файл имеет тот же точный размер на ZFS диск (я использовал ls -alh , чтобы увидеть это). Я сжал файл вручную, чтобы увидеть, каким должно быть сжатие (я понимаю, что есть разные уровни, но просто чтобы получить приблизительную оценку), и просто используя файл gzip , размер файла был уменьшен вдвое. Мои настройки ZFS также показывают, что сжатие включено:

# zfs get all
NAME          PROPERTY              VALUE                  SOURCE
postgres-zfs  type                  filesystem             -
postgres-zfs  creation              Thu Apr  5 17:17 2018  -
postgres-zfs  used                  1.54G                  -
postgres-zfs  available             143G                   -
postgres-zfs  referenced            1.54G                  -
postgres-zfs  compressratio         1.34x                  -
postgres-zfs  mounted               yes                    -
postgres-zfs  quota                 none                   default
postgres-zfs  reservation           none                   default
postgres-zfs  recordsize            128K                   default
postgres-zfs  mountpoint            /postgres-zfs          default
postgres-zfs  sharenfs              off                    default
postgres-zfs  checksum              on                     default
postgres-zfs  compression           gzip                   local
postgres-zfs  atime                 on                     default
postgres-zfs  devices               on                     default
postgres-zfs  exec                  on                     default
postgres-zfs  setuid                on                     default
postgres-zfs  readonly              off                    default
postgres-zfs  zoned                 off                    default
postgres-zfs  snapdir               hidden                 default
postgres-zfs  aclinherit            restricted             default
postgres-zfs  canmount              on                     default
postgres-zfs  xattr                 on                     default
postgres-zfs  copies                1                      default
postgres-zfs  version               5                      -
postgres-zfs  utf8only              off                    -
postgres-zfs  normalization         none                   -
postgres-zfs  casesensitivity       sensitive              -
postgres-zfs  vscan                 off                    default
postgres-zfs  nbmand                off                    default
postgres-zfs  sharesmb              off                    default
postgres-zfs  refquota              none                   default
postgres-zfs  refreservation        none                   default
postgres-zfs  primarycache          all                    default
postgres-zfs  secondarycache        all                    default
postgres-zfs  usedbysnapshots       0                      -
postgres-zfs  usedbydataset         1.54G                  -
postgres-zfs  usedbychildren        132K                   -
postgres-zfs  usedbyrefreservation  0                      -
postgres-zfs  logbias               latency                default
postgres-zfs  dedup                 off                    default
postgres-zfs  mlslabel              none                   default
postgres-zfs  sync                  standard               default
postgres-zfs  refcompressratio      1.34x                  -
postgres-zfs  written               1.54G                  -
postgres-zfs  logicalused           2.07G                  -
postgres-zfs  logicalreferenced     2.07G                  -
postgres-zfs  filesystem_limit      none                   default
postgres-zfs  snapshot_limit        none                   default
postgres-zfs  filesystem_count      none                   default
postgres-zfs  snapshot_count        none                   default
postgres-zfs  snapdev               hidden                 default
postgres-zfs  acltype               off                    default
postgres-zfs  context               none                   default
postgres-zfs  fscontext             none                   default
postgres-zfs  defcontext            none                   default
postgres-zfs  rootcontext           none                   default
postgres-zfs  relatime              on                     temporary
postgres-zfs  redundant_metadata    all                    default
postgres-zfs  overlay               off                    default

Есть идеи, почему эти данные не хранятся в сжатом виде?

2
задан 6 April 2018 в 00:59
1 ответ

Данные сжаты, только сама ОС не может распознать сжатие с помощью обычных команд, так как файлы прозрачно распаковываются при доступе к ним.

В этом списке настроек ZFS вы видите запись с именем compressratio , которая в вашем случае читается как x1.34. Это показывает, насколько эффективно были сжаты файлы (в среднем):
сжатый размер * сжатие = несжатый размер

Вы также можете увидеть использовано и logicalused , которые отображают абсолютный сжатый размер и абсолютный несжатый размер всего пула (хотя logicalused, похоже, не совпадает с указанным размером файла тестового файла).

Вы можете найти дополнительную информацию об этих значениях здесь

Я также составил короткий список, содержащий все команды и то, что они выводят:

  • ls : показывает размер файлов без сжатия, а размер папок в сжатом виде
  • zfs get used : показывает сжатое пространство всех файлов в пуле
  • zfs get logicused : показывает несжатое пространство, которое будут использовать все файлы в пуле
  • zfs get compressratio : показывает среднюю степень сжатия пула
  • du -h --apparent-size : S как несжатый размер данных файлов / папок
  • du -h : показывает сжатый размер данных файлов / папок
7
ответ дан 3 December 2019 в 09:03

Теги

Похожие вопросы