LVS Keepalived 方案是和LVS Heartbeat 一样的高可用加负载均衡方案, Keepalived 于
Heartbeat 相比在部署和管理方面都大大简化了。
1.0 集群环境列表
IP 地址主机名说明
---------------loader Balance 负载层----------------
192.168.140.140 VIP
192.168.140.141 Web-Director LVS Director
192.168.140.143 Web-Backup Keepalived Backup
---------------Sserver custer 服务器集群层----------------
192.168.140.137 Web-node1 Web 节点
192.168.140.139 Web-node2 Web 节点
---------------Storage 存储层-----------------------
1.1 其它注意事项
1> LVS Keepalived 方案ipvsadm 的管理有keepalived 负责。
2> LVS 后端节点的监控检查也是keepalived 进行。
3> 注意内核版本和ipvsadm 版本的对应。
4> 注意ip_vs 模块是否载入内核。
1.2 部署LVS Keepalived
检查内核版本和模块
[root@Web-Director ~]# uname -r
2.6.18-164.el5
[root@Web-Director ~]# modprobe ip_vs
[root@Web-Director ~]# lsmod | grep ip_vs
ip_vs 121473 0
1.3 下载软件包
[root@Web-Director ~]# ln -s /usr/src/kernels/2.6.18-164.el5-x86_64/ /usr/src/linux
[root@Web-Director ~]# cd /usr/local/src
[root@Web-Director src]# wget
http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
[root@Web-Director src]# wget
http://www.keepalived.org/software/keepalived-1.1.20.tar.gz
1.4 安装ipvsadm
注意:Web-Director 和Web-Backup 安装相同
[root@Web-Director src]# tar zxvf ipvsadm-1.24.tar.gz
[root@Web-Director src]# cd ipvsadm-1.24
有关安装的相关信息,可以查看该目录下的README 文件。
[root@Web-Director ipvsadm-1.24]# make && make install
安装完毕后会产生以下文件:
/sbin/ipvsadm
/sbin/ipvsadm-save
/sbin/ipvsadm-restore
/usr/man/man8/ipvsadm.8
/usr/man/man8/ipvsadm-save.8
/usr/man/man8/ipvsadm-restore.8
/etc/rc.d/init.d/ipvsadm
1.5 安装Keepalived
注意:Web-Director 和Web-Backup 安装相同
[root@Web-Director src]# tar zxvf keepalived-1.1.20.tar.gz
[root@Web-Director src]# cd keepalived-1.1.20
[root@Web-Director keepalived-1.1.20]# ./configure --prefix=/usr/local/keepalived
Keepalived configuration
------------------------
Keepalived version : 1.1.20
Compiler : gcc
Compiler flags : -g -O2
Extra Lib : -lpopt -lssl -lcrypto
Use IPVS Framework : Yes
IPVS sync daemon support : Yes
Use VRRP Framework : Yes
Use Debug flags : No
如果出现以上输出,说明可以正常编译安装。
[root@Web-Director keepalived-1.1.20]# make && make install
[root@Web-Director ~]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived
/etc/rc.d/init.d/
[root@Web-Director ~]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@Web-Director ~]# /usr/local/keepalived/sbin/keepalived --help
如果你执行了keepalived 命令,你会发现它默认去/etc/keepalived/keepalived.conf 找配置文件,
所以我们要把配置文件创建到此处方便启动,当然,你也可以自己制定配置文件位置。
[root@Web-Director ~]# mkdir /etc/keepalived
[root@Web-Director ~]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf
/etc/keepalived/
[root@Web-Director ~]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
1.6 LVS 配置
LVS 配置是由keepalived 依靠/etc/keepalived/keepalived.conf 来进行配置的,也就是说我
们不需要手动配置ipvsadm 程序,但是我们做为LVS DR 模式运行,不能忘了对真实机的配。
RealServer 配置 -------这里直接用脚本执行
[root@Web-node1 ~]# /sbin/realserver.sh start
RealServer Start OK
[root@Web-node2 ~]# /sbin/realserver.sh start
RealServer Start OK
在RealServer 执行完realserver.sh 后,一定要检查:
[root@Web-node1 ~]# ifconfig lo:0
lo:0 Link encap:Local Loopback
inet addr:192.168.140.140 Mask:255.255.255.255
UP LOOPBACK RUNNING MTU:16436 Metric:1
[root@Web-node2 ~]# ifconfig lo:0
lo:0 Link encap:Local Loopback
inet addr:192.168.140.140 Mask:255.255.255.255
UP LOOPBACK RUNNING MTU:16436 Metric:1
这样才表示与VIP地址绑定好了。
1.7 Keepalived 配置
这是LVS Keepalived 集群方案的核心,主要集中在/etc/keepalived/keepalived 文件上。
Keepalived 有两种状态,MASTER 和BACKUP,配置大致相似。
Web-Director 配置
下面是一个配置好的keepalived.conf 文件,对于每行用注释说明。
[root@Web-Director ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs { #全局定义块
notification_email {
[email protected] #邮件通知模块,定义通知邮件地址。
}
notification_email_from localhost #
smtp_server 127.0.0.1 #定义SMTP Server
smtp_connect_timeout 30 #SMTP 链接超时时间
router_id LVS_MASTER #运行keepalived 机器的一个标识,注意:Web-Backup 应该不
同,修改为LVS_BACKUP
}
vrrp_instance VI_1 {
state MASTER #实例状态,注意:Web-Backup 应该修改为BACKUP
interface eth0 #指定对外服务的网卡。
virtual_router_id 51
priority 101 #优先级,注意:Web-Backup 应该修改比这个值小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.140.140
}
}
virtual_server 192.168.140.140 80 {
delay_loop 6 #健康检查的时间间隔
lb_algo wrr #负载均衡的调度算法
lb_kind DR #负载均衡转发模式
nat_mask
255.255.255.0
persistence_timeout 50 #会话保持时间,针对动态网站
protocol TCP #转发的协议
real_server 192.168.140.137 80 { #真实机的设置
weight 1 #真实机的权重,在带有加权调度的调度算法中有用
TCP_CHECK { #TCP 健康检查
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.140.139 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
BACKUP 端配置
BACKUP 端配置和MASTER 几乎一样,可以直接用scp 从MASTER 端复制一份过来,做以下修改即
可:
router_id LVS_MASTER
state MASTER
priority 101
1.8 LVS Keepalived 方案测试
启动keepalived 服务
[root@Web-Director ~]# /etc/init.d/keepalived start
[root@Web-Backup ~]# /etc/init.d/keepalived start
VIP 切换测试
[root@Web-Director ~]# ip ad li eth0
2: eth0:
link/ether 00:0c:29:57:04:db brd ff:ff:ff:ff:ff:ff
inet 192.168.140.141/24 brd 192.168.140.255 scope global eth0
inet 192.168.140.140/32 scope global eth0
inet6 fe80::20c:29ff:fe57:4db/64 scope link
valid_lft forever preferred_lft forever
可以发现,默认的VIP 是绑定在优先级比较高的这台MASTER 上,也就是Web-Director 服务器。
[root@Web-Backup ~]# ip ad li eth0
2: eth0:
link/ether 00:0c:29:45:5e:0e brd ff:ff:ff:ff:ff:ff
inet 192.168.140.143/24 brd 192.168.140.255 scope global eth0
inet6 fe80::20c:29ff:fe45:5e0e/64 scope link
valid_lft forever preferred_lft forever
你可以手动来停掉Web-Director 上的keepalived 服务,VIP 就会自动切刀Web-Backup 上。