lvs负载均衡——DR模式

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。
VS/NAT、VS/TUN和VS/DR技术是LVS集群中实现的三种IP负载均衡技术。在已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation)。在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出了通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。
优点:
1、开源,免费
2、在网上能找到一些相关技术资源
3、具有软件负载均衡的一些优点
缺点:
1、最核心的就是没有可靠的支持服务,没有人对其结果负责;
2、功能比较简单,支持复杂应用的负载均衡能力较差,如算法较少等;
3、开启隧道方式需重编译内核;
4、配置复杂;
Lvs-DR模式
LVS的DR工作模式,是目前生产环境中最常用的一种工作模式,Lvs-DR是三种模式中性能最高的一种模式,比Lvs-NAT模式下负载的RS serve更多,通常在100台左右,对网络环境要求更高
LVS负载均衡模式—DR模式特点:
1、各RIP 必须与 DIP 在同一个网络中(相同的广播域);
2、RS 的 RIP 可以使用私有地址,也可以使用公网地址,以方便配置;
3、不支持端口映射;
4、RS可以使用必须为uninx操作系统(OS);且RS需要仰制arp,需要在
loopback配置vip;
5、Director 仅负责处理入站请求,响应报文由 Realserver 直接发往客户端;
6、Realserver 不能将网关指向 DIP,而直接使用前端网关响应请求报文
具体操作:
Server1:
[root@server1 ~]# vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.31.250/rhel6.5
gpgcheck=0

[HighAvailability]
name=HighAvailability
baseurl=http://172.25.31.250/rhel6.5/HighAvailability
gpgcheck=0

[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.31.250/rhel6.5/LoadBalancer
gpgcheck=0

[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.31.250/rhel6.5/ResilientStorage
gpgcheck=0

[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.31.250/rhel6.5/ScalableFileSystem
gpgcheck=0
[root@server1 ~]# yum install ipvsadm -y
[root@server1 ~]# ipvsadm -A -t 172.25.31.100:80 -s rr
[root@server1 ~]# ipvsadm -a -t 172.25.31.100:80 -r 172.25.27.2:80 -g
[root@server1 ~]# ipvsadm -a -t 172.25.31.100:80 -r 172.25.27.2:80 -g
[root@server1 ~]# ip addr add 172.25.27.100/24 dev eth0

开启server2和server3的apache
Server2:
[root@server2 ~]# /etc/init.d/httpd start
[root@server2 ~]# vim /var/www/html/index.html #修改发布内容,为了更好的显示轮询

server2

Server3: [root@server3 ~]# /etc/init.d/httpd start

[root@server3 ~]# vim /var/www/html/index.html

server3

[root@server2 ~]# ip addr add 172.25.31.100/32 dev eth0 #在real_server上添加ip,有的虚拟机在eth0上添加ip会导致网络启动不了,视情况而定
[root@server2 ~]# yum install arptables_jf -y #安装arp防火墙
[root@server2 ~]# arptables -A IN -d 172.25.31.100 -j DROP #将所以访问172.25.31.100的请求包丢掉
[root@server2 ~]# arptables -A OUT -s 172.25.81.100 -j mangle --mangle-ip-s 172.25.31.2 #将源地址是172.25.31.100的请求包发给172.25.31.2
[root@server2 ~]# /etc/init.d/arptables_jf save #保存设置

server3,同server2

在真机中进行测试 curl 172.25.31.100
显示负载均衡,server2和server3轮流被调用

Ldirectord 实现lvs健康检查
server1:
[root@server1 ~]# yum install ldirectord-3.9.5-3.1.x86_64.rpm -y
[root@server1 ~]# cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/
[root@server1 ~]# cd /etc/ha.d/
[root@server1 ha.d]# vim ldirectord.cf
virtual=172.25.31.100:80
real=172.25.31.2:80 gate
real=172.25.31.3:80 gate
fallback=127.0.0.1:80 gate
service=http
scheduler=rr
#persistent=600
#netmask=255.255.255.255
protocol=tcp
checktype=negotiate
checkport=80
request=“index.html”
receive=“Test Page”
virtualhost=www.x.y.z
[root@server1 ha.d]# vim ldirectord.cf #修改服务端口为80
Listen=80
[root@server1 ha.d]# /etc/init.d/ipvsadm stop
[root@server1 ha.d]# /etc/init.d/ldirectord start
关闭server2和server3的apache ,打开server1的http
[root@server1 ha.d]# /etc/init.d/httpd start
[root@server1 ha.d]# vim /var/www/html/index.html

网站正在维护中...

真机测试:curl 172.25.31.100 显示真机的页面发布内容,当所有的服务器均不可用时,直接访问真机http服务,为了减少企业不必要的损失,我们必须有两台调度器

Keepalived 高可用集群管理
[root@server1 ~]# /etc/init.d/ldirectord stop #由于ldirectord 与Keepalived
冲突,必须将ldirectord停掉
[root@server1 ~]# chkconfig ldirectord off #由于ldirectord 开机自启,所以必须将其开机自启关掉
lftp获取keepalived软件
[root@server1 ~]# tar zxf keepalived-2.0.6.tar.gz
[root@server1~]# yum install openssl-devel libnl3-devel ipset-devel iptables-devel libnfnetlink-devel gcc -y
[root@server1 ~]# ./configure --prefix=/usr/local/keepalived --with-init=SYSV
[root@server1 ~]# make
[root@server1 ~]# make install
[root@server1 ~]# cd /usr/local/keepalived/etc/rc.d/init.d/
[root@server1 ~]# chmod +x keepalived #增加可执行权限
[root@server1 init.d]# ln -s /usr/local/keepalived/etc/keepalived/ /etc/ #生成软链接
[root@server1 init.d]# cd /etc/keepalived/
[root@server1 keepalived]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@server1 keepalived]# ln -s /usr/local/keepalived/sbin/keepalived /sbin/
[root@server1 keepalived]# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
[root@server1 keepalived]# cd /etc/keepalived
[root@server1 keepalived]# vim keepalived.conf #修改配置文件
!Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr

vrrp_strict

vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 7
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.31.100
}
}
virtual_server 172.25.31.100 80 { #VS
delay_loop 3
lb_algo rr
lb_kind DR
#persistence_timeout 50
protocol TCP
real_server 172.25.31.2 80 { #RS
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
real_server 172.25.31.3 80 { #RS
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
将server1中设置好keepalived配置文件发送给server4
[root@server1 keepalived]# scp -r /usr/local/keepalived server4:/usr/local
[root@server1 keepalived]# scp -r /etc/keepalived/keepalived.conf server4:/etc/keepalived/

[root@server1 keepalived]# /etc/init.d/keepalived start

Server4:
生成软链接,同server1
修改配置文件
[root@server4 keepalived]# vim keepalived.conf #修改state 和 priority
vrrp_instance VI_1 {
state BACKUP #将状态由原来的master 改为备用
interface eth0
virtual_router_id 51
priority 50 #更改优先级,使其和server1上的优先级不同,避免若一台主机挂掉以后,若优先级是一致的,等原来的主机恢复后,会因为优先级是一致的而导致争抢,同时操作电脑上的同一台文件,而导致脑裂。
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
[root@server4 keepalived]# /etc/init.d/keepalived start

真机测试:
负载均衡正常,人为宕掉server1,server4将继续接管,网站运行正常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值