1.可以基于高层的交换,可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。
2.系统包括一台实现负载均衡功能的工控机和一台switch,工控机含有两块网卡,分别称为eth0和eth1。Eth0外连internet,分配有固定的ip和mac地址;eth1内连switch,通过switch和多台应用服务器相连。
3.系统应该有的功能:
1)动态负载分流
对internet或局域网内的服务请求,根据服务类型及各服务器的负载情况,分配给能提供该服务的当前负载最轻的服务器。
2)IP地址复用
对外只提供一个使用的IP地址,多种服务如www服务,ftp服务,邮件服务等共用这一个外部IP地址,实际处理时可用多台服务器,分配有不同的内部IP地址。
3)网管功能:流量统计分析和非正常连接统计分析
可以分服务器统计每个服务器的正向流量和反向流量;统计连接中非正常(如非正常结束)连接的数量,供管理人员分析线路质量。
4)高可靠性保证:使用看门狗方式,自动保证系统自身的可靠性
5)备份冗余
系统自动检测每台服务器是否正在正常运行,若检测到某台服务器工作不正常,则自动切换到备份服务器。
4.负载均衡的依据
1)基于流量和连接的综合分析
一般情况下,一个用户使用某个服务,首先要和服务器建立一个连接,在整个接受服务的过程中,连接一直保持,直到该次服务完毕,那么该连接也就结束。为了保证一个用户的一次服务的完整性,要把整个服务过程中的这个连接分给同一台服务器。所以,我们的负载均衡系统是基于连接的,也就是说,一个连接内的所有IP包都要分配给同一台服务器,这就涉及到怎么分连接的问题,在下面讲述。另外一个分流的依据是流量,系统一直动态统计每台服务器的正向和反向流量,在保证一个IP包的连接完整性的前提下,把它分给正向流量最小的机器。所以,我们的系统是基于连接和流量二者综合分析的基础上的。
2)连接的处理
一个TCP连接有四个要素:源IP、目的IP、源端口、目的端口,这四个要素唯一确定一个TCP连接。一般情况下,都要以这四个要素来区分不同的连接。但是,在某种情况下,比如一个用户请求某个web页面时,会同时有多个连接,如果要使这多个连接分配给同一台服务器,那么就要求区分连接时不能那么严格。这多个连接的共性是客户端的IP地址相同,所以,有些情况下需要根据源IP、目的IP和目的端口三个要素来区分连接。
3)流量统计
流量有两个方向,我们称流向服务器一方的流量为正向流量,反之为反向流量。每把一个IP包分配给某个服务器,就要统计当前该服务器正在处理的连接数和正向、反向数据的总长度,每10S种计算一下流量。
4)服务器主动外发数据的处理
当服务器主动外发数据时,因为系统中还没有保存正向连接的记录,故不能根据系统记录的动态连接信息决定该数据包的目的mac地址。系统中需要事先保存一个路由表,保存有和系统相连的外发最近网关的mac和ip。对服务器主动外发的数据,就发给最近的网关。最近网关的mac和ip可通过静态配置来取得。
5)UDP的处理
因为UDP没有连接的概念,所以不存在连接的建立、存在和消亡问题。对UDP,可以采用“伪连接”的方式处理。即:因为UDP也有TCP连接的四个要素,可以把UDP也看成一个连接。当一个新的四要素组合出现时,即可认为是连接的开始;超过某个时间没有该连接的数据到来时,就认为该连接结束。
阅读(1980) | 评论(0) | 转发(0) |