Существует довольно много свойств файловых систем ZFS, и сегодня я расскажу о наиболее полезных из них.
Но сначала - немного повторим пройденный материал. Как я уже рассказывал, для серии заметок по ZFS я буду создавать несколько файловых систем на своих дисках. На данный момент я ограничиваюсь следующей конфигурацией:
bash-3.00# zfs list
NAME USED AVAIL REFER MOUNTPOINT
stock 2.40G 31.1G 8.50K /stock
stock/oracle 2.32G 693M 2.32G /stock/oracle
stock/try 8K 512M 8K /try
Для получения значения какого-либо свойства ZFS, следует пользоваться вот такой командой:
bash-3.00# zfs get used stock/try
NAME PROPERTY VALUE SOURCE
stock/try used 8K -
Но такой вывод не всегда удобен, потому что он отформатирован для более удобного восприятия человеком. Если же мы собираемся использовать
zfs get для получения каких-то параметров ZFS из скриптов, то подобная роскошь нам ни к чему. Поэтому, следует воспользоваться специальной опцией
-H:
CODE:
bash-3.00# zfs get -H used stock/try
stock/try used 8K -
Ещё одна мелкая и полезная, но совершенно естественная вещь - это возможность указывать имена нескольких свойств, значения которых нас интересуют:
CODE:
bash-3.00# zfs get -H used,available,mounted stock/try
stock/try used 8K -
stock/try available 512M -
stock/try mounted yes -
Теперь перейдём непосредственно к полезным свойствам файловых систем ZFS.
Например, название свойства mountpoint говорит само за себя. Причём, по умолчанию, та файловая система, чья точка монтирования изменяется, автоматически монтируется к новому пути:
CODE:
bash-3.00# zfs set mountpoint=/younameit stock/try
bash-3.00# zfs list
NAME USED AVAIL REFER MOUNTPOINT
stock 2.40G 31.1G 8.50K /stock
stock/oracle 2.32G 693M 2.32G /stock/oracle
stock/try 8K 512M 8K /younameit
bash-3.00# df -k | grep stock
stock 35112960 8 32597477 1% /stock
stock/oracle 3145728 2436188 709540 78% /stock/oracle
stock/try 524288 8 524280 1% /younameit
Ещё одна потенциально полезная опция - компрессия данных на лету. Планируется иметь несколько доступных администратору ZFS алгоритмов сжатия данных, но пока реализован только один -
lzjb.
Тем не менее, результаты говорят сами за себя:
CODE:
bash-3.00# ls -l /younameit/access_log
total 3082
drwxr-xr-x 2 root sys 3 Jan 23 21:59 .
drwxr-xr-x 44 root root 1024 Jan 23 21:45 ..
dr-xr-xr-x 3 root root 3 Jan 23 22:04 .zfs
-rw-r--r-- 1 root root 8904090 Jan 23 21:59 access_log
bash-3.00# zfs list
NAME USED AVAIL REFER MOUNTPOINT
stock 2.41G 31.1G 8.51M /stock
stock/oracle 2.32G 693M 2.32G /stock/oracle
stock/try 1.51M 510M 1.51M /younameit
Неудивительно, что коэффициент сжатия для этой файловой системы так хорош:
CODE:
bash-3.00# zfs get compressratio stock/try
NAME PROPERTY VALUE SOURCE
stock/try compressratio 5.63x -
Так хорошо, к сожалению, только несколько типов файлов сжимается, и текстовые файлы (логи к моему Apache2, например) в том числе. Исполняемые файлы, конечно же, сожмутся гораздо хуже.
Ну, пожалуй довольно. Сразу говорю: у меня запланированы ещё несколько заметок из серии свойств объектов ZFS, и поэтому многие свойства гораздо более простые и необходимые, чем изложенные выже, ещё не были мною затронуты. Я обязательно исправлю эту ситуацию в ближайшие дни.