这个原来的网页是英文的
http://translate.google.co.jp/translate?hl=zh-CN&langpair=en|zh-CN&u=http://www.linuxforu.com/2011/04/layer-7-load-balancers/&ei=WnbAUIbcNMmaiQe62YGYBg
第一代的平衡装置周围BSD UNIX版本中实现。
一种新趋势平衡的产品通常是在设备运行的Linux分发的形式,一些企业级的设备使用Red Hat或类似的Linux版本。
图1:典型负载均衡器设置
从功能上看,负载平衡器可以平衡两个或多个服务器之间分配流量。
图1显示了一个典型的Web场配置,负载均衡设备,作为前端服务器来处理所有的Web请求。
每个筒仓承载不同的应用程序集,而一个给定的筒仓主机相同的应用程序中的所有服务器。
从配置的角度来看,该设备配置了两个独立的IP范围。
一个用来处理传入流量,另一方面,被称为虚拟服务器,用于连接到其控制下的节点。
因此,形成了一个请求的客户端和响应服务器之间的代理服务。
它也担当的要求智能化,根据配置的规则,用最少的工作量在特定的时间选择一个接收节点。
规则定义请求应如何处理,如何处理特殊条件,如节点的优先级,会话管理等与收件人的Web服务器负载均衡设备,然后一个单独的TCP连接,并重定向请求,而它跟踪的请求处理。
在技术意义上说,一个负载平衡器平衡底层的TCP连接,而不是实际的Web请求。
这是一种误解,认为一个负载平衡器检查受控服务器上的资源利用率(如CPU,内存等)。
在现实中,它只是简单地检查一个服务器的网络响应时间,这是一个服务器的整体资源利用率的结果。
,因为它作为改善服务器场中的可扩展性的催化剂,它保持在其控制下的每个节点上的数据,如每个主机的请求,每个主机的故障趋势,在历史上,响应时间的处理的请求的数目,等等
在早期的日子里,周围实现简单的循环技术,并帮助分发负载,负载平衡解决方案,但并没有提供容错功能,因为它们缺乏必要的情报。
在今天的先进的数据中心,负载均衡器是用来有效地分配流量,Web服务器,数据库,队列管理器,DNS服务器,电子邮件和SMTP流量,几乎所有的应用程序使用IP流量。
均衡DNS服务器,有助于分散,分散在各地,这是非常有用的灾难恢复实现服务器的DNS查询。
使用负载均衡器来实现容错
在服务器场中,服务器经常遇到由于资源不可预见的故障或定期维护的停机时间。
这些资源故障可以在硬件级别上或仅仅在软件应用程序级别。
在关键业务基础设施,这种情况下应该是透明的,从来没有影响到用户。
正如前面讨论的,由于平衡装置维护独立的TCP连接的控制节点,可以进一步使用,以实现容错。
设置的“心脏跳动”,称为监视,维护,每个节点的平衡器。
这可能是一个简单的的ICMP平,或FTP / HTTP连接来检索数据。
作出适当的反应节点后,负载平衡器会变得知道该节点是活的,标志着它作为一个积极的参与者有资格获得平衡过程。
如果服务器或应用程序资源出现故障时,平衡器的“心脏跳动”从节点等待一段时间,在不遵守,它标志着这个节点作为一个非参与者,并删除它从筒仓。
一旦标记,因此,负载平衡器将流量发送到该节点。
但是,它仍然保持投票,如果该节点是重新联机,并发现,标志着节点的积极参与者,并开始发送的流量。
如果一个请求时,被转移到一个节点发生故障的情况下,现代负载均衡器能够检测过,并采取纠正措施(可配置)。
此功能可进一步探讨的运营团队维护的目的。
服务实例的节点上 - 例如,一个单独的的Web实例运行在一个单独的IP地址,一个虚拟的页面上,可以配置。
显示器可以被配置为周期性地访问该页面。
如果该服务器是脱机进行维护目的,操作人员可以停止伪站点,从而导致在服务器中被标记为一个非参与者。
然后,它可以被关闭或具有其他管理工作。
虚设站点服务一旦维护完成后,可以再次开始,使服务器放回筒仓。
此功能可以进一步扩展配置很多这样的显示器在应用程序级时,可报告通过网络监控产品在仪表板上,操作管理视图。
7层负载均衡
负载均衡器工作在OSI模型的第2层(链路聚合),或第4层(基于IP)的早期版本。
自平衡设备的请求流过,它是有道理的,读入在第7层的要求,带来了额外的灵活性,平衡技术。
添加这样的灵活性,提供了更高的可扩展性,更好的可管理性和高可用性。
7层负载平衡主要经营以下三种技术:
- URL解析
- HTTP头拦截
- Cookie的拦截
通常情况下,第7层的规则结构看起来有点像一个如下所示。
不过,确切的语法不同,每个供应商和设备型号。
可以看出在本例中,首先解析请求被访问的虚拟目录的基础上,然后通过一个特定的Cookie字段的内容,以及最终发送到一个默认的池,如果前两个条件不匹配的情况下。
{
如果(http_qstring,“/”)=“mydir的”
SENDTO server_pool1
其他{
如果cookie(“mycookie”)包含“logon_cookie的”
SENDTO server_pool2
其他{
SENDTO server_pool3
}
由于请求被截获和解释在第7层,添加智能的可能性成倍的增长。
规则可以被配置为分发流量的基础上的HTTP报头中的字段,源IP地址或自定义的Cookie字段,仅举几例。
智能交通分布有无限的可能性。
例如,如果传入的请求是从智能手机,它可以被发送到服务器的移动应用。
如果请求的是一个URL,承载了一个简单的基于HTML的网站,它可以被路由到服务器场经济。
如果登录cookie是不存在的请求时,它可以发送到登录服务器,避免加载其他繁忙的服务器。
第7层的规则带来的可编程性,平衡技术,可以进一步探索的技术操作人员的利益。
当转出一个新的版本计划在现有的数据库服务器农场,一组新的服务器可以配置为一个单独的池来执行迁移模拟测试,一次测试都通过了,可以联机。
在转出经验,问题,只是开关池回原来的设置,可以实现回滚将停机时间降至最低。
另一个例子是,许多关键任务的Web的农场需要保持稳定的原因,传统的服务器操作系统,而新的应用需求的最新和最伟大的平台。
在这种情况下,单独的服务器池可以配置新的应用程序,可以通过检查Web请求的URL在第7层的流量分布。
在第7层负载平衡,也有助于提高投资回报率(ROI)的IT基础设施。
考虑一个门户网站,迎合了用户大量的,内容丰富的网页,JavaScript和图像。
因为脚本和图像不经常改变,这些都可以被视为静态的内容,和一组独立的服务器上托管的。
其结果是,Web服务器上运行重要的业务逻辑使用更少的资源,这意味着,我们可以容纳更多的用户,每台服务器,或每服务器承载更多的应用程序,从而减少主机的实际成本。
这也证明了在一个给定的数据中心基础设施的足迹,精心配置的7层负载均衡器可以实现更高的应用性能吞吐量。
在一个负载平衡器家电的附加功能
除了强大的流量分布特点,最现代工业级负载均衡器也都必须采取额外的任务管理节点,或其他基础设施组件的功能。
SSL谈判就是这样的一个功能,它可以处理SSL握手 - 重卷,否则将采取收费的Web服务器上的性能。
另一大特点是,有助于应用程序坚持到特定的服务器,以保持它的有状态会话Cookie持久性。
许多新的负载平衡器趋势提供了管理的功能,如流量监控和TCP缓冲的安全功能,如内容过滤,入侵检测防火墙,也由于负载的性能为基础的功能,例如HTTP缓存,HTTP压缩等平衡装置是一种在服务器场中的前端组件,它配备高速网络端口,如千兆以太网和光纤连接。
打开源负载平衡解决方案
多个供应商提供工业级的企业负载均衡解决方案,例如,思科,Citrix NetScaler可F5网络(BIGIP),狼点等,这些器件具有丰富的功能,提供灵活的规则的可编程性,并具有较高的吞吐率性能 - 但他们做出来的价格标签和支持成本。
对于那些有兴趣在FOSS,有多个分布在Linux平台上,提供全功能的设备级产品从简单的负载均衡功能。
让我们来看看三个这样的“头号通缉犯”的解决方案。
LVS(Linux虚拟服务器)是一个著名的解决方案,已被证明是工业级的软件,可以用来建立高度可扩展性和高可用性Linux集群服务器,以满足高容量的Web请求。
它配备了丰富的文档 ,这有助于建立一个负载平衡的农场,分步实施。
超猴是另一个有趣的解决方案,它提供了故障转移(failover)功能,除了基本的负载均衡:如果一个负载均衡设备出现故障时,其他的都可以提供设备级的容错。
它支持多种Linux发行版,例如Fedora,Debian等等
另一个强大的,但少为人知的实施是为Linux ,这是一个基于TCP的负载均衡的流量分布提供了一个非常简单的表单的十字路口 。
该产品是美,它的源代码,可以很容易地修改,以满足只有一个任务,如DNS或网络平衡,没有任何花里胡哨的 - 从而实现了非常高的性能,单用途。
配置第7层负载平衡器规则是一门艺术,需要深刻理解网络协议和服务器操作的。
负载平衡器的功能也可以用来作为一种辅助的操作和维护任务。