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

本文详细介绍了如何在Linux系统上部署OpenAFS分布式存储系统,包括安装配置Kerberos客户端,安装AFS程序,设置第一台AFS服务器,特别是Kerberos客户端的安装、配置和测试,以及AFS服务器的配置和启动。重点阐述了导入Long Term Key,启动bosserver,设定Cell名称,配置和启动Database服务进程等关键步骤,为集成电路设计提供稳定可靠的存储解决方案。
摘要由CSDN通过智能技术生成

安装和配置 Kerberos 客户端

在 AFS 的工作原理里我们已经介绍过,AFS 基于 Kerberos 协议对客户进行身份验证。我们也介绍过 Kerberos 协议的认证过程,我们强调过,在这个过程中,AFS 服务器并不需要和 KDC 进行实时通信,和 KDC 进行通信的是 AFS 客户端。既然如此,为什么需要在 AFS 服务器上安装和 KDC 通信用的 Kerberos 客户端呢?

因为我们同时需要在 AFS 服务器上安装 AFS 客户端(Cache Manager). 事实上这将是我们这个 Cell 的第一个客户端。之所以需要在 AFS 服务器上也安装 Cache Manager,我们也已经在前文解释过。既然客户端需要使用 Kerberos 对用户做身份验证,那么我们就需要安装和配置 Kerberos 客户端。

安装 Kerberos 客户端的另一个原因是我们可能会需要使用它提供的一些命令工具来查看和修改 Kerberos 密钥文件(keytab),比如 klistktutil 命令。我们在前文中也解释过,AFS 服务本身需要在 KDC 里注册一个 Long Term Key,并且我们已经在准备工作里描述过这个 Long Term Key 的导出过程。 当我们将这个 Long Term Key 拷贝到第一台 AFS 服务器上时,我们通常都需要查看和确认一下这个 Long Term Key 文件的内容是否符合需要,如果有必要,我们可能需要修剪一下这个文件的内容。这时 Kerberos 客户端提供的 klist 和 ktutil 命令就会十分方便。

安装 Kerberos 客户端

不同的操作系统有不同的方式来安装 Kerberos。比如 MacOS 就随系统自带 Kerberos的客户端实现。而对于很多 Linux 发行版,都可以从包管理软件里下载和安装 MIT Kerberos 或者 Heimdal Kerberos 的实现,或者直接下载和编译源代码。

对于 CentOS 7,可以使用如下命令安装 Kerberos 客户端:

[xmsguan@afsdb1 ~]$ sudo yum install krb5-workstation

配置 Kerberos 客户端

安装完成以后,我们需要配置这个客户端,至少我们需要告诉 Kerberos 客户端,我们的 Kerberos Realm 是什么名字,其 KDC 服务器在哪个地址。
和很多 Linux 程序一样,Kerberos 客户端的配置是通过修改一个配置文本文件的形式进行,这个文件的默认地址一般是:

/etc/krb5.conf

这个文件一般已经有默认的内容。我们需要修改的主要是 [realm],[domain_realm] 以及 [libdefaults] 里的参数值。对我们这个例子,这几个部分至少应该包含如下内容:

[libdefaults]
 default_realm = AD.COMPANY.COM
 dns_lookup_realm = true
 dns_lookup_kdc = true
 ticket_lifetime = 24h
 renew_lifetime = 31d
 forwardable = true
 default_ccache_name = KEYRING:persistent:%{
   uid}

[realms]
 AD.COMPANY.COM = {
   
  admin_server = ad.company.com
  kdc = ad.company.com
 }

[domain_realm]
 .ad.company.com = AD.COMPANY.COM
 ad.company.com = AD.COMPANY.COM

注意上面的参数中 ticket_lifetime 和 renew_lifetime 参数给出的是申请获得Kerberos ticket 的有效期。实际获得的有效期除了取决于此处客户端的设定,还取决于服务端 KDC 本身的设定。如果 KDC 本身只允许最多 8 小时的有效期,那么即使此处要求 24 小时的有效期,实际可以获得的 ticket 的有效期也只有 8 小时。

对于使用 Active Directory 作为 KDC 的情形,Kerberos ticket 有效期可以由域管理员在域的默认组策略里设定

另外,Kerberos 默认使用 UDP 端口 88 进行通信。系统管理员应该确认服务器的防火墙设定允许其使用88端口向 KDC 发起 UDP 通信。

测试 Kerberos 客户端

安装和配置完成客户端后,应该使用 kinit 命令来确认是否可以从 KDC 获得身份验证 ticket,并确认 ticket 的加密算法和有效期是否符合预期。比如:

[xmsguan@afsdb1 ~]$ kinit xguan
Password for xguan@AD.COMPANY.COM:
[xmsguan@afsdb1 ~]$ klist -e
Ticket cache: KEYRING:persistent:1008:1008
Default principal: xguan@AD.COMPANY.COM

Valid starting       Expires              Service principal
05/20/2020 02:57:33  05/20/2020 20:57:33  krbtgt/AD.COMPANY.COM@AD.COMPANY.COM
        renew until 06/20/2020 02:57:29, Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96
[xmsguan@afsdb1 ~]$

在上面这个例子里,我们以 Kerberos Principal 用户名 xguan 进行身份验证,在输入密码以后,我们用 klist 命令查看获得的 ticket。这个 ticket 的初始有效期有 18 个小时,但允许用户续期。每次续期可以再获得 18 个小时有效期,直至1个月为止。这个 ticket 是以 AES256 算法加密的。

至此 Kerberos 客户端就安装和配置好了。同样的过程可以用于其他所有 AFS 客户端和服务器的安装。

安装 AFS 程序

两种安装方式

和很多开源软件一样,OpenAFS 的安装大致可以遵循两种方式:

  • 从下载源代码进行编译和安装
  • 从Linux 发行版的包管理器下载和安装编译好的程序。

对于在 CentOS 7 上安装 OpenAFS,这两种方式的结果有一些区别

第一种方式是从 OpenAFS 的官方网站下载最新版本的源代码并编译安装。在本文成文的时代,OpenAFS 的主版本是 1.8, 同时传统的 1.6 版本仍然在更新。读者可以从其官方网站上下载相应的源代码包,阅读相应的编译安装说明来进行安装。另外,如果读者偏好先编译成 rpm 再进行安装,下面的连接提供了从源码编译 rpm 的说明
https://wiki.openafs.org/devel/HowToBuildOpenAfsRpmPackages/

第二种方式是使用 CentOS 携带的 YUM 包管理器从可以信赖的源站点下载已经提前编译好的 rpm 文件进行安装。University of Michigan 的系统程序开发员 Jonathan S. Billingsjsbillings)创建并维护着一个供 CentOS 和 Fedora 使用的 OpenAFS rpm 源。其地址如下:
https://copr.fedorainfracloud.org/coprs/jsbillings/openafs/

这是笔者推荐的安装方式。Jsbillings 在编译 OpenAFS 源码时采用了和开发者提供的 rpm spec 文件不一样的一份 spec。其结果是 RPM 安装的目录与直接编译源码得到的安装目录不一样。Jsbillings 设置的安装目录路径更符合 RHEL / CentOS 的习惯。比如,AFS 服务器端的配置文件存储目录在源代码方式下是

/usr/local/etc/openafs/server

或者更为传统的Transarc 路径

/usr/afs/etc

而在 jsbillings 提供的 RPM 包里,或者 Debian 源提供的安装包里,AFS 服务器端配置文件的存储目录是

/etc/openafs/server

又比如,AFS 客户端默认的缓冲区路径在源代码安装方式下是

/usr/vice/cache

而在 jsbillings 提供的 RPM包里,Cache Manager 的缓冲区默认路径是

/var/cache/openafs

在操作系统安装的介绍里,我们已经使用了 jsbillings 风格的路径来挂载缓冲区所需要的磁盘分区。

除了路径风格不一样,jsbillings 编译的 RPM 包还提供基于 DKMS 方式的客户端内核模块。使用这种方式安装内核模块初次花费的时间比较长,但好处是当系统升级内核时,不需要重新编译和安装 Cache Manager 的内核模块。

我们将使用 jsbillings 源提供的 RPM 包为例来说明 OpenAFS 的安装与配置。

配置 YUM 源

以 CentOS 7 为例,下载 jsbillings 提供的 YUM Repo 文件

https://copr.fedorainfracloud.org/coprs/jsbillings/openafs/repo/epel-7/jsbillings-openafs-epel-7.repo

并放置于YUM 的源目录下

/etc/yum.repos.d/

则系统将可以从该 YUM 源自动获得最新版本的 OpenAFS RPM 包。

安装依赖程序

OpenAFS 依赖于几个程序包。其中最主要的程序包含 dkms, kernel-devel 和 kernel-headers. kernel-devel 和kernel-headers 的版本号必须和当前系统运行的内核版本号严格一致。而dkms 可以从CentOS 的 epel-release 源获得。(在其他 Linux 发行版里这些程序包的名字可能略有不同。)

安装epel-release 源

[xmsguan@afsdb1 ~]$ wget https://copr.fedorainfracloud.org/coprs/jsbillings/openafs/repo/epel-7/jsbillings-openafs-epel-7.repo

[xmsguan@afsdb1 ~]$ sudo mv jsbillings-openafs-epel-7.repo /etc/yum.repos.d/

[xmsguan@afsdb1 ~]$ sudo yum install epel-release

然后安装 dkms

[xmsguan@afsdb1 ~]$ sudo yum install dkms

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值