megnlingling 发表于 2019-1-3 10:06:13

一次惊险的lvs切换

  公司lvs centos 6.4 采用的是piranha进行配置和管理,生产环境是单点,由于公司访问量越来越大,一旦服务器故障,恢复时间会比较长,影响比较严重。于是着手进行备机的搭建和热备切换测试。
      先在公司内部找两台虚拟机进行安装,并进行切换测试,录下详细操作流程;再在生产环境的备机进行安装,并配置一个空闲的IP进行测试,确保lvs安装是OK的。以上两步操作完成后,于是发邮件通知相关人员,凌晨进行切换测试。
      到约定时间,提前半小时修改VIP相关的DNS解析到其中一台realserver。然后同步配置到备机,启动备机 pulse服务,关闭主机 pulse服务,结果接下来的事情,完全超乎了预期。
      切换异常和处理流程如下:
      A, lvs切换到备lvs后,自带管理工具pulse 反复删除添加虚拟IP,刚开始以为是正常的,其实只是短暂正常;
      message日志显示添加vip后,然后又删除;并反复执行

Aug 24 01:33:45 web9 pulse: gratuitous lvs arps finished
Aug 24 01:33:46 web9 pulse: partner active: deactivating LVS
Aug 24 01:33:46 web9 lvsd: shutting down due to signal 15
Aug 24 01:33:46 web9 lvsd: shutting down virtual service LVS-A
Aug 24 01:33:46 web9 nanny: Terminating due to signal 15
Aug 24 01:33:46 web9 nanny: Terminating due to signal 15
Aug 24 01:33:46 web9 nanny: Terminating due to signal 15
Aug 24 01:33:46 web9 lvsd: shutting down virtual service
Aug 24 01:33:46 web9 nanny: Terminating due to signal 15
Aug 24 01:33:46 web9 nanny: Terminating due to signal 15
Aug 24 01:33:46 web9 nanny: Terminating due to signal 15
Aug 24 01:33:52 web9 pulse: primary inactive: activating lvs
  B, 原来的主lvs pulse服务无法启动;备lvs关闭pulse服务和主lvs物理服务器重启都无法解决;

错误提示:Starting pulse: pulse: cannot create heartbeat socket. running as root#google后无果`
  C, 咨询机房客服后确认我们VIP是OK的(之前遇到过需要在运营商交换机进行arp缓存清理);
      到这里的时候,想回退都退不回去了,只有接着解决了,并打算换成keepalived。
      于是下载安装包,并进行编译安装,添加配置文件,主keepalived 启动后,并能正常添加VIP,配置host验证,可以正常访问;于是对备机进行安装,正常启动。结果发现两台服务器都认为对方挂了,出现了“脑裂”,两台机器都添加了VIP。想起之前看到一个文章,公用环境有些运营商禁用了组播,于是修改keepalived为单播,重启keepalived后服务VIP顺利帮到主lvs上,关闭主后也能正常切换到备机。配置host业务正常,开始还原 dns 解析记录,并进行扫尾工作。



页: [1]
查看完整版本: 一次惊险的lvs切换