CentOS6.2下配置KeepLived + LVS
来源:互联网 发布:blast算法 编辑:程序博客网 时间:2024/05/19 17:10
网上看了许多例子,都有些小毛病,小笔误导致不能配置成功,我再REMIX一版希望对后来者有帮助。
LVS:软负载均衡软件,在网络7层中第4层进行转发,效率很高
KeepLived:通过VRRP协议,选举中一台MASTER机器使用设定的虚IP,并且在MASTER掉线时,BACKUP机器自动托管该虚IP,对外界透明,外界只和虚IP进行通讯
安装软件:
yum install ipvsadm
yum install keepalived
相关文件位置:
keepalived{
配置文件:/etc/keepalived/keepalived.conf
LOG文件:/var/log/messages
}
keepalived配置文件样例:
====================
keepalived.conf (MASTER)
====================
global_defs
{
notification_email
{
admin@company.com
}
notification_email_from admin@company.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_NODE_A # MASTER & BACKUP结点该ID可以不同
}
vrrp_sync_group lb
{
group
{
loadbalance
}
}
vrrp_instance loadbalance
{
state MASTER # MASTER, BACKUP
interface eth0
virtual_router_id 51 # master & backup must have same value
priority 100
advert_int 1
authentication
{
auth_type PASS
auth_pass 1111
}
virtual_ipaddress
{
192.168.1.100 # Virtual IP Address
}
}
virtual_server 192.168.1.100 8080 {
delay_loop 5
lb_algo wlc
lb_kind DR # NAT, TUN, DR
persistence_timeout 300
protocol TCP # UDP, TCP
real_server 192.168.1.228 8080
{
weight 100
TCP_CHECK
{
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 8080
}
}
real_server 192.168.1.229 8080
{
weight 100
TCP_CHECK
{
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 8080
}
}
}
【P1】
{
执行相关命令:
启动keepalived:/etc/init.d/keepalived start 或者 service keepalived start/stop/restart
设置自启动:chkconfig keepalived on
查看ipvs规则是否生效:ipvsadm -L -n 会显示类似下面结果
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.2.33:80 wlc persistent 50
-> 192.168.2.29:80 Route 100 0 0
-> 192.168.2.30:80 Route 100 0 0
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.2.33:80 wlc persistent 50
-> 192.168.2.29:80 Route 100 0 0
-> 192.168.2.30:80 Route 100 0 0
}
第二台LVS机器,安装完软件后,使用下面配置文件
====================
keepalived.conf (BACKUP)
====================
拷贝MASTER配置文件
修改{
state => BACKUP
priority => 90
}
执行【P1】命令段
测试部分
测试主备切换功能
在MASTER上,执行 ip addr 结果表明MASTER服务器拥有虚IP地址
在BACKUP上,执行 ip addr 结果表明BACKUP服务器不拥有虚IP地址
在MASTER上执行 service keepalived stop
在MASTER上,执行 ip addr 结果表明MASTER服务器不拥有虚IP地址
在BACKUP上,执行 ip addr 结果表明BACKUP服务器拥有虚IP地址
在MASTER上执行 service keepalived start
在MASTER上,执行 ip addr 结果表明MASTER服务器拥有虚IP地址
在BACKUP上,执行 ip addr 结果表明BACKUP服务器不拥有虚IP地址
配置WEB服务器(在keepalived概念中,web服务器也叫 real server)
例子中采用DR方式调度(LVS中的概念,查LVS中文站点可知其详细意义)
在Real Server上需要进行配置,即在每个Real Server上都需要进行相同的配置
1,编写lvsrs脚本放置/etc/init.d下面:vi /etc/init.d/lvsrs
脚本文件内容:
================================================================
#!/bin/bash
# description: Config realserver lo and apply noarp
SNS_VIP=192.168.1.100
sh /etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
/sbin/route add -host $SNS_VIP dev lo:0
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
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
route del $SNS_VIP >/dev/null 2>&1
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
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
================================================================
2,加权限 chmod 755 /etc/init.d/lvsrs
3,启动 service lvsrs start
4,加入自启动 echo "service lvsrs start" >> /etc/rc.local
FQA
Q: 两台LVS主机都变成了MASTER,导致无法使用虚IP进行方法,俗称「脑裂」现象,怎么回事?
A: 这是由于没有关闭防火墙的缘故。LVS+KeepAlived原理是使用VRRP协议进行互相通讯,默认防火墙会进行拦截。
关闭防火墙即可解决该问题。
不关闭防火墙的解决办法如下:
/sbin/iptables -A INPUT -i eth0 -d 224.0.0.0/8 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p 112 -j ACCEPT
service iptables save
service iptables restart
Q: 为什么访问不了Real Server页面呢?
A: 因为你忘记了在Real Server上运行lvsrs脚本了,DR模式下Response不通过LVS转发,而直接将Response发给客户端,所以在RealServer上需要配置识别虚IP
0 0
- CentOS6.2下配置KeepLived + LVS
- LVS+Keeplived+dns+http备忘
- LVS+Keeplived+dns+http备忘
- [转]CentOS6.2下搭建LVS(NAT)+Keep…
- [转]CentOS6.2下搭建LVS(DR)+Keepa…
- CentOS6.4 配置LVS(DR模式)
- CentOS6.4 配置LVS(DR模式)
- Centos6 Lvs+Keepalived Dr模式 配置搭建
- centos6.2下配置nfs
- centos6.2下配置nfs
- centos6.2下配置nfs
- centos6.2下配置nfs
- centos6.2下配置nfs
- CentOS6.2下搭建LVS(NAT)+Keepalived实现高性能高可用负载均衡
- linux下的lvs配置
- linux下lvs配置说明
- LVS+keeplived+nginx+tomcat高可用、高性能jsp集群
- LVS+keeplived+nginx+tomcat高可用、高性能jsp集群
- Lua内存的监测和回收
- TClientDataSet[5]: 读取数据
- angularJs中directive的scope ‘@’,‘=’区别
- java WebSocket 简易聊天消息推送
- 【iOS开发】自定义UIView边框的颜色
- CentOS6.2下配置KeepLived + LVS
- 分治法
- [hihoCoder] #1305 : 区间求差 解题报告
- 多文件上传,使用js对文件进行校验,包括文件单个大小,格式,总的文件大小,文件是否为空等
- LeetCode:Multiply Strings
- vs2010调用ffmpeg的avcodec.lib崩溃的解决方案
- Sed命令的基本使用
- Java多线程中join方法的理解
- Chrome浏览器,搜索JS方法。