Nfs

帶有 FS-Cache 的 NFS - 已設置,但仍表示已禁用

  • March 22, 2022

我在這裡遇到了和這個問題差不多的問題,但是這個問題似乎已經解決了,因為 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

好的,預設情況下似乎不能使用 btrfs,所以我創建了一個 ext4 分區並將其掛載到 /var/cache/fscache 並帶有“auto,defaults,user_xattr”屬性。這現在有效。如果有人知道如何使用 btrfs 分區,請告訴我。

似乎在重新啟動幾次後它會自行啟動。我現在得到

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

奇怪,但至少它的工作原理

引用自:https://serverfault.com/questions/1096237