性能测试中的存储高可用切换.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
? ? ? ? ? ? ? ? 性能测试中的存储高可用切换 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 一般情况下,我们压力测试关注的都是交易系统吞吐量、业务的响应时间,批处理系统的处理时间,但是我们很少关注某一个计算机部件的故障而导致的高可用切换过程的业务中断时间,以及切换过程中的性能表现。这其实也是我们性能测试所关注的,因为在有压力和没有压力的情况下,这个业务中断的时间是不一样的;切换过程和正常处理过程中系统性能的表现也是不一样的。 本章节介绍在有业务压力下的存储高可用切换测试,从中发现的影响切换时间的问题,以及对问题的分析。 一、 存储服务器高可用的类型 存储的高可用类型很多,先来介绍一种存储的高可用类型 GAD 连接备存储也类似,但不论应用指向主存储还是备存储,先落盘的都是主存储。然而这些不是本文的关键。 二、 单台故障后会发生什么? 当主存储故障,备存储会自动切换为主存储(改变了身份),并且应用会通过多路径软件识别出主存储故障(当到达超时时间),切换到备存储。 当备存储故障,应用也会通过多路径软件识别出备存储故障,把 IO 路径切换到主存储。 三、 测试结果 在这个测试当中,我们除了关注我们通常所关注的一定吞吐量情况下业务响应时间、数据库 IO 响应时间、磁盘 IO 响应时间,我们还会关注单台存储故障后的切换时长和切换过程的性能表现。 下面是带着压力,存储高可用切换过程中的 CPU 利用率的图。 在主存储故障后大约 40 多秒后,似乎应用发现了主存储故障,之后切到备存储做业务,但似乎直到 3 分钟之后,业务量才完全起来,中间 40 秒 ~3 分钟的过程中,有毛刺状 CPU 。但即使是吞吐量恢复之后,仍然偶尔有吞吐量突然下降的情况 四、 问题分析 一般来说,存储高可用的过程 40 秒就足够了,我们做了 LVM 模式高可用的测试,的确在 40 秒完成存储切换,那么 1. 为什么 GAD 切换时间比 LVM 长? 首先从原理上讲, LVM 模式是这样的 都是主存储,一个存储坏了,只要应用自己发现了,多路径软件直接切到另一个存储就大功告成了。 而 GAD 的主存储出了故障,不但应用要把路径切换到备存储,并且,存储本身要做调整。即备存储要把自己的身份变成主存储。为什么要变身份呢?因为,在一个存储故障的情况下,写 IO 的逻辑也和平时不一样。仲裁要告诉备存储,你现在变成主了,而且是没有备机的主机。 这么一来,就会多一些时间上的耽搁。当然,这个耽搁也本不该这么长( 2 分钟) 2. 为什么有 CPU 的毛刺, 3 分钟之后才完全恢复 这是这个 CPU 图中的疑点。明明故障发生 40 秒之后,已经在备存储上看到了有 IO 读写,并且,业务系统也开始做业务了,为什么 CPU 忽高忽低呢?业务的吞吐量也没有完全起来,直到 3 分钟以后。 那么,我们做个推理 1) CPU 高的时候,是有业务做成功,即可以做写 IO ,而 CPU 低的时候,没有业务做成功,即不能做写 IO 。 2) 那么为什么有时候能写 IO ,有时不能写呢? 是不是因为业务系统中用到了多个 LUN ,这些 LUN 并不是同一时间在备存储启动的,而是一个一个慢慢启动的? 这个推理其实很好理解,因为,我们在 Windows 开机的时候,很早就可以看到 Windows 的桌面了,但这时候开启应用可能失败。因为 Windows 为了让用户体验更高,采用了先展示桌面,后面慢慢启动那些服务的策略。那么存储系统是不是也是这样的呢? 我们做一个小实验,把业务系统写日志的那个盘( LV ),在建盘的时候,把它条带化(打散)到 3 个 LUN 上面。写日志时候,在 LUN1 写 4M 数据(举例),之后就切到 LUN2 上写数据,写满 4M 之后,又去 LUN3 上面写。 注:应用的逻辑是,业务完成的标志是写日志完成,如果写不了日志,这个业务就 Hang 住。 这个图就完美的验证了上面的猜想。 CPU 明显的忽高忽低就是业务量时而有,时而没有,对应的就是日志一会儿可以写,一会儿不能写。 为什么时而不能写呢?因为写完 LUN1 ,要切换到 LUN2 上面写,而 LUN2 这时候还没有在存储层面完成主备切换,应用在下 IO 的时候,存储才意识到自己这个 LUN 应该做切换了,而且应该尽快切换(有点像催单的意思),之后 LUN2 优先完成启动,继续做业务。以此类推, LUN3 也是一样。 五、 调优 基于上述猜想,如何做调优呢? 1) 多路径软件( HDLM )探测存储是否活着,有一个超时时间的设置。把这个超时时间缩短,可以尽早发现存储的故障。 2) 让存储自己尽早发现自己的故障。多路径软件中有一个 HealthCheck 的选项,大概的意思是每

文档评论(0)

智慧IT + 关注
实名认证
内容提供者

微软售前技术专家持证人

生命在于奋斗,技术在于分享!

领域认证该用户于2023年09月10日上传了微软售前技术专家

1亿VIP精品文档

相关文档