使用AFS, Active Directory和SSSD搭建用于集成电路设计的分布式存储系统 【十五】部署第一台 AFS 服务器 4

本文详细介绍了如何配置第一台AFS服务器的客户端,包括设置CellServDB、ThisCell、cacheinfo文件,启动客户端服务,以及登录AFS客户端。强调了在客户端配置中跳过SSSD的必要性,以限制非管理员登录。同时,讨论了-dynroot参数对性能和用户体验的影响,并展示了如何在-dynroot环境下创建AFS顶层目录的挂载点和只读副本。
摘要由CSDN通过智能技术生成

配置第一台 AFS 服务器:客户端的配置

我们在这里只对 AFS 客户端(Cache Manager)做最少的配置,使得系统管理员可以登录客户端进行维护和管理操作。

我们将在今后的章节里进一步介绍一台完整的客户端的配置(比如一台 EDA 设计服务器)。需要注意的是,EDA 设计服务器一般需要允许所有合法的 AFS 用户登录和使用。而我们不希望普通用户登录 AFS 服务器,所以对AFS 服务器上的客户端配置,系统管理员应该跳过 SSSD 的配置步骤,甚至限制这些服务器上的 SSH 服务,以保证只有系统管理员可以登录这些服务器。

客户端 CellServDB

在前文中我们已经解释过客户端 CellServDB 文件的作用。我们推荐客户端通过 DNS 查询的方式获得 Database Server 的地址,为了实现这一点,客户端 CellServDB 文件需要做一些特别安排。

对我们的例子,客户端 CellServDB 文件的地址是

/etc/openafs/CellServDB

这个文件在每次系统重启时都会被自动删除和改写,因此手动更改这个文件是没有效果的。

仔细阅读

/usr/lib/systemd/system/openafs-client.service  

就可以发现类似如下语句:

ExecStartPre=/bin/sed -n 'w/etc/openafs/CellServDB' /etc/openafs/CellServDB.local /etc/openafs/CellServDB.dist

这意味着该服务脚本在每次加载 AFS Client 程序之前会有一个预备操作,这个预备操作的内容是将以下两个文件的内容衔接在一起以后覆盖 /etc/openafs/CellServDB 文件的内容:

/etc/openafs/CellServDB.local
/etc/openafs/CellServDB.dist

其中 CellServDB.dist 包含许多公开注册于互联网的诸多研究机构的 Cell,而 CellServDB.local 则是供客户端系统管理员订制的 CellServDB 文件内容。

正是因为有如上操作的存在,所以手动修改 CellServDB 文件是没有效果的。系统管理员应该修改的是 CellServDB.dist 和 CellServDB.local 这两个文件。

如果管理员不希望客户端的用户访问互联网上的其他 AFS Cell,可以将 CellServDB.dist 的内容删除,使之变成一个空文件。

如果管理员希望添加自己新建的 Cell 的信息,则可以将这些信息添加到 CellServDB.local 文件里。

对我们的例子,我们希望生成的 CellServDB 文件只包含新建 Cell 的信息,因此我们将 CellServDB.dist 的内容删除使之成为一个空文件,然后更新 CellServDB.local 文件。

我们应该往 CellServDB.local 里写入什么信息呢?

OpenAFS 规定,如果希望 Cache Manager 使用 DNS 方式获得 Database Server 的信息,则客户端 CellServDB 文件里只能包含 Cell 的名称信息,而不能包含任何一台Database Server 的 IP 地址。因此我们的 CellServDB.local 文件应该只有一行内容,如下所示:

[xmsguan@afsdb1 openafs]$ cat CellServDB.local
>hq.company.com        #Cell name

读者可以对照修改自己的 CellServDB.local 文件。注意我们这里修改的是客户端相关的CellServDB 文件,它们存储在

/etc/openafs

目录下,而不存储在

/etc/openafs/server

目录下。

另外需要注意,AFS 对 CellServDB 文件有十分严格的格式要求。比如文件末尾不能有多余的回车或空行,大于号(>)与 Cell 名称之间不能有任何空格。

在做出上述修改前,系统管理员应该保证已经遵循本文之前的步骤验证过 DNS SRV 记录已经生效。

客户端 ThisCell

与 CellServDB 文件分为服务器端和客户端类似,ThisCell 文件也分为服务器端和客户端。如果读者按照我们的推荐 使用了 jsbillings 编译的安装包,则客户端 ThisCell 文件存储于

/etc/openafs/ThisCell

我们解释过一台 AFS 客户端(Cache Manager)可以同时连接多个 AFS Cell。客户端 ThisCell 的作用是指定 Cache Manager 默认连接的 Cell.

对于我们的例子,ThisCell 显然是我们新建的 Cell,因此其内容和服务器端的 ThisCell 地址是完全一致的。既然我们正在配置的是 AFS 服务器,我们可以直接将服务器端的 ThisCell 文件拷贝到客户端 ThisCell 文件位置,如下所示

[xmsguan@afsdb1 openafs]$ sudo cp server/ThisCell ./ThisCell
[xmsguan@afsdb1 openafs]$ cat ThisCell
hq.company.com[xmsguan@afsdb1 openafs]$

至此我们就完成了客户端 CellServDB 文件和 ThisCell 两个基本配置文件的设置。

值得留意的是,今后每一台隶属于这个 Cell 的 AFS 客户端(Cache Manager)都需要 CellServDB.local 文件和 ThisCell 文件。因此 AFS 系统管理员可以将这两个文件的最新版本保存在一个可靠的地方,供 AFS 客户端的用户下载使用。

配置 cacheinfo 文件

Cache Manager 启动时所需最重要的信息除了 Cell 的名称和 Database Server 的地址以外就是本地缓冲区的位置和大小。我们在安装操作系统时已经为客户端预留了 缓冲分区,现在是时候将这个缓冲区的地址告诉 Cache Manager 了。这同样是通过一个文本配置文件实现的,这个文件的名称是 cacheinfo。

对于使用 jsbillings 编译的OpenAFS安装包的情

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值