NFS缓存 cachefileds 系统
Published on 2016 - 01 - 25
前提条件
必须使用ext4,如果是ext3需要加上上user_xattr选项
# vim /etc/fstab
/dev/sdb1 /data ext3 defaults,user_xattr 0 0
# mount -o remount /data
安装
yum install cachefilesd.x86_64
配置文件
# vim /etc/cachefilesd.conf
dir /var/cache/fscache
tag mycache
brun 10%
bcull 7%
bstop 3%
frun 10%
fcull 7%
fstop 3%
# Assuming you're using SELinux with the default security policy included in
# this package
secctx system_u:system_r:cachefiles_kernel_t:s0
说明:
dir: 缓存root目录。默认/var/cache/fscache。
tag: 指定一个FS-Cache标签,用来区分多个缓存。默认是"CacheFiles"。
secctx system_u:system_r:cachefiles_kernel_t:s0 : 开启SELinux的话,需要更改安全上下文。
brun 10%, bcull 7%, bstop 3%, frun 10%, fcull 7%, fstop 3% : 缓存策略。
缓存剔除规则
缓存需要删除来释放空间,将最少使用的对象丢弃掉。cachefiles是基于访问时间来清除缓存的。空的目录如果不使用将删掉。
(*) brun
(*) frun
如果剩余空间和缓存中可用的文件数超过了上面的限制,缓存剔除关闭。
(*) bcull
(*) fcull
如果可用空间或缓存中的可用文件数量低于上面的限制,缓存剔除将开启。
() bstop
() fstop
如果可用空间或缓存中的可用文件数量低于上面任一限制,然后,没有进一步的分配磁盘空间或文件被允许直到再次超过上面限制。
必须按照下面原则设置:
0 <= bstop < bcull < brun < 100
0 <= fstop < fcull < frun < 100
缓存结构
cachefiles模块将在缓存root目录下自动创建两个子目录:cache和graveyard。
主动缓存对象存储于cache目录下。守护进程检测graveyard目录,并将删除任何出现在该目录中的缓存。
挂载nfs分区
/etc/init.d/cachefilesd restart
mount -t nfs 10.31.247.202:/data /data/nfs/ -o fsc,remount