- 集群
集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。集群系统的主要优点:高可扩展性、高可用性、高性能、高性价比。
HA(High Availabilty): 高可用集群(双机热备)
高可用集群使服务的可用性比较高,当我们某台服务器死机后不会造成我们的服务不可用。其工作模式则是将一个具有故障的服务转交给一个正常工作的服务器,从而达到服务不会中断。一般来说我们集群中工作在前端(分发器)的服务器都会对我们的后端服务器做一个健康检查,如果发现我们服务器当机就不会对其在做转发。
LB (load balance): 负载均衡集群
负载均衡集群中有一个分发器或者叫调度器,我们将其称之为Director,它处在多台服务器的上面,分发器根据内部锁定义的规则或调度方式从下面的服务器群中选择一个以此来响应客户端发送的请求。
HPC: 高性能计算机集群
高性能的集群是当某一个任务量非常大的时候,我们做一个集群共同来完成这一个任务。这种处理方式我们称为并行处理集群,并行处理集群是将大任务划分为小任务,分别进行处理的机制。一般这样的集群用来科学研究与大数据运算等方面的工作。现在比较火的Hadoop就是使用的并行处理集群。
三种集群之间的区别: 负载均衡着重在于提供服务并发处理能力的集群,高可用以提升服务在线能力的集群。高性能着重用于处理海量任务。
参考博客:https://www.linuxidc.com/Linux/2013-07/87960.htm
而我要学习的是负载均衡集群,也就是LB (loading balance),它分为两类,一类是硬件lb 一类是软件lb,而软件lb分为:
4层:也就是我今天要说的LVS(linux virtual server)国人开发的。
七层:Nginx,HAProxy
-
lvs定义
tcp/ip
一般来说,lvs采用三层结构:负载调度器、服务器池、共享存储。工作在tcp/ip协议的4层,其转发基于4层协议的特征进行转发的,因此需要在内核的tcp/ip协议栈进行过滤筛选可想而知,这就需要在内核的模块来完成,而这样的过滤转发规则又是由管理员进行定义的,所以,LVS就是两段式的架构设计,在内核空间中工作的是"ipvs", 而在用户空间中工作的,用来定义集群服务规则的是"ipvsadm"。这就很容易想到iptables而LVS正好工作在iptables的input链上。
-
lvs组成
ipvsadm: 用于管理集群服务的命令行工具,工作于linux系统中的用户空间。
ipvs: 为lvs 提供服务的内核模块, 工作于内核空间(相当于一个框架,通过ipvsadm手动添加规则,来实现ipvs功能)
-
LVS中每个主机ip地址的定义
VIP: Diector用来向客户端提供服务的IP地址,也是DNS解析的ip。
RIP: 集群节点后台真实服务器的ip地址
DIP: Diector 用来和rip进行交互的ip地址
CIP: 公网ip 客户端使用的ip -
LVS 的三种转发模式
lvs-NAT: 网路地址转换 Network address translation
通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。
lvs-DR: 直接路由Direct routing
VS/DR通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回给客户。同VS/TUN技术一样,VS/DR技术可极大地 提高集群系统的伸缩性。这种方法没有IP隧道的开销,对集群中的真实服务器也没有必须支持IP隧道协议的要求,但是要求调度器与真实服务器都有一块网卡连 在同一物理网段上。
lvs-TUN: IP隧道
采用NAT技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈。为了解决这个问题,调度器把请求报 文通过IP隧道转发至真实服务器,而真实服务器将响应直接返回给客户,所以调度器只处理请求报文。由于一般网络服务应答比请求报文大许多,采用 VS/TUN技术后,集群系统的最大吞吐量可以提高10倍。
- 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
不支持端口映射
一些需要了解的东西
https://baike.baidu.com/item/%E7%A7%81%E6%9C%89%E5%9C%B0%E5%9D%80/727338
https://baike.baidu.com/item/%E7%AB%AF%E5%8F%A3%E6%98%A0%E5%B0%84
网友评论