lvs的开源特点引来众多的使用者,而其中的负载均衡的支持功能又是一个强有力的优势。那么我们现在就来对lvs负载均衡的基础知识做一个简要的概括性介绍。之前我们也有细化介绍了相关内容,还希望读者们能关注我们的专题栏目。
一、lvs负载均衡转发模式及调度算法
1、负载均衡转发模式包括直接路由模式DR、网络地址转换模式NAT以及隧道模式TUN三种。在一般的互联网应用环境,选择直接路由模式是比较有利的,原因有:
(1)DR利用大多数Internet服务的非对称特点,负载调度器中只负责调度请求,而服务器直接将响应返回给客户,可以极大地提高整个集群系统的吞吐量-引用自http://www.linuxvirtualserver.org/zh/lvs3.html。从原理上可以知道,DR模式下,负载均衡器的输出和输出流量应该是基本一致的,图1证实了这个事实。
图1 负载均衡器流量图
(2)排错方便迅速。如果通过vip访问不到服务,则可以直接通过访问真实服务器的方式直接定位问题的所在。
(3)当负载均衡器都停止工作时,DR模式易于应急处理。通过修改dns的A记录,把先前主机名对应的vip改成真实服务器的ip地址,使服务迅速恢复起来,从而赢得时间处理负载均衡器的故障。
2、负载均衡器的调度算法
Lvs负载均衡器的调度算法有8种,详情请访问http://www.linuxvirtualserver.org/zh/lvs4.html。一般的互联网应用,多采用轮叫调度rr(Round-RobinScheduling)及加权最小连接调度wlc(WeightedLeast-ConnectionScheduling)。
二、lvs负载均衡环境安全问题
前面我们讲过,在负载均衡器上,为了获得更好的转发性能,尽量不要使用主机防火墙。那么,这怎样保证系统的安全呢?个人觉得,还是采购硬件防火墙放在负载均衡器的前面比较可靠。如果资金充裕,购买具备防ddos的硬件防火墙则更胜一筹。
三、同义词
网上有些词语有不同的说法,为了便于理解,这里给出相同意义的一些说法。
1、负载均衡器与Director为同义词。
2、真实服务器realserver与poolserver是同义词。
3、ip负载均衡技术与负载均衡模式是同义词。
四、关于负载均衡器后面真实服务器的数量
有人曾经问我:"sina是不是做了负载均衡?是不是一个负载均衡器背后放几百个服务器?"。理论上,放几百个服务器没有问题(章文嵩博士给出的数值是100),技术上也可能实现。但这不是一个好的策略。最佳的策略可能是:根据访问情况对大的应用进行分割,弄成一个个小的集群。具体到一个网站,可以把访问量大的频道独立出来,一个频道或几个频道组成一个lvs负载均衡集群。
五、话题讨论
近来nginx很受追捧,于是就有人使用了图2的架构来实现负载均衡。这种3层结构的负载均衡相对于两层的负载均衡架构,谁优谁劣?欢迎讨论。
图2 三层结构负载均衡