TmpFS в FreeBSD

Varius

Пользователь
#1
TmpFS - это быстрая и эффективная файловая система в ОЗУ, а не на ПЗУ, как прочие ФС. Предназначена для временного хранения файлов с оптимальным расходом памяти и скоростными характеристиками. Обычно используется при монтировании в каталог /tmp, в котором много постоянно меняющихся временных мелких файлов, поэтому может быть целесообразно размещать их в памяти.

TmpFS очень подобна RAM-диску, тем что данные находятся в оперативной памяти. При работе используется виртуальную память (virtual memory, VM), т.е. RAM и SWAP (при потребности подключается пространство подкачки).

TmpFS может динамически использовать свободную память.
TmpFS наиболее быстрая и соответственно производительная из RAM-based файловых систем на текущий момент времени. TmpFS была перенесена с NetBSD в FreeBSD 7-Release и на текущий момент для FreeBSD 9.0 реализация ее в ядре рассматривается как экспериментальная возможность. Она должна использоваться на системах с не критическими задачами.


Для включения в ядро данной возможности нужно перед компиляцией добавить следующую строку:
Код:
options TMPFS
Если не хотим собирать ядро
Код:
kldload tmpfs
либо при загрузке системы подгрузить как модуль, дописав в /boot/loader.conf строку:
Код:
tmpfs_load="YES"
и для автоматического монтирования в нужный каталог добавить соответствующую запись в /etc/fstab, например, для объема ФС в 1G:
Код:
tmpfs /tmp tmpfs rw,mode=01777,size=1073741824 0 0
при ручном монтировании будет достаточно команды:
Код:
 mount -t tmpfs -o mode=01777,size=1073741824 tmpfs /tmp
При монтировании tmpfs доступны следующие опции:

gid — задает ID группы для корневой inode ФС (по умолчанию будет GID точки монтирования);
uid — задает ID пользователя (по умолчанию — UID точки монтирования);
mode — права доступа в числовой нотации (по умолчанию — как выставлены на точке монтирования);
inodes — максимальное кол-во нод, доступных для ФС. Если не задано, то выбирается соответствующее максимальное значение для размера, который был задан в опции size;
size — общий объем ФС в байтах. По умолчанию равняется нулю. Если 0 или значение больше чем SIZE_MAX — PAGE_SIZE, то будет использоваться доступное кол-во памяти, включая основную память и пространство подкачки (SWAP);
maxfilesize — максимальный объем файла в байтах. По умолчанию — максимально возможный.

После монтирования можно встретить в /var/log/messages сообщение:

Код:
kernel: WARNING: TMPFS is considered to be a highly experimental feature
in FreeBSD
упоминание об экспериментальном состоянии поддержки ядром данного функционала, о чем не следует забывать при намерении использовать ее на серьезных проектах.
 
Сверху