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

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 比较平稳。这一点,可以提高客户应用的性能以及稳定性,是十分有用的。

原文发布于微信公众号 - 大魏分享(david-share)

原文发表时间:2016-04-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏kevin-blog

ubuntu下安装node版本管理工具NVM

nvm是nodejs的版本管理工具,因为nodejs编译非常麻烦,然后编译上有些又需要不同的版本,nvm就应运而生了,nvm是一个可以让你在同一台机器上安装和切...

1720
来自专栏从零开始学自动化测试

appium+python自动化44-appium命令行模式

appium desktop有个客户端版本,每次运行脚本的时候都要去双击启动才能运行,很显然不太方便,影响效率。那么有没什么办法不启动桌面程序就能运行呢,比如c...

1132
来自专栏名山丶深处

windows平台安装maven

1634
来自专栏Jerry的SAP技术分享

如何在ubuntu上安装virtualbox的driver module vboxdrv

干净的ubuntu安装完毕之后是没有vboxdrv这个driver module的。

3734
来自专栏Java学习之路

从初识Maven到使用Maven进行依赖管理和项目构建

前些天就安装了Maven,以备自己以后整合项目用,尤其是我们的ssh,ssm项目。想必好多人在开始的时候并不清楚Maven是什么,它能够帮助我们干什么。 所以...

3737
来自专栏名山丶深处

windows平台安装maven

1616
来自专栏魏艾斯博客www.vpsss.net

WordPress 手动升级更新方法

2944
来自专栏北京马哥教育

原创投稿 | Zabbix的编译安装并发送通知邮件

1.写在前面 本文主要介绍的是zabbix的编译安装过程,包含它的基础环境LNMP,虽然zabbix官方一般推荐的环境是LAMP。以及实现简单的监控任务,在发...

3898
来自专栏云计算教程系列

如何在Ubuntu 16.04上使用Flask和Python 3编写Slash命令

Slack是团队的沟通平台。Slack有许多附加组件,可以让团队扩展Slack,并将其与其他程序集成。slash命令是在消息输入框中执行操作的快捷方式。例如,键...

1094
来自专栏沈唁志

Git提交时使用.gitignore文件忽略特殊文件

4783

扫码关注云+社区

领取腾讯云代金券