10.2. Setting up a Cache
Currently, Red Hat Enterprise Linux 7 only provides the
cachefilescaching back end. The
cachefilesddaemon initiates and manages
/etc/cachefilesd.conffile controls how
cachefilesprovides 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:
Typically, the cache back end directory is set in
/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
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.
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)
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.
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
systemctl start cachefilesd
cachefilesdto start at boot time, execute the following command as root:
systemctl enable cachefilesd