分享

keepalived主备切换失败解决办法

 用勿龍潛 2011-12-29

keepalived主备切换失败解决办法

2011年9月18日 | 标签:

在迁移haproxy负载的时候出现keepalived切换失败

具体故障现象如下:

  1. 两台haproxy+keepalived启动完毕,第一次访问到主机(正常)
  2. killall keepalived ,删除主机的keepalived,马上切换到备机(正常,可以通过ip addr查看虚IP是否生效)
  3. keepalived -f /usr/local/etc/keepalived/keepalived.conf ,启动主机的keepalived,正常应该切换回主机(失败),这时出现站点打不开的情况
  4. 在备机上用ip addr 查看,虚IP还是显示在那里
  5. ps -e | grep keepalived  #只有两个进程。正常情况下应该有3个keepalived的进程才对
解决keepalived只有两个进程的情况
只有两个进程,是因为当前的linux系统未指定内核位置
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 #创建链接文档
然后重新编译安装keepalived
刚开始编译的是keepalived-1.2.2版本,出现
/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,
等错误
不得解,后选择keepalived-1.1.9版本,编译不报错
安装后查看 ps -e|grep keepalived 有三个进程在跑
解决安装keepalived-1.2.2版本编译报错的问题
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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多