群集 Cluster
就像冗余部件可以使你免于硬件故障一样,群集技术则可以使你免于整个系统的瘫痪以及操作系统和应用层次的故障。一台服务器集群包含多台拥有共享数据存储空间的服务器,各服务器之间通过内部局域网进行互相连接;当其中一台服务器发生故障时,它所运行的应用程序将与之相连的服务器自动接管;在大多数情况下,集群中所有的计算机都拥有一个共同的名称,集群系统内任意一台服务器都可被所有的网络用户所使用。
什么是集群?
将一组物理计算机变成一个逻辑上的超级计算机。
解决单个机器硬件[CPU 内存] 不足 ,实现大并发
解决了机器硬件故障,保证架构不宕机
WEB集群
4次请求
1. 发起请求 2. 接受请求 3.处理请求 4.响应请求
分发器 接受请求 [响应请求]
数据服务器 处理请求 [ 响应请求]
虚拟IP
群集组成
VIP [virtual IP]
数据服务器 [data server]
分发器以及故障切换 [Directory and fail over]
四层分发 [基于传输层]
按照数据包的处理方式可以分为三类:NAT DR TUNL
##examples:数据包处理例子
User 1.1.1.1
VIP 2.2.2.2 RS1 3.3.3.1 RS2 3.3.2
SIP:1.1.1.1 DIP 2.2.2.2 user-分发器
SIP:1.1.1.1 DIP 3.3.3.1 分发器 --- RS1
SIP:3.3.3.1 DIP 1.1.1.1 gw 分发器的实际IP
SIP 2.2.2.2 DIP 1.1.1.1 分发器 --- USER
LVS的全称Linux vitual system service
LVS工作在一台server上提供Directory(负载均衡器)的功能,本身并不提供服务,只是把特定的请求转发给对应的realserver(真正提供服务的主机),从而实现集群环境中的负载均衡。
LVS的核心组件ipvs工作在kernel中,是真正的用于实现根据定义的集群转发规则把客户端的请求转发到特定的realserver。而另一个组件ipvsadm是工作在用户空间的一个让用户定义ipvs规则的工具。故我们只要在server上装了ipvsadm软件包就可以定义ipvs规则,而在linux kernel的2.6版本之后kernel是直接支持ipvs的。
网络负载均衡(分发器)
故障切换与容错
虚IP
lvs 三种模型 (NAT DR TUN)
NAT 的架构的特点
工作原理:基于NAT机制实现。当用户请求到达director之后,director将请求报文的目标地址(即VIP)改成选定的realserver地址,同时将报文的目标端口也改成选定的realserver的相应端口,最后将报文请求发送到指定的realserver。在服务器端得到数据后,realserver将数据返给director,而director将报文的源地址和源端口改成VIP和相应端口,然后把数据发送给用户,完成整个负载调度过程。
特点:
1,所有的realserver和director要在同一个网段内
2,RIP是私有地址,仅用于集群节点之间进行通信
3,director同时处理请求和应答数据包
4,realserver的网关要指向DIP
5,可以实现端口映射
6,readlserver可以是任意操作系统
7,director很可能成为系统性能瓶颈
###注意
在做实验的时候在CLIENT上抓包的时候会发现LVS给CLIENT回复了请求页面,也看到了RS给了CLIENT页面,但是现实环境中是不会让RS给CLIENT页面的,因为RS在私网,他的数据包不会出现在公网,所以CLIENT自然就收不到RS给的包了,实验中能收到是因为没有公私网的概念,自然就没有合法不合法数据包,当然就能收到。
另在做这个实验的时候,LVS要用两个独立网卡,不要将VIP当成逻辑网卡绑定到一块物理网卡,TCP半链接太多了。无法测试
DR架构的优缺点(生产环境用的最多)
工作原理:基于直接路由来实现。当用户请求到达director之后,director将请求报文的目标地址(即VIP)改成选定的realserver地址,还要改写请求报文的mac地址,将请求发送到指定mac的realserver,而realserver将响应直接返回给客户端,不经过director。这个方式是三种调度中性能最好的,也是我们生产环境中使用最多的。
特点:
1,集群节点和director必须在一个物理网络内
2,RIP可以使用公网地址或私有地址
3,director仅处理入站请求
4,集群节点网关不指向director,故出站不经过director
5,不支持端口映射
6,大多数操作系统可以作为realserver,要支持隔离arp广播
7,director服务器的压力比较小
tun架构的优缺点
工作原理:这种方法通过ip隧道技术实现虚拟服务器。当用户请求到达director之后,director将请求报文的目标地址(即VIP)改成选定的realserver地址.然后,调度器采用ip隧道技术将用户请求发送到某个realserver,而这个realserver将直接相应用户的请求,不再经过director。此外,对realserver的地域位置没有要求。和director在不在同一网段都可以。
特点:
1,realserver和director可以不在一个物理网络中,可以跨越互联网
2,RIP一定不能是私有地址(因为要用到隧道传输)
3,director仅处理入站请求
4,realserver的网关不能指向DIP
5,不支持端口映射
6,支持ip隧道功能的操作系统才能作为realserver
lvs 分发算法介绍
lvs的缺点:不能动态监测RS健康状态(不能容错)。lvs宕机整个架构失效
解决方法 keepaliced
keepalived 特点:可以管理vip lvs中的RS列表。动态监测RS 可以实现lvs故障切换