带有 FS-Cache 的 NFS - 已设置,但仍显示已禁用

带有 FS-Cache 的 NFS - 已设置,但仍显示已禁用

我遇到了和这个,但这个问题似乎已经解决了,因为 cachefilesd 尚未启用。我已启用它(删除了 /etc/default/cachefilesd 中 RUN=yes 之前的注释)并重新启动了服务,但我仍然得到

root@pc01:~# cat /proc/fs/nfsfs/volumes
NV SERVER   PORT DEV          FSID                              FSC
v4 86826879  801 0:46         0:0                               no

其他文章中提到的其他输出内容包括:

root@pc01:~# mount
[snip]
/fscache.img on /var/cache/fscache type ext4 (rw,relatime)
server:/shares on /shares type nfs4 (rw,nosuid,nodev,noexec,noatime,vers=4.2,rsize=1048576,wsize=131072,namlen=255,hard,proto=tcp,timeo=50,retrans=2,sec=sys,clientaddr=xxx,fsc,local_lock=none,addr=xxx)
server:/home on /home type nfs4 (rw,nosuid,nodev,noexec,noatime,vers=4.2,rsize=1048576,wsize=131072,namlen=255,hard,proto=tcp,timeo=50,retrans=2,sec=sys,clientaddr=xxx,fsc,local_lock=none,addr=xxx)
[snip]

是的,我已将 fscache 放入 ext4 格式的图像文件中,大约 10 GB,因为我不想创建单独的分区,而且据我所知,Btrfs 不支持 user_xattr。

root@pc01:~# lsmod | grep cachefiles
cachefiles             86016  1
fscache                389120  2 cachefiles,nfs
root@pc01:~# uname -r
5.16.11-76051611-generic
root@pc01:~# grep CONFIG_NFS_FSCACHE /boot/config-5.16.11-76051611-generic 
CONFIG_NFS_FSCACHE=y
root@pc01:~# lsb_release -a
No LSB modules are available.
Distributor ID: Pop
Description:    Pop!_OS 21.10
Release:    21.10
Codename:   impish
root@pc01:~# dmesg | grep cache
[    0.019397] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[    0.019576] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.043975] random: get_random_u64 called from kmem_cache_open+0x2b/0x360 with crng_init=1
[    0.082514] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.082543] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.256293] PCI: pci_cache_line_size set to 64 bytes
[    0.262202] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[   45.997860] FS-Cache: Cache "mycache" added (type cachefiles)
[   45.997863] CacheFiles: File cache on loop0 registered
root@pc01:~# ps aux | grep cachefilesd
root        1147  0.0  0.0   2876  1172 ?        SNs  14:29   0:00 /sbin/cachefilesd
root        9650  0.0  0.0  21912  2416 pts/0    S<+  14:45   0:00 grep --color=auto cachefilesd

答案1

似乎在几次重启后它就自动激活了。我现在得到

root@pc01:~# cat /proc/fs/nfsfs/volumes
NV SERVER   PORT DEV          FSID                              FSC
v4 86826879  801 0:46         0:0                               yes

很奇怪,但至少它有效

答案2

好的,默认情况下 btrfs 似乎不能用于此,所以我创建了一个 ext4 分区并将其挂载到 /var/cache/fscache,并使用“auto,defaults,user_xattr”属性。现在可以使用了。如果有人知道如何为此使用 btrfs 分区,请告诉我。

相关内容