ip负载均衡(HA+LB)

使用集群技术和Linux操作系统实现一个高性能、高可用的服务器.
很好的可伸缩性(Scalability)
很好的可靠性(Reliability)

很好的可管理性(Manageability)

可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份)。我们先分析实现虚拟网络服务的主要技术,指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。在已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation)。在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出了通过IP隧道实现虚拟服务器的 方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。VS/NAT、VS/TUN和VS/DR技术是LVS集群中实现的三种IP负载均衡技术。

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

http://zh.linuxvirtualserver.org/node/35 可以查询到内核中的链接调度算法

在内核中的连接调度算法上,IPVS已实现了以下十种调度算法:

  • 轮叫调度(Round-Robin Scheduling)
  • 加权轮叫调度(Weighted Round-Robin Scheduling)
  • 最小连接调度(Least-Connection Scheduling)
  • 加权最小连接调度(Weighted Least-Connection Scheduling)
  • 基于局部性的最少链接(Locality-Based Least Connections Scheduling)
  • 带复制的基于局部性最少链接(Locality-Based Least Connections with Replication Scheduling)
  • 目标地址散列调度(Destination Hashing Scheduling)
  • 源地址散列调度(Source Hashing Scheduling)
  • 最短预期延时调度(Shortest Expected Delay Scheduling)
  • 不排队调度(Never Queue Scheduling)
  现在 做通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing)负载均衡

在调度服务器上配置

yum install ipvsadm (大概是用来书写调度策略的)

ipvsadm --help 

ipvsadm -A -t 192.168.2.252:80 -s rr 添加一个虚拟服务
  ipvsadm -a -t 192.168.2.252:80 -r 192.168.2.233:80 -g  添加被调度节点
  ipvsadm -a -t 192.168.2.252:80 -r 192.168.2.253:80 -g
  ipvsadm -l 查看调度信息

在被调度节点上配置

yum install httpd -y 安装http服务
 /etc/init.d/httpd start

yum install -y arptables_jf (用来写arp策略的)
   ifconfig eth0:0 192.168.2.252 netmask 255.255.255.255 (添加一个虚拟ip)

arptables -A IN -d 192.168.2.252 -j DROP 访问这个虚拟ip时丢掉,在同一局域网里,访问这个虚拟ip 时只能访问调度器

   arptables -A OUT -s 192.168.2.252 -j mangle --mangle-ip-s 192.168.2.253

在回应客户端时,用被调度节点的真实ip

/etc/init.d/arptables_jf save  必须保存策略

/etc/init.d/arptables_jf start 开启

测试

在每个被调度节点上的服务(http)默认发布目录上写不同的页面内容

echo `hostname` > /var/www/html/index.html

在web上访问虚拟ip时就可以出现轮询。

在浏览器所在客户端上查看访问这个虚拟ip时是否访问的是调度服务器

arp -a

(192.168.2.252) at 52:54:00:01:f0:8a [ether] on br100 看mac地址是否是调度服务器的。




你可能感兴趣的:(IP负载均衡)