GPFS 3.4 的配置变更与性能评估

时间:2022-05-05
本文章向大家介绍GPFS 3.4 的配置变更与性能评估,主要内容包括GPFS 的配置变更、动态删除一个 NSD client、GPFS 的性能评估、并发写测试结果分析、并发读测试结果分析、总结、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

GPFS 的概念

GPFS 的全称为:General Parallel File System,即通用并行文件系统。IBM GPFS 是一个可自由扩展的高性能并行文件系统,它主要有以下三个特点:

  • 基于高可用的集群架构,可灵活扩展
  • 支持并行的共享磁盘访问方式,提供单一命名空间
  • 针对并行 I/O 负载优化,提供极高的 I/O 处理能力

本文主要立足于 GPFS 配置的变更与性能的测试,因此 GPFS 的安装,在本文不做赘述。

GPFS 的配置变更

动态增加一个 NSD client

我们以一个 6 节点的 GPFS 集群为例:

图 1. 查看一个 6 节点的 GPFS 集群

首先,设置 NSD server 对 NSD 磁盘的访问顺序,以便实现负载均衡和多路径。

修改之前,需要先卸载所有节点上的 gpfs 文件系统:

图 2. 卸载一个 GPFS 文件系统

设置磁盘的访问优先级:

mmchnsd "nsd1:78001_lpar2,78001_lpar3,78002_lpar1"
 mmchnsd "nsd2:78001_lpar2,78001_lpar3,78002_lpar1"
 mmchnsd "nsd3:78001_lpar3,78001_lpar2,78002_lpar2"
 mmchnsd "nsd4:78002_lpar1,78002_lpar2,78002_lpar3"
 mmchnsd "nsd5:78002_lpar2,78002_lpar1,78002_lpar3"
 mmchnsd "nsd6:78002_lpar3,78002_lpar2,78002_lpar1"
 mmchnsd "nsd7:78002_lpar4,78002_lpar2,78002_lpar1"
 mmchnsd "nsd8:78002_lpar1,78001_lpar2,78001_lpar3"
 mmchnsd "nsd9:78002_lpar2,78001_lpar3,78002_lpar3"
 mmchnsd "nsd10:78001_lpar3,78002_lpar3,78001_lpar2"

然后,确认变更已经生效:

图 3. 查看 NSD 磁盘访问路径

接下来,给 GPFS 集群增加第 7 个节点“78001_lpar1”

首先确认节点 78001_lpar1 不属于任何 GPFS 集群:

图 4. 查看节点状态

如果不进行任何配置,直接向集群增加节点会报错 :

图 5. 增加集群节点

必须在所有节点上(包括第 7 个节点)编辑 /etc/hosts 和 /.rhosts 两个配置文件

图 6. 修改系统配置文件

再次添加第 7 个节点,可以成功:

图 7. 增加集群节点

检查添加结果,第 7 个节点已经添加成功:

图 8. 检查增加结果

将第 7 个节点设置成仲裁节点:

图 9. 设置仲裁节点

接下来,启动第 7 个节点:

图 10. 启动节点

现在,第 7 个节点已经处于活动状态 :

图 11. 检查节点状态

在第 7 个节点上挂载 GPFS 文件系统,文件系统能够挂载成功 :

图 12. 检查文件系统状态

动态删除一个 NSD client

以 7 节点的 GPFS 集群为例:

图 13. 查看集群的信息

下面的操作将删除第 7 个节点:78001_lpar1。

若节点处于活动状态,删除将会失败 :

图 14. 删除集群节点

因此需要,先将节点 78001_lpar1 关闭:

图 15. 关闭集群节点

检查状态,已经处于关闭的状态 :

图 16. 查看集群节点状态

再次删除节点,可以成功;

图 17. 删除集群节点

GPFS 的性能评估

本章将会以测试的方式验证 GPFS 的并发读写特性,包含读测试、写测试以及读写混合测试。

本测试以 P7-780 服务器作为试验机,配置为 64 个处理器、512 GB 内存,然后划分 6 个 LPAR,每个 LPAR 的配置为:10C 处理区 /64G 内存。操作系统版本为 AIX 6106,GPFS 的版本为 GPFS3.4。

并发写测试:首先,为测试编写一些简单的测试脚本:

“start_write.sh”脚本,用于在所有节点上对 GPFS 文件系统中的一个发起并发写:

图 18. 并发写脚本

“view_status.sh”脚本用于监控 GPFS 集群所有节点上的 I/O 性能:

图 19. 实时性能监控脚本

“kill_dd.sh”脚本用于杀死所有节点上的 dd if 进程:

图 20. 杀死进程脚本

“monitor.sh” 脚本用于启动 nmon 进程,“kill_monitor.sh”用于杀死 nmon 进程:

图 21. 启动 nmon 与终止 nmon 脚本

现在,启动并发写测试:

然后,观察所有节点上的 I/O 性能:

图 22. 观测节点 I/O 性能

并发写测试结果分析

从上面的结果可以看出,GPFS 集群所有节点对 GPFS 文件系统中同一个文件的写操作是并发的,虽然各个节点的 IOPS 和吞吐量在同一时刻并不相同,但整体而言,各个节点对于文件系统中的同一个文件的写操作的 IOPS 和吞吐量是比较平稳的,这充分验证了 GPFS 作为并发文件系统的优良特性。

并发读测试

停掉所有节点上的 dd if 进程:

图 23. 杀死 dd if 进程

编写一个简单的脚本“start_read.sh”,以便进行并发读测试:

图 24. 并发读脚本

运行“start_read.sh”脚本,然后运行“view_status.sh”脚本来检测实时读:

图 25. 观测节点 I/O 性能

并发读测试结果分析

从上面的结果可以看到,GPFS 集群所有节点对 GPFS 文件系统中同一个文件的读操作是并发的,虽然各个节点的 IOPS 和吞吐量在同一时刻并不相同,但整体而言,各个节点对于文件系统中的同一个文件的读操作的 IOPS 和吞吐量是比较平稳的,这充分验证了 GPFS 作为并发文件系统的优良特性。

  • 长时间并发混合读写测试 在所有的节点上,对 GPFS 文件系统中的同一个文件发起读写操作: 图 26. 发起混合读写压力

两个小时以后,利用“Nmon analyzer”分析收集到的 nmon 结果,可以看出所有节点对文件系统的同一文件的读写的并发的,但所有节点上的 IOPS 和吞吐量并不时刻相同: 图 27. 观测节点 I/O 性能

  • 长时间并发混合读写测试结果分析 可以看到,GPFS 集群所有节点对 GPFS 文件系统中同一个文件的混合读写操作是并发的,虽然各个节点的 IOPS 和吞吐量在同一时刻并不相同,但整体而言,各个节点对于文件系统中的同一个文件的读操作的 IOPS 和吞吐量是比较平稳的;并且,通过长达两个小时的大量混合读写,GPFS 文件系统并未出现报错以及其他任何问题,这充分验证了 GPFS 作为并发文件系统的优良特性以及稳定性。

总结

本文通过一系列测试,验证了 GPFS 的并发读写特性:GPFS 集群中的多个节点可以同时对 GPFS 文件系统中的同一个文件进行并发读写,并且吞吐量和 IOPS 比较平稳。这一点,可以提高客户应用的性能以及稳定性,是十分有用的。