存储 频道

工程师笔记︱SC5020存储读写性能差距很大,我是这么帮客户解决的

近期某客户在测试戴尔易安信SC5020F存储时,遇到了读写性能相差较大的问题,最后在戴尔易安信工程师的帮助下,尝试了多个角度进行解决。其思路有一定借鉴意义,希望大家在遇到类似问题时能够有所帮助。


配置信息:

客户测试的戴尔易安信SC5020配置为满配30块960G SSD硬盘,连接到戴尔易安信25G网络交换机S5048,希望测试25G iSCSI性能。在其测试服务器安装好DSM软件,将一台服务器通过iSCSI方式连接到SC5020上之后,遇到了三个问题


▲点击图片了解戴尔易安信SC5020F存储


问题发现


第一个问题:在进行初始化配置存储后,遇到了服务器端使用iscsiadm工具login时无法正常找到LUN的问题


✔ 这个问题是在存储初始化配置及LUN设置后,需要重启一次,即可正常识别,所以此问题通过重启存储解决。

另一个问题是:存储初始化配置完成后,客户希望使用RESTful API对SC存储进行统一管理。绝大部分命令通过RESTful API对存储操作都可以通用,是在使用RESTful API调用存储复制功能时报错。

✔ 此问题可以根据报错提示找到Instance Id,加到对应的py测试脚本里面即可。

第三个问题是存储性能测试方面。客户的测试服务器CPU为E52603 (主频较低)。OS为Red Hat 7u6。25Gb网卡为Mellanox CX5,驱动版本为5.0。网卡用iPerf做本地测试,单口能够到2.3-2.4GB/s。

SC5020存储的SCOS版本为7.3.5.8。存储配置30块RI磁盘,放置在同一个磁盘目录中。配置了2个4TB卷,2个8TB卷,共四个卷。使用Fio跑性能测试,设置1 Queue Depth,50 Thread,得到的测试结果很不理想,随机写最大8万IOPs,随机读接近4万IOPs,相差很大

问题排查


经过与客户的沟通之后,了解到客户实际应用场景是存储共享给多租户使用,最想知道服务器在单LUN下是否就能达到最大性能,还是需要多LUN才能达到存储最大性能。

如果是后者,需要我们(戴尔易安信工作人员)给出大概多少个LUN能够达到存储性能上限。于是我们尝试划分多个LUN,通过自行划卷测试存储最大性能

我们划分了22个100GB的卷,测试结果如下:

自行划卷测试


A:测试8 LUN时,4K随机读:服务器端看到的性能接近12万IOPs,平均每LUN性能接近1.5万IOPs。测试22 LUN时的IOPs最大值也是12万。

B:测试8 LUN时,4K随机写:服务器端看到的性能接近10万IOPs,平均每LUN性能接近1.2万IOPs。测试22 LUN时的IOPs最大值也是10万IOPs。存储后端磁盘视角看到的IOPs最大值接近30万。

C:测试8 LUN时,1M顺序写:服务器端看到的性能接近1.2GB/s,测试22 LUN时的IOPs最大值也是1.2GB/s。

D:测试8 LUN时,1M顺序读:服务器端看到的性能接近400MB/s,测试22 LUN时的IOPs最大值也是400MB/s。

注:这台SC5020存储配置30块读敏感(Read Intensive)磁盘。顺序读测试已经尝试过打开或关闭存储Cache,测试结果接近。


通过上述测试结果可以发现,写性能远远超过读性能。因此,客户希望尽快解决存储读性能的问题,给出该配置下最大预期性能,并使用他们的测试方法验证送测SC5020的最大性能。

由于有一些数据在这台测试机中需要用作其他设备的测试,没有其他测试环境可以使用,所以无法重装系统,于是我们只能从后端找解决办法:


后端提供的存储最佳实践:

1)目前测试环境里配置了一个Fault Domain, 最佳实践建议配置2个Fault Domain, 通过2个ControlPort 的iSCSI target实现多路径,提升性能表现;

2)主机方面检查多路径配置。


❷ 关于LUN的数量和存储性能:

SC存储的性能在后端多个LUN并行读写时能更好地体现。SCOS 7.3最大限制为2000,但客户环境中多少个LUN能体现最大性能,需要根据环境的配置逐渐添加LUN个数进行测试。

❸ 如果在各类型测试中存储卷没有表现出较高延时(一般20ms以下认为性能非常好),那么认为存储方面还可以承受更大的压力。后续可以尝试测试时增加端口数量、增加Fault Domain数量、增加主机数量/链路、增加LUN个数、调整测试工具参数(如增加Queue Depth)或使用其它测试工具如IOMeter对照参考。

如果条件允许,改换为FC前端以测试存储后端性能。即如果加大测试工具的线程数或Queue Depth,双卷应该可跑到CML存储的最大性能(指目前能够测试得到的小IO size压力下的最大IOPs)。

 CML/EQL关于交换机的iSCSI优化文档内容详细可以根据说明进行设置。此外,主机iSCSI设置部分还可以参考Mellanox的一些adapter优化文档。

目前,SC5020的128K顺序读测试能够到2.6GB/s,是因为服务器端只启用了一个25Gb端口。如果有更多AOC线缆,SC5020的顺序读操作正常情况应该能够超过2.6GB/s带宽。然而采用了两个25Gb端口后,IOPs测试结果与上次得到的结果一致,没有进一步提升

使用最佳实践测试

在当前可以满足要求的情况下,执行上述各个最佳实践的要求后继续测试,性能测试结果如下:

最佳实践测试

A:测试4 LUN/2 LUN时,4K随机读:服务器端看到的性能超过12万IOPs。

B:测试4 LUN/2 LUN时,4K随机写:服务器端看到的性能接近10万+IOPs。

C:测试4 LUN时,128K顺序写:使用客户脚本,服务器端看到的性能接近2.0GB/s。

D:测试4 LUN时,128K顺序读:使用客户脚本,服务器端看到的性能2.6+Gb/s(AOC线缆数量有限,如果AOC线缆充足,这个值应该还能提升)

可以看到,虽然有一些提升,但是还是不大。逐一排查之后,还是把问题回归到了客户提供的这台测试服务器系统存在问题,于是客户反复沟通之后,同意了服务器系统重装:

在服务器操作系统以及多路径软件重装之后,系统测试数据和稳定性均恢复正常。并且在单台服务器的测试压力不足以体现SC存储性能的情况下,增加了一台前端服务器来增加测试压力,获得了较满意的测试结果。具体测试结果如下:


重装之后测试结果

单机:

A:测试4 LUN/2 LUN时,4K随机读:服务器端看到的性能超过20万IOPs。

B:测试4 LUN/2 LUN时,4K随机写:服务器端看到的性能接近15万IOPs。

C:测试4 LUN时,128K顺序写:服务器端看到的带宽接近2.5GB/s。

D:测试4 LUN时,128K顺序读:服务器端看到的带宽为2.9+GB/s。

双机:

A:测试4 LUN时,4K随机读:服务器端看到的性能为38万IOPs。

B:测试4 LUN时,4K随机写:服务器端看到的性能接近19万IOPs。

C:测试4 LUN时,128K顺序写:服务器端看到的带宽接近5GB/s。

D:测试4 LUN时,128K顺序读:服务器端看到的带宽为6GB/s。

问题解决

重装之后的测试结果来看,单根25G链路带宽已经达到理论上限,目前存储仅连接225G AOC即可达到6GB的带宽,存储整体IOPs测试数值也达到该配置的一个理论上限,考虑延迟仍然保持在较低的水平,理论上IOPs还有提高的空间。



目前回顾整个过程问题基本定位在客户旧有系统的多路径软件问题上,这也提醒我们,测试工作除了己方的优化,在客户现场进行测试的时候,一定要跟客户沟通好测试环境需要按照我方要求重新部署,客户旧有的环境存在太多未知因素,会给测试结果带来不可预估的影响

了解更多数字化转型方案查看此链接:

https://www.dellemc-solution.com/home/index.html



0
相关文章