¿Cómo funciona el caché de lectura NFS en Debian?

12

Estoy planeando usar NFS para servir muchos archivos pequeños. Se leerán con mucha frecuencia, por lo que el almacenamiento en caché del lado del cliente es crucial. ¿NFS maneja esto? ¿Hay alguna manera de aumentar el almacenamiento en caché del lado del cliente de alguna manera?

... o debería buscar otra solución? Sincronizar usando rsync o unison periódicamente no es una opción ya que los archivos se modifican en el lado del cliente de vez en cuando.

Ztyx
fuente

Respuestas:

6

Primero, NFS no proporciona coherencia de caché, por lo que si lo necesita, debe buscar en otro lado.

Lo que NFS especifica es un modelo más débil llamado consistencia cercana a la apertura. Esto significa que cuando se cierra un archivo, los datos sucios se envían al servidor. Por el contrario, cuando se abre un archivo, se realiza una verificación de atributos, lo que significa que si el cliente ha almacenado en caché las páginas de ese archivo, verifica si esas páginas siguen siendo válidas.

Si bien no se encuentra en la especificación en sí, la mayoría de los clientes NFS tienen algo llamado tiempo de espera de caché de atributos, es decir, cuántos años pueden tener los atributos de un directorio o archivo abierto antes de que el cliente contacte al servidor para revalidarlos. En Linux, vea las opciones de montaje de actimeo = etc. Los valores más altos permiten un almacenamiento en caché más agresivo, pero aumentan el riesgo de usar datos obsoletos si algún otro cliente actualiza el archivo mientras tanto.

janneb
fuente
Gracias por su respuesta. Entonces, para que haya entendido esto correctamente, el "caché de atributos" del lado del cliente solo contiene un caché para atributos de archivo / directorio, es decir. el caché no contiene ningún contenido de archivo?
Ztyx
Sí, el cliente almacena en caché el contenido del archivo en la memoria caché de la página, tal como lo hace para un sistema de archivos local. Los atributos se utilizan para decidir si el contenido del archivo en caché se invalida y cuándo.
Janneb
Ah Muchas gracias por responder esto. Que tengas un buen día.
Ztyx
Cuando dice "página", parece que significa que partes del archivo pueden almacenarse en caché y que partes del archivo pueden no serlo. No es un caché de archivos, ¿verdad? Es subdivisiones del archivo que se pueden almacenar en caché.
CMCDragonkai
@CMCDragonkai: el núcleo realiza un seguimiento del contenido del archivo en caché con granularidad de página (normalmente 4KB), por lo que sí, puede almacenar en caché parte de un archivo. No estoy seguro de cómo funciona exactamente la invalidación de la memoria caché para NFS, supongo que después del tiempo de espera de la memoria caché de atributos cuando se pone en contacto con el servidor para revalidar, y si la revalidación falla, se descartan todas las páginas en caché que pertenecen a ese archivo.
Janneb