Capítulo 7. Cómo empezar con FS-Cache
FS-Cache es una caché local persistente que los sistemas de archivos pueden utilizar para tomar los datos recuperados de la red y almacenarlos en el disco local. Esto ayuda a minimizar el tráfico de red para los usuarios que acceden a los datos de un sistema de archivos montado en la red (por ejemplo, NFS).
7.1. Visión general del FS-Cache
El siguiente diagrama es una ilustración de alto nivel de cómo funciona FS-Cache:
Figura 7.1. Visión general de FS-Cache
FS-Cache está diseñado para ser lo más transparente posible para los usuarios y administradores de un sistema. A diferencia de cachefs
en Solaris, FS-Cache permite que un sistema de archivos en un servidor interactúe directamente con la caché local de un cliente sin crear un sistema de archivos sobremontado. Con NFS, una opción de montaje indica al cliente que monte el recurso compartido NFS con FS-cache activado. El punto de montaje provocará la carga automática de dos módulos del kernel: fscache
y cachefiles
. El demonio cachefilesd
se comunica con los módulos del kernel para implementar la caché.
FS-Cache no altera el funcionamiento básico de un sistema de archivos que funciona a través de la red - simplemente proporciona a ese sistema de archivos un lugar persistente en el que puede almacenar datos en caché. Por ejemplo, un cliente puede seguir montando un recurso compartido NFS tanto si FS-Cache está activado como si no. Además, el NFS en caché puede manejar archivos que no caben en la caché (ya sea individual o colectivamente) ya que los archivos pueden ser parcialmente almacenados en caché y no tienen que ser leídos completamente por adelantado. FS-Cache también oculta todos los errores de E/S que se producen en la caché al controlador del sistema de archivos del cliente.
Para proporcionar servicios de caché, FS-Cache necesita un cache back end. Un back end de caché es un controlador de almacenamiento configurado para proporcionar servicios de caché, que es cachefiles
. En este caso, FS-Cache requiere un sistema de archivos basado en bloques montado que soporte bmap
y atributos extendidos (por ejemplo, ext3) como su back end de caché.
Los sistemas de archivos que soportan las funcionalidades requeridas por el back end de la caché FS-Cache incluyen las implementaciones de Red Hat Enterprise Linux 8 de los siguientes sistemas de archivos:
- ext3 (con los atributos extendidos activados)
- ext4
- XFS
FS-Cache no puede almacenar arbitrariamente en caché cualquier sistema de archivos, ya sea a través de la red o de otra manera: el controlador del sistema de archivos compartido debe ser alterado para permitir la interacción con FS-Cache, el almacenamiento/recuperación de datos, y la configuración y validación de metadatos. FS-Cache necesita indexing keys y coherency data del sistema de archivos en caché para soportar la persistencia: claves de indexación para hacer coincidir los objetos del sistema de archivos con los objetos de la caché, y datos de coherencia para determinar si los objetos de la caché siguen siendo válidos.
En Red Hat Enterprise Linux 8, el paquete cachefilesd no está instalado por defecto y debe ser instalado manualmente.