一种基于双机热备的高可用服务方法和系统与流程

专利检索2025-01-14  28


本发明涉及服务器备份,具体是一种基于双机热备的高可用服务方法和系统。


背景技术:

1、随着信息化技术的受用面不断扩大,数据已经覆盖到了整个人类生活,并且成为企事业单位的重要财富。而由于数据本身的脆弱性,对数据保护的研究一直是行业的重要课题。在数据价值特别高的行业,对数据保护会提出更高的要求,由此产生了数据持续性保护的需求。但是,现有技术的服务器持续性保护数据仍存在一些问题:

2、(1)现有技术的持续性数据保护限于单机保护。当前的持续性保护,大多都是针对单机保护。然而在实际生产应用中,双机环境是很常见:两台业务机分为主机和从机,利用双机系统将一块数据磁盘挂载到主从机上。当主机出现故障时,会自动主从机切换,使得业务处理不中断,而且使数据落在同一块数据盘上。当前的单机保护,很难满足双机业务的需求。因为在装有双机系统的环境中,真正的数据磁盘一般是不允许安装关于第三方持续性数据保护的产品,只能安装在主从业务机上。如果第三方持续性数据保护产品安装在主从业务机上,客观地就把主从机当作两个单机保护模式的磁盘来保护,当主从机进行切换时,数据必然丢失。

3、(2)双机保护限于非持续性保护。双机保护的数据备份一般是基于周期性的数据复制,周期性数据复制的备份粒度远大于实时性级别保护和块级别保护。两个备份周期之间的数据可能会丢失,块级别保护可以使快照磁盘与快照对应时刻的真实磁盘达到块级别的一致性,数据更加完整。


技术实现思路

1、针对上述现有技术中的不足之处,本发明提出一种基于双机热备的高可用服务方法和系统,用于解决现有技术持续性保护数据不足的问题。

2、为了实现上述目的,本发明的技术方案:

3、一种基于双机热备的高可用服务方法,其包括作为服务节点的主、从两台服务器,所述两台服务器上的应用程序基于microsoft orleans框架构建为跨硬件的多进程应用,所述应用程序与所述主、从两台服务器之间通过vrrp协议通信;所述两台服务器中的其中一台运行在主机模式,在vrrp心跳失败的触发下,将主机模式从当前服务器切换至另一台服务器。

4、进一步地,所述两台服务器均安装有相同的postgresql数据库、redis缓存、minio文件服务器、网关程序、portainer容器管理工具、pgwatch数据库工具、应用程序;

5、所述portainer容器管理工具为网关程序提供docker的管理接口;

6、所述应用程序根据服务请求在docker容器运行为业务程序,所述网关程序协调业务程序的运行并提供反向代理服务,使同一个应用程序在两个服务节点上有且仅有一个运行中的实例;

7、所述pgwatch数据库工具将postgresql数据库设置为主从模式,并开启备份流;所述redi s缓存以主从模式运行;minio文件服务器以镜像模式的集群方式运行。

8、进一步地,对于所述postgresql数据库,所述主、从两台服务器中的主机模式切换实现:

9、1)采用keepalived工具对所述主、从两台服务器进行相同的路由配置:

10、非抢占模式下主、从两台服务器均配置vrrp协议中的backup路由器、网络接口、虚拟路由id、优先级、vrrp心跳包检查周期、通知脚本、鉴权、postgresql数据库虚拟ip、心跳触发故障条件;

11、所述通知脚本记录postgresql数据库当前状态及当前虚拟ip的切换日志,所述应用程序只使用postgresql数据库虚拟ip进行访问,且该虚拟ip只指向以主机模式运行的服务器的postgresql数据库;

12、2)所述pgwatch数据库工具处理过程包括:

13、步骤a、检查postgresql数据库的连接状态,若连接正常,则进入步骤b;若连接超时,则进入步骤e;

14、步骤b、检查postgresql数据库的运行模式,若为主机模式,则进入步骤c;若为备机模式,则进入步骤f;

15、步骤c、通过通知脚本查看当前虚拟ip的切换日志,若该切换日志记录值表示当前节点状态为主机,则进入步骤d;否则判定为当前postgresql数据库以主机模式运行,但主从关系破坏,恢复数据库跟随状态;

16、步骤d、检查备份流,若备份流状态正常,则判定为当前postgresql数据库以主机模式运行正常;若备份流状态中断,则启动排查恢复备份流;

17、步骤e、检查超时次数是否已达到最大值,若是,则在通知脚本中将记录值修改为表示postgresql数据库运行不正常,则启动排查恢复;

18、步骤f、通过通知脚本查看当前虚拟ip的切换日志,若该切换日志记录值表示当前节点状态为备机,则进入步骤g;若该切换日志记录值表示当前节点状态为主机,则将当前节点的postgresql数据库切换为主机模式;若该切换日志记录值表示postgresql数据库运行不正常,则启动排查恢复;

19、步骤g、检查备份流状态,若备份流中断,则启动排查恢复备份流;若备份流正常,则当前节点的postgresql数据库以备机模式运行。

20、本发明还提供了一种基于双机热备的高可用服务系统,其特征在于,包括:

21、处理器;用于存储所述处理器可执行指令的存储器;

22、所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本发明所述的方法。

23、本发明的有益效果:

24、1、面向包括数据库(postgresql)、缓存/消息队列(redis)、文件服务器(minio)、网关程序和应用程序的综合的双机热备解决方案,适用于多业务类型的服务器。

25、2、应用程序在网关程序的协调下,均处于单例运行状态,不会出现运行状态冲突,若检测到某个应用程序没有运行中的实例,则会自动发起该应用程序的启动指令,若主备机同时启动了同一应用程序,则内置的互斥启动机制可确保仅有一个实例能成功启动,这种单节点应用的实现方式能够适用于中小规模的程序应用场景,对硬件资源的要求也更低。

26、3、支持连续多次自动切换的场景,除了数据库发生主备切换后需要人为介入进行状态恢复外,其他场景均可实现无人值守自动恢复,在运行过程中不会停止发生故障的节点上的keepal ived服务,只要主备机没有同时发生故障,就能保持长期稳定运行。

27、本发明的方案在只有两台服务器的条件下,构建了一种灵活的轻量级的双机热备实现方案,该方案可在其中一台主机故障时对包括数据库、缓存、文件服务器和应用程序在内的各种必要服务进行无人值守的自动切换,可以作为基础设施支撑常见的应用程序部署场景。与市面上常见的高可用方案相比,本方案最低仅需两态服务器即可实现双机热备的功能,硬件配置的门槛低。本方案基于开源免费的工具构建,成本低廉,且可定制性高,灵活性强,可按照自己的具体需求对各组件进行自由搭配和功能扩展。



技术特征:

1.一种基于双机热备的高可用服务方法,其特征在于,包括作为服务节点的主、从两台服务器,所述两台服务器上的应用程序基于microsoft 0rleans框架构建为跨硬件的多进程应用,所述应用程序与所述主、从两台服务器之间通过vrrp协议通信;所述两台服务器中的其中一台运行在主机模式,在vrrp心跳失败的触发下,将主机模式从当前服务器切换至另一台服务器。

2.根据权利要求1所述的一种基于双机热备的高可用服务方法,其特征在于:所述两台服务器均安装有相同的postgresql数据库、redis缓存、minio文件服务器、网关程序、portainer容器管理工具、pgwatch数据库工具、应用程序;

3.根据权利要求2所述的一种基于双机热备的高可用服务方法,其特征在于:对于所述postgresql数据库,所述主、从两台服务器中的主机模式切换实现:

4.根据权利要求3所述的一种基于双机热备的高可用服务方法,其特征在于:指定网络接口状态变化的通知延迟,该值小于所有虚拟网络实例配置中的倒计时广播间隔值和检查间隔值。

5.根据权利要求3所述的一种基于双机热备的高可用服务方法,其特征在于:对于所述redis缓存和minio文件服务器,所述主、从两台服务器中的主机模式切换实现:

6.根据权利要求5所述的一种基于双机热备的高可用服务方法,其特征在于:对于所述网关程序,所述主、从两台服务器中的主机模式切换实现:

7.一种基于双机热备的高可用服务系统,其特征在于,包括:


技术总结
本发明公开了一种基于双机热备的高可用服务方法,其包括作为服务节点的主、从两台服务器,所述两台服务器上的应用程序基于Microsoft Orleans框架构建为跨硬件的多进程应用,所述应用程序与所述主、从两台服务器之间通过VRRP协议通信;所述两台服务器中的其中一台运行在主机模式,在VRRP心跳失败的触发下,将主机模式从当前服务器切换至另一台服务器。本发明解决了现有技术持续性保护数据不足的问题。

技术研发人员:徐跃福,傅阳,陈刚,杨竞毅
受保护的技术使用者:翌日科技(重庆)有限公司
技术研发日:
技术公布日:2024/5/29
转载请注明原文地址:https://win.8miu.com/read-1148635.html

最新回复(0)