I'm trying to set up cachefilesd on an nfs share with one of my servers. It's not working.
The service is running, my drives are mounted, but it seems as if the "fsc" option is completely ignored.
My fstab (specific folder-names edited for privacy and relevancy):
$ cat /etc/fstab
# <device> <dir> <type> <options> <dump> <fsck>
UUID=c456dea4-e0c6-42f5-a206-d0ed2e94bc6a / ext4 rw,relatime,discard,data=ordered 0 1
UUID=693dee2e-78bb-4d4d-84e4-082328488cfe /boot ext4 rw,relatime,discard,data=ordered 0 2
UUID=843c20a9-258a-4078-bb78-0549217623e4 none swap defaults 0 0
192.168.200.20:/mnt/tank/share1 /mnt/share1 nfs4 nolock,noatime,context="system_u:object_r:httpd_sys_content_rw_t:s0" 0 0
192.168.200.20:/mnt/tank/share2 /mnt/sub/share2 nfs4 fsc,nolock,noatime 0 0
192.168.200.20:/mnt/tank/share3 /mnt/sub/share3 nfs4 nolock,noatime 0 0
192.168.200.20:/mnt/tank/share4 /mnt/sub/share4 nfs4 fsc,nolock,noatime 0 0
The Problem
No matter what I do, even mounting the shares manually (mount -t -o fsc...) the FSC option is not enabled:
$ cat /proc/fs/nfsfs/volumes
NV SERVER PORT DEV FSID FSC
v4 c0a8c814 801 0:55 c7d8b1ef:bb64cbde no
v4 c0a8c814 801 0:54 d9a63e22:cc9a3fde no
v4 c0a8c814 801 0:57 5a567c31:75f052de no
v4 c0a8c814 801 0:59 1673eeb4:b0583de no
v4 c0a8c814 801 0:60 9acb69e2:fb267bde no
v4 c0a8c814 801 0:58 a367662d:5b53a6de no
v4 c0a8c814 801 0:61 69fdc16c:c38e18de no
v4 c0a8c814 801 0:63 706408fe:60f412de no
v4 c0a8c814 801 0:64 af123987:8f7131de no
And looking at nfsstat you can see that the fsc option was totally ignored:
$ nfsstat -m
/mnt/sub/share4 from 192.168.200.20:/mnt/tank/share4
Flags: rw,noatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.200.10,local_lock=none,addr=192.168.200.20
/mnt/sub/share3 from 192.168.200.20:/mnt/tank/share3
Flags: rw,noatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.200.10,local_lock=none,addr=192.168.200.20
/mnt/share1 from 192.168.200.20:/mnt/tank/share1
Flags: rw,noatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.200.10,local_lock=none,addr=192.168.200.20
/mnt/sub/share2 from 192.168.200.20:/mnt/tank/share2
Flags: rw,noatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.200.10,local_lock=none,addr=192.168.200.20
Troubleshooting info
Service is running:
$ sudo systemctl status cachefilesd.service
● cachefilesd.service - LSB: CacheFiles daemon
Loaded: loaded (/etc/init.d/cachefilesd; generated)
Active: active (running) since Tue 2019-04-30 04:05:28 UTC; 5min ago
Docs: man:systemd-sysv-generator(8)
Process: 21405 ExecStop=/etc/init.d/cachefilesd stop (code=exited, status=0/SUCCESS)
Process: 22001 ExecStart=/etc/init.d/cachefilesd start (code=exited, status=0/SUCCESS)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/cachefilesd.service
└─22022 /sbin/cachefilesd
Apr 30 04:05:28 orochi systemd[1]: Starting LSB: CacheFiles daemon...
Apr 30 04:05:28 orochi cachefilesd[22001]: * Starting FilesCache daemon cachefilesd
Apr 30 04:05:28 orochi cachefilesd[22020]: About to bind cache
Apr 30 04:05:28 orochi cachefilesd[22020]: Bound cache
Apr 30 04:05:28 orochi cachefilesd[22022]: Daemon Started
Apr 30 04:05:28 orochi cachefilesd[22001]: ...done.
Apr 30 04:05:28 orochi systemd[1]: Started LSB: CacheFiles daemon.
the RUN=yes option is uncommented:
$ cat /etc/default/cachefilesd
# Defaults for cachefilesd initscript
# sourced by /etc/init.d/cachefilesd
# You must uncomment the run=yes line below for cachefilesd to start.
# Before doing so, please read /usr/share/doc/cachefilesd/howto.txt.gz as
# extended user attributes need to be enabled on the cache filesystem.
RUN=yes
# Additional options that are passed to the Daemon.
DAEMON_OPTS=""
The secctx system_u:system_r:cachefiles_kernel_t:s0 option is uncomented (tried it both with and without):
$ cat /etc/cachefilesd.conf
###############################################################################
#
# Copyright (C) 2006,2010 Red Hat, Inc. All Rights Reserved.
# Written by David Howells (dhowells@redhat.com)
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version
# 2 of the License, or (at your option) any later version.
#
###############################################################################
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
In a similar but ultimately unhelpful answer someone also included the output of this:
$ lsmod | grep cachefiles
cachefiles 45056 1
fscache 61440 3 cachefiles,nfsv4,nfs
and this:
$ grep CONFIG_NFS_FSCACHE /boot/config-4.15.0-20-generic
CONFIG_NFS_FSCACHE=y