LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。章文嵩博士目前工作于阿里集团,主要从事集群技术、操作系统、对象存储与数据库的研究.
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
IP和mac地址的路线
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地址所在的网段 就在路由条目的第一条