Skip to content

Instantly share code, notes, and snippets.

@suziewong
Last active January 25, 2019 12:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save suziewong/4476248 to your computer and use it in GitHub Desktop.
Save suziewong/4476248 to your computer and use it in GitHub Desktop.
网络负载均衡

网络负载均衡

1.基于网络设备的负载均衡

2.基于操作系统的负载均衡

####Cisio的以太网通道

把3-4根线连在一起,把单车道变成4车道 1根线为100M 3根就变成300M,通道技术

F5 负载均衡原理

1.客户发出服务请求为VIP 2.BIGIP接受到请求吗,将数据包中目的IP地址改为选中的后台服务器IP,然后将数据包发出到后台选定的服务器 3.后台服务器收到后,将应答包按照其路由发回到BIGIP。 4.BIGIP收到应答包后将其中的源地址改回成VIP地址,发回客户端,由此就完成了一个标准的服务器负载均衡的流程。

4个人访问,分流到4台机器上,当然一个人4次刷新,也会分流
注意:一次完整的TCP链接 3次链接和4次断开

LVS 常用3种负载均衡模式

1.LVS NAT模式(地址转换) 2.LVS ip-tun模式(IP-隧道模式) 3.LVS dr模式(直接路由)

LVS NAT

LVS NAT模式 1.Virtual Server via Network Address Translation(VS/NAT) 通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载均衡调度过程

私网IP不可能活在公网上,公网IP可以活在私网上

LVS IP-tun

IP tun模式 2)Virtual Server via IP Tuuneling(VS/TUN) 采用NAT技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈。为了解决这个问题,调度器把请求报文通过IP隧道转发至真实服务器,而真实服务器将响应直接返回给客户,所以调度器只处理请求报文。由于一般网络服务应答比请求报文大许多,采用VS/TUN技术后,集群系统的最大吞吐量可以提高10倍。

LVS ip-tun实验规划

lvs脚本 direct-server 192.168.10.1 realserver 192.168.10.2 realserver 192.168.10.3 vip = 192.168.10.10

LVS ip-tun服务器脚本

ifconfig tunl0 192.168.10.10 netmask 255.255.255.255 up
route add -host 192.168.10.10 dev tunl0

ipvsadm -C
ipvsadm -A -t 192.168.10.10:80 -s rr
ipvsadm -a -t 192.168.10.10:80 -r 192.168.10.2 -i
ipvsadm -a -t 192.168.10.10:80 -r 192.168.10.3 -i
ipvsadm 

LVS ip-tun 真实客户端脚本

ifconfig tunl0 192.168.10.10 netmask 255.255.255.255 up
route add -host 192.168.10.10 dev tunl0

#外面从tunl0来问我10.10,我不告诉他
echo “1”> /proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo “2”> /proc/sys/net/ipv4/conf/tunl0/arp_announce

echo “1”> /proc/sys/net/ipv4/conf/all/arp_ignore
echo “2”> /proc/sys/net/ipv4/conf/all/arp_announce

LVS dr-模式

3)VIrtual Server via Direct Routing(VS/DR) VS/DR通过改写请求报文的MAC地址,而真实服务器将响应直接返回客户。同VS/TUN技术一样,VS/DR技术科极大的提高集群的伸缩性。这种方法没有IP隧道的开销,对集群中真实服务器也没有必须支持IP隧道协议的要求,但是要求调度器与真实服务器都有一块网卡连在同一物理网段上。

四种常用的轮叫算法

  1. 轮叫(Round Robin)

    调度器通过轮转调度算法、将外部请求按顺序轮流分配到集群的真实服务器上。它均匀的对待每一台服务器,而不管服务器上上的实际的连接数和系统负载

2.加权轮叫(Weighted Round Robin)

调度器通过“加权轮叫”调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的及其处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态的调整其权值。

3.最少链接(Least Connections)

调度器通过“最少链接”调度算法动态地将网络请求调度到已建立的连接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用“最少链接算法”的调度算法可以较小地均衡负载

4.加权最少链接(Weighted Least Connections)

在集群系统中的服务器性能差异较大的情况下,调度器采用“加权最少链接”调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动链接负载,调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

Vmware 3个实验

网卡的配置

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment