Linux 集群的基本概念与LB(负载均衡)集群详解
大纲
一、集群定义
二、集群类型
三、LB(负载均衡)集群
四、LVS-NAT 模式演示
五、LVS-DR 模式演示
六、LVS 持久连接
注:测试环境CentOS 6.4 X86_64
相关阅读:
一、集群定义
集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。集群系统的主要优点:高可扩展性、高可用性、高性能、高性价比。
二、集群类型
1.scale on:向上扩展
将服务器的内存容量调大和cpu数量增加些(简单说升级服务器硬件)
缺点:在一定的范围之内它的性能是上升的趋势,但是超出范围之后就是下降的趋势。因为随着它的cpu的个数增加我们需要给我们的cpu仲裁,而且随着cpu个数的增加资源竞争性越大。
2.scale out:向外扩展
一台服务器应付不过来,我们就再增加一台服务器。
优点:增减服务器很方便,而且没有向上扩展随着增加性能下降。
向外扩张的工作模式:当客户端向服务器端发送请求,服务器端只拿出来一台服务器来相应我们的客户端的请求。
(1).LB:Load Balancing:负载均衡集群
负载均衡集群中有一个分发器或者叫调度器,我们将其称之为Director,它处在多台服务器的上面,分发器根据内部锁定义的规则或调度方式从下面的服务器群中选择一个以此来响应客户端发送的请求。
(2).HA:High Availability 高可用集群
高可用集群是服务的可用性比较高,当我们某台服务器死机后不会造成我们的服务不可用。其工作模式则是将一个具有故障的服务转交给一个正常工作的服务器,从而达到服务不会中断。一般来说我们集群中工作在前端(分发器)的服务器都会对我们的后端服务器做一个健康检查,如果发现我们服务器当机就不会对其在做转发。
衡量标准:可用性=在线时间/(在线时间+故障处理时间)
99%、99.9%、99.99%、99.999%
(3).HP:Hight Performance 高性能
高性能的集群是当某一个任务量非常大的时候,我们做一个集群共同来完成这一个任务。这种处理方式我们称为并行处理集群,并行处理集群是将大任务划分为小任务,分别进行处理的机制。一般这样的集群用来科学研究与大数据运算等方面的工作。现在比较火的Hadoop就是使用的并行处理集群。
说明:三种集群之间的区别
负载均衡着重在于提供服务并发处理能力的集群,高可用以提升服务在线的能力的集群。高性能着重用于处理一个海量任务。
三、LB(负载均衡)集群
1.LB 分类
(1).硬件LB(比较出名的)
F5 公司的 BIG-IP系列
Citrix 公司的 NetScaler系列
A10 公司的 AX系列
(2).软件LB
四层:LVS(Linux Virtual Server)注:国人开发的
七层:Nginx,HAProxy
2.LVS定义
一般来说,LVS采用三层结构:负载调度器、服务器池、共享存储。工作在TCP/IP协议的四层,其转发是依赖于四层协议的特征进行转发的,由于其转发要依赖于协议的特征进行转发,因此需要在内核的TCP/IP协议栈进行过滤筛选,可想而知,这就需要在内核的模块来完成,而这样的过滤转发规则又是由管理员进行定义的,所以,LVS就是两段式的架构设计,在内核空间中工作的是"ipvs", 而在用户空间中工作的,用来定义集群服务规则的是"ipvsadm"。这就很容易想到iptables而LVS正好工作在iptables的input链上。
3.LVS组成
ipvsadm:用于管理集群服务的命令行工具,工作于Linux系统中的用户空间。
ipvs:为lvs提供服务的内核模块,工作于内核空间 (相对于是框架,通过ipvsadm添加规则,来实现ipvs功能)。
注:在linux内核2.4.23之前的内核中模块默认是不存在的,需要自己手动打补丁,然后把此模块编译进内核才可以使用此功能。
4.LVS中每个主机IP地址的定义
VIP:Director用来向客户端提供服务的IP地址,也是DNS解析的IP
RIP:集群节点(后台真正提供服务的服务器)所使用的IP地址
DIP:Director用来和RIP进行交互的IP地址
CIP:公网IP,客户端使用的IP
5.LVS的三种转发模式
LVS-NAT:网络地址转换 Network address translation
LVS-DR:直接路由 Direct routing
LVS-TUN:IP隧道 IP tunneling
6.LVS的三种转发模式特点
NAT:
集群节点跟director必须在同一个网段上面
RIP通常是私有地址,仅用于个集群
支持口映射
realsever可以使用任意OS(操作系统)
较大规模应用场景中director已成为系统瓶颈
DR:
集群节点跟director必须在同一个物理网络中
RIP可以使用公网地址.实现便捷的远程控制服务器
director只负责处理入站请求,相应报文则有realserver直接发往客户端
realserver不能将网关指向DIP
director不支持端口映射
大多数操作系统都能应用在real server上
DR比NAT能处理更多的real server
TUN:
各集群节点可以跨越不同的网络
RIP必须是公网地址
director只负责处理入站请求,相应报文则有realserver直接发往客户端
realserver网管不能指向director
只有支持隧道共跟那个的os才能用户realserver
不支持端口映射
注:在实际应用中用的不多这里就不再具体演示!