025-86738812

技术资料

专业 • 热情 • 信任 • 拥抱变化

并行文件系统调优小实践

时间:2021-02-03 17:01:38 浏览次数: 分类:技术资料

众所周知,存储性能一直是评估超算集群建设的重要因素。相比于TOP500的算力需求外,IO500也是各大超算中心集群性能表现的一种方式。正因为存储在集群中的重要地位,集群文件系统的调优便显得格外重要。


去年“Geeki说”和大家详细介绍了主流并行文件系统相应的小测试与非主流并行文件系统的对比,本篇就让我们一起聚焦“并行文件系统调优”,看看如何有效提升文件系统的读写效率吧!


image.png

在超算集群存储实施过程中,不管是客户还是奥工小分队对“读写性能”都有执着追求。但是,在存储设备的初始化设置与挂载过程中又不可避免会对IO节点读写性能产生一定影响,如何降低影响、提高性能就成了并行文件系统调优的关键。


因此,奥工小分队将结合存储和并行文件系统的设置、测试实践,用最真实的测试结果来比对存储和并行文件系统设置对顺序读写的影响,并总结经验寻求如何通过设置来获取更高性能的读写的方式方法。


image.png

面对一套存储设备时,奥工小分队往往都需要对其进行一些初始化的设置,包括卷组/池的创建、卷/lun的创建、主机的创建及映射等……而这些基础设置对之后的存储读写性能都会或多或少的产生一定影响,下面就以我们实施过的某一项目为例,来一起看看有什么好办法可以有效提高读写速度吧!


1

存储初始化设置


存储初始化的第一步,需要将不同数量的磁盘一起创建不同RAID的卷组。根据奥工小分队多年的经验来看,该项目在此步骤中性能最优的选择是创建RAID 6的卷组。创建卷组后,就要开始规划卷组数量,这里要注意合理的规划选择对性能比较大的影响。


本项目中有两台服务器作为IO节点进行存储的挂载,存储一共搭载了84块磁盘。经过精细的方案讨论与制定,奥工小分队把84块盘中的4块拿出作为热备盘,剩余的按照每10块磁盘做一个RAID 6 创建卷组。


通过以上操作,我们就能得到8个卷组,而这8个卷组按照每个卷组创建一个卷,可以得到8个卷,将这8个卷挂载到2台IO节点,这8个卷把两个IO节点分别作为主备,4个卷把IO01作为主读写节点,另外4个卷把IO02作为主读写节点,做到主备读写的均衡,以达到读写性能的高可用,为读写调优打下基础。


2

LUN数据块大小的设置


在进行卷LUN创建的过程中,LUN数据块的大小需要进行合适的设置,不同的LUN的数据块的大小会产生不同的速率。下图是此款存储创建LUN时需要进行的数据块大小的选择。


image.png


调优过程中,分别按照不同数据块的大小进行设置,配置完成后在再挂载的节点上按照GPFS进行iozone的读写性能的测试,得到以下测试结果:


image.png


可以看出:在相同的条件下,LUN数据块的大小影响着存储的读写速度。LUN数据块越大,读写速度越快;相对的数据块越小,读写速度越慢。因此在本项目中创建LUN进行设置的时候,需要选择LUN的数据块大小为521K。


3

缓存镜像设置


在LUN创建完之后,打开设置可以看到其中有一个设置选项是缓存镜像,而缓存的打开与关闭,对文件系统的读写也会产生一定的影响,如下图所示:


image.pngimage.png


通过控制变量进行测试,得到以下测试结果:


image.png


可以看出:在其他设置相同的情况下,关闭缓存可以适当提升读写速率。


image.png

1

GPFS文件系统块大小的设置


以上说明了存储初始化和设置对读写速率的影响,同样文件系统的设置也会对读写产生一定的影响。


本次项目中奥工小分队使用的并行文件系统是GPFS,前文和大家介绍过“GPFS是IBM公司第一个共享文件系统,它保证在资源组内的所有节点可以并行访问整个文件系统,具有可扩展、高性能等特点……”(Geeki说丨并行文件系统测试小实践——GPFS)这里需要补充的是:GPFS在创建文件系统的时候,因为文件系统块的大小对文件系统对存储的读写也会产生影响,所以需要指定文件系统块的大小。


一般创建文件系统时,我们会通过-B参数指定文件系统读写块的大小,通过设置不同大小的GPFS块大小,可以得到不同的读写速度。对此我们也进行了相应的小测试,得到以下结果:


image.png


可以看出:在存储文件系统等其他条件都相同的情况下,GPFS块的大小可以明显的提升读写的速率。


image.png

通过上述关于存储与并行文件系统设置的相关测试,我们发现尽管存储初始化或者别的操作对并行文件系统的读写效率会造成影响,但是并不是无计可施。奥工小分队在本项目实践中总结出如下四个方式可以有效提升读写效率,实现并行系统调优。


方式一:

创建和IO节点相匹配的LUN 的数量


方式二:

设置LUN的数据块大小为512K


方式三:

关闭LUN的缓存设置


方式四:

设置GPFS文件系统的块大小为16M


值得注意的是,本次是基于Netapp存储的相应设置,其他存储本篇暂不做讨论。本次项目中GPFS块大小的最优设置为16M,其他不同的项目需要根据实际的情况进行更改。


追求IO带宽性能最大化的小伙伴,可以参考以上配置对并行文件系统进行优化(Tips:该配置会牺牲部分存储空间)。




至此,本篇并行文件系统的读写性能调优分享就结束啦!读写性能的优化可以说是一个永无止境的过程,未来,奥工小分队也会不断探索更多更有效的优化方式!


—END—


咨询热线: 025-86738812

公司邮箱: hwclould@ongineer.cn /og@ongineer.cn

公司地址: 南京市雨花台区锦绣街5号绿地之窗C5座1218室

企业文化

专业 / 热情 / 信任 / 拥抱变化

价值观

成就客户 成长自己