1.什么是集群?
简单地说,集群 就是指一组(多少个)相互独立的盘算机,使用高速通讯网络构成的一个较大的 盘算机服务体系,每个集群节点(即集群中的每台盘算机)都是运行各自服务的独立服务器。这些服务器之间可以相互通讯,协同向用户提供应用步伐,体系资源和数据,并以单一体系的模式加以管理。当用户哀求集群体系时,集群给用户的感觉就是一个单一独立的服务器,而现实上用户哀求的是一组集群服务器。
举个例子:
打开谷歌,百度的页面,看起来好简单,大概你以为用几分钟就可以制作出相似的网页,而现实上,这个页面的背后是由成千上万台服务器集群协同工作的效果。
若要用一句话形貌集群,即一堆服务器互助做同一件事,这些呆板大概必要同一调和管理,可以分布在一个机房,也可以分布在天下环球各个地区的多个机房。
2.为什么要使用集群?
2.1 高性能
一些国家紧张的盘算麋集型应用(如 气候预报,核试验模仿 等),必要盘算机有很强的运算处理处罚本领。以全天下现有的技能,纵然是大型呆板,其盘算本领也是有限的,很难单独完成此使命。由于盘算时间大概会相称长,大概几天,以致几年或更久。因此,对于这类复杂的盘算业务,便使用了盘算机集群技能,会集几十上百台,以致成千上万台盘算机举行盘算。
如果你配一个 LNMP 环境,每次只必要服务 10 10 10 个并发哀求,那么单台服务器肯定会比多个服务器集群要快。只有当并发或总哀求数量高出单台服务器的遭受本领时,服务器集群才会体现出上风。
2.2 代价有用性
通常一套体系集群架构,只必要几台或数十台服务器主机即可。与动辄代价上百万元的专用超等盘算机相比自制了许多。在到达同样性能需求的条件下,接纳盘算机集群架构比接纳划一运算本领的大型盘算机具有更高的性价比。
早期的淘宝,付出宝的数据库等焦点体系就是使用上百万元的小型机服务器。后因使用维护本钱太高以及扩展装备费用成多少级数翻倍,以致成为扩展瓶颈,职员维护也非常困难,终极使用 PC 服务器集群更换之,比如,把数据库体系从小机联合 Oracle 数据库迁移到 MySQL 开源数据库联合 PC 服务器上来。不光本钱降落了,扩展和维护也更容易了。
2.3 可伸缩性
当服务负载,压力增长时,针对集群体系举行较简单的扩展即可满意需求,且不会低落服务质量。
通常环境下,硬件装备若想扩展性能,不得不增长新的 CPU 和存储器装备,如果加不上去了,就不得不购买更高性能的服务器,就拿我们如今的服务器来讲,可以增长的装备总是有限的。如果接纳集群技能,则只必要将新的单个服务器到场现有集群架构中即可,从访问的客户角度来看,体系服务无论是连续性照旧性能上都险些没有厘革,体系在不知不觉中完成了升级,加大了访问本领,轻松地实现了扩展。集群体系中的节点数量可以增长到几千以致上万个,其伸缩性远高出单台超等盘算机。
2.4 高可用性
单一的盘算机体系总碰面对装备损毁的标题,如 CPU,内存,主板,电源,硬盘等,只要一个部件坏掉,这个盘算机体系就大概会宕机,无法正常提供服务。在集群体系中,只管部门硬件和软件照旧会发生故障,但整个体系的服务可以是 7 × 24 7×24 7×24 小时可用的。
集群架构技能可以使得体系在多少硬件装备故障发生时仍可以继续工作,如许就将体系的停机时间镌汰到了最小。集群体系在进步体系可靠性的同时,也大大减小了体系故障带来的业务丧失,如今险些 100 % 100\% 100% 的互联网网站都要求 7 × 24 7×24 7×24 小时提供服务。
2.5 透明性
多个独立盘算机构成的松耦合集群体系构成一个捏造服务器。用户或客户端步伐访问集群体系时,就像访问一台高性能,高可用的服务器一样,集群中一部门服务器的上线,下线不会制止整个体系服务,这对用户也是透明的。
2.6 可管理性
整个体系大概在物理上很大,但实在容易管理,就像管理一个单一映像系同一样。在抱负状态下,软硬件模块的插入能做到即插即用。
2.7 可编程性
在集群体系上,容易开发及修改各类应用步伐。
3.集群的常见分类
盘算机集群架构按功能和结构可以分成以下几类:
- 负载平衡集群,简称 LBC 大概 LB
- 高可用性集群,简称 HAC
- 高性能盘算集群,简称 HPC
- 网格盘算集群
提示:负载平衡集群 和 高可用性集群 是互联网行业常用的集群架构模式,也是我们要学习的重点。
3.1 负载平衡集群
负载平衡集群 为企业提供了更为实用,性价比更高的体系架构办理方案。负载平衡集群可以把许多客户会集的访问哀求负载压力尽大概均匀地分摊在盘算机集群中处理处罚。客户访问哀求负载通常包罗应用步伐处理处罚负载和网络流量负载。如许的体系非常恰当使用同一组应用步伐为大量用户提供服务的模式,每个节点都可以负担肯定的访问哀求负载压力,而且可以实现访问哀求在各节点之间动态分配,以实现负载平衡。
负载平衡集群运行时,一样平常是通过一个或多个前端负载平衡器将客户访问哀求分发到后端的一组服务器上,从而到达整个体系的高性能和高可用性。一样平常高可用性集群和负载平衡集群会使用类似的技能,或同时具有高可用性与负载平衡的特点。
负载平衡集群的作用为:
- 分摊用户访问哀求及数据流量(负载平衡)。
- 保持业务连续性,即 7 × 24 7×24 7×24 小时服务(高可用性)。
- 应用于 Web 及数据库等服务器的业务。
负载平衡集群范例的开源软件包罗 LVS,Nginx,Haproxy 等。如下图所示:
提示:差异的业务会有多少秒的切换时间,DB 业务显着长于 Web 业务切换时间。
3.2 高可用性集群
一样平常是指在集群中恣意一个节点失效的环境下,该节点上的全部使命会自动转移到其他正常的节点上。此过程并不影响整个集群的运行。
当集群中的一个节点体系发生故障时,运行者的集群服务会敏捷作出反应,将该体系的服务分配到集群中其他正在工作的体系上运行。思量到盘算机硬件和软件的容错性,高可用性集群的紧张目标是使集群的团体服务尽大概可用。如果高可用性集群中的主节点发生了故障,那么这段时间内将由备份节点代替它。备节点通常是主节点的镜像。当它代替主节点时,它可以完全接受主节点(包罗 IP 地点及其他资源)提供服务,因此,使集群体系环境对于用户来说是划一的,即不会影响用户的访问。
高可用性集群使服务器体系的运行速率和相应速率会尽大概的快。他们常常使用在多台呆板上运行的冗余节点和服务器来相互跟踪。如果某个节点失败,它的替补者将在几秒钟或更短时间内接受它的职责。因此,对于用户而言,集群里的恣意一台呆板宕机,业务都不会受影响(理论环境下)。
高可用性集群的作用为:
- 当一台呆板宕机时,别的一台呆板接受宕机的呆板的IP资源和服务资源,提供服务。
- 常用于不易实现负载平衡的应用,比如负载平衡器,主数据库,主存储对之间。
高可用性集群常用的开源软件包罗 Keepalived,Heartbeat 等,其架构图如下图所示:
3.3 高性能盘算集群
高性能盘算集群也称并行盘算。通常,高性能盘算集群涉及为集群开发的并行应用步伐,以办理复杂的科学标题(气候预报,石油勘探,核反应模仿等)。高性能盘算集群对外就好像一个超等盘算机,这种超等盘算机内部由数十至上万个独立服务器构成,而且在公共消息转达层上举行通讯以并行运行应用步伐。在生产环境中现实就是把使命切成蛋糕,然后下发到集群节点盘算,盘算后返回效果,然后继续领新使命盘算,云云往复。
3.4 网格盘算集群
由于很少用到,在此略过。
4.常用的集群软硬件先容及选型
4.1 企业中常见的集群软硬件产物
- 互联网企业常用的开源集群软件有:Nginx,LVS,Haproxy,Keepalived,heartbeat。
- 互联网企业常用的贸易集群硬件有:F5,Netscaler,Radware,A10 等,工作模式相称于 Haproxy 的工作模式。
淘宝,赶集网,新浪等公司曾使用过 Netscaler 负载平衡产物。集群硬件 Netscaler 的产物图如下图所示:
集群硬件 F5 产物如下图所示:
4.2 对于集群软硬件产物怎样选型
当企业业务紧张,技本领量又单薄,而且盼望出钱购买产物及获取更好的服务时,可以选择硬件负载平衡产物,如 F5,Netscaler,Radware 等,此类公司多为传统的大型非互联网企业,如银行,证券,金融业及宝马,奔驰公司等。
对于流派网站来说,大多会用软件及硬件产物来分担单一产物的风险,如淘宝,腾讯,新浪等。融资了的企业会购买硬件产物,如赶集网等网站。
中小型互联网企业,由于起步阶段无利润可赚大概利润很低,会盼望通过使用开源免费的方案来办理标题,因此会雇佣专门的运维职员举行维护。比方:51CTO 等。
相比力而言,贸易的负载平衡产物本钱高,性能好,更稳固,缺点是不能二次开发,开源的负载平衡软件对运维职员的本领要求较高,如果运维及开发本领强,那么开源的负载平衡软件是不错的选择,如今的互联网行业更倾向于使用开源的负载平衡软件。
4.3 怎样选择开源集群软件产物
中小企业互联网公司网站在并发访问和总访问量不是很大的环境下,发起首选 Nginx 负载平衡,来由是 Nginx 负载平衡设置简单,使用方便,安全稳固,社区活泼,使用的人渐渐增多,成为盛行趋势,别的一个实现负载平衡的类似产物为 Haproxy(支持 L4 和 L7 负载,同样良好,但社区不如 Nginx 活泼)。
如果要思量 Nginx 负载平衡的高可勤奋能,发起首选 Keepalived 软件,来由是安装和设置简单,使用方便,安全稳固,与 Keepalived 服务类似的高可用软件另有 Heartbeat(使用比力复杂,并不发早先学者使用)
如果是大型企业互联网公司,负载平衡产物可以使用 LVS + Keepalived 在前端做 4 4 4 层转发(一样平常是主备或主主,如果必要扩展可以使用 DNS 或前端使用 OSPF),后端使用 Nginx 大概 Haproxy 做 7 7 7 层转发(可以扩展到百台),再背面是应用服务器,如果是数据库与存储的负载平衡和高可用,发起选择 LVS + Heartbeat,LVS 支持 TCP 转发且 DR 模式服从很高,Heartbeat 可以共同 DRBD,不光可以举行 VIP 的切换,还可以支持块装备级别的数据同步(Distributed Replicated Block Device,DRBD),以及资源服务的管理。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金 |