一种用于磁盘镜像高可用集群diskless的处理方法和系统与流程

文档序号:11176987阅读:341来源:国知局
一种用于磁盘镜像高可用集群diskless的处理方法和系统与流程

本发明涉及服务器技术领域,特别是涉及一种用于磁盘镜像高可用集群diskless的处理方法和系统。



背景技术:

随着信息化的发展,企事业单位对关键应用的可靠性和可用性要求越来越高,服务器系统一旦发生故障,带来的损失无可估量。高可用集群技术是解决由软硬件问题导致可靠性降低的有效措施,典型的高可用集群方案由两个以上的服务器连接起来,通过高可用集群软件实现心跳和协调,当一台服务器停机时,集群中的其他服务器能够将停机服务器的业务接管过来。

典型的高可用集群方案多个服务器间数据的共享使用共享磁阵,由于共享磁阵的部署成本较高,对部署成本敏感的企事业单位可以选择磁盘镜像的方案来实现数据的共享,该方案的用户数据存储在服务器的本地硬盘,通过tcp/ip实现数据的实时同步,保障master服务器和slave服务器的块设备的实时一致性,在master服务器发生故障时,业务能够切换到slave节点,同时使用最新的用户数据。但是,开源的磁盘镜像方案有drbd(distributedreplicatedblockdevice),使用drbd方案部署磁盘镜像高可用集群,系统运行过程中有时磁盘会出现diskless状态,磁盘的读写功能受到影响,继而会影响用户业务,对系统的高可靠性带来极大的风险。

因此,如何解决上述技术问题,是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本发明的目的是提供一种用于磁盘镜像高可用集群diskless的处理方法和系统,以解决服务器系统运行过程中有时磁盘会出现diskless状态,磁盘的读写功能受到影响,继而会影响用户业务,对系统的高可靠性带来极大的风险的问题。

为解决上述技术问题,本发明提供了如下技术方案:

一种用于磁盘镜像高可用集群diskless的处理方法,包括:

实时监测磁盘镜像高可用集群是否发生i/o错误;

若是,则通过drbd进行错误分离,并通过网络从对端节点提取受该i/o错误影响的数据块;

判断当前所述磁盘镜像高可用集群的磁盘状态是否为diskless;

若是,则控制所述磁盘镜像高可用集群的主节点执行drbdattach命令,以使所述drbd的状态重新连接,并触发所述主节点和所述辅助节点进行一次数据同步。

优选地,所述控制所述磁盘镜像高可用集群的主节点执行drbdattach命令,以使所述drbd的状态重新连接,并触发所述主节点和所述辅助节点进行一次数据同步,唤醒所述辅助节点运行,包括:

控制所述磁盘镜像高可用集群的主节点自动执行drbdattach命令;

判断所述drbd的状态是否重新连接,并触发了所述主节点和所述辅助节点的数据同步;

若否,则发出预设的告警信息。

优选地,在所述发出预设的告警信息之后,还包括:

实时检测所述主节点的磁盘的错误是否被修复;

若是,则控制所述磁盘镜像高可用集群的主节点自动执行drbdattach命令。

一种用于磁盘镜像高可用集群diskless的处理系统,包括:

监测模块,用于实时监测磁盘镜像高可用集群是否发生i/o错误;

分离模块,用于在所述监测模块监测到所述磁盘镜像高可用集群发生i/o错误时,通过drbd进行错误分离,并通过网络从对端节点提取受该i/o错误影响的数据块;

判断模块,用于判断当前所述磁盘镜像高可用集群的磁盘状态是否为diskless;

执行模块,用于在判定当前所述磁盘镜像高可用集群的辅助节点宕机时,控制所述磁盘镜像高可用集群的主节点执行drbdattach命令,以使所述drbd的状态重新连接,并触发所述主节点和所述辅助节点进行一次数据同步。

优选地,所述执行模块包括:

第一执行单元,用于在判定当前所述磁盘镜像高可用集群的辅助节点宕机时,控制所述磁盘镜像高可用集群的主节点自动执行drbdattach命令;

判断单元,用于判断所述drbd的状态是否重新连接,并触发了所述主节点和所述辅助节点的数据同步;

告警单元,用于在判定所述drbd的状态未重新连接,且未触发所述主节点和所述辅助节点的数据同步时,发出预设的告警信息。

优选地,所述执行模块还包括:

检测单元,用于实时检测所述主节点的磁盘的错误是否被修复;

第二执行单元,用于在检测到所述主节点的磁盘的错误被修复时,控制所述磁盘镜像高可用集群的主节点自动执行drbdattach命令

与现有技术相比,上述技术方案具有以下优点:

本发明所提供的一种用于磁盘镜像高可用集群diskless的处理方法,包括:实时监测磁盘镜像高可用集群是否发生i/o错误;若是,则通过drbd进行错误分离,并通过网络从对端节点提取受该i/o错误影响的数据块;判断当前磁盘镜像高可用集群的磁盘状态是否为diskless;若是,则控制磁盘镜像高可用集群的主节点执行drbdattach命令,以使drbd的状态重新连接,并触发主节点和辅助节点进行一次数据同步。使得在高可用集群出现diskless的情况下,用户业务持续运行不受影响,同时很大程度上能够使得服务器系统从diskless状态自动恢复,保障了用户业务的高可用性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种具体实施方式所提供的用于磁盘镜像高可用集群diskless的处理方法流程图;

图2为本发明一种具体实施方式所提供的用于磁盘镜像高可用集群diskless的处理系统结构示意图。

具体实施方式

本发明的核心是提供一种用于磁盘镜像高可用集群diskless的处理方法和系统,以解决服务器系统运行过程中有时磁盘会出现diskless状态,磁盘的读写功能受到影响,继而会影响用户业务,对系统的高可靠性带来极大的风险的问题。

为了使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。

在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施的限制。

请参考图1,图1为本发明一种具体实施方式所提供的用于磁盘镜像高可用集群diskless的处理方法流程图。

本发明的一种具体实施方式提供了一种用于磁盘镜像高可用集群diskless的处理方法,包括:

s11:实时监测磁盘镜像高可用集群是否发生i/o错误。

在本实施方式中,磁盘镜像高可用集群主要包括ha模块和drbd模块,ha模块负责资源管理和业务切换,drbd模块主要实现磁盘镜像功能,即保持双节点本地数据的实时同步。预先将磁盘镜像高可用集群中的drbd磁盘错误处理策略配置为detach。

s12:若是,则通过drbd进行错误分离,并通过网络从对端节点提取受该i/o错误影响的数据块。此时,该i/o错误被drbd对上层屏蔽,并且drbd透明底通过网络从对端节点提取受该i/o错误影响的数据块,服务器本地磁盘的状态是diskless,所有响应的i/o操作读写实际上都是发生在对端,这种模式下磁盘读写性能会略微降低,但是服务将继续运行不受影响。

这种情况下,虽然不影响用户业务的持续进行,但是对于集群的可靠性来说是一个风险,因为当集群辅助节点宕机的时候,主节点磁盘不能正常被读写,用户的业务会中断。

s13:判断当前磁盘镜像高可用集群的磁盘状态是否为diskless。

s14:若是,则控制磁盘镜像高可用集群的主节点执行drbdattach命令,以使drbd的状态重新连接,并触发主节点和辅助节点进行一次数据同步。

如果检测到磁盘状态为diskless,针对该镜像资源执行一次attach命令,对于由于系统重启后drbd模块咸鱼存储(raid、lvm等)启动而导致的diskless问题,该命令能够触发一次数据的自动同步,同步完成后drbd能自动使用主节点数据来为高可用集群提供读写。数据同步完毕,辅助节点具备备份节点的功能,即主节点宕机,辅助节点能够自动运行业务。

通过对drbd进行合理的配置,使得高可用集群出现diskless的情况下,在合适的时间执行drbdattach命令,用户业务持续运行不受影响,同时能够使得系统从diskless状态自动恢复,保障了用户业务的高可用性。

进一步地,控制磁盘镜像高可用集群的主节点执行drbdattach命令,以使drbd的状态重新连接,并触发主节点和辅助节点进行一次数据同步,唤醒辅助节点运行,包括:控制磁盘镜像高可用集群的主节点自动执行drbdattach命令;判断drbd的状态是否重新连接,并触发了主节点和辅助节点的数据同步;若否,则发出预设的告警信息。

更进一步地,在发出预设的告警信息之后,还包括:实时检测主节点的磁盘的错误是否被修复;若是,则控制磁盘镜像高可用集群的主节点自动执行drbdattach命令。

为了避免自动运行drbdattach命令,不能触发数据同步的情况的出现导致影响用户的业务运行,若第一次命令后,不能实现数据同步,则发出告警信息,以提醒用户进行手动修复主节点磁盘的错误,待手动修复错误完毕后,再次执行drbdattach命令,以实现数据同步。进一步地提高了系统的高可靠性。

请参考图2,图2为本发明一种具体实施方式所提供的用于磁盘镜像高可用集群diskless的处理系统结构示意图。

相应的,本发明一种实施方式还提供了一种用于磁盘镜像高可用集群diskless的处理系统,包括:监测模块21,用于实时监测磁盘镜像高可用集群是否发生i/o错误;分离模块22,用于在监测模块监测到磁盘镜像高可用集群发生i/o错误时,通过drbd进行错误分离,并通过网络从对端节点提取受该i/o错误影响的数据块;判断模块23,用于判断当前磁盘镜像高可用集群的磁盘状态是否为diskless;执行模块24,用于在判定当前磁盘镜像高可用集群的辅助节点宕机时,控制磁盘镜像高可用集群的主节点执行drbdattach命令,以使drbd的状态重新连接,并触发主节点和辅助节点进行一次数据同步。

如果检测到磁盘状态为diskless,针对该镜像资源执行一次attach命令,对于由于系统重启后drbd模块咸鱼存储(raid、lvm等)启动而导致的diskless问题,该命令能够触发一次数据的自动同步,同步完成后drbd能自动使用主节点数据来为高可用集群提供读写。数据同步完毕,辅助节点具备备份节点的功能,即主节点宕机,辅助节点能够自动运行业务。

通过对drbd进行合理的配置,使得高可用集群出现diskless的情况下,在合适的时间执行drbdattach命令,用户业务持续运行不受影响,同时能够使得系统从diskless状态自动恢复,保障了用户业务的高可用性。

进一步地,执行模块包括:第一执行单元,用于在判定当前磁盘镜像高可用集群的辅助节点宕机时,控制磁盘镜像高可用集群的主节点自动执行drbdattach命令;判断单元,用于判断drbd的状态是否重新连接,并触发了主节点和辅助节点的数据同步;告警单元,用于在判定drbd的状态未重新连接,且未触发主节点和辅助节点的数据同步时,发出预设的告警信息。

执行模块还包括:检测单元,用于实时检测主节点的磁盘的错误是否被修复;第二执行单元,用于在检测到主节点的磁盘的错误被修复时,控制磁盘镜像高可用集群的主节点自动执行drbdattach命令。

为了避免自动运行drbdattach命令,不能触发数据同步的情况的出现导致影响用户的业务运行,若第一次命令后,不能实现数据同步,则发出告警信息,以提醒用户进行手动修复主节点磁盘的错误,待手动修复错误完毕后,再次执行drbdattach命令,以实现数据同步。进一步地提高了系统的高可靠性。

以上对本发明所提供的一种用于磁盘镜像高可用集群diskless的处理方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1