简介 Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived可以用来防止服务器单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生,通过配合Nginx可以实现 web前端服务的高可用。 安装 安装Keeplived依赖 安装 openssl yum install openssl* 安装popt yum install popt* 安装ipvsadm yum isntall ipvsadm 安装libnl-dev yum install libnl-dev* 安装Keepalived 1.cd /usr/src 2. tar -zxvf keepalived-1.1.15.tar.gz 3. cd keepalived-1.1.15 4. ln -s /usr/src/kernels/2.6.18-92.el5-i686/ /usr/src/linux 5. ./configure --prefix=/usr/local/keepalived 6. make 7. make install 8. vi /etc/keepalived/keepalived.conf 配置Keepalived 先是主服务器: [ html] view plaincopy global_defs { notification_email #通知email,根据实际情况配置 { admin@example.com } notification_email_from admin@example.com smtp_server 127.0.0.1 stmp_connect_timeout 30 router_id node1 #节点名标识,主要用于通知中 } vrrp_instance VI_NODE { state MASTER #配置为主服务器 interface eth0 #通讯网卡 virtual_router_id 100 #路由标识 priority 200 #优先级,0-254 advert_int 5 #通知间隔,实际部署时可以设置小一点,减少延时 authentication { auth_type PASS auth_pass 123456 #验证密码,用于通讯主机间验证 } virtual_ipaddress { 192.168.1.206 #虚拟ip,可以定义多个 } } 接下是从服务器设置: [html] view plaincopy global_defs { notification_email { admin@example.com } notification_email_from admin@example.com smtp_server 127.0.0.1 stmp_connect_timeout 30 router_id node2 } vrrp_instance VI_NODE { state BACKUP #与主服务器对应 interface eth0 #从服务器的通信网卡 virtual_router_id 100 #路由标识,和主服务器相同 priority 100 #优先级,小于主服务器即可 advert_int 5 #这里是接受通知间隔,与主服务器要设置相同 authentication { auth_type PASS auth_pass 123456 #验证密码,与主服务器相同 } virtual_ipaddress { 192.168.1.206 #虚拟IP,也要和主服务器相同 } } 上面的设置是最基础的设置,实现的功能是如果主服务器的Keepalived停止服务(一般情况下服务器宕机),则将虚拟IP切换至从服务器,主服务器恢复后从新切换回主服务器。 操作Keepalived Keepalived的启动 /usr/local/keeepalived/sbin/keepalived -f /usr/local/keepalived/etc/keepalived/keepalived.conf Keepalived的停止 killall -9 keepalived 查看是否建立VIP(虚拟IP) ip add 查看进程是否开启 ps –aux 问题解决 1、KeepaLived无法和ipvs结合 1.1、现象 Keepalived version : 1.1.15 Compiler : gcc Compiler flags : -g -O2 Extra Lib : -lpopt -lssl -lcrypto Use IPVS Framework : No IPVS sync daemon support : Yes Use VRRP Framework : Yes Use LinkWatch : No Use Debug flags : No 1.2、原因 keepalived默认编译时是在/usr/src/linux下找内核源代码。 我的内核源代码都在:/usr/src/kernels/2.6.18-53.el5-x86_64/这个目录下。 1.3、解决 ln -s /usr/src/kernels/2.6.18-92.el5-i686/ /usr/src/linux 2、openssl找不到问题 见上文步骤安装openssl