负载均衡

 负载均衡

负载均衡:负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

DNS

系统安装完成后,用:rpm –qa | grep bind 命令检验Bind的安装情况,正常情况下会有如下安装包:
ypbind-1.19-8.el5
bind-9.3.4-6.P1.el5
bind-chroot-9.3.4-6.P1.el5
bind-libs-9.3.4-6.P1.el5
bind-utils-9.3.4-6.P1.el5

添加多条A记录


Nginx负载均衡

设置负载均衡服务器的地址


设置真实服务器列表

 

 

LVS

LVS方式的cluster从结构上可分为两部分:前端的负载均衡器(称之为director)和后端的真实服务器(称之为real server)cluster前端的director将来自外界的请求调度到cluster后端不同的real server去执行。real server负责真正的提供各种应用服务,比如:WebFTPMail等服务。real server的数量可以根据实际需求进行增加、减少。

LVS的三种包转发方式

NAT(网络地址映射)

NAT方式可支持任何的操作系统,以及私有网络,并且只需一个Internet IP地址,但是整个系统的性能受到限制。因为执行NAT每次需要重写包,有一定的延迟;另外,大部分应用有80%的数据是从服务器流向客户机,也就是用户的请求非常短,而服务器的回应非常大,对负载均衡器形成很大压力,成为了新的瓶颈。

IP Tunneling(IP隧道)
director
分配请求到不同的real serverreal server处理请求后直接回应给用户,这样director负载均衡器仅处理客户机与服务器的一半连接。IP Tunneling技术极大地提高了director的调度处理能力,同时也极大地提高了系统能容纳的最大节点数,可以超过100个节点。real server可以在任何LANWAN上运行,这意味着允许地理上的分布,这在灾难恢复中有重要意义。服务器必须拥有正式的IP地址用于与客户机直接通信,并且所有服务器必须支持IP隧道协议。
Direct Routing(
直接路由)
IP Tunneling类似,负载均衡器仅处理一半的连接,避免了新的性能瓶颈,同样增加了系统的可伸缩性。Direct RoutingIP Tunneling相比,没有IP封装的开销,但由于采用物理层(修改MAC地址)技术,所有服务器都必须在一个物理网段。

 

LVS的八种调度算法

1.轮叫调度(Round-Robin Scheduling

2.加权轮叫调度(Weighted Round-Robin Scheduling

3.最小连接调度(Least-Connection Scheduling

4.加权最小连接调度(Weighted Least-Connection Scheduling

5.基于局部性的最少链接(Locality-Based Least Connections Scheduling

6.带复制的基于局部性最少链接(Locality-Based Least Connections with Replication Scheduling

7.目标地址散列调度(Destination Hashing Scheduling

8.源地址散列调度(Source Hashing Scheduling

 

LVS所需的核心模组

LVS发展出一个名为IPVSIP Virtual Server)的核心模组,直接于Linux的核心中运作,进行连线的导引与调度.IPVS模组于2.4.23版开始,已正式纳入Linux的内核中,成为Linux的一部分。

[root@smart401 ~]# grep "CONFIG_IP_VS" /boot/config-`uname -r`     

 

CONFIG_IP_VS=m                          //已包含IPVS模组,m代表已编译为模组,y则是已内建于内核,n表示不支援

# CONFIG_IP_VS_DEBUG is not set

CONFIG_IP_VS_TAB_BITS=12

CONFIG_IP_VS_PROTO_TCP=y     //这些是IPVS所支援的通讯协定

CONFIG_IP_VS_PROTO_UDP=y

CONFIG_IP_VS_PROTO_ESP=y

CONFIG_IP_VS_PROTO_AH=y

CONFIG_IP_VS_RR=m                   //这些是IPVS所支援的调度演算模组

CONFIG_IP_VS_WRR=m

CONFIG_IP_VS_LC=m

CONFIG_IP_VS_WLC=m

CONFIG_IP_VS_LBLC=m

CONFIG_IP_VS_LBLCR=m

CONFIG_IP_VS_DH=m

CONFIG_IP_VS_SH=m

CONFIG_IP_VS_SED=m

CONFIG_IP_VS_NQ=m

CONFIG_IP_VS_FTP=m                  //此为IPVS支援FTP协议的模组

 

安装

tar zxvf ipvsadm-1.24.tar.gz

cd ipvsadm-1.24

ln –s /usr/src/kernels/2.6.9-67.EL-smp-i686/ /usr/src/linux/

make && make install

ipvsadm     //出现下面的信息表示ipvsadm安装成功!

 

使用 VS-NAT 架设LVS群集

 

NAT设定

首先执行如下命令,在虚拟服务器上设定NAT功能:

[root@smart401 ~]# echo "1" > /proc/sys/net/ipv4/ip_forward

//ip_forward值由0改为1,表示启动封包传送功能

[root@smart401 ~]# modprobe ip_tables  //载入ip_table模块

[root@smart401 ~]# modprobe ip_nat_ftp      //载入ip_nat_ftp模块,让区域网中的主机可以连上ftp服务器

[root@smart401 ~]# modprobe ip_conntrack         //载入连线追踪模块

[root@smart401 ~]# modprobe ip_conntrack_ftp   //载入追踪ftpirc连线的模块

[root@smart401 ~]# modprobe ip_conntrack_irc  

/etc/init.d/iptables restart

Iptables -F

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE

 

算法调度

-A:为add-service的意思,此参数表示随后的设定将为群集新增一个网路服务

-t:表示此网络使用TCP通讯协议

-s:设定此网路服务器将采用哪一种调度演算法进行负载均衡的调度,

rr:为轮序调度算法的所写

-a:add-server的意思,表示随后将为群集添加一个真实服务器

-t:使用TCP

-r:设定真实服务器IP

-m:设定网路服务采用的运作方式,-mVS-NAT;-gVS-DR;-iVS-TUN

 

轮序调度算法

ipvsadm -A -t 192.168.1.249:80 -s rr

ipvsadm -a -t 192.168.1.249:80 -r 192.168.0.16 -m

ipvsadm -a -t 192.168.1.249:80 -r 192.168.0.17 –m

 

加权轮调度演算法

ipvsadm -D -t 192.168.100.234:80  删除先前的设置

ipvsadm -A -t 192.168.100.234:80 -s wrr  -s:表示采用加权轮序演算法(所写wrr

ipvsadm -a -t 192.168.100.234:80 -r 192.168.0.237 -m -w 8

-w:设定真实服务器的权重,权重越高表示被分配越多的连线

ipvsadm -a -t 192.168.100.234:80 -r 192.168.0.239 -m -w 1

 

目标地址散列调度

ipvsadm -A -t 192.168.100.234:80 -s rr –p 1200

ipvsadm -a -t 192.168.100.234:80 -r 192.168.0.237:80 -m

ipvsadm -a -t 192.168.100.234:80 -r 192.168.0.239:80 -m

 

验证:

Ipvsadm –save > /etc/init.d/ipvsadm

/etc/init.d/ipvsadm restart

真实服务器:

/etc/init.d/iptables stop

Route add default gw 192.168.100.234

客户端:

Curl http://192.168.100.234

 

使用 VS-DR 架设LVS群集

 

director服务器配置

/sbin/ifconfig eth0:0 192.168.100.1 broadcast 192.168.100.1 netmask 255.255.255.255 up

/sbin/route add -host 192.168.100.1 dev eth0:0

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

配置ipvsadm

/sbin/ipvsadm –C

/sbin/ipvsadm -A -t 192.168.100.1:80 -s wlc

/sbin/ipvsadm -a -t 192.168.100.1:80 -r 192.168.0.1:80 -g -w 3

/sbin/ipvsadm -a -t 192.168.100.1:80 -r 192.168.0.2:80 -g -w 1

Ipvsadm –save > /etc/init.d/ipvsadm

/etc/init.d/ipvsadm restart

 

真实服务器配置

/sbin/ifconfig lo:0 192.168.100.1 broadcast 192.168.100.1 netmask 255.255.255.255 up

Route add –host 192.168.100.1 dev lo:0

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

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

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

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

sysctl -p

 

keepalived

Layer3Keepalived使用Layer3的方式工作式时,Keepalived会定期向服务器群中的服务器 发送一个ICMP的数据包(既我们平时用的Ping程序),如果发现某台服务的IP地址没有激 活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。Layer3的方式是以服务器的 IP地址是否有效作为服务器工作正常与否的标准。在本文中将采用这种方式。

Layer4: Layer4主要以 TCP端口的状态来决定服务器工作正常与否。如web server的服务端口一般是80,如果Keepalived检测到80端口没有启动,则Keepalived将把这台服务器从服务器群中剔除。

Layer5Layer5就是工作在具体的应用层了,比Layer3,Layer4要复杂一点,在网络上占用的带宽也要大一些。Keepalived将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则 Keepalived将把服务器从服务器群中剔除。

 

Keepalived在这里主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现。

1 WatchDog 负责监控checkers VRRP 进程的状况。

2 Checkers 负责真实服务器的健康检查healthchecking,是keepalived 最主要的功能。换句话说可以没有VRRP Stack,但健康检查healthchecking 是一定要有的。

3 VRRP Stack 负责负载均衡器之间的失败切换FailOver.如果只用一个负载均衡器,则VRRP 不是必须的。

4 IPVS wrapper 用来发送设定的规则到内核ipvs 代码。

5 Netlink Reflector 用来设定 vrrp vip 地址等。Keepalived 各种功能的实现是通过设置其配置文件 keepalived.conf 来完成的。

 

安装配置

配置文件:

virtual_server 125.38.38.64 80 {

delay_loop 6

lb_algo rr

lb_kind NAT

# persistence_timeout 20

protocol TCP

real_server 125.38.38.101 80 {

weight 100

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

real_server 125.38.38.99 80 {

weight 100

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

 

安装需要指定内核

需使用-f选项指定配置文件

使用-D选项使其打印详细的日志消息

/usr/local/keepalived/sbin/keepalive –D –f /usr/local/keepalived/etc/keepalived/keepalived.conf

tail -f /var/log/messages

 

你可能感兴趣的:(LVS,keepalived,职场,休闲)