使用AFS, Active Directory和SSSD搭建用于集成电路设计的分布式存储系统 【八】AFS的工作原理 6
AFS的路径偏好及其对顶层目录的影响
在卷的只读副本一节里,我们提到了 AFS 的路径偏好机制。这个机制规定,当一个 RW Volume 存在至少一个 RO Volume 副本时,Cache Manager 总是偏好访问 RO 副本。如果用户需要访问 RW 主拷贝,必须使用和默认路径不同的另一个路径。这个机制使得绝大多数情况下用户总能访问到最近的只读副本,提高了文件读取的效率。
然而在某些情况下,一些高级用户需要修改具有只读副本的 Volume 的内容,或者系统管理员需要对某些不常改动的、具有只读副本的 Volume 进行修改。这时就要求使用者采取不同于默认情况的路径。
另外,路径偏好规则的存在要求 AFS 系统管理员必须对最顶层的两个目录(/afs/cellname)做出相应的部署,以便用户能够真正享受只读副本带来的好处。
为此,本节对路径偏好的规则做进一步解释。
当 Cache Manager 拿到一个新的路径时,它在自己的缓冲记录里找不到这个路径,就会从最顶层目录开始向下解析。
解析过程中,如果遇到的是一个常规目录,那么 Cache Manager 就会进入其中,然后解析下一级目录。如果遇到的不是一个常规目录,而是一个 Volume 的挂载点,那么 Cache Manager 就会向 Volume Location Database Server 发出查询,拿到这个 Volume 及其所有副本的位置。如果存在多个不同的存储位置,Cache Manager 就像到达了一个岔路口,必须选择其中的一条继续下去。
举个例子,Cache Manager 需要解析的路径是
/afs/company.com/eda/cadence/virtuoso/bin
其中 virtuoso 是一个叫 cadence.virtuoso 的 Volume 的挂载点。cadence.virtuoso 存在一个只读副本在 server2 上,而其本身的 RW Volume 在 server1 上。解析到 virtuoso 这层目录时,Cache Manager 就需要在 RW 与 RO 这两条路径中选择一个。如果选择了 RO Volume,那么就只能读取文件的内容而无法修改。如果选择了 RW Volume,则可以对文件做出修改,但可能造成 RW 和 RO不一致。
AFS 规定,当 Cache Manager 为了越过一个挂载点(Mount Point)而需要在 RW 和 RO 两类可能的位置里做出选择时,必须遵循如下规则:
- 规