下载keepalived
http://www.keepalived.org/software/
首先检查安装openssl-devel
yum install openssl-devel
如果是离线,借鉴文章:
# ./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.32-279.el6.x86_64
当出现如下字样
Keepalived configuration
------------------------
Keepalived version : 1.2.19
Compiler : gcc
Compiler flags : -g -O2
Extra Lib : -lssl -lcrypto -lcrypt
Use IPVS Framework : Yes
IPVS sync daemon support : Yes
IPVS use libnl : No
fwmark socket support : Yes
Use VRRP Framework : Yes
Use VRRP VMAC : Yes
SNMP support : No
SHA1 support : No
Use Debug flags : No
执行安装命令
make
# make install
设置keepalived开机启动脚本
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
chkconfig keepalived on
新建一个配置文件,默认keepalived启动会去/etc/keepalived目录下寻找配置文件
# mkdir /etc/keepalived
# vi /etc/keepalived/keepalived.conf
global_defs {
notification_email {
test@163.com
}
notification_email_from root@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER # 备份服务器上将 MASTER 改为 BACKUP
interface eth0 # HA 监测网络接口
virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 2 # VRRP Multicast 广播周期秒数
authentication {
auth_type PASS #VRRP 认证方式
auth_pass 1111 #VRRP 口令字
}
virtual_ipaddress {
192.168.30.20 # VRRP HA 虚拟地址 如果有多个VIP,继续换行填写
}
}
virtual_server 192.168.30.20 80 {
delay_loop 2 # 每隔 6 秒查询 realserver 状态
lb_algo rr #lvs 算法
lb_kind DR # Direct Route
persistence_timeout 50 # 同一IP 的连接60 秒内被分配到同一台realserver
protocol TCP # 用 TCP 协议检查 realserver 状态
real_server 192.168.30.12 80 {
weight 3 #(权重)
TCP_CHECK {
connect_timeout 10 #(10秒无响应超时)
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.30.13 80 {
weight 3 #(权重)
TCP_CHECK {
connect_timeout 10 #(10秒无响应超时)
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
配置完成后启动keepalived,
如果是要配置mysql HA,那么需要在启动mysql相关服务前,要启动keepalived,否则将会无法连接到服务器
如果需要配置读写优先级分离,可以配置权重即可,参考文章: http://www.elesos.com/index.php?title=MySQL%E9%9B%86%E7%BE%A4%E7%B3%BB%E5%88%972%EF%BC%9A%E9%80%9A%E8%BF%87keepalived%E5%AE%9E%E7%8E%B0%E5%8F%8C%E4%B8%BB%E9%9B%86%E7%BE%A4%E8%AF%BB%E5%86%99%E5%88%86%E7%A6%BB&printable=yes#.E6.B5.8B.E8.AF.95.E8.AF.BB.E5.86.99.E5.88.86.E7.A6.BB
相关参考文档:
http://www.showerlee.com/archives/702
keepalived+LVS超时设置产生的realserver的tcp连接不释放问题:
怎么样让 LVS 和 realserver 工作在同一台机器上
http://www.linuxde.net/2012/05/10652.html
keepalived的健康检查方式
http://www.360doc.com/content/14/0415/10/1123425_369112331.shtml
lvs & keepalived的tcp 长连接的有关问题解决方法
http://www.csdn123.com/html/exception/110/110689_110683_110687.htm