【行业动态】存储高可用切换测试及分析优化



一般情况下,我们压力测试关注的都是交易系统吞吐量、业务的响应时间,批处理系统的处理时间,但是我们很少关注某一个计算机部件的故障而导致的高可用切换过程的业务中断时间,以及切换过程中的性能表现。这其实也是我们性能测试所关注的,因为在有压力和没有压力的情况下,这个业务中断的时间是不一样的;切换过程和正常处理过程中系统性能的表现也是不一样的。

w H {$uedT x0


o| \6z|8Y%a0存储产业技术创新战略联盟1f,c c!o*?

本文介绍在有业务压力下的存储高可用切换测试,从中发现的影响切换时间的问题,以及对问题的分析。存储产业技术创新战略联盟x G2N3Y Wc jLH

存储产业技术创新战略联盟.sX WL p.r

M;`5yt'I!d)mz0

一、 存储服务器高可用的类型

CW;b#?Fw)z2uB H})D0


N6Mvp;XsB_e!? L0
存储产业技术创新战略联盟;Vd:MMf7N

存储的高可用类型很多,先来介绍一种存储的高可用类型 GAD存储产业技术创新战略联盟0g+H2K7B9@,_5y

 存储产业技术创新战略联盟&@)n5U*~t q1G4t

连接备存储也类似,但不论应用指向主存储还是备存储,先落盘的都是主存储。然而这些不是本文的关键。存储产业技术创新战略联盟4EIQ9y6{:] H9?.z

 

*F6}V+ciZ;jt9F\0

二、 单台故障后会发生什么?

!@[] l"T'ot0


lz$H['Xv(z.y}(dK0

!qV/Q)_ zr"RL/T0

当主存储故障,备存储会自动切换为主存储(改变了身份),并且应用会通过多路径软件识别出主存储故障(当到达超时时间),切换到备存储。存储产业技术创新战略联盟"O s-hkj1w

存储产业技术创新战略联盟Epi:K7MA d!kR
存储产业技术创新战略联盟g Zjn^RM0l1O

当备存储故障,应用也会通过多路径软件识别出备存储故障,把 IO 路径切换到主存储。存储产业技术创新战略联盟u&V&a0|G(p


` \G%s#?&V0存储产业技术创新战略联盟8G8_%J3k:H$o1d~u

三、 测试结果存储产业技术创新战略联盟9oSL,J4WE


muiF`0

PLJ:O-O k$?0

在这个测试当中,我们除了关注我们通常所关注的一定吞吐量情况下业务响应时间、数据库 IO 响应时间、磁盘 IO 响应时间,我们还会关注单台存储故障后的切换时长和切换过程的性能表现。存储产业技术创新战略联盟3H(Z*@DK6u*H


l"B2JG#i0存储产业技术创新战略联盟.o*ZFgT

下面是带着压力,存储高可用切换过程中的 CPU 利用率的图。存储产业技术创新战略联盟(lM9t2KX#T8k`^

存储产业技术创新战略联盟#QN6\_4?+d3O+L

T ?A4u*A v)H z,S#v0

 存储产业技术创新战略联盟G1@4pvW:f"i1Ed#B8s

存储产业技术创新战略联盟0{$eL_y[ f"}&e

){3I6YzaLb!uG z7M0

在主存储故障后大约 40 多秒后,似乎应用发现了主存储故障,之后切到备存储做业务,但似乎直到 3 分钟之后,业务量才完全起来,中间 40 ~3 分钟的过程中,有毛刺状 CPU 。但即使是吞吐量恢复之后,仍然偶尔有吞吐量突然下降的情况。

w ~^4xs,Gt0


?;N-U|#cH RvQ0

2ozK_F0

四、 问题分析

ZC(B'pQd@`J?0


0wP3Pd)l7u/i7y ]:V0

#]zC Yhep({J0

一般来说,存储高可用的过程 40 秒就足够了,我们做了 LVM 模式高可用的测试,的确在 40 秒完成存储切换,那么:

&S%h4Q"^V Y~|"o0

存储产业技术创新战略联盟xT7MM/^#Z2M f
存储产业技术创新战略联盟t0q J:F2YfU$}-S}

1. 为什么 GAD 切换时间比 LVM 长?存储产业技术创新战略联盟,g;g3U+f&S])T,}

存储产业技术创新战略联盟;]{/j1v;oqocD
存储产业技术创新战略联盟V$w oSQ;c

首先从原理上讲, LVM 模式是这样的存储产业技术创新战略联盟S"j k%c@B'j

 

4S-x#E1E7r0

都是主存储,一个存储坏了,只要应用自己发现了,多路径软件直接切到另一个存储就大功告成了。

~d\s:R(eV0


I6XCj!I t,ALK0存储产业技术创新战略联盟^W/P#jas@-S

GAD 的主存储出了故障,不但应用要把路径切换到备存储,并且,存储本身要做调整。即备存储要把自己的身份变成主存储。为什么要变身份呢?因为,在一个存储故障的情况下,写 IO 的逻辑也和平时不一样。仲裁要告诉备存储,你现在变成主了,而且是没有备机的主机。存储产业技术创新战略联盟.f)T ~W)GP T)}7B$x9@

存储产业技术创新战略联盟N Y\ Wh"\$?A:V;n
存储产业技术创新战略联盟0Xqd!|/L k

这么一来,就会多一些时间上的耽搁。当然,这个耽搁也本不该这么长( 2 分钟)存储产业技术创新战略联盟`"so`p+I

存储产业技术创新战略联盟K `Q"I-P&~;L

Aa/]+J;^}o V0

2. 为什么有 CPU 的毛刺, 3 分钟之后才完全恢复存储产业技术创新战略联盟(F3D`u0U$W

存储产业技术创新战略联盟K vy9tI-@yy_:ni;z

x[eEq P0

这是这个 CPU 图中的疑点。明明故障发生 40 秒之后,已经在备存储上看到了有 IO 读写,并且,业务系统也开始做业务了,为什么 CPU 忽高忽低呢?业务的吞吐量也没有完全起来,直到 3 分钟以后。

].d`*p,U_d0

存储产业技术创新战略联盟@+M[C5u _\\x-[$ea
存储产业技术创新战略联盟| v&k+UB(z;a

那么,我们做个推理:

!I|~lAP0

存储产业技术创新战略联盟9R}aHT:e\ }

L Qk6F-],M/@H!D:[0

1 CPU 高的时候,是有业务做成功,即可以做写 IO ,而 CPU 低的时候,没有业务做成功,即不能做写 IO 存储产业技术创新战略联盟JHZxRl W

存储产业技术创新战略联盟$V S;u%F,B'C(Nn@1p
存储产业技术创新战略联盟1[Aq+Ya [ M Y

2) 那么为什么有时候能写 IO ,有时不能写呢?存储产业技术创新战略联盟%Cj_5z?H+S

存储产业技术创新战略联盟8}~/D*H%u~*D

+i3sPI*},]Cm)P H0

是不是因为业务系统中用到了多个 LUN ,这些 LUN 并不是同一时间在备存储启动的,而是一个一个慢慢启动的?

zVu9W Ya\Q!a0


y7dw\%Q |1{`0存储产业技术创新战略联盟eW![}0[a?'l~

这个推理其实很好理解,因为,我们在 Windows 开机的时候,很早就可以看到 Windows 的桌面了,但这时候开启应用可能失败。因为 Windows 为了让用户体验更高,采用了先展示桌面,后面慢慢启动那些服务的策略。那么存储系统是不是也是这样的呢?

)kp(\$Efn;p`U}0

存储产业技术创新战略联盟T6cu)d%KE3RYM6P/p
存储产业技术创新战略联盟)~3ktE]V{)r\ u"P([

我们做一个小实验,把业务系统写日志的那个盘( LV ),在建盘的时候,把它条带化(打散)到 3 LUN 上面。写日志时候,在 LUN1 4M 数据(举例),之后就切到 LUN2 上写数据,写满 4M 之后,又去 LUN3 上面写。

^)gCLqkU,p;_4|(T0


,s@k eU5a9N R){6Y7J0存储产业技术创新战略联盟,S U bh9H4Y?/MmA

注:应用的逻辑是,业务完成的标志是写日志完成,如果写不了日志,这个业务就 Hang 住。

0ZAt }3Z6w/uq9Hx0

 存储产业技术创新战略联盟^u0zz|2m)k]&G1O(y

这个图就完美的验证了上面的猜想。

!| T8f$rjG0


*tvz;F'R0

dS#Y4NO8rC*UP0

CPU 明显的忽高忽低就是业务量时而有,时而没有,对应的就是日志一会儿可以写,一会儿不能写。

)K0rFV%I:`0


!{K-v W4P)U2n0

6@+ZP,y FUX B,B0

为什么时而不能写呢?因为写完 LUN1 ,要切换到 LUN2 上面写,而 LUN2 这时候还没有在存储层面完成主备切换,应用在下 IO 的时候,存储才意识到自己这个 LUN 应该做切换了,而且应该尽快切换(有点像催单的意思),之后 LUN2 优先完成启动,继续做业务。以此类推, LUN3 也是一样。存储产业技术创新战略联盟LS'e;Fsj t

存储产业技术创新战略联盟0f [1[!xEFit
存储产业技术创新战略联盟kd R^"p

五、 调优

]C8r pr j\ O bP#@0


_m+]r4lyQ+Ih0
存储产业技术创新战略联盟R%?'I9~gtQ(~

基于上述猜想,如何做调优呢?存储产业技术创新战略联盟|1R%fyQ:W9^ [


4L'L'P W9?7C.df0存储产业技术创新战略联盟3}X!}k-t

1) 多路径软件( HDLM )探测存储是否活着,有一个超时时间的设置。把这个超时时间缩短,可以尽早发现存储的故障。存储产业技术创新战略联盟sF`9D#}W

存储产业技术创新战略联盟:[;n["DKZG

gdSfv0

2) 让存储自己尽早发现自己的故障。多路径软件中有一个 HealthCheck 的选项,大概的意思是每隔多久去看一看自己的 LUN 是不是还活着。如果不活着就在另一台存储上把对应的备份激活。把这个 HealthCheck 的时间缩短,从默认的 60 分钟改为 1 分钟。那么存储在发生故障最多一分钟之后,将获得消息,并把故障的 LUN 在另一台存储上拉起。

%eT wp v*M0

存储产业技术创新战略联盟 H/~0PD;a V
存储产业技术创新战略联盟K0T1sY K:i:l t4U

六、 调优后的结果存储产业技术创新战略联盟6V#}5RI h


V5HM'c Zxl G0

"~8?G)l:i0

完美的验证。存储产业技术创新战略联盟g v;]r.us.Q1k

 

Dgp6`kkC0

中断时间只有不到一分钟,恢复之后也没有出现吞吐量突然下降的情况。

X(T+}V xZ0


)@;y|y?{(v Hl6`0存储产业技术创新战略联盟Ai~*~~+Q }2|c

七、 后续

!eg%lb I`/J%H0


3SB Lc*Uttd+i0

A$h1u'I6H0H`2`S0

事实上,这其实是 GAD 在某个 AIX 版本上的 bug ,但通过这样的性能测试,我们不但发现了 bug ,还通过外部的参数优化了切换的效果。

#n A'KN'{BN0


6Di6TRJ"B!Rw0存储产业技术创新战略联盟%G9fPYX

 存储产业技术创新战略联盟ir ?4L/IK2Zw

【作者】杨建旭师从中国工程院院士陈纯教授,于2006年获得浙江大学计算机学院硕士学位,拥有授权发明专利10余项、SCI/EI索引及核心期刊论文20余篇。中国人民银行清算总中心专家。曾就职于VIA(中国)、VMware(中国),具有Linux/FreeBSD/Windows/MacOS/iOS等平台的开发经验,并在自动化测试开发、银行业系统的性能测试、性能优化方面有深入研究。个人微信公众号:性能测试与调优

g Wcc}0

存储产业技术创新战略联盟7sP,a1c8nb0i
存储产业技术创新战略联盟;q)KyoV'l

来源:twt企业IT社区存储产业技术创新战略联盟PLwW8o|nP


Y)i K/hG^2S7e i0

!Z|AvH}vw0

  最新报道
  • 存储联盟举办“超级存储与蓝 
  • 【行业动态】分布式存储的七 
  • 【行业动态】三个优秀的云存 
  • 研究人员利用磁性石墨烯实现 
  • 【行业动态】我国科学家将光 
  • 存储产业技术创新战略联盟祝 
  • 存储联盟举办“可局部再生修 
  • 【行业动态】如何制定和部署 
  • 【行业动态】网盘是不是未来 
  • 【行业动态】精细微纳结构加 
  •  
    
     
    存储产业技术创新联盟 | 联系我们 | 京ICP备12012807号-5
    © 2021 Allstor