Рассказы о ZFS. Её команды: свойства файловых систем

Как мы видели из вывода команды mount на предыдущей странице, при создании файловая система ZFS получает по умолчанию определённый набор свойств, во многом сходный с атрибутами традиционных файловых систем, определяемых опциями их монтирования (из командной ли строки, или из файла /etc/fstab). На самом деле свойств этих намного больше, полный их список можно получить командой

# zfs get all fs_name

Список этот очень длинный, и приводить его я не буду. Тем более, что далеко не все свойства представляют для нас интерес. В данный момент для нас важно, что любое из свойств каждой файловой системы можно поменять с помощью субкоманды set и её параметра вида свойство=значение. Причём изменение свойств для материнской системы рекурсивно распространяется на все дочерние. Однако для любой последней свойства можно изменить в индивидуальном порядке. Что я сейчас и проиллюстрирую на примерах.

Так, абсолютно лишним представляется свойство atime, то есть обновление времени последнего доступа к файлам. Оно, во-первых, снижает быстродействие, с другой — способствует износу SSD-накопителей (правда, нынче и то, и другое — в основном чисто символически, но всё же). Так что отключаем это свойство для всех файловых систем:

# zfs set atime=off tank/home

Аналогичным образом расправляемся и со свойством xattr — ни малейшей по требности в расширенных атрибутах я не испытываю:

# zfs set xattr=off tank/home

Это также имеет силу для всех файловых систем внутри tank/home.

А вот дальше можно заняться и индивидуализацией. Как я уже говорил, в момент создания файловые системы ZFS «безразмерны». Если это не подходит, для них можно установить квоты. Однако я это делать не буду — в моём случае однопользовательской машины теряется половина смысла использования ZFS. А вот зарезервировать место для критически важных каталогов, дабы его не отъела, скажем, мультимедиа, известная своей прожорливостью, будет не лишним. И потому я для файловых систем tank/home/proj, tank/home/alv и tank/home/other устанавливаю свойство reservation с разными значениями — максимальным для проектов:

# zfs set reservation=10G tank/home/proj

и более скромными для двух остальных:

# zfs set reservation=1G tank/home/alv
# zfs set reservation=1G tank/home/other

Далее, поскольку данные в файловой системе tank/home/proj для меня действительно важны, и шутить с ними я склонен гораздо меньше, чем с дамами, предпринимаю дополнительные меры по их сохранности путём удвоения числа копий (по умолчанию оно равно 1):

# zfs set copies=2 tank/home/proj

В принципе, для всякого рода «парнухи», которую часто проще скачать заново, нежели отыскать на локальной машине, можно выполнить и обратную операцию — отказаться от подсчёта контрольных сумм:

# zfs set checksum=off tank/home/media

Как говорят, это чуть-чуть увеличивает быстродействие, но на сколько именно — я пока не проверил, хотя операцию эту и проделал — чисто для эксперимента.

Для файловых систем, содержащих хорошо сжимаемые данные (например, для моего домашнего каталога, где лежат одни dot-файлы), можно включить компрессию:

# zfs set compression=on tank/home/alv

Однако этого я не делал: экономия места получается грошовая, а нагрузка на процессор и расход памяти, как говорят, очень приличная. Однако это свойство целесообразно включать в системах с огромными логами, если выделить под них файловую систему в пуле ZFS.

При желании для некоторых файловых систем (например, того же домашнего каталога) можно отключить такие свойства, как exec, setuid, devices — легко догадаться, что результат будет аналогичен указанию опций монтирования noexec, nosuid, nodev для традиционных файловых файловых систем. И, разумеется, для файловых систем, изменение которых нежелательно, можно придать свойство readonly.

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


Назад | Рассказы о ZFS | Вперёд