部署LVS-DR群集

一、LVS-DR原理剖析

(一)LVS-DR数据包流向分析

1、Client向目标VIP发出请求,Director(负载均衡器)接收。此时IP包头及数据帧头信息为:

2、Director根据负载均衡算法选择RealServer_1,不修改也不封装IP报文,而是将数据帧的MAC地址改为RealServer_1的MAC地址,然后在局域网上发送。IP包头及数据帧头信息如下:

3、RealServer_1收到这个帧,解封装后发现目标IP与本机匹配(RealServer事先绑定了VIP),于是处理这个报文。随后重新封装报文,发送到局域网。此时IP包头及数据帧头信息为:

(二)LVS-DR中的ARP问题

1、问题阐述

  在LVS-DR负载均衡群集中,负载均衡器与节点服务器都要配置相同的VIP地址,在局域网中具有相同的IP地址,势必会造成各服务器ARP通信的紊乱,当一个ARP广播发送到LVS-DR集群时,因为负载均衡器和节点服务器都是连接到相同的网络上的,他们都会接受到ARP广播,这个时候应该只有前端的负载均衡器进行相应,其他节点服务器不应该响应ARP广播。

2、处理方法

  对节点服务器进行处理,使其不响应针对VIP的ARP请求

(1)使用虚接口lo:0承载VIP地址,意思就是我们给每个节点配置的VIP并不是针对网卡而设置的,虚接口里的VIP只是标识这个节点中有这么一个ip地址而已,但不是某一个具体网卡上的

(2)那么我们还需要设置系统只响应目的IP为本地IP的ARP请求,也就是说让这个VIP不响应ARP请求,这样我们可设置内核参数arp_ignore=1

3、应答过程分析

  RealServer返回报文(源IP是VIP)经路由器转发,在重新封装报文时,需要先获取路由器的MAC地址,发送ARP请求时,Linux默认使用IP包的源IP地址(即VIP)作为ARP请求包中的源IP地址,而不使用发送接口(例如eth0)的IP地址。路由器收到ARP请求后,将更新ARP表项,原有的VIP对应Director的MAC地址会被更新为VIP对应RealServer的MAC地址

4、新ARP请求问题

  由于路由器更新了ARP表项,此时新来的请求报文,会将该报文转发给RealServer,从而导致Director的VIP失效!

5、新问题处理方法

  对节点服务器进行处理,让系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址,设置内核参数arp_announce=2

6、解决ARP的两个问题的设置方法:修改/etc/sysctl.conf 文件

net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

二、LVS-DR配置

案例环境

  一台LVS调度器、四台节点服务器,均配置双网卡:第一块网卡eth0连接至Internet,位于192.168.10.0/24网段,第二块网卡eth1连接至内网,位于192.168.7.0/24网段,共享存储由一台Linux服务器承担,将目录/var/www/html发布为NFS可写共享。只允许LVS调度器、节点服务器访问,以root用户挂载时允许写入,Web群集的地址为192.168.10.70,通过此地址访问公司的Web站点

部署步骤

(一)配置LVS调度器
1、配置IP和VIP
1)配置IP

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 

2)配置VIP

[[email protected] ~]#cp /etc/sysconfig/network-scripts/ifcfg-eth0  /etc/sysconfig/networkscripts/ifcfg-eth0:0
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:0
添加:
DEVICE=eth0:0
ONBOOT=yes
IPADDR=192.168.10.70
NETMASK=255.255.255.0
[[email protected] ~]# service network restart

2、调整响应参数

[[email protected] ~]# vim /etc/sysctl.conf
添加:
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
[[email protected] ~]# sysctl -p

3、安装并配置ipvsadm

[[email protected] ~]# rpm -ihv /mnt/Packages/ipvsadm-1.26-2.el6.x86_64.rpm
[[email protected] ~]# service ipvsadm start
[[email protected] ~]# ipvsadm -A -t 192.168.10.70:80 -s rr #添加虚拟director的vip地址,轮询的调度算法
[[email protected] ~]# ipvsadm -a -t 192.168.10.70:80 -r 192.168.10.77 -g -w 1 #添加rip,-g代表DR模式
[[email protected] ~]# ipvsadm -a -t 192.168.10.70:80 -r 192.168.10.78 -g -w 1
[[email protected] ~]# ipvsadm -L -n    #查询配置
[[email protected] ~]# service ipvsadm save
[[email protected] ~]# chkconfig --add ipvsadm
[[email protected] ~]# chkconfig ipvsadm on

(二)配置WEB节点服务器
1、配置IP地址
1)设置IP

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 

2)设置VIP

[[email protected] ~]# cp /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/networkscripts/ifcfg-lo:0
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
修改:
DEVICE=lo:0
IPADDR=192.168.10.70
NETMASK=255.255.255.255
ONBOOT=yes

3)添加路由

[[email protected] ~]# route add -host 192.168.10.70 dev lo:0  #将vip限制在本机
[[email protected] ~]# echo "route add -host 192.168.10.70 dev lo:0" >> /etc/rc.local 

2、调整响应参数

[[email protected] ~]# vim /etc/sysctl.conf
添加:
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[[email protected] ~]# sysctl -p

3、配置http服务

[[email protected] ~]# echo "welcome to 192.168.10.78 web server" > /var/www/html/index.html
[[email protected] ~]# service httpd restart

(三)验证
1、客户端访问:

[[email protected] ~]# http://192.168.10.70/

2、在LVS上查看:

[[email protected] ~]# ipvsadm -Lnc
时间: 2024-08-25 06:30:33

部署LVS-DR群集的相关文章

RHEL 5.4下部署LVS(DR)+keepalived实现高性能高可用负载均衡

原文地址:http://www.cnblogs.com/mchina/archive/2012/05/23/2514728.html 一.简介 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. 目前有三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR):十种调度算法(rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq). K

一个公网地址部署LVS/DR模式

http://blog.chinaunix.net/uid-7411781-id-3436142.html 网上看了很多关于LVS的文章,在选取2种模式LVS/DR和LVS/NAT,看到很多人的观点都认为DR模型中必须要使用多个公网地址,既DIP,VIP,RIP必须在同一网段内 刚开始我的想法也是如此,所知道的唯一的解决方案就是在LVS集群之前再加一台路由器,用路由器做静态NAT转换,后端的LVS集群则使用DR 模式.不过这样一来就比较耗成本,要有一台路由器专门负责NAT的转换工作,而且压力都转

Linux下部署LVS(DR)+keepalived+Nginx负载均衡

架构部署 LVS/keepalived(master):192.168.21.3 LVS/keepalived(Slave):192.168.21.6 Nginx1:192.168.21.4 Nginx2:192.168.21.5 VIP:192.168.21.10 1.安装ipvsadm.keepalived(Master/Slave) yum -y install keepalived ipvsadm 2.修改keepalived.conf文件 LVS_master cd /etc/keep

ubuntu环境部署LVS DR模式

一.环境说明:系统环境:ubuntu14.04lvs服务器:10.36.1.55/10.36.1.56真实服务器:10.36.1.55/10.36.1.56 在这里也充当mysql和zabbix角色VIP:10.36.1.101部署目的:1.访问VIP的3306端口,可以将请求报文转发至10.36.1.55-56上进行负载2.zabbix agent向VIP的10051端口上报采集数据的时候,可以将请求报文转发至10.36.1.55-56上进行负载3.向VIP访问80端口(zabbix web管

CentOS 6.3下部署LVS(NAT模式)+keepalived实现高性能高可用负载均衡

一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalived版本:keepalived-1.2.4 三.安装 0.安装LVS前系统需要安装popt-static,kernel-devel,make,gcc,openssl-devel,lftp,libnl*,popt* 1.在两台Director Server上分别配置LVS+Keepalived LVS

CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡【转】

CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalived版本:keepalived-1.2.4 三.安装 0.安装LVS前系统需要安装popt-static,kernel-devel,make,gcc,openssl-devel,lftp,libnl*,popt*

LVS(DR)+keepalived+nfs+raid+LVM

LVS理论篇 1.Client 向目标VIP 发出请求,Director(负载均衡器)接收.此时IP 包头及数据帧信息为:       2.Director 根据负载均衡算法选择RealServer_1,不修改也不封装IP 报文,而是将数据帧的MAC 地址改为RealServer_1 的MAC 地址,然后在局域网上发送.IP 包头及数据帧头信息如下:   3.RealServer_1 收到这个帧,解封装后发现目标IP 与本机匹配(RealServer 事先绑定了VIP,必须的!)于是处理这个报文

lVS DR模式对于后端真实服务器禁止arp广播回应设置

部署LVS-DR模式的时候,我们需要对后端realserver设置的vip禁止ARP广播回应,后端realserver服务器可能是linux或者windows (一).对于realserver 是linux的系统 ,给后端服务器配置vip的方法 真实服务器(real server)配置 ip配置 1)ip:10.0.0.11/16 gw:10.0.0.139 vip:172.16.10.100 # ifconfig lo:0 172.16.10.100/32 broadcast 172.16.1

CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡

一.系统环境 实验拓扑: 实验环境: Vmware 9.01 + Windows 8 x64 企业版+8G内存 虚拟机步骤: 1.安装一台CentOS 6.3 x64主机,内存为1GB,网络为NAT模式,注意检查Vmware中EDIT菜单下Virtual Network Editor中VMnet8 2. 加电,安装系统.基础知识了,不再多说,注意:选择英文而不要选择中文,选择是Basic Server模式,系统名称:LVS-MASTER 3.安装系统后,用root用户登录进去,执行 ifconf

LVS集群的基本原理、LVS/NAT模式的配置、LVS/DR模式的配置、编写自动脚本检查LVS上realserver健康性

Linux 虚拟服务器(LVS)由章文嵩在国防科技大学就读博士期间创建利用LVS可以实现高可用的.可伸缩的Web.Mail.Cache和Media等网络服务,已经被集成到linux内核里了. 1.什么是集群? 使用一组服务器提供相同的服务2.使用集群的目的? 增强可靠性   降低成本   提高可扩展性   提高性能3.集群分类? HPC 高性能计算集群    (气象   航天   航空)    LB    负载均衡集群 (平均地分摊处理)    * LVS    hproxy HA    高可用