服务器集群:指很多彼此相互独立的服务器通过高速网络连接在一起,形成一个并行或分布式系统。
服务器集群的优势:
1 提高性能:多台服务器计算能力整合,通过并行计算获得超高的计算性能。
2 降低成本:达到同样的性能,单台服务器所需的硬件成本高,服务器集群可降低成本。
3 提高可扩展性:
(1)扩展性是应对计算需求的动态变化的必然需求,单台需要设置硬件,集群服务器只需要改变网络中的节点数。
(2)单台服务器软硬件设置升级时需要离线,集群可在线删除节点。
4 增强可用性:当服务器出错事,集群式可以将故障服务器的任务最佳效率的转移到别的服务器上处理。
集群分类:
1 计算集群:用于承载计算密集型任务,如果计算时在节点间需要频繁通信,则使用高性能计算集群。若所需节点较少,几乎无通信需求,则使用网络计算集群。
2 负载均衡集群:集群中的负载包括计算任务处理负载(在节点间动态分配负载,实现负载均衡)和网络IO流量负载(接收高流量时,无法处理的流量分发在其他服务器的节点上运行)。
3 高可用集群:部分服务器出现故障时,将任务重新分配到正常服务器上。
CDN节点系统是一种典型的负载均衡集群系统
集群系统分层:
1 网络层
2 节点服务器操作系统层
3 应用层
4 集群管理系统层
Cache集群交互的方法:
服务器间通信分为紧耦合和松散耦合
紧耦合的通信协议:CARP
松散耦合的通信协议:ICP, HTCP, Cache Digest, Cache pre-filling
ICP: 定义了一种请量级的消息格式,用于cache服务器之间相互查询WEB资源信息,基于UDP实现的。应答和请求中不包含HTTP头文件的信息。
HTCP:是用于发现HTTP高速缓服务器和高速缓存数据的协议,用于管理HTTP cache服务器和监控相关缓存活动,应答和请求中包含HTTP头文件的信息,可通过UDP和TCP传送。
Cache Digest:是为了解决ICP和HTCP协议在使用过程中的拥塞和网络延迟问题,利用服务器的cache保存邻近服务器的cache内容信息。
Cache pre-filling:实现推送Cache内容的机制,他能很好的应用在IP多播网络上。使得预先被选定的资源,能够同时被插入到目标多播中的cache服务器中,实现集群中的各台服务器保存内容同步。
CARP:
本质:分布式缓存协议,通过建立哈希函数,用于划分cache服务器集群的URL空间。
优势:无需资源的查询和请求应答过程,避免网络影响,降低开销。
消除重复数据,系统中的每个URL数据只有一份,节省空间
无需和其他cache服务器进行网络交互,具有更好的扩展性
可以灵活增删节点
确保每个URL有效的缓存在系统中
负载均衡技术的实现:
负载均衡 : 是将负载进行平衡,分摊到多个操作单元上进行执行,从而实现整个系统共同完成任务分类:负载均衡根据实施目的的不同分为:1 任务分担 2 协调计算
负载均衡的关键技术:
1 负载均衡调度算法:
1 静态:轮询,加权轮询,随机,加权随机,基于源 IP 的 hash ,基于源 IP 端口的 hash ,基于目的 IP 的 hash ,基于 UDP 报文净荷的 hash 。
2 动态:最小连接,加权最小连接,最小响应时间
2 会话持续性保证技术:
由于HTTP是无状态的链接,所有为了保持连接,要基于TCP数据包和HTTP隐性的消息。1 基于源 IP 地址的持续性保持
2 基于 cookie 数据的持续性保持
3 基于 SIP 报文 CALL-ID 的持续性保持
4 基于 HTTP 报文头的持续性保持
3 服务器健康检测技术:
ICMP :用于服务器主机层面的健康检测,向集群中的服务器发送 ICMP ECHO 报文,若正确收到 ICMP reply , 则正常。
TCP :用于服务器业务层面的健康检测,向服务集群中某个服务器端口发送 TCP 链接请求,查看三次握手是否正常链接。
HTTP,FTP :用于服务器应用层面的健康检测,与集群中服务器的 HTTP 端口建立 TCP 链接,发送 HTTP 请求,查看是否收到正确的应答。与集群中的 FTP 端口建立 TCP 链接,获取服务器上的文件,查看文件是否正确。
DNS, RADIUS, SSL
负载均衡的部署方式:
1 常用部署方式
直连部署:
旁挂部署方式:
2双机热备部署方式:在两台负载均衡设备之间,通过备份链路进行对端设备的业务备份,以保持;两台设备的业务保持一致,以防设备出现故障。
负载均衡的双机热备的实现方式分为:主备模式(主设备处理业务,备份设备只用于备份)和负载分担模式(两台都备份和处理业务)
服务器负载均衡:分为(L4)四层负载均衡和(L7)七层负载均衡
L4:
(1)NAT(网络地址转换)方式
(2)LD方式:负载设备均是旁挂式连接,该方法值要求客户端到服务器单向的请求报文会经过负载均衡设备,减轻负载均衡设备的负担,提高性能。
L7:
会解析应用层协议的信息。
实际应用中最好搭配L4 和 L7 一起使用。
链路负载均衡:只通过动态算法,在网络链路中进行负载均衡。
作用:解决宽带不足,用传统路由方法,配置不方便且造成空闲链路吞吐能力的浪费问题。分类:
1 outbound链路负载均衡:解决企业内部业务系统访问外部互联网服务时,在多条链路上动态分配和负载均衡。
2 Inbound链路负载均衡:解决互联网外部用户在访问企业内部网站和业务业务时,动态的在多条链路上平衡分配,并在一条链路断了,自动切换到另一条链路上。
开源负载均衡软件:LVS和Nginx