XX移动2012.08.27晚上进行AX3000上线,准备好的配置写入到AX中,设备上架,互连设备调试,业务上线,业务测试,一切都顺利的进行着,殊不知准备好的配置存在一个致命的因素,而我却始终没有发现。

  

设备上线第二天早上9点接到用户报障,反应客户访问应用速度缓慢现象,我立刻敢到用户现场,发现用户访问的vip,这个vip所属的成员中出现很明显的不均匀现象,大量的连接数都保持在每台服务器的一个端口上,这样服务器会有压力的,我想这个可能是导致访问应用慢的根本,我立刻修改了之前项目中得到验证过可以有效的解决不均匀的算法service-weighted-least-connection ),修改后仍旧不均匀,我就开始怀疑vip下面挂的cookie会话保持功能了,我把此会话保持功能关闭了,发现有效果了,服务器的各个端口连接数开始慢慢均匀,这时候更悲剧的事情来临了,用户反应有部分客户访问应用直接失败,我就赶紧把cookie 会话保持又添加上去了。一般情况下在运营商级别中是不允许出现故障时在现场调试的,因为时间不允许,20分钟的故障有可能都是重大级故障。用户进行了故障回退恢复,将业务切回了以前Array设备。

最后刘哥给我说配置中有一个配置不当的命令,就是这个cookie 会话保持中的match-type server, 如下:

slb template persist cookie cookie

   match-type server

在cookie会话保持中我选择了匹配类型为server,下面是匹配server的效果:

 

细节决定成败-cookie 会话保持_cookie 会话保持 

 

细节决定成败-cookie 会话保持_cookie 会话保持_02

上图,发现每台server的一个port 上会有很多链接, match-type server会以server为单位,进行分发,这样就有了这种情况,client访问vip 10.153.176.680  AX会转发到后端服务器10.153.172.5:11003,而且后续所有的请求只要转发到此服务器都会是11003端口。

这个就是这次故障的根本原因,就因为cookie 会话保持中的一个参数配置不当引起的,惭愧啊。望大家引以为戒,细节是非常非常重要的。