通过虚拟机在本地磁盘上缓存 NFS 共享

通过虚拟机在本地磁盘上缓存 NFS 共享

我正在运行 64 位 Ubuntu 12.04,并尝试在使用 Ubuntu 12.04 32 位的虚拟机上设置 FS-Cache,使用 CacheFS 作为后端。按照本教程使用 cachefilesd 后, 如何在本地磁盘上缓存 NFS 共享? 我为 nfs 共享设置了系统。运行 cachefilesd 守护进程时,它将通过启动过程,并且 dmesg 将显示:

FS-Cache:已添加缓存“mycache”(类型为 cachefiles)。运行 cat /proc/fs/nfsfs/volumes 时,我将获得:

msali014@msali014-VirtualBox:~$ cat /proc/fs/nfsfs/volumes 
NV SERVER   PORT DEV     FSID              FSC
v4 0a69031e  801 0:31    1de70f8892134adb  yes

然而,当查看缓存和墓地目录时,它们仍然是空的,并且 fscache/stats 变化很小。

msali014@msali014-VirtualBox:~$ cat /proc/fs/fscache/stats 
FS-Cache statistics
Cookies: idx=3 dat=0 spc=0
Objects: alc=0 nal=0 avl=0 ded=1
ChkAux : non=0 ok=0 upd=0 obs=0
Pages  : mrk=0 unc=0
Acquire: n=3 nul=0 noc=0 ok=3 nbf=0 oom=0
Lookups: n=0 neg=0 pos=0 crt=0 tmo=0
Updates: n=0 nul=0 run=0
Relinqs: n=1 nul=0 wcr=0 rtr=0
AttrChg: n=0 ok=0 nbf=0 oom=0 run=0
Allocs : n=0 ok=0 wt=0 nbf=0 int=0
Allocs : ops=0 owt=0 abt=0
Retrvls: n=0 ok=0 wt=0 nod=0 nbf=0 int=0 oom=0
Retrvls: ops=0 owt=0 abt=0
Stores : n=0 ok=0 agn=0 nbf=0 oom=0
Stores : ops=0 run=0 pgs=0 rxd=0 olm=0
VmScan : nos=0 gon=0 bsy=0 can=0
Ops    : pend=0 run=0 enq=0 can=0 rej=0
Ops    : dfr=0 rel=0 gc=0
CacheOp: alo=0 luo=0 luc=0 gro=0
CacheOp: upo=0 dro=0 pto=0 atc=0 syn=0
CacheOp: rap=0 ras=0 alp=0 als=0 wrp=0 ucp=0 dsp=0

syslog文件如下

Jun 13 14:03:08 msali014-VirtualBox cachefilesd[2138]: About to bind cache
Jun 13 14:03:08 msali014-VirtualBox cachefilesd[2138]: Bound cache
Jun 13 14:03:08 msali014-VirtualBox cachefilesd[2141]: Daemon Started
Jun 13 14:03:08 msali014-VirtualBox cachefilesd[2141]: Scan complete
Jun 13 14:03:38 msali014-VirtualBox cachefilesd[2141]: Refilling cull table
Jun 13 14:03:38 msali014-VirtualBox cachefilesd[2141]: Scan complete
Jun 13 14:04:08 msali014-VirtualBox cachefilesd[2141]: Refilling cull table
Jun 13 14:04:08 msali014-VirtualBox cachefilesd[2141]: Scan complete
Jun 13 14:04:38 msali014-VirtualBox cachefilesd[2141]: Refilling cull table

我在台式电脑上对 cachefilesd 进行了相同的设置,缓存工作正常,只是在虚拟机上不起作用。任何帮助都非常感谢

答案1

因此,当我在虚拟机上安装 Ubuntu(32 位和 64 位版本)时,它似乎不是“完整”安装,因此模块已编译,但未完全/正确实现。正如问题中提到的,会有相应的 dmesg 和 syslog 文件,只是没有采取任何措施。使用内核 3.9.6 后,没有进行任何其他更改,fs-cache 在虚拟机上工作正常。

相关内容