IBM AFS 副分区虚拟化
IBM® AFS™ 存储区域网络(SAN)的存储虚拟化功能可以将现有的副分区从一个文件系统迁移到另一个文件系统,期间不需要重启文件服务器或中断客户端进程。本文介绍了使用现有 IBM AFS 文件服务器设置将副分区迁移到不同文件服务器时出现的问题,以及如何利用 IBM AFS SAN 存储虚拟化功能解决这些问题。
IBM AFS 概述
AFS 是一个分布式文件系统,允许共同运作主机(客户端和服务器),跨局域网(LAN)和广域网(WAN)高效地共享文件系统资源。
它的一些主要特性包括客户端/服务器架构、管理功能、可扩展性、位置透明性、安全性、可靠性、可移植性等。
IBM AFS 的主要组件
文件服务器:文件服务器是一个 AFS 实体,负责为卷中的特定文件集提供中央磁盘存储卡,并使运行在客户端上的授权用户可以访问这些文件。
卷服务器:卷服务器允许对它所在的机器上的 AFS 卷执行管理任务和检测。这些操作包括卷创建和删除、重命名、转储和恢复、为只读卷修改复制站点列表、创建和增加新的只读卷映象、创建和更新备份卷、列出分区上的所有卷,以及检查卷状态。
Basic OverSeer (BOS) Server :BOS Server 是一个管理工具,它运行在单元(cell)中的所有文件服务器机器上。该服务器在系统重启后按照顺序监视 AFS 代理的健康状况,回答关于它们的状态的请求,并在它们遇到故障时进行重启。它还接受重启、暂停、恢复进程,并安装新服务器二进制文件的命令。
救援服务器(salvager):救援服务器不同于其他 AFS 服务器,因为它只在指定的时间运行。BOS Server 将在文件服务器、卷服务器或两者都发生故障时调用 salvager。salvager 将尝试修复引起故障的磁盘崩溃。作为系统管理员,您还可以在需要时调用 salvager,即使文件服务器或卷服务器都没有出现故障。
卷位置服务器:卷位置服务器将维护和导出卷位置数据库。该数据库会跟踪卷实例所在的服务器或服务器组。它支持的操作包括查询并返回卷位置和状态信息、卷 ID 管理,创建、删除和修改 VLDB 条目。
客户端组件(Venus):AFS 缓存管理由 AFS 客户端(afsd)和一些守护进程实现。它支持本地磁盘缓存和内存缓存。
副分区:副分区是使用物理设备创建的 IBM AIX® 分区。按照惯例,每个分区被命名为 /vicepx,其中,x 是一个或两个英文字母。AFS 分区可以命名为 /vicepa 或 /vicepaa、/vicepb 或 /vicepbb,一直到 /vicepz 或 /vicepzz。
卷:用于 AFS 存储的磁盘分区不会直接托管各种用户文件或目录。相反,相关的系统目录结构的子树将被放到称为卷的容器中。
现有文件服务器设置
现有文件服务器设置如图 1 所示,其中多个客户端可以访问 Fileserver1 上的卷。
在现有设计中,每个文件服务器都有自己的本地存储,并将在其中创建副分区,卷和数据将存储到本地存储中。
图 1. 现有文件服务器设置
现有文件服务器设置的问题
现有设置的主要问题是,无论在哪个文件服务器上,只要 AFS 管理员需要执行软件升级,那么他首先需要将该服务器上的所有卷移动到其他服务器。移动内容包括复制这些卷中的所有数据。完成软件升级后,卷将再次移回之前的文件服务器。整个过程非常漫长,可能需要几天才能完成。
SAN 存储虚拟化解决方案
新的 AFS 服务器是更大型的机器,使用虚拟化程度更高的 SAN 系统来保存 AFS 副分区数据。我们现在有两个或更多个 AFS 文件服务器来共享 SAN 中的完整数据存储。
新的配置在多个文件服务器之间共享 SAN 存储。这有助于缩短副分区迁移所需的时间,因为不需要复制数据。
现有 AFS 实现可以做到这一点:进行一些特定于 AFS 的配置,部署文件服务器。但是,在移动副分区时会出现宕机,虽然宕机是有限的,但也需要重启文件服务器,这会影响当前的和运行中的客户端任务。
图 2. 新的基于 SAN 存储的文件服务器设置
向 vos
添加两个新命令即可在不同文件服务器之间移动所有副分区。
方法如下:
vos detachpart -fromserver <machine name of server from where to detach> -partition <partition names to be moved> [-cell <cell name>] [-noauth] [-localauth] [-verbose] [-timeout <timeout in seconds >] [-help]
方法如下:
vos attachpart -fromserver <machine name of server from where to detach> -toserver <machine name of server where to attach> -partition <partition names to be moved> [-cell <cell name>] [-noauth] [-localauth] [-verbose] [-timeout <timeout in seconds >] [-help]
vos detachpart
命令将从指定为 fromserver
的文件服务器中分离出分区,而 vos attachpart
命令将 fromserver
文件服务器中的分区连接到 toserver
文件服务器。
因为不需要重启文件服务器,也不需要中断客户端任务,因此迁移过程十分迅速。它们只会获得一个 busy 消息,直到迁移完成。
我们正在为不同文件服务器之间移动单个或多个副分区提供支持。