通信人家园
标题: LVS配置方法 [查看完整版帖子] [打印本页]
时间: 2014-9-16 19:08
作者: wjgme
标题: LVS配置方法
LVS配置方法
1.1、服务脚本
将Keepalived做成服务启动(MASTER和BACKUP都是必须的),具体步骤如下:
(1)拷贝服务启动脚本
#cp ./keepalived/etc/init.d /etc/init.d
(2)拷贝配置文件
#mkdir /etc/keepalived
#cp ./keepalived/etc/keepalived/keepalived.conf /etc/keepalived
(3)拷贝可执行文件
#cp ./bin/keepalived /usr/bin
(4)启动/停止服务
#service keepalived start
#service keepalived stop
1.2、配置MASTER
备份并打开配置文件修改部分内容,尤其注意红色部分,具体如下:
#cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
#vi /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER # 状态实际MASTER,备份服务器上将 MASTER 改为 BACKUP
interface eth0 # 监测网络接口
virtual_router_id 51 #主、备机的 virtual_router_id 必须相同
priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1 #VRRP Multicast 广播周期秒数
authentication {
auth_type PASS #VRRP 认证方式
auth_pass 1111 #VRRP 口令字
}
virtual_ipaddress { # 虚拟IP地址列表,即VIP
172.28.19.200
172.28.19.201
172.28.19.202
}
}
virtual_server 172.28.19.200 8080 {
delay_loop 6 # 每隔6 秒查询 realserver 状态
lb_algo wlc #lvs 算法
lb_kind DR # DR模式
persistence_timeout 50 # 同一IP 的连接60 秒内被分配到同一台realserver
protocol TCP # 用 TCP 协议检查 realserver状态
real_server 172.28.19.100 8080 {
weight 1 # 权重(权重越高处理的请求越多)
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 8080
}
}
real_server 172.28.19.101 8080 {
weight 1 # 权重(权重越高处理的请求越多)
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 8080
}
}
real_server 172.28.19.102 8080 {
weight 1 # 权重(权重越高处理的请求越多)
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 8080
}
}
}
virtual_server 172.28.19.201 25 {
delay_loop 6
lb_algo wlc
lb_kind DR # DR模式
persistence_timeout 50
protocol TCP
real_server 172.28.19.103 25 {
weight 1 # 权重(权重越高处理的请求越多)
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 25
}
}
real_server 172.28.19.104 25 {
weight 1 # 权重(权重越高处理的请求越多)
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 25
}
}
real_server 172.28.19.105 25 {
weight 1 # 权重(权重越高处理的请求越多)
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 25
}
}
}
virtual_server 172.28.19.202 21 {
delay_loop 6
lb_algo wlc
lb_kind DR # DR模式
persistence_timeout 50
protocol TCP
real_server 172.28.19.106 21 {
weight 1 # 权重(权重越高处理的请求越多)
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 21
}
}
real_server 172.28.19.107 21 {
weight 1 # 权重(权重越高处理的请求越多)
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 21
}
}
real_server 172.28.19.108 21 {
weight 1 # 权重(权重越高处理的请求越多)
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 21
}
}
}
1.3、配置BACKUP
BACKUP配置与MASTER基本一致,除了红色部分外,具体如下:
#cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
#vi /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKP # 状态实际BACKUP
...
priority 99 # 优先级99(比MASTER优先级100低)
...
}
1.4、配置Realserver
为Realserver的某块网卡创建启动脚本,脚本内容如下:
#vi realserverd
#!/bin/bash
VIP=172.28.19.200
. /etc/rc.d/init.d/functions
case "$1" in
start)
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
sysctl -p > /dev/null 2>&1
echo "realserver start OK"
;;
stop)
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
ifconfig lo:0 down
/sbin/route del $VIP > /dev/null 2>&1
echo "realserver stoped"
;;
*)
echo "Usage

0 {start|stop}"
exit 1
esac
exit 0
注意脚本中红色部分,每块网卡绑定一个虚拟IP地址,如果绑定多个虚拟IP,则需要为每块网卡创建一个脚本,并且指定lo:X(比如:lo:0,lo:1等),另外,.和/etc/rc.d/funtions之间有空格。
启动keepalived服务,并执行上述脚本,然后用ip a能确认是否有VIP地址。
输入ipvsadm -Ln查看LVS工作状态。
停止MASTER的keepalived服务,BACKUP能接管VIP地址,再次启动MASTER的keepalived服务,MASTER又能再一次接管VIP地址。
通信人家园 (https://www.txrjy.com/) |
Powered by C114 |