在迁移haproxy负载的时候出现keepalived切换失败
具体故障现象如下:
- 两台haproxy+keepalived启动完毕,第一次访问到主机(正常)
- killall keepalived ,删除主机的keepalived,马上切换到备机(正常,可以通过ip addr查看虚IP是否生效)
- keepalived -f /usr/local/etc/keepalived/keepalived.conf ,启动主机的keepalived,正常应该切换回主机(失败),这时出现站点打不开的情况
- 在备机上用ip addr 查看,虚IP还是显示在那里
- ps -e | grep keepalived #只有两个进程。正常情况下应该有3个keepalived的进程才对
cd /usr/src/kernels #发现这个目录下没有文件 yum install kernel -y yum install kernel-devel -y ln -s /usr/src/kernels/2.6.18-274.3.1.el5-i686/ /usr/src/linux #创建链接文档
/usr/include/stdint.h:41: error: conflicting types for ‘int64_t’ /usr/src/linux/include/linux/types.h:126: error: previous declaration of ‘int64_t’ was here /usr/include/stdint.h:56: error: conflicting types for ‘uint64_t’ /usr/src/linux/include/linux/types.h:124: error: previous declaration of ‘uint64_t’ was here In file included from /usr/include/stdlib.h:438,
vim keepalived/libipvs-2.6/ip_vs.h 把 #include <linux/types.h> 移动到 #include <sys/types.h> 的下面
关于keepalived的原理,可以看看http://www.mirror./home-space-uid-56821-do-blog-id-241652.html