多对多池化高可用集群技术的探索和实践.docx
- 文档编号:28804781
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:17
- 大小:2.16MB
多对多池化高可用集群技术的探索和实践.docx
《多对多池化高可用集群技术的探索和实践.docx》由会员分享,可在线阅读,更多相关《多对多池化高可用集群技术的探索和实践.docx(17页珍藏版)》请在冰豆网上搜索。
多对多池化高可用集群技术的探索和实践
“多对多池化”高可用集群技术的探索和实践
摘要本文叙述了券商单点应用(如银行等外部机构提供的应用)实践“多对多池化”高可用集群技术的探索和实践,介绍了单点应用从传统的“一对一”冗余技术,到“多对多池化”高可用集群技术的创新与落地,生产上实现了在不改变现有系统架构、应用程序并满足固定IP等的要求下,以较低的运维人力及软硬件投入成本,有效解决竖井式IT架构的服务器单点故障可能引发的手动切换等问题,故障转移时间从分钟级缩短至秒级。
关键字多对多池化迭代切换VIP(虚拟IP)仲裁单点应用高可用集群
1、实践背景
券商的业务应用系统,特别是对接银行、交易所、登记公司等的某些应用程序(或直接由对方机构提供的应用程序),在技术架构设计上受限于对方接口规范,大多无法实现高可用冗余部署的需求,导致了应用单点的出现,而且这些单点往往呈现数量较多、难以改造的特点,券商运维团队需投入大量的人力物力来保障这类应用服务的连续性。
本文将重点讨论解决此困境的新方案。
下面,我们将从服务器的高可用集群技术展开叙述。
服务器高可用集群是将多个服务器集中在一起同时进行同一种服务,在应用层看起来就像是一台服务器,是一种以减少服务中断时间为目的的高可用技术。
近年来,随着一系列法律法规的颁布,监管单位对机构的业务高可用保护提出了新的要求,例如,根据GBT22239-2019《信息安全技术网络安全等级保护基本要求》的要求,需要满足提供重要数据处理系统的热冗余,保证系统的高可用性。
目前,券商机构在确保关键业务系统的高可用方面,采用的主要技术是通过服务器高可用集群,将单点故障对业务连续性的影响降到最低,并随着应用场景的发展和监管需求的提高,衍生了主备架构、双活架构等多种高可用模型。
高可用模型的选择,取决于券商机构的IT系统架构。
在证券行业,多数对外机构业务的IT架构为竖井式业务模型,从上到下分为:
上层应用(负责业务交互)、中层系统(负责处理应用数据)、底层存储(负责落地及存储数据)。
针对此类业务模型,传统的集群高可用保护方式包括:
1.1.基于共享存储的高可用架构
此架构由三部分组成:
活动主节点,不活动备节点,共享存储。
其中两台计算资源节点提供主备角色服务,通过SAN网络附加型存储作为数据存储的介质。
代表方案有:
Windows故障转移集群、Linux的RHCS集群。
架构优势:
(1)数据强一致性保障,只有数据落盘,数据丢失为零;
(2)共享存储,不需要数据同步的机制,数据不延迟;(3)RTO时间为秒级;(4)同机房、同机柜实现,易管理;(5)支持自动化切换方式,无需过多的人工干预。
架构劣势:
(1)共享存储的同构成本高,远距离高可用接管成本高;
(2)数据存储介质唯一,存储故障风险大;(3)仅支持一对一架构,不支持级联或一对多高可用。
图1:
共享存储架构
1.2.基于双机双柜的高可用架构
双机双柜是一种不依赖共享存储而实现的高可用保护架构,采用主备的高可用保护模式。
在双机架构中,生产主机和备机具有物理层的完全独立性,应用、系统、网络和数据都是一式两份,彼此之间仅通过网络进行通信和数据传输,不需要SAN存储的介入。
架构优势:
(1)不需要共享存储支持,投入成本低;
(2)支持远距离高可用;(3)双份数据,业务恢复快;(4)支持自动化和定义组切换,支持深度进程、端口、日志等全方位监控;(5)支持级联及一对多高可用架构。
架构劣势:
(1)采用异步数据复制,存在数据延迟;
(2)采用同步数据复制,对生产压力大;(3)需要第三方软件支持,有较高的软硬件成本和运维人力成本。
图2:
双机双柜的架构
综上,安信证券团队研究发现,这两种基于竖井式的业务模型的高可用架构,服务器高可用集群采用的是一对一的接管方式,即当生产端的一台服务器出现故障,备端的对应服务器可以启动接管,但通常会采用手动切换,或通过脚本方式启动接管,耗时耗力,且容易出错,不可控的因素多且成本较高。
下文将从安信证券单点应用的服务器“多对多池化”高可用集群技术实践、场景应用和总结展望等方面进行介绍。
2、多对多池化”高可用集群技术实践
在安信证券应用场景下,由安信证券提出了“多对多池化”的概念,并于2019年初开始立项,主要针对单点应用服务器做高可用保护。
该单点应用具有三大特点:
一是种类及数量较多;二是无数据或少数据的存储需求;三是应用服务的IP和端口大多要求固定。
根据这三大特点,安信证券做了双机双柜(一主一备)的集群高可用的技术方案研究,但是基于一对一的高可用方案并不理想,主要的原因有四个:
一是传统的业务架构,在设计初期没有考虑到后期冗余的需求,难以在短期内进行高可用保护架构的升级,或者新改造方案的成本太高,且存在新的风险;
二是证券系统对业务应用IP如何一直保持不变,特别是像银行、交易所、登记公司等的业务应用,IP和端口是固定的,在这种要求下用传统的方式做集群高可用保护,难度很大。
三是故障完成切换后,只能单点运行,系统的冗余性无法继续保持。
四是资源投入成本较大,采用传统的一体机高可用保护方式,硬件数量大,投资回报率低。
如何摆脱高可用性集群建立在“一对一”关系模型上,往“多对多池化”高可用集群技术的方面发展,是突破传统的竖井式IT架构集群高可用的关键。
由于行业并没有可供参考的合适技术方案,项目团队经过对“一对一”、“级联”、“一对多”等高可用集群模型的研究,开创性地提出了“多对多池化”高可用集群技术保护的模型。
图3:
“一对一”接管架构
如图3所示:
传统的“一对一”的关系模型,A主机与A备机的高可用保护形态,数据同步、监控、切换执行等,只发生在A主机和A备机的关系中。
图4:
“多对多”池化接管架构
如图4所示:
“多对多”的关系模型,则通过构建池化集群,将备端的多台主机组成资源池。
当A主机发生故障后,由资源池中具备优先接管条件的备机提供接管,备机接管池的高可用保护不再是一对一的固定模式,它们具备了多级接管的能力。
即当故障发生时,第1台备机如果不具备接管条件,将由第2台备机接管,以保证故障完成切换后,系统的冗余性继续保持。
2.1“多对多池化”高可用的组成架构
架构是模型的基本组成,高可用的基本功能定义需要具备如下几个条件,来帮助高可用塑型:
角色:
定义活动节点即主节点,不活动节点即备节点;
资源:
服务器集群;
数据:
一致性保障,确保主备数据一致性;
监控:
识别故障及异常的技术方式;
仲裁:
第三方防脑裂的判断基准;
VIP:
虚拟IP,统一用户访问入口;
心跳:
高可用切换的依据;
脚本:
调用应用启动或实现应用的自动拉起;
告警:
邮件或短信或其它通信方式告警;
组别:
应用逻辑组或模块的顺序管理,主要应用在组切换场景中;
回切:
恢复系统原状。
在服务器“多对多池化高可用集群技术”架构组成方面,由以下组件构成:
图5:
“多对多池化”高可用组件架构
切换组件:
手动切换、自动切换、不固定目标端角色切换及固定目标端角色,均在切换模块中定义;
资源池组件:
由生产服务节点和备用资源共同组成;
数据同步组件:
负责将数据从指定服务器同步至目标服务器;
VIP组件:
VIP自动漂移至目标端,不需要人工干预;应用联动组件:
提供组联动切换功能,一键拉起业务组服务;
监控组件:
识别进程、服务、负载、特定监控对象的运行状态等,为切换提供判断依据。
这些组件构成了控制中心组件,负责服务状态的监控,提供资源池配置与管理,并提供WEB人机交互的窗口功能。
2.2“多对多池化”高可用的核心功能
在已生产部署的三方存管系统中,单点应用服务器“多对多池化”高可用的核心功能包括:
VIP功能:
在高可用的保护场景中,发生主备切换时,服务器角色会随着切换节点的变更发生物理主机的角色转换,由两台IP不一样的主机提供活动节点与不活动节点功能。
团队在“多对多池化”高可用架构设计之初,考虑到了主机切换后IP地址访问异动的问题,故融入了VIP机制的功能,与通过独立负载均衡设备实现的VIP功能不同,“多对多池化”高可用采用的是一种软件定义VIP的功能。
图6:
VIP功能架构图
当备端的资源池高可用构建完成时,所有主节点的主网卡会自动增加一个虚拟IP地址,并在当前网络环境下进行正常通信,即一张物理网卡中会有两个地址:
第一级主地址和第二级辅地址。
主地址负责集群管理通信,辅地址负责业务数据通信,彼此分工明确。
当主节点发生故障,触发了VIP切换功能之后,集群将VIP辅地址在当前主节点中删除,在备节点进行IP地址的附加,从而实现虚拟IP地址的漂移。
VIP功能确保服务器切换时,业务的IP和端口保持不变。
仲裁机制功能:
在高可用保护切换流程中,可能会出现主备同时为主,或者主备同时为备的现象,这个情况称之为脑裂,会造成双主或双备的情况发生,导致业务系统异常,高可用保护或者切换失效。
为了防止此类现象发生,可通过独立的第三方主机构建仲裁服务器,站在中间立场来执行唯一性切换判断,解决脑裂、网络闪断造成误切换等问题。
图7:
仲裁服务器架构图
例如,正常的运行模式下,主备双方具备同样的票数确保各角色固定。
当心跳网络中断,但主机服务正常的特殊情况下,独立于心跳网络之外的仲裁端开始发挥作用。
主备机高可用节点服务器会实时维持与仲裁端的监控同步,识别应用节点正常或异常状态及确定主备角色都各自固定,且唯一存在,当出现如下两种状况时,仲裁开始发挥作用:
1.主节点正常,但主备心跳中断,依照优先级设置,主备不会发生切换,防止误切换发生,同时会下达指令,控制备端不进行角色接管,并通知运维人员介入处理。
2.主节点异常,主备心跳中断,能与仲裁连接的节点会被判断为健康节点,不健康的节点会退出高可用性应用。
当主备完成切换后,核对切换后的主机和接管后的备机,彼此主备角色不重复,具备唯一性存在。
需要说明的是,当心跳线正常的情况下,仲裁不会起作用。
而故障切换的判断条件包括某个服务或进程是否正常,CPU、内存、磁盘是否正常,网络是否正常,也可以使用脚本自定义其他的判断条件。
以上条件多次确认发现问题后,再判断心跳连接和仲裁的情况决定是否切换。
仲裁节点节自身出故障时,高可用规则会有告警功能,如果不修复,当主节点故障需要仲裁时可选择两种策略中的一种切换或不切换。
仲裁节点还可以使用高可用方式部署,避免单点故障。
部署方式如下:
仲裁机是1:
1的高可用集群,仲裁IP为此集群的对外服务VIP。
集群高可用仲裁有三个场景:
1)如果仲裁IP不存在:
整个高可用服务器池不能自动切换,可通过手动进行切换(告警发现,需及时修复)。
2)仲裁节点误切换无风险:
仲裁IP在任何一个安装有代理的机器上,只要有网络权限,就可以起到仲裁节点的作用。
3)如果出现脑裂,当两个都为备节点,则IP丢失,运行模式如场景1;当两个都为主时,两节点会通过优先级去比较,发现初始主节点的优先级比较高,就会回切为主节点,另外一个主节点则会降为备节点。
资源池化功能:
服务器资源的池化,采用了云平台的主机池化管理架构,将所有主机和备机统一在一个服务器资源池中进行管理,通过标签定义的功能来识别应用类型。
不同应用的主机和备机,构成了资源池的基础,不区分物理机、虚拟机等物理平台类型,所有的切换、接管、监控、策略均发生在可控的资源池中,通过逻辑组,将不同业务划分为不同组别,并进行分类标明,所有组均统一至池中进行管理,不同业务系统、不同组别、不同主机平台,基于节点服务统一进行高可用的切换管控。
图8:
服务器资源池架构图
在服务器资源池中进行弹性服务器节点的新增或删除时,不需要停机,不影响业务正常运转。
例如,可以进行故障服务器的在线更换,即通过资源池的服务器调用,添加完新服务器后,再撤掉旧的服务器,如此可轻松应对设备维护、系统升级和补丁修复等。
迭代切换功能:
常规的主备切换模式中,主节点切换至备节点就算一个主备流程完结。
在“多对多”高可用的保护设计中,支持迭代切换,即A故障B接管,B故障C接管,直到资源池最后一个空闲资源节点耗尽为止。
迭代切换功能保障了系统的冗余能力最大化。
图9:
迭代切换架构图
不同接管率支持功能:
“多对多池化”高可用保护在面向多台主机保护时,可以根据应用服务保障级别进行服务器的弹性扩容,即通过设计接管率的配比来控制接管主机的投入数量,调配的合理范围一般设置在10%-100%内。
图10:
不同接管率架构图
举例说明:
在10%接管率的场景下,100台生产服务器仅需要10台接管主机即可满足要求,即允许同时故障的最大主机数量为10,相较于传统“一对一”主备模式,可降低90%的服务器资金投入,承担额定故障率的高可用接管。
代理服务器功能:
为了减轻对生产系统的影响,“多对多池化”高可用集群技术方案只在服务器上装一个轻量化的代理程序,然后通过Web界面对服务器集群的高可用状态进行监控、展示和管理。
2.3“多对多池化”高可用技术优势
与传统的“一对一”高可用保护技术相比,“多对多池化”高可用集群技术的优势包括:
化解发生切换后单点运行风险一对一高可用保护技术,当发生主机切换后,会存在单点运行的风险,即接管设备再发生故障时,业务将中断。
“多对多池化”高可用保护技术,通过服务器资源的池化管理,使得备用资源池的服务器大于等于2时,整个业务系统的高可用构成方式变成了迭代接管。
对应用系统完全透明对于证券、银行等传统的系统架构,很多程序短期内无法进行迭代,而架构的修改风险大,成本高。
“多对多池化”的高可用保护技术无需对现有的系统架构和程序做任何修改,只需在服务器上安装一个轻量化的代理程序,整个过程对应用系统完全透明。
高性价比如果采用自动化的高可用接管方式,“一对一”高可用保护技术的方案,可以通过购买一体机的方式进行部署,但投入成本大,一台一体机就可高达二三十万,设备老旧更换的费用高,运维人力资源的投入较大。
采用“多对多池化”高可用集群技术,在原有服务器设备基础上,通过高性价比的软硬件投入方式(备机集群资源池甚至可以使用新老设备混用的方案),实现资源池内服务器资源的灵活调用,在投入更小的情况下,整个系统的冗余能力反而得到提升。
维护更可靠一对一的高可用保护技术,当生产服务器出现故障时,运维人员会手动切换到另外一台服务器,然后再去维修故障服务器,整个切换过程风险大,不可控因素多。
采用“多对多池化”高可用集群技术,服务器出现故障时会自动切换,整个系统保持高可用状态,且不会存在切换后单点运行的状态。
同时,系统后台会推送告警信息,运维人员无需马上去维护,可以等到收市后的非繁忙时段再去处理,整个过程可视化、更可靠。
2.4“多对多池化”场景应用实践
在安信证券落地实施的“多对多池化”高可用集群技术场景中,目前已完成三方存管业务、银衍业务所有单点应用的高可用集群部署,图11非常清晰地描述了部署的样例:
在银行中间件集群中,生产部署了9台主用服务器和4台备用服务器;在三方存管业务的三方交易网集群中,部署2主2备;在银衍业务的三方交易网关集群中,部署1主1备。
图11:
场景落地应用架构图
在对单点应用的“多对多池化”高可用保护项目建设过程中,团队实现了以下的生产场景应用:
一是同网段同类应用形成一个集群,即以产品属性自由分配不同的应用集群。
二是多资源池的支持。
根据业务应用特点,可划分多个服务器集群的资源池,降低彼此之间的影响。
三是VIP功能管理。
硬件资源的管理可通过物理IP实现,对于有IP绑定需求的服务器,系统可增加虚拟IP来承载业务入口;如果没有就不需要增加,节省IP资源。
四是服务器资源的维护。
在无需停机的情况下,可将系统应用切换至资源池的服务器集群中,待新机替换旧机,或系统升级、补丁修复后,再切换回来,整个过程无需停机,对业务不影响,可满足7×24小时服务应用程序的业务连续性保障需求。
3、总结与展望
项目第一阶段已完成实施所有第三方存管、银衍转账单点应用的“多对多池化”高可用集群部署。
上线半年以来,生产上发生了一次物理机故障,应用程序自动切换到备端服务器资源池的物理设备上恢复业务连续性,整个处理过程秒级切换,无人为干预,客户无感知,整体效果符合预期。
项目第二阶段,计划分批逐步实施登记公司、交易所小站、柜台报盘程序等单点应用的“多对多池化”高可用集群部署。
证券是一个对业务连续性要求非常严苛的行业,几分钟的停机事件都会带来巨大的经济损失和影响。
“多对多池化”高可用集群技术在成本、可行性、风险管控、创新性方面对整个行业突破“一对一”冗余保护技术的枷锁,起到了抛砖引玉的良好作用。
未来,安信证券更多的单点应用系统将采用此方案进行多对多的高可用保护,直至消除所有生产单点应用运行的情况。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多池化高 可用 集群 技术 探索 实践