LVS负载均衡群集

群集技术概述:根据所需要的的环境不同,群集提供的功能也不相同(比如一个公司的网站有Apache服务器、Nginx服务器、Tomcat服务器、Mysql服务器等,这些服务器都不在一台主机上,有很多组成一个群,就可以说运用的群集技术)

群集类型:1.负载均衡群集(DNS轮询、反向代理)

                  2.高可用群集(故障切换、多机热备)

                  3.高性能运算群集(云计算)

负载均衡群集工作模式分析(3种模式)

地址转换(NAT模式)

简称NAT模式,类似于防火墙的私有网络结构,负载调度器作为所有服务器    节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口,服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要    优于其他两种方式

IP隧道(TUN模式)

简称TUN模式,采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器,服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用IP  隧道与负载调度器相互通信

直接路由(DR模式)

简称DR模式,采用半开放式的网络结构,与TUN模式的结构类似,但各节点 并不是分散在各地,而是与调度器位于同一一个物理网络,负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道

负载均衡群集的架构模式:

负载均衡调度器:用来调度服务

Web服务器池:所有服务器群

共享存储:所有服务器都可共享的存储设备

LVS

内核模块名称:ip_vs

加载内核中的模块:modprobe ip_vs

查看模块信息: cat /proc/net/ip_vs

LVS常用算法

rr(轮询):调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载

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

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

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

操作LVS软件:ipvsadm

ipvsadm使用方法:

查看调度详情:

添加调度器:ipvsadm -A -t 192.168.0.21:80 -s rr

-A:添加虚拟服务器

-t:指定VIP地址  

-s:指定负载调度算法(rr   wrr  lc   wlc)

添加节点服务器:ipvsadm -a -t 192.168.0.21:80 -r 192.168.1.100:80 -m -w 1

-a:添加真实服务器  

-t:指定VIP地址 

-r:指定RIP地址 

-m:表示NAT群集模式(-g DR   -i TUN)

-w:设置权重(0表示暂停节点)

一、实现LVS-NAT模式(如下图)

用户通过集群配置添加服务器地址信息实现多主机之间的数据同步功能 java_服务器

先用两台电脑搭建httpd服务,写两个网页IP地址设置分别为192.168.1.100和192.168.1.101

在网关服务器上配置好防火墙,用LVS-NAT代替DNAT策略实现访问网关服务器的外网卡IP地址去访问内网的网页,实现两个网页互相调用,刷新会调用不同服务器的httpd服务

1.网关服务器下载安装ipvsadm

rpm -ivh ipvsadm-1.26-2.el6.x86_64.rpm

2.配置网关服务器

开启路由转发功能:修改/etc/sysctl.conf文件

net.ipv4.ip_forward = 1

配置SNAT策略:iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 192.168.0.21

删除FORWARD链策略:iptables -D FORWARD 1

网关服务器上要在INPUT链中开启80端口(因为是ipvsadm代处理80端口所以别人要通过80端口访问进来)

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

3.配置LVS-NAT模式代替之前的DNAT策略

添加调度服务器:ipvsadm -A -t 192.168.0.21:80 -s rr

添加节点服务器:ipvsadm -a -t 192.168.0.21:80 -r 192.168.1.100:80 -m -w 1

                           ipvsadm -a -t 192.168.0.21:80 -r 192.168.1.101:80 -m -w 1

4.测试,访问192.168.0.21:80刷新查看网页是否不但分别调用两个Apache服务器的网页

二、实现LVS-DR模式(如下图)

用户通过集群配置添加服务器地址信息实现多主机之间的数据同步功能 java_服务器_02

实现红线圈起来的部分,一台调度服务器,两台httpd服务器,一台测试机通过虚拟IP地址访问,实现两台httpd服务互相均衡调用

调度服务器配置

1.配置网卡eth0:0——ifconfig eth0:0 192.168.1.200/32

用户通过集群配置添加服务器地址信息实现多主机之间的数据同步功能 java_IP_03

2.安装操作软件:rpm -ivh /media/CentOS_6.5_Final/Packages/ipvsadm-1.26-2.el6.x86_64.rpm

3.加载模块并查看:modprobe ip_vs 》cat /proc/net/ip_vs

用户通过集群配置添加服务器地址信息实现多主机之间的数据同步功能 java_IP_04

补充:关闭重定向响应

net.ipv4.conf.all.send_redirects = 0
 net.ipv4.conf.default.send_redirects = 0
 net.ipv4.conf.eth0.send_redirects = 0
 net.ipv4.conf.eth1.send_redirects = 0

后端两台服务器的配置

1.调整/proc内核参数,关闭默认ARP响应

echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
 echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
 echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
 echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

2.添加虚拟网卡lo:0——ifconfig lo:0 192.168.1.200/32

3.添加一条路由记录,将访问VIP的数据限制在本地,以避免通信紊乱

route add -host 192.168.1.200 dev lo:0

192.168.1.100的vip配置信息:                                      192.168.1.101的vip配置信息:

用户通过集群配置添加服务器地址信息实现多主机之间的数据同步功能 java_服务器_05

  

用户通过集群配置添加服务器地址信息实现多主机之间的数据同步功能 java_IP_06

ipvs规则配置(调度服务器上配置)

ipvsadm -A -t 192.168.1.200:80 -s rr
 ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.100:80 -g -w 1
 ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.101:80 -g -w 1

测试:

使用测试机测试访问192.168.1.200

用户通过集群配置添加服务器地址信息实现多主机之间的数据同步功能 java_服务器_07

刷新会转换页面

用户通过集群配置添加服务器地址信息实现多主机之间的数据同步功能 java_IP_08

查看调度服务器上的情况信息:ipvsadm -ln

用户通过集群配置添加服务器地址信息实现多主机之间的数据同步功能 java_IP_09

红色为两台后端服务器分别调度的次数