使用AFS, Active Directory和SSSD搭建用于集成电路设计的分布式存储系统 【五】AFS的工作原理 3
AFS Volume(AFS 卷)
许多本地文件系统将存储空间划分成卷 (Volume) 或分区 (Partition) 来进行管理。大部分读者对此应该都不陌生。与此类似,AFS 将所有的文件和目录组织在一个一个的 AFS Volume 里管理。
一个本地文件系统一般有几个到十几个卷或分区。一个 AFS Cell 可以有几十到几万个 AFS Volume,甚至更多。AFS Volume 由管理员创建并加入系统,其数量完全取决于需要。
AFS 系统以 AFS Volume 为单位存储和管理文件与目录。AFS File Server 上面存储的是一个又一个 AFS Volume 的实际内容,而 Volume Location Database Server 里存储的是每一个 AFS Volume 的物理位置(即位于哪台File Server 的哪块硬盘分区上)。
每一个 AFS Volume 都拥有唯一的名称和唯一的整数代号,后者称为 Volume ID.
目录和文件在一个 Volume 里按照通常的树状进行组织。从 Volume 的根目录开始向下伸展。
最典型的 AFS Volume 是一个用户的个人目录。举个例子,用户 ximeng 的个人目录就是一个 AFS Volume,名字叫 user.ximeng,下面存储了用户ximeng 的所有文件和文件夹。
AFS Volume 在存储结构上是相互独立和并列的结构,可以独立存储和移动。比如,另外一个用户 xuanwu 的个人目录是另一个独立的 AFS Volume,名字可以叫 user.xuanwu。
user.ximeng 和 user.xuanwu 就是两个相互独立的 AFS Volumes。它们可以存储在同一个 File Server 的同一个硬盘分区,也可以存储在两个完全不同的File Servers 的不同硬盘分区里。
那么 AFS Volume 和 /afs 的路径之间是什么关系呢?
每一个 AFS Volume 通过其根目录接入 AFS 的路径。如果把 AFS 的路径看作根节点在 /afs 上的一颗大树,那么每个 AFS Volume 就是这颗树里的一段分支。
一个 AFS Volume 接入 /afs 的路径位置,称为这个 Volume 的挂载点(Mount Point).
比如,user.ximeng 的挂载点是
/afs/company.com/users/ximeng
那么用户 ximeng 的个人目录的路径就是上述位置。
假设在这个 Volume 里从根部往下第一层储存了 3 个子目录,分别是 public, document, project. 那么根据 AFS 的规则,三个子目录的路径就分别是
/afs/company.com/users/ximeng/public
/afs/company.com/users/ximeng/document
/afs/company.com/users/ximeng/project
在下面的示意图里,每个颜色块标记了一个 AFS Volume. 色块交叠的目录是挂载点。
从这个例子可以看出 AFS 路径的一个重要特点:AFS 路径上的一个目录既可以是一个普通意义上的目录(文件夹),也可以是一个 AFS Volume 的挂载点。
从 /afs 往下,每一个目录必然属于且只能属于一个 Volume.
从一个 AFS Volume 的根目录向下追溯