Сжатие в ZFS

Сжатие в ZFS

Диски становятся больше, но растут и количество и объем фай­лов, которые мы хотим хранить на них, поэтому необходимость сжатия данных актуальна всегда. ZFS поддерживает прозрач­ное сжатие на уровне файловой системы. Чтобы включать его, установите свойство “compression” файловой системы в “yes” по умолчанию равное “по”. Также можно указать метод сжатия, установив это свойство в “Izjb”, “gzip”, “zle” или “Iz4”. При исполь­зовании gzip можно указать уровень сжатия с помощью числа, как описано на man-странице gzip. LZJB используется по умол­чанию и обеспечивает хорошее сжатие, не оказывая заметного влияния на производительность, a LZ4 — более новый и быст­рый механизм, который дает лучшее сжатие. Сжатие прозрачно для пользователя; Is выводит исходный размер, file — тип фай­ла, adfudu показывают, что объем используемого места сни­зился. Ниже приводятся команды, выполненные после копирова­ния лог-файла размером 19 МБ в сжатую и несжатую файловую систему:

% df -Th /firstpool/plain /firstpool/compress

Filesystem Type Size Used Avail Use% Mounted on firstpool/plain zfs 100M 19M 81M 19% /firstpool/plain firstpool/compress zfs 100M 5.0M 95M 5% /firstpool/compress

% Is -Ih /firstpool/compress total 4.9M rw-rw—-1 nelz portage 19M Jul 11 15:09 emerge.log

Как видите, включение сжатия дает значительную экономию места на сжимаемых файлах. Сжатие фотоколлекции, как пра­вило, выигрыша не дает, но домашний каталог и каталоги вро­де /var обычно стоит сжимать — даже несмотря на накладные расходы по загрузке процессора. Желая узнать, насколько эф­фективно сжимается файловая система, взгляните на свойство “compressratio”:

% zfs get compressratio firstpool/compress

NAME PROPERTY VALUE SOURCE firstpool/compress compressratio 3.87x —

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

ZFS была создана Sun, компанией с мантрой «сеть — это ком­пьютер», поэтому неудивительно, что к файловым системам ZFS можно обращаться по сети. Вы думаете, что это должно зада­ваться в одном из свойств файловой системы, и вы правы. Что­бы это работало, должен быть запущен демон NFS или Samba, но экспортируемые и разделяемые ресурсы задаются в свойствах файловой системы. Экспортируемые ресурсы NFS задаются в свойстве “sharenfs”, по умолчанию оно равно “off”. Чтобы сде­лать ресурс доступным в локальной сети, задайте это свойство таким образом: zfs set sharenfs=”rw=@192.168.1.0/24” firstpool/public

Затем сделайте ресурс разделяемым одной из команд zfs share firstpool/public zfs share -a

Теперь выполните команду exportfs или showmount -e localhost, чтобы убедиться в доступности ресурса. По умолчанию скрипт запуска системы, монтирующий файловые системы ZFS, также экспортирует все разделяемые ресурсы, поэтому команду zfs share нужно запускать только при настройке нового ресурса.

Разделение ресурсов по SMB/CIFS выполняется похожим образом, с помощью параметра “sharesmb”, который просто устанавливается в “on” или “off”. При разделении ресурсов через SMB с ZFSonLinux могут возникнуть некоторые трудности, поэтому пока лучше делать это стандартным способом через smb.conf.

Данные важны, и даже бесценны, поэтому нужно быть уверенным в том, что ваши файловые системы присматривают за ними. ZFS хранит контрольную сумму каждого блока файловой системы и проверяет содержимое блока по ней. В результате данные будут проверяться постоянно, но также можно проверить весь пул и исправить все найденные ошибки. На языке ZFS это называется «чисткой [scrubbing]» и выполняется так: zfs scrub firstpool

Если вы ждали чего-то вроде вывода fsck, то будете удивлены: команда завершится сразу же. Дело в том, что ZFS очищает пул в фоновом режиме, пока вы продолжаете им пользоваться. Если запустить zpool status или zpool status firstpool то вы увидите строку с информацией о текущей «очистке» или о результатах последней. Рекомендуется очищать пул регулярно, например, еженедельным заданием Cron.

Вам может встретиться еще один, странный для слуха термин — «серебрение [resilver]». Нет, это не про гальванопластику дисков: это копирование данных между элементами RAID-массива, например, при замене диска; процесс, который в традиционном RAID называется гораздо прозаичнее — «синхронизация».

Нужно перенести много информации на внешние носители? Тогда вам нужны болванки. Рекомендуем приобрести болванки оптом, так вы сэкономите и выполните свои задачи в полном объеме.