系统默认内核版本 2.6.18
升级后内核版本 2.6.39
自带的内核版本可以使用ipvsadm-1.24 ,使用rpm 的方式安装即可。
升级后的内核,按照lvs官方的要求,需要升级ipvsadm 的版本:
- ipvsadm-1.26-1.src.rpm (for kernel 2.6.28-rc3 or later) - February 8, 2011
- ipvsadm-1.26.tar.gz (for kernel 2.6.28-rc3 or later) - February 8, 2011
- ipvsadm-1.25.tar.gz (for kernel 2.6.28-rc3 or later) - November 5, 2008
- ipvsadm-1.24-6.src.rpm (for kernel between 2.6.10 and 2.6.27.4) - December 10, 2005
首先做一个内核的软链接,保证安装使用的是新内核:
[root@APP src]# ln -s /usr/src/kernels/2.6.39-900.109.1.reiserfs.el5uek/ /usr/src/linux
解压后make 报错:
[root@APP ipvsadm-1.26]# make
make -C libipvs
make[1]: Entering directory `/home/tao.li1/ipvsadm-1.26/libipvs'
gcc -Wall -Wunused -Wstrict-prototypes -g -fPIC -DLIBIPVS_USE_NL -DHAVE_NET_IP_VS_H -c -o libipvs.o libipvs.c
In file included from libipvs.h:13,
from libipvs.c:23:
ip_vs.h:15:29: error: netlink/netlink.h: No such file or directory
ip_vs.h:16:31: error: netlink/genl/genl.h: No such file or directory
ip_vs.h:17:31: error: netlink/genl/ctrl.h: No such file or directory
In file included from libipvs.h:13,
需要升级 libnl 软件包(rpm 自带1.0.0.10 ),升级版本至 1.1.14,用源码方式安装。
直接configure make 源码时候报错:
route/link/vlan.c:51: error: 'VLAN_FLAG_REORDER_HDR' undeclared here (not in a function)
make[2]: *** [route/link/vlan.o] Error 1
CC route/link/vlan.c
route/link/vlan.c:51: error: 'VLAN_FLAG_REORDER_HDR' undeclared here (not in a function)
make[2]: *** [route/link/vlan.o] Error 1
make[1]: *** [all] Error 2
make: *** [all] Error 2
解决方法:
lib/route/link/vlan.c:添加以下三行:
#ifndef VLAN_FLAG_REORDER_HDR
#define VLAN_FLAG_REORDER_HDR 0x01
#endif
#ifndef VLAN_FLAG_REORDER_HDR
#define VLAN_FLAG_REORDER_HDR 0x01
#endif
重新make make install。
如果遇到如下的错误,请卸载libnl 相关的软件包,
/home/tao.li1/ipvsadm-1.26/libipvs/libipvs.c:57: undefined reference to `nlmsg_alloc'
/home/tao.li1/ipvsadm-1.26/libipvs/libipvs.c:61: undefined reference to `genlmsg_put'
libipvs/libipvs.a(libipvs.o): In function `ipvs_nl_send_message':
/home/tao.li1/ipvsadm-1.26/libipvs/libipvs.c:82: undefined reference to `genl_connect'
/home/tao.li1/ipvsadm-1.26/libipvs/libipvs.c:85: undefined reference to `genl_ctrl_resolve'
/home/tao.li1/ipvsadm-1.26/libipvs/libipvs.c:96: undefined reference to `nl_socket_modify_cb'
/home/tao.li1/ipvsadm-1.26/libipvs/libipvs.c:102: undefined reference to `nl_recvmsgs_default'
libipvs/libipvs.a(libipvs.o): In function `ipvs_getinfo_parse_cb':
/home/tao.li1/ipvsadm-1.26/libipvs/libipvs.c:152: undefined reference to `genlmsg_parse'
libipvs/libipvs.a(libipvs.o): In function `ipvs_services_parse_cb':
/home/tao.li1/ipvsadm-1.26/libipvs/libipvs.c:570: undefined reference to `genlmsg_parse'
/home/tao.li1/ipvsadm-1.26/libipvs/libipvs.c:603: undefined reference to `nla_get_string'
/home/tao.li1/ipvsadm-1.26/libipvs/libipvs.c:608: undefined reference to `nla_get_string'
libipvs/libipvs.a(libipvs.o): In function `ipvs_dests_parse_cb':
/home/tao.li1/ipvsadm-1.26/libipvs/libipvs.c:735: undefined reference to `genlmsg_parse'
libipvs/libipvs.a(libipvs.o): In function `ipvs_timeout_parse_cb':
/home/tao.li1/ipvsadm-1.26/libipvs/libipvs.c:976: undefined reference to `genlmsg_parse'
libipvs/libipvs.a(libipvs.o): In function `ipvs_daemon_parse_cb':
/home/tao.li1/ipvsadm-1.26/libipvs/libipvs.c:1033: undefined reference to `genlmsg_parse'
/home/tao.li1/ipvsadm-1.26/libipvs/libipvs.c:1046: undefined reference to `nla_get_string'
编译安装keepalived
configure 结果如下:
Keepalived configuration
------------------------
Keepalived version : 1.2.8
Compiler : gcc
Compiler flags : -g -O2 -DETHERTYPE_IPV6=0x86dd
Extra Lib : -lpopt -lssl -lcrypto -lcrypt -lnl
Use IPVS Framework : Yes
IPVS sync daemon support : Yes
IPVS use libnl : Yes
Use VRRP Framework : Yes
Use VRRP VMAC : Yes
SNMP support : No
SHA1 support : No
Use Debug flags : No
启动keepalived 报错:
Starting keepalived: keepalived: error while loading shared libraries: libnl.so.1: cannot open shared object file: No such file or directory
[FAILED]
指定加载库 :ldconfig -f /etc/ld.so.conf (修改 /etc/ld.so.conf 增加下面一行)
/usr/local/lib
没有评论:
发表评论