负载均衡LVS集群详解
集群,所谓的集群就是为了提高服务器性能时,将多台服务器组合在一起,共同提供一个服务的群体。而这些集群又分为:LB(Load Banlancing)--负载均衡、HA(Hight Availability)--高可用、HP(Hight Performance)--高性能。
一、LB--负载均衡
在负载均衡集群中需要一个分发器,我们将其称之为Directory,它位于多台服务器的上面的中间层,根据内部锁定义的规则或调度方式从下面的服务器群中选择一个以此来进行响应请求,而其分发的方式则是根据某个算法进行的。
二、HA--高可用
高可用顾名思义就是服务的可用性比较高,即当我们不会因为某台服务器的宕机,从而造成我们的服务不可用,其工作模式则是将一
个具有故障的服务转交给一个正常工作的服务器,从而达到服务不会中断。
三、LVS:
LVS:Linux Virtual Server,可以实现LINUX平台下的简单负载均衡。
一般来说,LVS采用三层结构:负载调度器、服务器池、共享存储。工作在TCP/IP协议的四层,其转发是依赖于四层协议的特征进行转发的,由于其转发要依赖于协议的特征进行转发,因此需要在内核的TCP/IP协议栈进行过滤筛选,可想而知,这就需要在内核的模块来完成,而这样的过滤转发规则又是由管理员进行定义的,所以,LVS就是两段式的架构设计,在内核空间中工作的是"ipvs",而在用户空间中工作的,用来定义集群服务规则的是"ipvsadm"。这就很容易想到iptables。
LVS的三种转发模式:
LVS-NAT:网络地址转换 Network address translation
LVS-DR:直接路由 Direct routing
LVS-TUN:IP隧道 IP tunneling
VIP:Director用来向客户端提供服务的IP地址
RIP:集群节点(后台真正提供服务的服务器)所使用的IP地址
DIP:Director用来和D/RIP 进行联系的地址
CIP:公网IP,客户端使用的IP。
LVS-NAT:------扩展的DNAT
1.所有的real server和Director要在同一网段
2.通常情况下RIP是私有地址,仅用于集群节点之间进行通信
3.Director同时处理入站和出站请求
4.Real server的网关要指向DIP
5.可以实现端口映射(请求端口和提供服务的端口可以不一致)
6.Real server可以是任意的操作系统
7.Director很容易成为系统性能的瓶颈
数据包地址转换过程:
S:CIP D:VIP------->Director------>S:CIP D:RIP------>Real Server------>S:RIP D:CIP----->Director----->S:VIP D:CIP
LVS-DR:用户的请求经过Director,然后real server直接响应给客户端任何real server网关不能执行Drector
1.集群节点必须在同一个物理网络中,基于MAC转发
2.RIP可以使用公网地址
3.Director仅处理入站请求,响应的数据包不在经过Director
4.Real server的网关不能指向Director
5.不支持端口映射
6.大多数的操作系统都可以用于real server(隔离ARP广播,同一块网卡上支持多个IP)
7.Director的性能表现远远优于NAT
数据包地址转换过程:
S:CIP D:VIP----->Director--->S:CIP D:RIP -----> Real Server---> S:VIP D:CIP
LVS-TUN:用户的请求经过Director,然后real server直接响应给客户端
1.Real server和Director不需要在一个物理网段中
2.RIP一定不能是私有地址
3.Director仅处理入站请求
4.Real server的网关不能指向Director
5.不支持端口映射
6.仅有支持IP隧道的操作系统才能用于real server
与DR的网络结构一样,但Director和Real Server可以在不同的网络当中,DIP----->VIP 基于隧道来传输,在数据包外层额外封装了S:DIP D :RIP 的地址。