简单来说,分布式通过缩短单个任务的执行时间来提高效率,而集群则通过增加单位时间内执行的任务数量来提高效率。
例如,如果一个任务由10个子任务组成,每个子任务单独运行需要1小时,那么在一台服务器上运行该任务将需要10小时。
采用分布式解决方案,提供10台服务器来处理一个子任务。
这种工作模式的典型代表是Hadoop的Map/Reduce分布式计算模型。
集群解决方案还提供10台服务器,每台服务器都可以独立处理此任务。
假设10个任务同时到达,10个服务器同时工作,10个任务同时完成。
集群概念的主要特点包括:
可扩展性——集群性能不限于单个服务实体,新的服务实体可以动态添加到集群中,从而提高集群的性能。要具有可扩展性和高可用性,集群必须具备以下两个能力:
负载均衡-负载均衡可以在组环境中的计算和网络资源之间均匀分配任务。实现集群需要以下两个主要技术:
集群地址——集群由多个服务实体组成集群客户端通过访问组的地址来获取集群内各个服务实体的功能。拥有相同的群组地址可以让客户访问该群组提供的IT服务。
内部通信是集群正常运行的基础,它使集群具备负载均衡和错误恢复能力。
Linux集群主要分为三类:
高可用集群(HighAvailabilityCluster)负载均衡集群(LoadBalanceCluster)科学计算集群(HighPerformanceComputingCluster)解决高可用集群问题用户应用程序继续提供外部服务的能力。
常见的是2节点HA集群,如两机热备、多节点HA集群、RAC、共享存储集群等。
负载均衡组通常用于满足网络需求的Web服务器和数据库服务器。
这种类型的集群,当收到请求时,可以检查接收请求较少且不忙的服务器,并将请求转移到这些服务器上。
科学计算集群致力于提供单台计算机无法提供的强大计算能力。
高性能计算集群可以分为两类:
分布式集群和集群的关系和区别是:
分布式:是指不同业务分布在不同地方的组合,集群是指将几台服务器聚集在一起来实现相同的业务。LVS是LinuxVirtualServer:Linux虚拟服务器和虚拟服务器集群[多机LBIP]。
负载调度器(负载均衡器):整个LVS集群的外部前端机器,负责将客户端请求引导到一组服务器(多个LBIP)上执行。
返回相同的请求。
IP【通常指虚拟IP/VIP】服务器池(serverpool):一组实际执行客户端请求的组。
通常,所请求的服务器是Web服务器。
除了Web之外,还有FTP、MAIL、DNS共享存储。
为服务器池提供共享存储区域,因此服务器池提供相同的内容和相同的服务
常用术语
VS:VirtualServer#虚拟服务,一个WebFirst抽象服务,用于接收请求。
Director、Balancer#负载均衡器、DistributorRS:RealServer#实际提供服务的服务器CIP:ClientIP#客户端IP,发起请求的客户端IP,一般为公网IPVIP:DirectorVirtualIP#负载均衡器虚拟IPDIP:DirectorIP#负载均衡器IPRIP:RealServerIP#实际提供Web服务的服务器的IP
(1)直接路由模式(LVS-DR)这是网上经常使用的一种重写模式。
请求报告将文档的目标MAC地址发送给真实服务器,并将真实服务器响应的处理结果直接返回给客户端用户。
与TUN模式类似,DR模式可以显着提高集群系统的可扩展性。
此外,DR模式没有IP隧道开销,不需要集群中的实际服务器支持IP隧道协议。
但调度器LB和真实服务器RS都必须有连接到同一物理网段的网卡,并且处于同一局域网环境。
DR模式的特点和优点:与TUN(隧道模式)类似,负载均衡器只分发请求,响应数据包通过另一种路由方式返回给客户端。
与VS-TUN相比,VS-DR不需要隧道结构,因此大多数操作系统都可以用作物理服务器。
缺点:(我不能只列出缺点)负载均衡器的网卡必须与物理网卡在同一个物理网段。
(2)NAT模式(LVS-NAT)NAT模式通过网络地址转换来实现调度。
首先,当调度器(LB)收到客户端的请求报文(请求的目的IP为VIP)时,根据调度算法决定将请求发送到哪个后端真实服务器(RS)。
然后调度器将客户端发送的请求报文的目标IP地址和端口更改为后端真实服务器(RIP)的IP地址,让真实服务器(RS)接收客户端的请求报文。
真实服务器响应请求后,检查默认路由(NAT模式下,RS默认路由必须设置到LB服务器)。
LB收到响应报文后,向LB发送响应数据包。
将数据包的源地址更改为虚拟地址(VIP)并将其发送回客户端。
NAT模式的特点:1、NAT技术需要通过LB对请求和响应报文进行地址重写,所以如果网站访问量比较大,LB负载均衡调度器就有比较大的负载均衡调度器。
瓶颈通常需要多达10-20个节点。
2.只需在LB上配置公网IP地址即可。
3、各内部节点服务器的网关地址必须是调度器LB的内网地址。
4.NAT模式支持IP地址和端口转换。
这意味着用户请求的端口和真实服务器上的端口可能不匹配。
(3)FullNAT模式(LVS-FullNAT)客户端向VIP发起请求,Director接收到该请求并识别出其正在请求后端服务。
Direcrot对请求报文进行full-nat,将源IP改为dip,并将目标IP转换为后端RS的rip,rs收到请求后进行响应,并将响应的源IP设置为后端。
目标IP仍然是DIP,director内部接收响应消息并执行完整的NAT。
将源地址更改为VIP,目标地址更改为CIP。
请求使用DNAT,响应使用SNAT。
全NAT模式不需要LBIP和realserverip在同一网段。
fullnat相比nat的优点是:源地址是LVS,所以RS回复包保证返回到LVS==>fullnat的原因未知。
Sorceip必须更新,与NAT模式相比,这通常会导致10%的性能损失。
(4)当IP隧道模式(LVS-Tunnel)采用NAT模式时,请求和响应数据包都要经过调度器的地址复用写入,因此客户的请求数量随着增加而处理调度器的能力成为瓶颈。
为了解决这个问题,调度器通过IP隧道将请求消息转发到真实服务器。
真实服务器将处理后的响应数据直接返回给客户端。
这样,调度程序仅处理传入的请求数据包。
一般来说,网络服务的响应数据远大于请求数据包,因此采用VS/TUN模式后集群系统的最大吞吐量提高了10倍。
与NAT模式不同的是,LB和RS之间传输时不需要重写IP地址。
相反,客户端请求数据包被封装到IPtunnel中并发送到RS节点服务器。
收到IPtunnel后并处理响应。
然后它通过自己的外网地址直接将包发送到客户端,绕过LB服务器。
IP隧道模式的特点:负载均衡器只负责将请求报文分发到后端节点服务器,而RS则直接将响应报文发送给用户。
因此,流向负载均衡器的大量数据减少,负载均衡器不再成为系统瓶颈,单个负载均衡器可以处理大量请求。
也可以通过在公网上运行来分发到不同的区域。
隧道模式RS节点需要合法的IP。
该方法要求所有服务器都支持“IPTunneling”(IPEncapsulation)协议。
服务器可能仅限于某些Linux系统。
四种模式的性能对比:DR模式和IPTUNELL模式在入包时都经过LVS,在出包时直接返回给客户端,所以两种模式的性能比性能要高。
IPTUNNEL模式就是TUNN模式,但EL模式比较复杂,性能不如DR模式。
FULLNAT模式不仅需要替换DSTIP,还需要替换SOURCEIP,因此其性能比NAT低10%。
DR==>IPTUNNEL==>NAT==>完整NAT