LVSLinux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在19985月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。章文嵩博士目前工作于阿里集团,主要从事集群技术、操作系统、对象存储与数据库的研究.

LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。

 

 

1 ip配置

Client          192.168.2.3

GW        up    192.168.2.2

          Down  192.168.1.10

 

Director   vip  192.168.1.20  eth0

           dip  192.168.1.30   eth1

 

realserverA     192.168.1.40

realserverB     192.168.1.50

 

 

realserver(AB)配置

#echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore    喊我,我回答,喊我兄弟不回答,0兄弟回答

#echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce   替兄弟回包

# ifconfig lo:1 192.168.1.20/32

 

Director配置

Yum –y install ipvsadm                安装工具

# ipvsadm -A -t 192.168.1.20:80 -s rr                     -s声明Lvs的调度算法  rr表示轮询

# ipvsadm -a -t 192.168.1.20:80 -r 192.168.1.40:80 -g

# ipvsadm -a -t 192.168.1.20:80 -r 192.168.1.50:80 –g             -g表示直连路由模式

 

GW配置

echo "1" > /proc/sys/net/ipv4/ip_forward

 

Client配置

route add default gw 192.168.2.2 dev eth0

 

 

IPmac地址的路线

1.Client---------------->GW up

sip:cip     dip:vip    smac:cmac      dmac:GW up mac

 

2.GW down ----------------->vip

sip:cip     dip:vip    smac:gw down mac       dmac:vip mac

 

3.Director-------------------->real server

sip:cip     dip:rip     smac:dip mac  dmac:rip mac

 

4.real server------------------>gw down

sip:vip     dip:cip    smac:rip mac  dmac:gw down mac

ig   

5.gw up-------------------------->client

sip:rip     dip:cip    smac:gw up mac     dmac:cip mac

 

 

 

知识点:

LVS/DR模式要解决的3个问题

1 realserver拥有vip地址

2 realserver不响应 client主机发送的找vip地址的arp广播包

3 Director分发请求时把数据包从自己的dip接口发出去

 

DR模式要解决的几个问题

1 realserver拥有VIP地址  (这样realserver才能把数据包回应给client,

(因为一开始 client是向VIP发送的请求包 只有vip地址给我回包时client才接收 )

解决方法 在realserver主机的lo口绑定vip地址) 

2 realserver不响应 client主机发送的找vip地址的arp广播包 这样才能让Director接收到客户端的请求 才能对请求作分发

( 因为让realserver拥有了vip地址后,就和Director在同一个广播域了 arp广播能在同一个广播域内传输)

 

lo  eth1  eth1 eth2  这些网络接口 都在一层上 被称为兄弟接口

echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_igone

1 只响应找自己的arp广播包

0 默认值  找自己 或 找兄弟 的arp广播包都响应

 

echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

0 默认值 只响应找自己的arp广播包

2 用自己MAC地址帮兄弟接收和回应arp广播包,找自己的也接收

 

3 Director分发请求时,把数据包从自己的dip接口发出去 若从vip发去出 realserver回包时数据包发不出去

因为realserver自己也有vip 会把包回给自己 这样的话Director就找不到realserver了 就无法把请求分发给realserver了)

  dip接口地址所在网络的路由条目在Drector主机路由表的第一条

  如何才能让dip接口的路由条目在第一条呢?

那个物理接口网卡先激活 那个网卡ip地址所在的网段 就在路由条目的第一条