简介
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 #配置为主服务器
inte易做图ce 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 #与主服务器对应
inte易做图ce 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