10.2. Setting up a Cache
Currently, Red Hat Enterprise Linux 7 only provides the
cachefiles
caching back end. The cachefilesd
daemon initiates and manages cachefiles
. The /etc/cachefilesd.conf
file controls how cachefiles
provides caching services.
The first setting to configure in a cache back end is which directory to use as a cache. To configure this, use the following parameter:
$ dir /path/to/cache
Typically, the cache back end directory is set in
/etc/cachefilesd.conf
as /var/cache/fscache
, as in:
$ dir /var/cache/fscache
If you want to change the cache back end directory, the selinux context must be same as
/var/cache/fscache
:
#
semanage fcontext -a -e /var/cache/fscache /path/to/cache
#
restorecon -Rv /path/to/cache
Replace /path/to/cache with the directory name while setting up cache.
Note
If the given commands for setting selinux context did not work, use the following commands:
#
semanage permissive -a cachefilesd_t
#
semanage permissive -a cachefiles_kernel_t
FS-Cache will store the cache in the file system that hosts
/path/to/cache
. On a laptop, it is advisable to use the root file system (/
) as the host file system, but for a desktop machine it would be more prudent to mount a disk partition specifically for the cache.
File systems that support functionalities required by FS-Cache cache back end include the Red Hat Enterprise Linux 7 implementations of the following file systems:
- ext3 (with extended attributes enabled)
- ext4
- Btrfs
- XFS
The host file system must support user-defined extended attributes; FS-Cache uses these attributes to store coherency maintenance information. To enable user-defined extended attributes for ext3 file systems (i.e.
device
), use:
# tune2fs -o user_xattr /dev/device
Alternatively, extended attributes for a file system can be enabled at mount time, as in:
# mount /dev/device /path/to/cache -o user_xattr
The cache back end works by maintaining a certain amount of free space on the partition hosting the cache. It grows and shrinks the cache in response to other elements of the system using up free space, making it safe to use on the root file system (for example, on a laptop). FS-Cache sets defaults on this behavior, which can be configured via cache cull limits. For more information about configuring cache cull limits, refer to Section 10.4, “Setting Cache Cull Limits”.
Once the configuration file is in place, start up the
cachefilesd
service:
#
systemctl start cachefilesd
To configure
cachefilesd
to start at boot time, execute the following command as root:
#
systemctl enable cachefilesd