4.14.3. 共享 NFS 缓存
NFS 根据挂载选项、安全性和协议详情来挂载共享或隔离缓存。超级块唯一性和配置参数等因素决定是否可在不同的挂载之间访问缓存。
因为缓存是持久的,所以缓存中的数据块会根据由四个键组成的序列来索引的:
- 第 1 级:服务器详情
- 第 2 级:有些挂载选项;安全类型;FSID;唯一标识符字符串
- 第 3 级:文件处理
- 第 4 级:文件中的页号
为避免超级块之间一致性管理问题,所有需要缓存数据的 NFS 超级块都有唯一的 2 级密钥。通常,具有同样的源卷和选项的两个 NFS 挂载共享一个超级块,因此共享缓存,即使它们在该卷中挂载了不同的目录。
例 4.1. NFS 缓存共享:
以下两个挂载可能共享超级块,因为它们具有相同的挂载选项,特别是因为它们来自 NFS 服务器上的同一个分区:
# mount -o fsc home0:/nfs/projects /projects
# mount -o fsc home0:/nfs/home /home/
如果挂载选项不同,它们不共享超级块:
# mount -o fsc,rsize=8192 home0:/nfs/projects /projects
# mount -o fsc,rsize=65536 home0:/nfs/home /home/
注意
用户无法在具有不同通信或协议参数的超级块之间共享缓存。例如,无法在 NFSv4.0 和 NFSv3 之间或在 NFSv4.1 和 NFSv4.2 之间共享缓存,因为它们强制使用不同的超级块。另外,设置参数,如读大小(rsize),可防止缓存共享,因为它强制使用不同的超级块。