为什么要使用集群架构?
分布式和集群其实就好像权限或者表的水平切割和垂直切割,集群是一种水平切割来分担压力的形式,分布式就好像一个垂直切割来分担压力一样。分布式必定包含集群。
一、为什么要集群?
1JavaEE项目,如果部署在一台Tomcat上,所有的请求,都由这一台服务器处理,存在很大风险:
A:并发处理能力有限
(一般单台服务器处理的并发量为250左右,超过250,可能会出现数据丢失,链接不稳定的情况)。因为单服务器的性能有限制。所以单台Tomcat的最大连接数有限制,
B:容错率低,一旦服务器故障,整个服务就无法访问了。
eBay于 1999年6月停机22小时的事故,中断了约230万的拍卖,使eBay的股票下降了92个百分点。
C:单台服务器计算能力低,无法完成复杂的海量数据计算。
提高CPU主频和总线带宽是最初提供计算机性能的主要手段。但是这一手段对系统性能的提供是有限的。接着人们通过增加CPU个数和内存容量来提高性能,于是出现了向量机,对称多处理机(SMP)等。但是当CPU的个数超过某一阈值,这些多处理机系统的可扩展性就变的极差。主要瓶颈在于CPU访问内存的带宽并不能随着CPU个数的增加而有效增长。与SMP相反,集群系统的性能随着CPU个数的增加几乎是线性变化的。
使用集群架构完成工作主要有以下几点决定:
1、高性能计算
一些国家重要的计算密集型应用(如天气预报,核试验模拟等),需要计算机有很强的运算处理能力⌄以全世界现有的技术,即使是大型机器,其计算能力也是有限的,很难单独完成此任务。因为计算时间可能会相当长,也许几天,甚至几年或更久。因此,对于这类复杂的计算业务,便使用了计算机集群技术,集中几十上百台,甚至成千上万台计算机进行计算。
2、价格有效性
早期的淘宝,支付宝的数据库等核心系统就是使用上百万元的小型机服务器。后因使用维护成本太高以及扩展设备费用成几何级数翻倍,甚至成为扩展瓶颈,人员维护也十分困难,最终使用PC服务器集群替换之,比如,把数据库系统从小机结合Oracle数据库迁移到MySQL开源数据库结合PC服务器上来。不但成本下降了,扩展和维护也更容易了。
3、可伸缩性
当服务负载,压力增长时,针对集群系统进行较简单的扩展即可满足需求,且不会降低服务质量。
通常情况下,硬件设备若想扩展性能,不得不增加新的CPU和存储器设备,如果加不上去了,就不得不购买更高性能的服务器,就拿我们现在的服务器来讲,可以增加的设备总是有限的。如果采用集群技术,则只需要将新的单个服务器加入现有集群架构中即可,从访问的客户角度来看,系统服务无论是连续性还是性能上都几乎没有变化,系统在不知不觉中完成了升级,加大了访问能力,轻松地实现了扩展。集群系统中的节点数目可以增长到几千乃至上万个,其伸缩性远超过单台超级计算机。
4、高可用性
单一的计算机系统总会面临设备损毁的问题,如CPU,内存,主板,电源,硬盘等,只要一个部件坏掉,这个计算机系统就可能会宕机,无法正常提供服务。在集群系统中,尽管部分硬件和软件还是会发生故障,但整个系统的服务可以是724小时可用的。
集群架构技术可以使得系统在若干硬件设备故障发生时仍可以继续工作,这样就将系统的停机时间减少到了最小。集群系统在提高系统可靠性的同时,也大大减小了系统故障带来的业务损失,目前几乎100%的互联网网站都要求724小时提供服务。
5、透明性
多个独立计算机组成的松耦合集群系统构成一个虚拟服务器。用户或客户端程序访问集群系统时,就像访问一台高性能,高可用的服务器一样,集群中一部分服务器的上线,下线不会中断整个系统服务,这对用户也是透明的。
6、可管理性
整个系统可能在物理上很大,但其实容易管理,就像管理一个单一映像系统一样。在理想状况下,软硬件模块的插入能做到即插即用。
7、可编程性
在集群系统上,容易开发及修改各类应用程序。
蓝海大脑水冷工作站超融合架构承担着计算资源池和分布式存储资源池的作用,极大地简化了数据中心的基础架构,通过软件定义的计算资源虚拟化和分布式存储架构实现无单点故障、无单点瓶颈、弹性扩展、性能线性增长等能力。通过简单方便的统一管理界面,实现对数据中心计算、存储、网络、虚拟化等资源的统一监控、管理和运维。
型号 蓝海大脑水冷服务器
英特尔
处理器 Intel Xeon Gold 6240R 24C/48T,24GHz,3575MB,DDR4 2933,Turbo,HT,165W1TB
Intel Xeon Gold 6258R 28C/56T,27GHz,3855MB,DDR4 2933,Turbo,HT,205W1TB
Intel Xeon W-3265 24C/48T 27GHz 33MB 205W DDR4 2933 1TB
Intel Xeon Platinum 8280 28C/56T 27GHz 385MB,DDR4 2933,Turbo,HT 205W 1TB
Intel Xeon Platinum 9242 48C/96T 38GHz 715MB L2,DDR4 3200,HT 350W 1TB
Intel Xeon Platinum 9282 56C/112T 38GHz 715MB L2,DDR4 3200,HT 400W 1TB
AMD
处理器 AMD锐龙Threadripper Pro 3945WX 40GHz/12核/64M/3200/280W
AMD锐龙Threadripper Pro 3955WX 39GHz/16核/64M/3200/280W
AMD锐龙Threadripper Pro 3975WX 35GHz/32核/128M/3200/280W
AMD锐龙Threadripper Pro 3995WX 27GHz/64核/256M/3200/280W
AMD锐龙Threadripper Pro 5945WX 41G 12核/64M/3200/280W
AMD锐龙Threadripper Pro 5955WX 40G 16核/64M/3200/280W
AMD锐龙Threadripper Pro 5965WX 38G 24核/128M/3200/280W
AMD锐龙Threadripper Pro 5975WX 36G 32核/128M/3200/280W
AMD锐龙Threadripper Pro 5995WX 27G 64核/256M/3200/280W
显卡 NVIDIA A100×4, NVIDIA GV100×4
NVIDIA RTX 3090×4, NVIDIA RTX 3090TI×4,
NVIDIA RTX 8000×4, NVIDIA RTX A6000×4,
NVIDIA Quadro P2000×4,NVIDIA Quadro P2200×4
硬盘 NVMe2 SSD: 512GB,1TB; M2 PCIe - Solid State Drive (SSD),
SATA SSD: 1024TB, 2048TB, 5120TB
SAS:10000rpm&15000rpm,600GB,12TGB,18TB
HDD : 1TB,2TB,4TB,6TB,10TB
外形规格 立式机箱
210尺寸mm(高深宽) : 726 x 616 x 266
210A尺寸mm(高深宽) : 666 x 626 x 290
210B尺寸mm(高深宽) : 697 x 692 x 306
声卡:71通道田声卡
机柜安装 : 前置机柜面板或倒轨(可选)
电源 功率 : 1300W×2; 2000W×1
软件环境 可预装 CUDA、Driver、Cudnn、NCCL、TensorRT、Python、Opencv 等底层加速库、选装 Tensorflow、Caffe、Pytorch、MXnet 等深度学习框架。
前置接口 USB32 GEN2 Type-C×4
指承灯电和硬盘LED
灵动扩展区 : 29合1读卡器,eSATA,1394,PCIe接口(可选)
读卡器 : 9合1SD读卡器(可选)
模拟音频 : 立体声、麦克风
后置接口 PS2接口 : 可选
串行接口 : 可选
USB32 GEN2 Type-C×2
网络接口 : 双万兆 (RJ45)
IEEE 1394 : 扩展卡口
模拟音频 : 集成声卡 3口
连接线 专用屏蔽电缆(信号电缆和电源电缆)
资料袋 使用手册、光盘1张、机械键盘、鼠标、装箱单、产品合格证等
我们在信息中心的服务器中实施了虚拟化技术,任何一台物理服务器的断电都会导致多个虚拟机停止工作。一个高可用的(HA)集群系统可以帮助我们预防这种情况出现,当主机故障发生后,虚拟机可以在集群系统中迅速重建。举例来说,假设虚拟化集群中的一个物理节点失效,虚拟机可以迅速迁移到其他节点继续运行。在这种集群模式下,即使在服务器宕机的情况下,核心业务系统仍然可以持续地提供服务。
在Xen虚拟机可以被集群系统管理并实现在节点间自由迁移之前,所有节点必须具备访问虚拟机的配置文件及后端存储的能力。在本文中,TechTarget中国的特约虚拟化专家Sander van Vugt将讲述如何对它们实现共享访问。
实现对虚拟机配置文件的访问
实现虚拟机配置文件在所有节点的共享访问是非常简单的。首先,把文件存放在SAN系统中的逻辑单元号LUN(logic unitnumber)上;接下来,把LUN中/etc/xen/vm目录映射给节点中所有相关主机;最后,把配置文件设置为网络共享状态,使其所在目录可以被主机动态加载。或者您也可以在配置发生变化后,手动同步文件(而且这种变化并不会经常发生)。然而,为了虚拟机后端存储的共享访问,设置方式是完全不同的。
配置后端存储设备
这里提供两种不同的配置虚拟机后端存储的方法。第一种是,虚拟机默认状态下是把后端存储作为一个文件来处理的。在这种情形下,设置该文件可以被集群中的每个主机访问就可以共享了。同时,我们建议把该文件放置在安全的集群文件系统中,例如Oracle的Oracle Cluster FileSystem 2。
第二种更加简单的方式是,设置专门的设备作为后端存储。当创建虚拟机时,在安装过程中把逻辑卷配置为虚拟机的后端存储。这样,只需确保逻辑卷是位于SAN中的LUN上,并且可以被集群中的所有主机访问到就可以了。
配置Xen主机
在准备好多个Xen主机后,就可以开始创建集群系统了。首先,从主服务器上启动hb_gui终端,并认证为hacluster用户。接下来,选择Configuration进行配置,再选择Resources。在这页中,单击Add,对Primitive相关选项进行配置。最后,为resource命名输入其ID(在测试过程中,命名为\"Xen-node\"是个不错的选择)。下一步依次选择Class OCF, ProviderHeartbeat和Type Xen进行相应配置。全部完成后,点击Forward。
在下一个窗口中,我们可以进一步配置新Xen虚拟机的相应参数。选择Instance Attributes页,在xmfile参数中指定正确的Xen虚拟机配置文件。然后,提供虚拟机配置文件的完整路径并点击Apply。现在我们已经在集群中创建了源虚拟机。
到现在,在hb_gui终端的管理窗口中,我们已经可以看到源虚拟机了,但是它还处于非激活状态。右键点击虚拟机,选择Start。
恭喜,现在我们已经完成第一台集群系统中虚拟机的创建。
一般而言,群集和高可用性结合的服务器可将运行提升至9999%。群集技术不仅仅能够提供更长的运行时间,它在尽可能地减少与既定停机有关的停机时间方面同样有着重要意义。例如,如果使用群集,你可以在关闭一台服务器的同时,不用与用户断开即可进行应用,硬件,操作系统的流动升级。集群系统通过功能整合和故障过渡技术实现系统的高可用性和高可靠性,集群技术还能够提供相对低廉的总体拥有成本和强大灵活的系统扩充能力。
随着计算机技术的发展和越来越广泛的应用,越来越多的依赖于计算机技术的应用系统走进了我们的工作和生活。在给我们带来方便和效率的同时,也使得各行各业对于计算机技术的依赖程度越来越高。尽管随着计算机技术以日新月异的速度发展,单台计算机的性能和可靠性越来越好,但还是有许多现实的要求是单台计算机难以达到的。
高可用性集群,英文原文为High Availability Cluster, 简称HA Cluster,是指以减少服务中断(宕机)时间为目的的服务器集群技术。
随着全球经济的增长,世界各地各种各样的组织对IT系统的依赖都在不断增加,电子贸易使得商务一周七天24小时不间断的进行成为了可能。新的强大的应用程序使得商业和社会机构对日常操作的计算机化要求达到了空前的程度,趋势非常明显,我们无时无刻不依赖于稳定的计算机系统。
这种需求极速的增长,使得对系统可用性的要求变得非常重要,许多公司和组织的业务在很大程度上都依赖于计算机系统,任何的宕机都会造成严重的损失,关键IT系统的故障可能很快造成整个商业运作的瘫痪,每一分钟的宕机都意味着收入、生产和利润的损失,甚至于市场地位的削弱。
1前端放负载均衡
如 狼大人 所说的LVS可, 使用 F5 相关的硬件设备亦可
需要注意: 是否需要session 如果用户被打到了与上次访问时不同的物理机上, 会不会受影响 如何让同一个用户的访问打到同一台物理机上
还有一种方式是使用反向代理, 使用 Apache, Ngnix 等都可以实现
2充分利用DNS
DNS 是一份天然的负载均衡方案, A记录可以写多个 例如在北京和上海各有一组机器, 北京前端使用了LVS, 上海亦是, 则可以把北京/上海的LVS同时写到DNS中;
3是否需要考虑机房容灾
简单的, 可以将狭义的集群, 在多个机房各部署一套, 形成大集群
4集群了, 在程序设计中需要注意的地方
程序部署在多台物理机上, 需要注意在多台物理机器上的并发, 及信息的同步
本文不涉及到具体的HAA部署步骤,只是对Uipath相关的Redis集群、高可用方案做一个简单的介绍。
目前官方文档上介绍的的Orchestrator部署方案有三种:
1、单节点orchestrator部署
单节点部署,即是一般的orchestrator部署,这里不做多介绍。
2、多节点部署:其实类似集群(cluster)部署。
每个orchestrator都相当于集群中的一个“节点”(node),每个节点都提供相同的服务。当有业务请求进来后,由HAA(Redis)进行业务调度,将该请求分配给此刻负载较小的节点来处理,是的每个节点的压力都比较平均。HAA实际上就充当了一个负载均衡器的角色。
由于有多个 Orchestrator 节点可用,因此这能提供更出色的性能并能有效避免故障 - 当一个节点发生故障时,其他节点还可承担负载。它还具有水平可扩展性,因为随着对机器人需求的进一步增长,还可以添加其他节点。但是,不应将此部署模型与[高可用性]混淆,因为单独的 HAA 节点仍为潜在的单点故障。
3、高可用性部署(High Availablity)
高可用性部署具有与多节点部署类似的架构,但与简单的 多节点 Orchestrator 部署 相比,此模型要使用更多资源,且至少需要 3 个 HAA 节点并要满足相应的 硬件和软件要求 。多个Orchestrator和HAA节点,能够在一个节点出现故障的时候,由其他节点承担负载。
Redis实现高可用原理:
1、主从复制数据。(replication)
2、采用哨兵监控数据节点的运行情况,一旦主节点出现问题由从节点顶上继续进行服务。(sentinel)
高可用与Redis集群的区别:
高可用实现的是服务器与业务处理数据的稳定性,降低系统整体故障的概率,提高系统整体的可用性与稳定性;集群则是为了提高系统的性能与线性扩展能力,解决单机的性能瓶颈问题。
0条评论