一种跨网络实时双向同步的磁盘存储系统的制作方法

文档序号:16428027发布日期:2018-12-28 19:56阅读:219来源:国知局
一种跨网络实时双向同步的磁盘存储系统的制作方法

本发明涉及数据处理技术领域,特别涉及一种跨网络实时双向同步的磁盘存储系统。

背景技术

随着线上用户的日益增多,以及跨地域之间网络的差异,越来越多的企业通过建设多个机房来为不同区域的用户提供服务,通过这种方式,不仅减少了用户响应时间,也减轻了线上服务的压力。

目前跨机房架构多采用为主备机房的部署方式对外提供服务,在正常工作时,主机房对外提供服务,备机房处于待机状态,主机房周期性将业务数据同步至备机房。当主机房出现故障,无法继续对外提供服务后,备机房则进入运行状态,以继续提供相关服务。

目前的跨机房的数据同步存储主要有以下三种思路:

一、应用层实现:将数据向多个目标地址写入,采用这种方式会涉及到对应用层的改造,提升系统的复杂度。

二、后端系统层中间件实现:采用操作系统层文件同步工具实现对数据的同步存储,例如采用linux系统下的数据镜像备份工具rsync来实现,但是这种方式最常遇到的问题是文件延迟同步,并且会出现主从并不同步的情况。

三、基于硬件设备实现:采用独立存储实现的基于块设备的镜像复制,这种方式的可靠性比较有保障,但价格较为昂贵,而且对外部环境比如网络宽带等依赖较高。



技术实现要素:

本发明意在提供一种跨网络实时双向同步的磁盘存储系统,以解决现有的存储方法出现主从数据存储不同步以及提升系统复杂度的问题。

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

一种跨网络实时双向同步的磁盘存储系统,包括:

drbd虚拟盘创建模块:用于对各存储服务节点安装和配置drbd服务,并创建drbd虚拟盘;

节点角色定义模块:用于对各存储服务节点安装和配置keepalived服务,并标记存储服务节点为主节点或从节点,还用于根据节点角色定义drbd虚拟盘的角色为主drbd虚拟盘或从drbd虚拟盘;

数据同步模块:用于将存储至主drbd虚拟盘的数据备份至从drbd虚拟盘中;

虚拟ip管理模块:用于为主节点分配虚拟ip地址,通过keepalived管理虚拟ip地址,保持虚拟ip地址始终位于存活的主节点,当主节点不可访问时,自动将从节点定义为主节点;

异常情况监听模块:用于监听各个存储服务节点存储的数据是否存在异常情况,并将是否存在异常情况的信息发信给处理模块;

处理模块:当接收到存在异常情况的信息时,启动节点角色判断模块判断当前存储服务节点的角色;

节点角色判断模块:判断当前存储服务节点的角色,若当前存储服务节点为主节点时,则启动虚拟ip漂移模块和加密模块;若当前存储服务节点为从节点时,则不启动虚拟ip漂移模块,直接启动加密模块;

虚拟ip漂移模块,用于将虚拟ip漂移至从节点,并将从节点切换为主节点;

加密模块,用于对该存储服务节点中存储的数据进行加密。

名词解释:

存储服务节点:代表存储服务器。

基础方案的工作原理:通过对各存储服务器安装和配置drbd软件,来获得drbd在系统层的服务,主要是对底层的物理磁盘设备进行封装,虚拟出drbd虚拟盘供文件系统访问,再对各存储服务节点安装和配置keepalived软件,并选择一个存储服务节点标记为主节点,其余的存储服务节点为从节点。

通过数据同步模块能够让主节点的数据备份至从节点中,让一台存储服务器的drbd虚拟盘中的数据能够镜像到网络中另外一台存储服务器的drbd虚拟盘中,也就实现了网络间不同节点的存储服务器数据的备份。

虚拟ip管理模块为主节点分配虚拟ip地址,通过keepalived软件管理虚拟ip地址,保持虚拟ip地址始终位于主节点,当主节点不可访问时,自动将从节点定义为主节点,主节点和从节点身份的切换,实现了主节点和从节点之间数据的双向同步存储,从而应用服务器可通过该虚拟ip地址访问到主节点或者从节点存储的数据。

基础方案的有益效果为:通过drbd结合keepalived服务的方案,能够实现跨网络的存储服务器之间的数据的备份,保障了数据的有效存储,并且通过keepalived实现了主从节点间身份的切换,让虚拟ip地址始终绑定在存活的主节点上,保障了数据主从双向同步存储,当主节点出现故障不可访问时,由于从节点切换为主节点,所以应用服务器还是能够通过虚拟ip访问数据,并且整个过程对应用系统来说是透明和无感知的,所以不需要对应用系统做任何切换或改造,降低了应用系统实现的复杂度;在同一时间,只有一个节点执行读写操作,另外的节点处于冷备状态,降低了设备投资的成本,节省了通信费用,降低了对通信环境的要求。

通过异常情况监听模块来判断是否有盗取数据的行为,实现了对存储在服务器中的数据的保护,当有异常情况或入侵者时,处理模块启动节点角色判断模块判断当前存储服务器的角色,若为主节点,处理模块启动ip漂移模块、加密模块,ip漂移模块是为了将该主节点的身份转移至其他从节点,从而仅对该存储服务器中存储的数据加密,新的主节点和其他从节点不会对数据进行加密,不会影响到其他从节点,应用服务器可正常通过虚拟ip访问数据,从而保证了其他存储服务器的正常运转;当为从节点时,则直接启动加密模块,加密模块进对当前从节点进行加密处理,不会影响到主节点和其他从节点,从而也保证了数据的正常存储和访问;无论当前存储服务器是主节点还是从节点,都要启动加密模块,加密模块是为了扰乱数据,避免非法人员盗取数据,应急防御模块是为了警告入侵者或者提醒相关工作人员有偷盗数据的非法行为,以避免损失的进一步扩大。

进一步,所述drbd虚拟盘创建模块包括:

磁盘分区子模块:用于对各存储服务节点安装和配置drbd服务,还用于对物理磁盘进行分区,并对磁盘分区进行初始化;

封装子模块:用于将初始化的磁盘分区进行封装;

创建子模块:用于对封装后的磁盘分区创建drbd虚拟盘,还用于对各个drbd虚拟盘创建文件系统。

文件系统用于管理存储在drbd虚拟盘中的文件,当需要读写数据时,文件系统对封装后的drbd虚拟盘进行读写,而不直接读写磁盘分区,从而当操作者需要向作为主节点的存储服务器中的主drbd虚拟盘写入数据时,能够同步地将数据写入作为从节点的从drbd虚拟盘中,通过对磁盘分区进行封装,能够让drbd虚拟盘实现更多的功能。

进一步,所述节点角色定义模块包括:

安装配置子模块:用于对各存储服务节点安装和配置keepalived服务;

标记子模块:用于通过keepalived服务的竞选机制来确定主节点和从节点,并对主节点和从节点进行标记;

drbd虚拟盘角色定义模块:用于根据节点角色定义drbd虚拟盘的角色为主drbd虚拟盘和从drbd虚拟盘。

keepalived高可用对之间是通过vrrp进行通信,vrrp是通过竞选协议机制来确定主节点和从节点,主节点的优先级高于从节点,因此,工作时主节点会优先获得所有的资源,从节点则处于等待状态,降低了设备投资的成本。

进一步,所述数据同步模块根据内置的c型完全同步协议保持主drbd虚拟盘和从drbd虚拟盘数据的一致性。

c型完全同步协议是drbd的一种工作模式,只有在主drbd虚拟盘和从drbd虚拟盘已经确认了写操作完成时,写才被认为完成。采用该种模式可以防止本地和远端数据丢失和不一致。

进一步,所述虚拟ip管理模块包括:

虚拟ip分配子模块:用于为主节点分配虚拟ip地址;

心跳检测子模块:用于对各存储服务节点进行心跳检测,判断主节点是否存活;

节点切换子模块:用于当发现主节点没有存活时,自动将虚拟ip地址飘移至从节点,并切换从节点的身份为主节点。

在使用keepalived服务时,主节点会一直发送给从节点vrrp广播包,告诉从节点它还活着,此时从节点不会枪占主节点的位置,当主节点不可用时,即从节点监听不到主节点发送的广播包时,就会启动相关服务接管资源,虚拟ip地址飘移至某一从节点,并将该从节点的身份转变为主节点,以保证业务的连续性和高度可用性。

附图说明

图1为本发明一种跨网络实时双向同步的磁盘存储系统实施例的示意性框图;

图2为本发明一种跨网络实时双向同步的磁盘存储方法实施例的流程图;

图3为本发明一种跨网络实时双向同步的磁盘存储系统实施例的拓扑图;

图4为本发明一种跨网络实时双向同步的磁盘存储方法实施例的心跳检测的流程图。

具体实施方式

下面通过具体实施方式进一步详细说明:

实施例一

如图1所示,本发明一种跨网络实时双向同步的磁盘存储系统,包括:

drbd虚拟盘创建模块:用于对各存储服务节点安装和配置drbd服务,并创建drbd虚拟盘;

节点角色定义模块:用于对各存储服务节点安装和配置keepalived服务,并标记存储服务节点为主节点或从节点,还用于根据节点角色定义drbd虚拟盘的角色为主drbd虚拟盘和从drbd虚拟盘;

数据同步模块:将存储至主drbd虚拟盘的数据备份至从drbd虚拟盘中;具体地,根据内置的c型完全同步协议保持主drbd虚拟盘和从drbd虚拟盘数据的一致性;c型完全同步协议是drbd的一种工作模式,只有在主drbd虚拟盘和从drbd虚拟盘已经确认了写操作完成时,写才被认为完成。采用该种模式可以防止本地和远端数据丢失和不一致;

虚拟ip管理模块:用于为主节点分配虚拟ip地址,通过keepalived管理虚拟ip地址,保持虚拟ip地址始终位于存活的主节点,当主节点不可访问时,自动将从节点定义为主节点;

综合信息采集模块,用于实时采集防盗门周围信息,并将周围信息发送给处理模块;具体地,综合信息采集模块可包括视频采集子模块、音频采集子模块、振动检测子模块、玻璃破碎检测子模块,视频采集子模块用于采集视频信号并发送给处理模块;音频采集子模块用于采集语音信号并发送给处理模块;振动检测子模块用于将外界振动产生形变或受力信息转变为电压信号,向处理模块输出;玻璃破碎检测子模块用于检测玻璃破碎的信号并发送给处理模块;

异常情况监听模块:用于监听各个存储服务节点存储的数据是否存在异常情况,并将是否存在异常情况的信息发信给处理模块;

处理模块:当接收到存在异常情况的信息或者根据周围信息判断出存在入侵行为时,启动节点角色判断模块判断当前存储服务节点的角色;

节点角色判断模块:判断当前存储服务节点的角色,若当前存储服务节点为主节点时,则启动虚拟ip漂移模块、加密模块和应急防御模块;若当前存储服务节点为从节点时,则不启动虚拟ip漂移模块,直接启动加密模块和应急防御模块;

虚拟ip漂移模块:用于将虚拟ip漂移至从节点,并将从节点切换为主节点;还用于当恢复正常按钮被触发时,将虚拟ip漂移至原来的主节点,并还原主节点和从节点的身份;

加密模块:用于对该存储服务节点中存储的数据进行加密;

应急防御模块:用于对该存储服务节点的放置室增强应急防御措施;例如,放置存储服务器的机房内设有报警器,启动报警器发出警报来提醒工作人员有非法入侵者想要盗取数据;或者是应急防御模块发送短信至工作人员使用的移动终端上;或者是机房内设有摄像头,开启摄像头对房间进行拍照,并将拍摄的图像上传至云端保存;

解密模块:用于当恢复正常按钮被触发时,对加密的数据进行解密。

在本实施例中,drbd虚拟盘创建模块包括:

磁盘分区子模块:用于对各存储服务节点安装和配置drbd服务,还用于对物理磁盘进行分区,并对磁盘分区进行初始化;

封装子模块:用于将初始化的磁盘分区进行封装;

创建子模块:用于对封装后的磁盘分区创建drbd虚拟盘,还用于对各个drbd虚拟盘创建文件系统。

文件系统用于管理存储在drbd虚拟盘中的文件,当需要读写数据时,文件系统对封装后的drbd虚拟盘进行读写,而不直接读写磁盘分区,从而当操作者需要向作为主节点的存储服务器中的drbd虚拟盘写入数据时,能够同步地将数据写入作为从节点的drbd虚拟盘中,通过对磁盘分区进行封装,能够让drbd虚拟盘实现更多的功能,例如通过向封装后的磁盘分区写入自定义的程序,可让drbd虚拟盘实现拦截信息或者获取操作者信息的功能。

节点角色定义模块包括:

安装配置子模块:用于对各存储服务节点安装和配置keepalived服务;

标记子模块:用于通过keepalived服务的竞选机制来确定主节点和从节点,并对主节点和从节点进行标记;keepalived高可用对之间是通过vrrp进行通信,vrrp是通过竞选协议机制来确定主节点和从节点,主节点的优先级高于从节点,因此,工作时主节点会优先获得所有的资源,从节点则处于等待状态;

drbd虚拟盘角色定义子模块:用于根据节点角色定义drbd虚拟盘的角色为主drbd虚拟盘和从drbd虚拟盘。

虚拟ip管理模块包括:

虚拟ip分配子模块:用于为主节点分配虚拟ip地址;

心跳检测子模块:用于对各存储服务节点进行心跳检测,判断主节点是否存活;

节点切换子模块:用于当发现主节点没有存活时,自动将虚拟ip地址飘移至从节点,并切换从节点的身份为主节点,具体地切换过程为:在使用keepalived服务时,主节点会一直发送给从节点vrrp广播包,告诉从节点它还活着,此时从节点不会枪占主节点的位置,当主节点不可用时,即从节点监听不到主节点发送的广播包时,就会启动相关服务接管资源,虚拟ip地址飘移至某一从节点,并将该从节点的身份转变为主节点,以保证业务的连续性和高度可用性。

为了更清楚的阐述本发明的一种跨网络实时双向同步的磁盘存储系统的使用场景,本实施例中,还公开了一种跨网络实时双向同步的磁盘存储方法,该方法基于以上系统,如图2和图3所示,该方法包括以下步骤:

drbd虚拟盘创建步骤:对各存储服务节点安装和配置drbd服务,并创建drbd虚拟盘;

节点角色定义步骤:对各存储服务节点安装和配置keepalived服务,标记存储服务节点为主节点或从节点,并根据节点角色定义drbd虚拟盘的角色为主drbd虚拟盘和从drbd虚拟盘;

数据同步步骤:将存储至主drbd虚拟盘的数据备份至从drbd虚拟盘中;

虚拟ip管理步骤:为主节点分配虚拟ip地址,通过keepalived管理虚拟ip地址,保持虚拟ip地址始终位于存活的主节点,当主节点不可访问时,自动将从节点定义为主节点;

综合信息采集步骤:实时采集防盗门周围信息,并将周围信息发送给中央处理器;

异常情况监听步骤:监听各个存储服务节点存储的数据是否存在异常情况,并将是否存在异常情况的信息发信给中央处理器;

中央处理器处理步骤:当接收到存在异常情况的信息或者根据周围信息判断出存在入侵行为时,判断当前存储服务器的角色,若当前存储服务器为主节点时,则执行s21、s22和s23;若当前存储服务器为从节点时,则执行s22和s23;

s21:将虚拟ip漂移至从节点,并将从节点切换为主节点;

s22:对该存储服务器中存储的数据进行加密;

s23:对该存储服务器的放置室增强应急防御措施;

按钮触发步骤:提供用于将各节点恢复正常的按钮,当按钮被触发时,对加密的数据进行解密,并且将虚拟ip漂移至原来的主节点,并还原主节点和从节点的身份。

在本实施例中,drbd虚拟盘创建步骤具体包括:

s1:对各存储服务节点安装和配置drbd服务;

s2:对物理磁盘进行分区,并对磁盘分区进行初始化;

s3:将初始化的磁盘分区进行封装;

s4:对封装后的磁盘分区创建drbd虚拟盘;

s5:对各个drbd虚拟盘创建文件系统。

虚拟ip管理步骤具体包括:

s6:对各存储服务节点安装和配置keepalived服务;

s7:通过keepalived服务的竞选机制来确定主节点和从节点,并对主节点和从节点进行标记。

如图2所示,虚拟ip管理步骤的具体步骤为:

s8:为主节点分配虚拟ip地址;

s9:对各存储服务节点进行心跳检测,判断主节点是否存活;

s10:当发现主节点没有存活时,自动将虚拟ip地址飘移至从节点,并切换从节点的身份为主节点。

如图4所示,心跳检测的具体步骤为:

角色检测步骤:检测存储服务节点的角色为,当为主节点时,执行s11;当为从节点时,则执行s12;

s11:检测主节点drbd虚拟盘的状态,若正常,也就是显示uptodate字符时,代表主节点的drbd虚拟盘与从节点处于同步的正常状态,则进入对虚拟ip的状态进行检测,当显示的虚拟ip的绑定状态异常时,则重新对该主节点绑定虚拟ip,当显示的虚拟ip的绑定状态正常时,则进入对该主节点挂载点状态进行检测,当挂载点异常时,利用mount挂载点重新挂载文件系统,在linux系统中,一般通过mount来挂载;当挂载点正常时,心跳检测结束;

s12:检测从节点drbd虚拟盘的状态,若正常,也就是显示uptodate字符时,代表从节点的drbd虚拟盘与主节点处于同步的正常状态,则进入远端角色检查,因为在使用keepalived服务时,主节点会一直发送给从节点vrrp广播包,告诉从节点它还活着,远端角色检查也就是监听是否能够接收到主节点发送的广播包,当从节点监听到主节点发送的广播包时,说明主节点还活着,不需要切换从节点的身份;当从节点监听不到主节点发送的广播包时,就会启动相关服务接管资源,虚拟ip地址飘移至某一从节点,并将该从节点的身份转变为主节点,然后再对新的主节点进行mount挂载点挂载文件系统,以及进行挂载点状态和虚拟ip状态进行检测,当挂载点状态和虚拟ip状态均正常时,结束此次心跳检测,当主节点出现故障时,从节点的身份转换保证了业务的连续性和高度可用性。

通过drbd结合keepalived服务的方案,能够实现跨网络的存储服务器之间的数据的备份,保障了数据的有效存储,并且通过keepalived实现了主从节点间身份的切换,让虚拟ip地址始终绑定在存活的主节点上,保障了数据主从双向同步存储,当主节点出现故障不可访问时,由于从节点切换为主节点,所以应用服务器还是能够通过虚拟ip访问数据,并且整个过程对应用系统来说是透明和无感知的,所以不需要对应用系统做任何切换或改造,降低了应用系统实现的复杂度;在同一时间,只有一个节点执行读写操作,另外的节点处于冷备状态,降低了设备投资的成本,节省了通信费用,降低了对通信环境的要求。

通过综合信息采集模块和异常情况监听模块来判断是否有非法入侵者或者是否有盗取数据的行为,实现了对存储在服务器中的数据的双重保护,当有异常情况或入侵者时,处理模块启动节点角色判断模块判断当前存储服务器的角色,若为主节点,处理模块启动ip漂移模块、加密模块和应急防御模块,ip漂移模块是为了将该主节点的身份转移至其他从节点,从而仅对该存储服务器中存储的数据加密,新的主节点和其他从节点不会对数据进行加密,不会影响到其他从节点,应用服务器可正常通过虚拟ip访问数据,从而保证了其他存储服务器的正常运转;当为从节点时,则直接启动加密模块和应急防御模块,加密模块进对当前从节点进行加密处理,不会影响到主节点和其他从节点,从而也保证了数据的正常存储和访问;无论当前存储服务器是主节点还是从节点,都要启动加密模块和应急防御模块,加密模块是为了扰乱数据,避免非法人员盗取数据,应急防御模块是为了警告入侵者或者提醒相关工作人员有偷盗数据的非法行为,以避免损失的进一步扩大。

恢复正常按钮的设置是为了当异常情况解除时,工作人员能够通过恢复正常按钮触发对加密的数据进行解密,让数据能够恢复正常,并且当恢复正常按钮被触发时,将虚拟ip漂移至原来的主节点,并还原主节点的身份,以保障数据的高效存储。

实施例二

本实施例与实施例一的区别在于,还包括:

抽样模块:用于抽样各个从节点存储的备份数据并发送给数据对比模块;

数据核对模块:用于将各个从节点抽样的备份数据逐一与主节点存储的数据进行核对,并给各个从节点标记核对结果;例如,核对结果可采取百分制的方式显示,根据备份数据与主节点存储的数据的相似程度来确定百分比,假设备份数据与主节点存储的数据完全重合,则核对结果为百分之百,假设备份数据与主节点存储的数据只有一半能重合,则核对结果为百分之五十;

节点筛选模块:用于根据核对结果筛选出符合标准的从节点;例如,核对结果为百分之九十以上的符合标准;

性能判断模块:用于判断符合标准的从节点的性能,并根据性能的优劣对从节点进行优先级排序;性能可从多个方面进行判断,例如存储服务器的存储容量、处理器处理速度、吞吐量等;

虚拟ip漂移模块:用于将虚拟ip漂移至优先级最高的从节点,并将从节点切换为主节点。

因为从节点的备份数据有可能会遭到破坏,所以当主节点未出现故障时,数据核对模块将各个从节点抽样的备份数据逐一与主节点存储的数据进行核对,一是为了检测从节点备份数据的准确性;二是为了筛选出准确性高的从节点,为主节点漂移作好准备。切换的从节点的优先级最高,也就代表该从节点的存储服务器性能最好,主节点只有一个,而从节点可以有多个,当主节点不可用时,选取优先级最高的从节点作为新的主节点,从而能够提高数据存储的准确性和高度可用性。

以上所述的仅是本发明的实施例,方案中公知的具体结构及特性等常识在此未作过多描述。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本申请要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。

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