本文共 1770 字,大约阅读时间需要 5 分钟。
交换机惹祸两起
作者:田逸()
因为这些年大部分精力放在系统方面,不再摆弄设备这块,也认为设备没啥可搞的。殊不知,这两周,连续2次被交换机给折腾了。
第一起
某公司服务器整体搬迁,7个服务器加2个交换机。交换机分别连内网和外网,用的是傻瓜型dlink 24口交换机,不可网管。在搬迁以前,我在远程把服务器的ip地址预先改好,等搬迁上架后,重启就能生效。当天下午由于有事没能亲自去现场,于是就安排一个同事跟客户一起去搬迁。
为了减少可能的麻烦,他们在搬迁时,连交换机带网线一股脑带着的(网线在交换机上插着,没拔下来),并标记了哪个服务器连哪个交换机端口。大概在夜间10点的时候,开始上架加点。我远程挨个连接新的ip,一切正常。接着远程配置lvs 相关项目,也很快配好。启用keepalived后,所有网站项目,包括主站、商城、论坛等,都是正常的,于是让他们各自回家睡觉。
第二天,我还在家里,电话就打来了,说网站不能访问。我赶紧远程登录,能ssh上去。按下列步骤检查:
1、 查看各服务器系统日志,未见任何kernel报错;
2、 查看web进程和web日志,web服务活得好好的,也没有错误日志输出;
3、 查看共享文件系统,也没异常;
4、 检查系统防火墙iptables,处于关闭状态;检查selinux,也是disabled;
5、 检查数据库,也是很正常啊;
6、 把所有服务器重启,然后用浏览器访问,不能如愿。
7、 telnet ip 80端口,又状态输出。
真是见鬼了。搞了一个多小时,没结果,客户那边催得急,要求去现场。出发前我有点担心交换机连线是不是搞成环路了。
到现场后,直接把笔记本连接到交换机,并设置同一网段的ip地址,这样能把跨网类故障怀疑隔离开。连接正常后,笔记可访问internet,但就是不能访问自己的网站。我很是怀疑交换机有问题,跑到前面板去看,发现接线如图所示:
线缆全部集中在前面几个口,第一口是上联端口,其他几个口连服务器。我以前有这样的尝试,低端的交换机级联端口,一般要在其周围空几个口出来。于是我把上联的第一个端口的网线,拔下插到第24口(24口附近大量空余端口没插网线),重启一下交换机,终于正常了。
第二起
某高可用环境,由lvs+keepalived+nginx+tomcat+mysql+nfs构成。最近因为新上项目,经常性的出现lvs后面的realserver被踢出转发队列,一会又被追加进来,周而复始,而且十分频繁,以至于我不得不把报警给关闭了。
按一下套路检查:
1、 检查负载均衡器主从服务器的系统负载,防火墙设置,内核参数。除了不断出现“Keepalived_healthcheckers: Removing service”、“Keepalived_healthcheckers: Adding service”外,看不到异常。修改keepalived配置文件,重启也无效果。
2、 修改tomcat配置文件server.xml参数,重启也无效果。
3、 查看各个web服务器的负载,系统日志,ip地址,vip地址等,看不出异常。
4、 查看nfs文件系统,修改参数重启,也无所贡献。
5、 检查数据库服务器,负载贼高。
6、 调整部分my参数,效果不佳。
7、 开启mysql慢查询,狂写啊。于是让程序员更改程序,确保mysql负载降低下去(在激烈的催促下,改进了—负载能稳定到50%左右)。
8、 可是,故障现象还依旧,很奇怪了。接下来下狠招!
9、 安装新的nginx版本,只转发到一个realserver上,并且站点用nginx的默认页面,这下应该与数据库,nfs等一概没关系了吧。但是,就是这个孤独的realserver,也同样被踢掉再被加人转发队列。
该动的地方都动了,突然想起上次交换机的事情,会不会是它在捣鬼呢?连接外网的是一个华为的可网管交换机,通过web’可以登录管理。因为以前要监控流量,因此交换机的ip和帐号都是已经设置好的了。
登录上去,看是不是有什么安全策略。嘿嘿,果然不少策略。不管它,把它全部干掉再说。再登录到负载均衡器看系统日志或执行watch ipvsadm ,运气来了,一切如愿!
原来是交换机把lvs的快速请求和健康检查当病毒给处理了。
转载地址:http://imrta.baihongyu.com/