集 群
~提升服务器性能的方法
垂直扩展:提升服务器硬件
性价比低;
提升有限;
访问中断;
水平扩展:多台机器协同工作,添加更多的服务器节点
DNS:单节点、需要高可用;
后端服务器健康状态监测;
缓存DNS,减轻DNS 服务器的压力;
Agent:后端服务器健康状态监测;
调度;
集群
集群:一组协同工作的服务器,对外表现为一个整体。
1.集群分类
(1)负载均衡集群LBC (load balance cluster)
(2)高可用性集群HAC(high available cluster)
(3)高性能集群 HPC(high performance cluster)
2.负载均衡集群
(1)结构:负载调度器
共享资源池
服务器资源池
(2)实现方式:
软件:nginx amoeba LVS
硬件:F5 : big-ip 思捷:安瑞科技
实现方式区别:
软件:nginx (七层) LVS(四层)
硬件:F5:(二层、四层、七层)
(3)触发条件
四层:ip+port(IP地址+端口,一次握手就转发)
七层:URL (两次握手)
(4)安全性
四层:无法拦截SYN攻击
七层:可以拦截SYN攻击
(5)握手
四层:一次完整的tcp连接,客户端与真实服务器建立。
七层:两次完整的tcp连接,客户端与负载调度器
负载调度器与真实服务器
(6) IPVS:章文嵩
软件核心代码,工作在Kernel空间。钩子函数,内核机制,在请求没有到达目的地址之前,捕获并取得优先控制权的函数。
IPVSADM:工作在用户空间,负责为ipvs内核框架编写规则,定义谁是集群服务,谁是后端真实的服务器
3.LVS工作方式(linux virtual server)
(1)NAT 地址转换模式
实现原理
A.客户端将请求交给负载调度器,客户端发出数据包,此时这个数据包的源IP为CIP,目标ip为VIP(集群ip)
B.数据包到达负载调度器后,修改数据包的目标ip地址为真实服务器的ip,此时数据包的源ip为CIP,目标ip为RIP
C.将数据包发送给RS,之后RS响应将数据包发回给负载调度器,此时数据包的源ip为RS1:IP,目标ip为CIP
D.负载调度器再转发时,会将源ip地址改为自己的VIP地址,然后再发给客户端,此时数据包的源ip为VIP,目标ip为CIP。
特点:
①负载调度器与真实服务器必须有共同网络
②负载调度器必须是 Linux 操作系统,真实节点可以是任意操作系统
③真实服务器把网关指向负载调度器
④负载调度器负责数据报文出站请求以及入站请求,以及源地址转换,压力大
⑤支持端口映射
⑥负载调度器工作在 客户端 以及 真实节点 之间
总结:nat 模式是 LVS 三种规则中的配置最简单的,不常用的,压力较大的一种,后端节点 100 台以下
地址转换类型: 在防火墙规则中配置
SNAT:源地址转换
DNAT:目标地址转换
(2) DR 路由模式
实现原理
A.客户端发出数据包,源ip是CIP,目标ip是VIP
B.依靠路由把数据发送给负载调度器,负载调度器将数据包的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改为RIP的MAC地址,此时源ip和目标ip均未修改。
C.由于DS和RS在同一网络中,所以通过二层来传输,通过路由再将数据包发到RS
D.RS接收数据包,之后通过lo接口传送给eth0向外发出,此时的源ip是VIP,目标ip为CIP。
E.最后通过路由发给客户端。
特点:
①真实服务器和负载调度器处于同一个二层结构中
②负载调度器以及真实服务器必须是 Linux 操作系统
③负载调度器以及真实服务器必须把网关指向路由
④负载调度器负责入站请求,真实服务器负责出站请求
⑤负载调度器以及真实服务器的数据包转发通过修改 DMAC 完成
总结: DR 模式是 LVS 中最常用的一种模式。
因为,负载调度器负责处理 入站请求 出站请求由 真实服务器完成,所以 压力较小,能够支撑 1000 台以下
(3)TUN 隧道模式
实现原理
A.客户端发送数据包到负载调度器,此时数据包的源ip为CIP,目标ip为VIP。
B.负载调度器会在数据包的外面再次封装一层ip数据包,封装源ip为DIP,目标ip为RIP。此时源ip为DIP,目标ip为RIP。
C.之后负载调度器将数据包发给RS(因为在外层封装多了一层ip首部,所以可以理解为此时通过隧道传输),此时源ip为DIP,目标ip为RIP。
D.RS接收到报文后发现是自己的IP地址,就将报文接收下来,拆除掉最外层的IP后,会发现里面还有一层IP首部,而且目标是自己的lo接口VIP,那么此时RS开始处理此请求,处理完成之后,通过lo接口送给eth0网卡,然后向外传递。 此时的源IP地址为VIP,目标IP为CIP。
E.之后将数据包发给客户端。
特点:
①真实服务器与负载调度器必须拥有外网IP或者能够被路由到
②负载调度器与真实服务器必须是Linux操作系统
③负载调度器与真实服务器将网关指向网络中的真实网关
④负载调度器负责入站请求,真实服务器负责出站。压力较大 。
总结:TUN 最特殊,基本无使用场景。压力较大,约 100 左右
原文链接:https://blog.csdn.net/weixin_43303487/article/details/84552622
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/16987