понедельник, 24 декабря 2012 г.

Метод задействования tmpfs c ZFS во FreeBSD

Пару слов о tmpfs
Это файловая система в виртуальной памяти, которая, как известно, при необходимости задействует SWAP. Отличие её от RAM-диска в том, что она не резервирует пространство в оперативной памяти фиксированного размера и может использовать пространство свопинга при превышении некоего количества записанных на неё данных и/или по требованию механизма свопинга операционной системы. Это свойство часто используется для ускорения приложений, использующих временные файлы, так как доступ к оперативной памяти намного быстрее, чем к диску. Файлы, записываемые в tmpfs, после перезагрузки не сохраняются.
Метод
1. Пишем в /boot/loader.conf следующую строчку:
tmpfs_load="YES"
Если опция TMPFS не включена в конфигурацию ядра, в текущем сеансе загружаем соответствующий модуль ядра:
% kldload tmpfs
2. Пишем в /etc/fstab следующую строчку:
tmpfs /tmp tmpfs rw,mode=1777 0 0
3. В консоли выполняем серию команд для подготовки SWAP к новому режиму использования (удаляем старую ФС, если она есть, и существующий SWAP неподходящего размера; создаём новые каталог и SWAP подходящего размера):

% zfs destroy -f poolname/tmp ; mkdir -p /tmp
% swapoff /dev/zvol/poolname/swap
% zfs destroy poolname/swap
% zfs create -V 1500M poolname/swap
% zfs set org.freebsd:swap=on poolname/swap
% zfs set compress=lzjb poolname/swap
% zfs set checksum=on poolname/swap
% swapon /dev/zvol/poolname/swap
% swapinfo
Device          1M-blocks     Used    Avail Capacity
/dev/zvol/poolname/swap      1500        0     1500     0%
% mount /tmp
% df /tmp
Filesystem    Size    Used   Avail Capacity  Mounted on
tmpfs         7.1G     10M    7.1G     0%    /tmp
Источники информации