使用AFS, Active Directory和SSSD搭建用于集成电路设计的分布式存储系统 【三】AFS的工作原理 1
从使用体验来看,AFS 就好像组织内部的一个云存储系统。
部署和管理 AFS,前提是对其工作原理有充分的了解。中文世界里对AFS工作原理的介绍十分缺乏,这是造成 AFS 普及度不高的原因之一,也是有志于掌握 AFS 部署和管理技术的中国工程师遇到的第一个障碍。
如果你阅读英文没有障碍,可以参考以下两个资源获得比较详细的说明
-
OpenAFS Administrationi Guide: https://docs.openafs.org/AdminGuide/index.html
-
Richard Campbell, “Managing AFS: The Andrew File System”, Prentice Hall, 1998.
其中文献 2 已经开源,可以在以下地址在线阅读:
https://netrc.github.io/ManagingAFS/
在下面的几篇介绍里,我们将从使用和部署的角度介绍组成 AFS 的主要部分以及它们的工作方式。
Cell
AFS 将一个独立管理和部署的文件系统叫做一个 Cell.
新建一个 AFS Cell 的意思,就是部署一个新的 AFS 系统。
AFS 规定,每个 Cell 都应该有一个独一无二的名字。这可以是以字母开头的任意字符串。但为了保持唯一性,最常见的做法是以组织在广域网的域名为基础来命名 Cell .
比如,斯坦福大学本部提供给全校师生的 AFS Cell,名字叫做 ir.stanford.edu, 斯坦福提供给线性加速器中心的 AFS Cell, 名字叫做 slac.stanford.edu. 这是两个相互独立,分别运作和管理的文件存储系统,即两个独立的 Cell。
选择一个合理的 Cell 名称是部署一个 AFS 系统最重要的初始决定之一。因为 Cell 名称一旦确定,后面几乎无法更改。而这个名称会出现在每一个文件的绝对路径里。
AFS 规定,路径第一层目录的名字是 /afs,第二层目录的名字是 Cell 的名字。还以斯坦福大学为例,其本部所有师生和院系的 AFS 文件,全部存储在
/afs/ir.stanford.edu/
路径以下的各个子目录里。而线性加速器中心的所有 AFS 文件,存储在
/afs/slac.stanford.edu/
路径以下。
选择一个简洁易记又独一无二的 Cell 名称,可以方便所有用户。这个名称可以是公司的域名,或者某个部门的名称,或者某个分支所在城市的名称。比如,IBM 苏黎世研究中心的 AFS Cell 名称,就取做 zurich.ibm.ch, 其路径就以 /afs/zurich.ibm.ch 开头。
一个 Cell 拥有自己独立的用户数据库,管理自己所有的文件服务器。每一个文件服务器只能隶属于一个 Cell.
但是作为客户端的计算机可以同时访问多个 Cell. 比如,你可以让公司的设计服务器既能访问北京办公室的 Cell (/afs/bj.company.com/), 也能访问深圳办公室的 Cell (/afs/sz.company.com).
如果一个同事在两个 Cell 里都有账户,在完成两个 Cell 各自要求的身份认证以后,他就可以用通用的 Linux 命令在两个 Cell 之间移动或拷贝文件 (mv, cp, …),就好像这两个 Cell 对应的子目录就在设计服务器本地硬盘上一样。
File Server 和 Cache Manager
AFS 用于提供文件存