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