一、集群的概念
集群是一种计算机系统,它通过一组分散集成的计算机软件或者硬件进行连接起来,高度紧密的协作完成计算工作。在某种意义上,他们可以被看做是一台虚拟服务计算机。集群系统中的单个计算机通常被称作为节点,一般是通过局域网进行连接工作,但也还有其他连接方式。集群计算机通常用来改进单个计算机的处理速度或者是系统服务器的可靠性。对于Linux一般来说,集群就是一组计算机通过网络连接来组合完成一个任务或是服务。
当我们的系统到达瓶颈是,一般有两种扩展方式,向上扩展(纵向扩展)或者是向下扩展(横向扩展),向上扩展是为单个服务器更换添加更好的硬件资源来提高系统服务性能,但是这种扩展方式所花费的资金与所提高的服务性能并成正比;还有一种是向下扩展,即为添加多个计算机节点来提供服务,一般这种扩展方式是我们所能接收和与达到目标效果相符的。
系统可用性=平均无故障时间/平均无故障时间+平均修复时间
集群的类型:
LB:Load Balance,负载均衡集群;
HA:High Availability,高可用集群;
HP:High Performancing,高性能集群;
LB集群的实现类型:
通过硬件实现:F5、BIG-IP、Citrix NetScaler、A10、Redware
通过软件实现:Lvs、HAproxy、Nginx、Ats
二、LVS简介和工作原理
LVS是Linux Virtual Server的简写,即意思为Linux虚拟服务器,是一个虚拟的服务器集群系统。是由章文嵩博士主导开发的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中了。它可以根据客户端请求报文的目标ip和port根据其调度算法转发至后端主机集群中的某一台主机。
LVS工作在内核中的第四层即TCP/UDP层,能够根据ip、端口快速的处理用户请求的套接字,而后把用户请求调度到后端集群服务器中。LVS工作在内核空间的Netfilter防火墙中的INPUT链上,当用户请求进入本机时,先进过Prerouting规则链,如果不是做DNAT转发的话,该请求报文就进入INPUT链上,而LVS就工作于此,它随时监控着通过INPUT链随时发往本机的应用请求,而后通过其工作模式来修改请求报文字段,所以该请求报文不会进入用户空间,修改完成后根据调度算法便直接发往POSTROUTING链发往到后端所挑选的集群主机中。所以LVS和IPTABLES的机制不能同时使用。
三、LVS的工作模式
我们想了解LVS的工作模式,首先要知道LVS的专业术语。
调度器:Director、Load Balance
后端集群主机:Real Server
客户端IP:CIP
调度器IP:VIP与DIP(DIP是公开于互联网中接收请求的IP、DIP一般是用来和内部局域网后端Real Server通信的IP地址)
后端服