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:  mtu 1500 qdisc pfifo_fast qlen 1000

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:  mtu 1500 qdisc pfifo_fast qlen 1000

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 上。