CN110618951A - 系统高可用存储控制方法、装置、通信设备及存储介质 - Google Patents
系统高可用存储控制方法、装置、通信设备及存储介质 Download PDFInfo
- Publication number
- CN110618951A CN110618951A CN201810639500.8A CN201810639500A CN110618951A CN 110618951 A CN110618951 A CN 110618951A CN 201810639500 A CN201810639500 A CN 201810639500A CN 110618951 A CN110618951 A CN 110618951A
- Authority
- CN
- China
- Prior art keywords
- storage module
- data
- main storage
- module
- standby
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 106
- 238000004891 communication Methods 0.000 title claims abstract description 24
- 238000013507 mapping Methods 0.000 claims abstract description 126
- 230000008569 process Effects 0.000 claims abstract description 51
- 230000002159 abnormal effect Effects 0.000 claims abstract description 26
- 230000015654 memory Effects 0.000 claims description 36
- 238000012544 monitoring process Methods 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 22
- 230000001360 synchronised effect Effects 0.000 claims description 22
- 230000008859 change Effects 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000011084 recovery Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000009849 deactivation Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明实施例提供一种系统高可用存储控制方法、装置、通信设备及存储介质,建立系统中数据访问接口与主存储模块和备存储模块的访问映射关系,在主存储模块正常运行期间,控制主存储模块和所述备存储模块之间数据同步;在系统运行过程中监测到主存储模块异常时,将主存储模块隔离并删除数据访问接口与主存储模块之间的访问映射关系,之后在通过数据访问接口接收到数据访问请求时,根据映射关系访问备存储模块,实现了备存储模块与主存储模块之间的平滑替换,避免因出现存储故障而必须关闭系统或中断业务或导致系统数据丢失,使得系统更灵活、健壮和可靠,能更好的满足对系统和数据的保护要求以及电信级的商业应用的要求,提升用户体验满意度。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种系统高可用存储控制方法、装置、通信设备及存储介质。
背景技术
在Linux系统使用过程中,针对磁盘的IO访问主要有阻塞性和非阻塞性两种模式,对于非阻塞IO访问,当磁盘故障后,其上的文件系统检测出错误后,为了避免文件系统进一步破坏将磁盘上的文件系统变为只读,导致运行的进程无法继续写入数据而产生各种异常,而将磁盘变为只读后必然会导致业务中断等问题发生。
另一种阻塞IO访问,在磁盘存储故障后,系统需要等待IO正确返回或超时,所以当存储故障时,系统会长时间处于暂停状态,可能会导致业务暂时中断,而最严重的情况下,会因为超时引起系统内部看门狗重启,导致内存中的数据全部丢失从而导致业务出错。
基于上述情况,目前Linux系统使用过程中,当磁盘存储出现故障时必须关闭系统或业务对故障存储进行修复等操作,且系统数据极易丢失。而在电信级的商业应用中则要求业务不能中断,系统数据不能丢失,出现系统宕机重启和数据丢失都是不能容忍的,因此目前Linux系统的数据存储控制方式在出现存储故障时,并不能满足对系统和数据的保护要求。
发明内容
本发明实施例提供的一种系统高可用存储控制方法、装置、通信设备及存储介质,主要解决的技术问题是:解决现有系统的数据存储控制方式在出现存储故障时,不能满足对系统和数据的保护要求的问题。
为解决上述技术问题,本发明实施例提供一种系统高可用存储控制方法,包括:
在数据访问接口与主存储模块和备存储模块的访问映射关系建立后,对所述主存储模块的运行状态进行监测;
当监测到所述主存储模块异常时,将所述主存储模块隔离并删除所述数据访问接口与所述主存储模块之间的访问映射关系;
其中,在所述主存储模块正常运行期间,控制所述主存储模块和所述备存储模块之间数据同步存储;在删除所述数据访问接口与所述主存储模块之间的访问映射关系之后,通过所述数据访问接口接收到数据访问请求时,根据所述访问映射关系访问所述备存储模块。
为解决上述技术问题,本发明实施例还提供一种系统高可用存储控制装置,包括:
监测模块,用于在数据访问接口与主存储模块和备存储模块的访问映射关系建立后,对所述主存储模块的运行状态进行监测;
处理模块,用于在所述主存储模块正常运行期间,控制所述主存储模块和所述备存储模块之间数据同步存储,以及用于在所述监测模块监测到所述主存储模块异常时,将所述主存储模块隔离并删除所述数据访问接口与所述主存储模块之间的访问映射关系,并在通过所述数据访问接口接收到数据访问请求时,控制根据所述访问映射关系访问所述备存储模块。
为解决上述技术问题,本发明实施例还提供一种通信设备,包括处理器、存储器以及通信总线;
所述通信总线用于实现所述处理器与所述存储器之间的通信连接;
所述处理器用于执行存储器中存储的一个或者多个程序,以实现如上所述的系统高可用存储控制方法的步骤。
为解决上述技术问题,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的系统高可用存储控制方法的步骤。
本发明的有益效果是:
根据本发明实施例提供的系统高可用存储控制方法、装置、通信设备及存储介质,可建立系统中数据访问接口与主存储模块和备存储模块的访问映射关系,在主存储模块正常运行期间,控制主存储模块和所述备存储模块之间数据同步存储;在系统运行过程中对系统的主存储模块的运行状态进行监测,当监测到主存储模块异常时,将主存储模块隔离并删除数据访问接口与主存储模块之间的访问映射关系,之后在通过数据访问接口接收到数据访问请求时,根据访问映射关系访问备存储模块,也即用备存储模块替换主存储模块,使得系统可以正常运行,系统上层应用并不会感知到存储异常,避免因出现存储故障而必须关闭系统或中断业务或导致系统数据丢失,使得系统更灵活、健壮和可靠,能更好的满足对系统和数据的保护要求以及电信级的商业应用需求,提升用户体验满意度。
本发明其他特征和相应的有益效果在说明书的后面部分进行阐述说明,且应当理解,至少部分有益效果从本发明说明书中的记载变的显而易见。
附图说明
图1为本发明实施例一的系统高可用存储控制方法流程示意图;
图2为本发明实施例一的建立数据访问接口与主存储模块和备存储模块的访问映射关系的流程示意图;
图3为本发明实施例一的主存储模块自动恢复过程的流程示意图;
图4为本发明实施例一的将主存储模块和备存储模块之间数据进行同步的流程示意图;
图5为本发明实施例二的系统高可用存储控制装置结构示意图;
图6为本发明实施例三的通信设备结构示意图;
图7为本发明实施例三的Linux系统结构示意图;
图8为本发明实施例三的启用备存储模块过程的流程示意图;
图9为本发明实施例三的对主存储模块访问的IO流示意图;
图10为本发明实施例三的对主存储模块和备存储模块访问的IO流示意图;
图11为本发明实施例三的将故障主存储模块隔离出系统的流程示意图;
图12为本发明实施例三的对备存储模块访问的IO流示意图;
图13为本发明实施例三的数据变动增量记录获取流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一:
针对现有Linux系统的数据存储控制方式在出现存储故障时,不能满足对系统和数据的保护要求的问题,本实施例提供一种具有系统连续、可靠、不间断运行的先天优势的系统高可用存储控制方法,可实现在系统存储异常时,对系统和数据不会造成影响,从功能和运营成本上满足用户的需求。本实施例提供的系统高可用存储控制方法建立系统中数据访问接口与主存储模块和备存储模块的访问映射关系并控制主存储模块和备存储模块之间数据同步存储;然后在系统运行过程中监测到主存储模块异常时,将主存储模块与系统剥离以便于对主存储模块进行故障修复,同时在主存储模块故障期间通过数据访问接口接收到数据访问请求时,根据之前设置好的访问映射关系访问备存储模块,使得系统可以正常运行,系统上层应用并不会感知到存储异常,避免因出现存储故障而必须关闭系统或中断业务或导致系统数据丢失能更好的满足对系统和数据的保护要求以及电信级的商业应用需求。
参见图1所示,本实施例提供的系统高可用存储控制方法的示例流程包括:
S101:在系统的数据访问接口与主存储模块和备存储模块的访问映射关系建立后,对主存储模块的运行状态进行监测。
应当理解的是,本实施例中的系统可以包括Linux系统,但并不限于Linux系统系统,可选地也可包括但不限于Windows系统、Unix系统、MAC系统等中的至少一种。且应用于不同系统时,可根据具体所应用的系统框架进行相适应的调整和设置。
本实施例中,数据访问接口的具体个数和类型等也都可根据具体的系统类型、具体应用场景等因素灵活设定。
在本实施例中,在建立好系统的数据访问接口与主存储模块和备存储模块的访问映射关系建立后,在系统的主存储模块正常运行期间,控制主存储模块和备存储模块之间数据同步存储,该同步过程包括但不限于刚建立好系统的数据访问接口与备存储模块的访问映射关系时,备存储模块与主存储模块之间的初始数据同步,以及建议好上述访问映射关系之后在主存储模块正常运行过程中二者之间的数据动态同步过程。
S102:在系统运行过程中,当监测到主存储模块异常时,将主存储模块隔离并删除数据访问接口与主存储模块之间的访问映射关系,也即自动将主存储模块与系统剥离以便于后续对主存储模块进行故障修复等操作。
在S102中,删除数据访问接口与主存储模块之间的访问映射关系之后,数据访问接口与备存储模块之间的访问映射关系仍正常存在,此时备存储模块可替代主存储模块正常工作,从而使得系统可以保持正常运行,避免存储故障导致系统故障、中断或系统数据丢失等情况发生。
在本实施例中,在当前未监测到主存储模块异常时,可返回S101继续监测。且应当理解的时,本实施例中对于主存储模块的异常监测机制也可根据具体系统类型、应用场景等灵活设定。
本实施例中将主存储模块隔离的方式可以设置主存储模块的状态设置为fault以不再提供IO服务。
S103:在删除数据访问接口与主存储模块之间的访问映射关系之后,也即在主存储模块异常期间,通过数据访问接口接收到数据访问请求时,根据之前建立好的访问映射关系访问备存储模块。
本步骤中的数据访问请求包括但不限于数据读请求和数据写请求。
另外,应当理解的是,在本实施例中,备存储模块具体设置的个数也可根据需求灵活设定,例如为了提升可靠性,备存储模块可以设置两个以上,且每一个备存储模块与主存储模块之间的数据同步存储;在主存储模块异常时,按照设定规则(例如随机选择或按预设优先级选择等)选择一个备存储模块替换主存储模块工作,在所选择的备存储模块也故障时,再从剩下的备存储模块中选择一个替换之前所选择的备存储模块工作,以此类推,从而通过多重备份提升系统的可靠性。在一些应用场景中,当设置一个备存储模块就足以满足系统和数据保护要求时可仅设置一个备存储模块,以尽可能提升系统资源利用率。当然,当一些应用场景系统和数据保护要求需要设置多个备存储模块时则可设置相应个数的备存储模块。
在一些应用场景中,主存储模块可设置为系统中通常用于数据存储承载的磁盘存储区域模块,当然也可选择其他存储介质作为主存储模块;备存储模块也可选择磁盘存储区域模块,还可选择内存模块(可以是某一段内存)、文件仿真存储块(例如包括但不限于通过loop设备形成的文件仿真存储块,loop设备是一种伪设备,是使用文件来模拟块设备的一种技术,文件模拟成块设备后,就像一个磁盘或光盘一样使用)。
本实施例中备存储模块选择磁盘存储区域模块时,可以直接使用系统自身的物理磁盘中的某一部分存储区域,或者直接使用内存模块和/或文件仿真存储块,使得本实施例提供的系统高可用存储控制方法无需增加物理磁盘即可运行,让系统更灵活健壮可靠的同时,对于系统不需要额外增加任何硬件成本。
当然,可选地,本实施例中也可通过额外设置新的、可靠性相对系统自带的磁盘更好的物理磁盘作为备存储区域。
另外,应当理解的是,本实施例中备存储模块的存储空间大小可设置为与主存储模块相同,也可设置为大于主存储模块,例如可设置为等于主存储模块或略大于主存储模块等。
在本实施例中,在主存储模块正常运行期间,控制主存储模块和备存储模块之间数据同步存储包括但不限于以下两种方式:
方式一:
通过数据访问接口接收到数据写请求时,根据访问映射关系将待写入的数据分别写入主存储模块和用存储模块,也即在进行数据写入时,可直接向主存储模块和备存储模块写入相同的数据,使得二者的数据同步;
通过数据访问接口接收到数据读请求时,根据访问映射关系从主存储模块和备存储模块中的至少一个模块中读取相应的待读取数据,例如包括但不限于:
根据访问映射关系,直接从主存储模块或备存储模块中读取相应的待读取数据;
或,
根据访问映射关系,从主存储模块和备存储模块中传输速率最大的一个模块中读取相应的待读取数据;
方式二:
通过数据访问接口接收到数据写请求时,根据访问映射关系将待写入的数据写入主存储模块,然后按预设时间间隔(或者按预设修改数据量等)将主存储模块中的数据通过镜像或快照等方式同步到备存储模块中,例如每间隔2、分钟、5分钟、10分钟等。
应当理解的是,具体采用哪种同步方式可灵活设定。
可选地,在本实施例中,建立数据访问接口与主存储模块和备存储模块的访问映射关系包括但不限于以下两种方式中的任意一种:
方式一:参见图2所示,包括:
S201:在系统启动过程中构造逻辑映射设备和数据访问接口,将主存储模块加入逻辑映射设备的目标端,并将数据访问接口的映射关系指向主存储模块。
S202:在系统启动成功后,获取备存储模块,将获取的备存储模块加入逻辑映射设备的目标端,并将数据访问接口的映射关系指向备存储模块,以及将主存储模块和备存储模块之间的数据进行同步。
本步骤中获取的备存储模块可以是预先设定的且不变的存储模块,也可以是当前实时获取的可能动态变化的存储模块。本步骤中将主存储模块和备存储模块之间的数据进行同步可通过镜像等方式进行同步。另外,在本步骤中,当主存储模块和备存储模块之间的数据同步失败时,可自动进行备存储模块的重新选择或者发出告警提示等。
方式二:
在系统启动过程中构造逻辑映射设备和数据访问接口,将主存储模块以及预设的备存储模块分别加入逻辑映射设备的目标端,并将数据访问接口的映射关系分别指向主存储模块和备存储模块,以及将主存储模块和备存储模块之间的数据进行同步。
在本实施例中,还可灵活的对备存储模块的启用和/或关闭进行灵活控制。也即,在上述方式一和方式二过程中或之后,还可包括以下两个控制过程中的至少一个:
过程一:将备存储模块加入逻辑映射设备的目标端之前,确定是否接收到备用存储启用指令(该备用存储启用指令可以是通过开关或预设条件控制触发),如是,则将备存储模块加入逻辑映射设备的目标端,也即启用备存储功能。
过程二:将备存储模块加入逻辑映射设备的目标端之后,还可包括:检测到备用存储关闭指令时,将备存储模块隔离并删除数据访问接口与备存储模块之间的访问映射关系。
可选地,在本实施例中,在上述S102中检测到主存储模块异常删除数据访问接口与主存储模块之间的访问映射关系之后,还可包括图3所示的以下主存储模块自动恢复过程:
S301:监测主存储模块是否恢复正常。
S302:在监测到主存储模块恢复正常时,恢复数据访问接口与主存储模块之间的访问映射关系,并将主存储模块和备存储模块之间数据进行同步。
这样在本实施例中,当主存储模块出现故障并从系统剥离后,在主存储模块被修复正常时,还可随时再动态加入系统并正常运行。
在S302中,将主存储模块和备存储模块之间数据进行同步的方式也包括但不限于:
方式一:
通过镜像将备存储模块中当前的数据同步到主存储模块中;
方式二,参见图4所示,包括:
S401:获取主存储模块异常期间,备存储模块上所变动数据的数据变动增量记录。
本实施例中备存储模块在主存储模块异常器件所变动的数据包括但不限于增加的数据、删除的数据以及修改的数据。
S402:根据获取到的数据变动增量记录对主存储模块上的数据进行同步处理。
该步骤中进行同步处理包括但不限于:
对于增加的数据,在主存储模块中进行增加存储;
对于删除的数据,在主存储模块中查找到相应的数据进行删除;
对于修改的数据,在主存储模块中查找到对应的数据进行相应的修改。
通过方式二对恢复正常的主存储模块进行数据同步时,则必然包括在主存储模块故障期间,对在备存储模块上的数据变动情况进行监测记录从而得到数据变动增量记录,且应当理解的是,本实施例中对于变化数据情况的监测和记录方式可采用各种数据动态变化监测记录方式,在此不再赘述。
通过本实施提供的系统高可用存储控制方法,当系统的主存储模块出现故障时,可自动的直接将该主存储模块从系统中剥离出去以便于主存储模块的修复,直接采用维护的与主存储模块数据同步的备存储模块替换主存储模块进行工作,实现无缝切换,保证系统正常运行,从而保证业务的连续性和避免系统数据丢失。
实施例二:
本实施例提供了一种系统高可用存储控制装置,其可应用于各种主机等通信设备中,参见图5所示,包括:
建立模块501,用于建立系统的数据访问接口与主存储模块和备存储模块的访问映射关系。
应当理解的是,本实施例中的系统可以包括Linux系统,但并不限于Linux系统系统,可选地也可包括但不限于Windows系统、Unix系统、MAC系统等中的至少一种。且应用于不同系统时,可根据具体所应用的系统框架进行相适应的调整和设置。数据访问接口的具体个数和类型等也都可根据具体的系统类型、具体应用场景等因素灵活设定。
在本实施例中,建立数据访问接口与主存储模块和备存储模块的访问映射关系包括但不限于以下两种方式中的任意一种:
方式一:建立模块501用于在系统启动过程中构造逻辑映射设备和数据访问接口,将主存储模块加入逻辑映射设备的目标端,以及用于在系统启动成功后,获取备存储模块,将获取的备存储模块加入逻辑映射设备的目标端;建立模块501还用于将数据访问接口的映射关系分别指向主存储模块和备存储模块,并将主存储模块和备存储模块之间的数据进行同步;本实施例中逻辑映射设备的源端与目标端之间具有映射关系。
本实施例中,建立模块501获取的备存储模块可以是预先设定的且不变的存储模块,也可以是当前实时获取的可能动态变化的存储模块。建立模块501将主存储模块和备存储模块之间的数据进行同步可通过镜像等方式进行同步。另外,在本步骤中,当主存储模块和备存储模块之间的数据同步失败时,可自动进行备存储模块的重新选择或者发出告警提示等。
方式二:建立模块501用于在系统启动过程中构造逻辑映射设备,将数据访问接口加入逻辑映射设备的源端,将主存储模块以及预设的备存储模块分别加入逻辑映射设备的目标端,并将数据访问接口的映射关系分别指向主存储模块和备存储模块,以及将主存储模块和备存储模块之间的数据进行同步。
建立模块501还可用于灵活的对备存储模块的启用和/或关闭进行灵活控制。也即,在上述方式一和方式二过程中或之后,建立模块501还可用于执行以下两个控制过程中的至少一个:
过程一:建立模块501将备存储模块加入逻辑映射设备的目标端之前,确定是否接收到备用存储启用指令(该备用存储启用指令可以是通过开关或预设条件控制触发),如是,则将备存储模块加入逻辑映射设备的目标端,也即启用备存储功能。
过程二:建立模块501将备存储模块加入逻辑映射设备的目标端之后检测到备用存储关闭指令时,将备存储模块隔离并删除数据访问接口与备存储模块之间的访问映射关系。
监测模块502,用于在数据访问接口与主存储模块和备存储模块的访问映射关系建立后,对主存储模块的运行状态进行监测。
处理模块503,用于在主存储模块正常运行期间,控制主存储模块和备存储模块之间数据同步存储,以及用于在监测模块监测到主存储模块异常时,删除数据访问接口与主存储模块之间的访问映射关系,并在通过数据访问接口接收到数据访问请求时,控制根据访问映射关系访问备存储模块。
处理模块503删除数据访问接口与主存储模块之间的访问映射关系之后,数据访问接口与备存储模块之间的访问映射关系仍正常存在,此时备存储模块可替代主存储模块正常工作,从而使得系统可以保持正常运行,避免存储故障导致系统故障、中断或系统数据丢失等情况发生。此处的数据访问请求包括但不限于数据读请求和数据写请求。
监测模块502在当前未监测到主存储模块异常时,可继续监测。且应当理解的时,本实施例中对于主存储模块的异常监测机制也可根据具体系统类型、应用场景等灵活设定。
另外,应当理解的是,在本实施例中,备存储模块具体设置的个数也可根据需求灵活设定,例如为了提升可靠性,备存储模块可以设置两个以上,且每一个备存储模块与主存储模块之间的数据同步存储;在主存储模块异常时,按照设定规则(例如随机选择或按预设优先级选择等)选择一个备存储模块替换主存储模块工作,在所选择的备存储模块也故障时,再从剩下的备存储模块中选择一个替换之前所选择的备存储模块工作,以此类推,从而通过多重备份提升系统的可靠性。
在一些应用场景中,主存储模块可设置为系统中通常用于数据存储承载的磁盘存储区域模块,当然也可选择其他存储介质作为主存储模块;备存储模块也可选择磁盘存储区域模块,还可选择内存模块(可以是某一段内存)、文件仿真存储块(例如包括但不限于通过loop设备形成的文件仿真存储块,loop设备是一种伪设备,是使用文件来模拟块设备的一种技术,文件模拟成块设备后,就像一个磁盘或光盘一样使用)。本实施例中备存储模块选择磁盘存储区域模块时,可以直接使用系统自身的物理磁盘中的某一部分存储区域,或者直接使用内存模块和/或文件仿真存储块,使得本实施例提供的系统高可用存储控制方法无需增加物理磁盘即可运行,让系统更灵活健壮可靠的同时,对于系统不需要额外增加任何硬件成本。当然,可选地,本实施例中也可通过额外设置新的、可靠性相对系统自带的磁盘更好的物理磁盘作为备存储区域。
可选地,处理模块503在主存储模块正常运行期间,控制主存储模块和备存储模块之间数据同步存储包括但不限于以下两种方式:
方式一:处理模块503通过数据访问接口接收到数据写请求时,根据访问映射关系将待写入的数据分别写入主存储模块和用存储模块,也即在进行数据写入时,可直接向主存储模块和备存储模块写入相同的数据,使得二者的数据同步;
处理模块503通过数据访问接口接收到数据读请求时,根据访问映射关系从主存储模块和备存储模块中的至少一个模块中读取相应的待读取数据,例如包括但不限于:根据访问映射关系,直接从主存储模块或备存储模块中读取相应的待读取数据;或,根据访问映射关系,从主存储模块和备存储模块中传输速率最大的一个模块中读取相应的待读取数据;
方式二:处理模块503通过数据访问接口接收到数据写请求时,根据访问映射关系将待写入的数据写入主存储模块,然后按预设时间间隔将主存储模块中的数据通过镜像等方式同步到备存储模块中。
可选地,在本实施例中,监测模块502还可用于主存储模块是否恢复正常;处理模块503还可用于在监测模块502监测到主存储模块恢复正常时,恢复数据访问接口与主存储模块之间的访问映射关系,并将主存储模块和备存储模块之间数据进行同步。
处理模块503将恢复正常的主存储模块和备存储模块之间数据进行同步的方式包括但不限于:
方式一:处理模块503通过镜像将备存储模块中当前的数据同步到主存储模块中;
方式二:处理模块503获取主存储模块异常期间,备存储模块上所变动数据的数据变动增量记录,根据获取到的数据变动增量记录对主存储模块上的数据进行同步处理。
本实施例中备存储模块在主存储模块异常器件所变动的数据包括但不限于增加的数据、删除的数据以及修改的数据。本实施例中备存储模块在主存储模块异常器件所变动的数据包括但不限于增加的数据、删除的数据以及修改的数据。处理模块503将主存储模块和备存储模块之间数据进行同步包括但不限于:对于增加的数据,在主存储模块中进行增加存储;对于删除的数据,在主存储模块中查找到相应的数据进行删除;对于修改的数据,在主存储模块中查找到对应的数据进行相应的修改。
处理模块503通过方式二对恢复正常的主存储模块进行数据同步时,监测模块502还可用于在主存储模块故障期间,对在备存储模块上的数据变动情况进行监测记录从而得到数据变动增量记录,且应当理解的是,本实施例中对于变化数据情况的监测和记录方式可采用各种数据动态变化监测记录方式,在此不再赘述。
通过本实施提供的系统高可用存储控制装置可应用于运行各种通信设备的系统,在通信设备的主存储模块出现故障时,可自动无缝切换到备存储模块以替换主存储模块进行工作,保证系统的连续性和避免系统数据丢失。
实施例三:
本实施例提供了一种通信设备,该通信设备包括但不限于各种主机设备,其可运行Linux系统、Windows系统、Unix系统、MAC系统等中的至少一种,参见图6所示,包括处理器601、存储器602以及通信总线603;
通信总线603用于实现处理器601与存储器602之间的通信连接;
处理器601用于执行存储器602中存储的一个或者多个程序,以实现如上各实施例所示的系统高可用存储控制方法的步骤。
本实施例还提供了一种计算机可读存储介质,其可应用于各种通信设备中,该计算机可读存储介质可用于存储一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现如上述各实施例所示的系统高可用存储控制方法的步骤。
为了便于理解,本实施例下面以Linux系统为示例进行说明。
如上各实施例所示,为了实现Linux系统的高可用存储控制,需要解决两个问题,一个问题是在系统运行阶段,使用可靠的物理介质构造一个虚拟存储设备作为备存储模块,并将它加入到系统运行中,当系统检测到主存储模块访问出现问题后,用备存储模块平滑的替换主存储模块,当主存储模块恢复后重新将其加入到系统中;另一个问题是基于用户数据保存的需要,可将系统中的数据按一定的策略读取并增量保存下来,以便于后续主存储模块恢复正常后的数据恢复同步,具体涉及以下过程:
系统启动和使用备存储模块(即高可用存储),例如一种示例中:
a、首先在系统启动阶段,将承载数据的存储设备构造为device mapper(也即逻辑映射设备),并将主存储模块加入其中,即该逻辑映射设备的target端(目标端)是主存储模块,通过在Linux内核中建立映射关系,使得对该device mapper的访问转换为对主存储模块的访问。
b、系统启动成功后,可选择一个可靠的物理介质构造为备存储模块,其大小可等于主存储模块,构造它的物理介质可以为一段内存,某个文件(即文件仿真存储块),真实的磁盘等等。
c、将备存储模块加入device mapper的target端中去,并使用它对主存储模块做镜像,镜像成功后,主存储模块和备存储模块不仅在数据上保持一致,并且系统对devicemapper的写会同步转换为主存储模块和备存储模块的共同写,系统对device mapper的读会转换为从主存储模块和备存储模块中的至少一个模块的读。
d、启动守护进程模块(即监控模块)监控系统运行情况和检测主存储模块是否正常。
e、当守护进程模块发现主存储模块的访问出现问题,将修改device mapper逻辑映射设备的映射关系,将主存储模块从device mapper的target端中去除,使用备存储模块继续维持系统运行。
f、守护进程模块向用户上报主存储模块告警,由用户进行主存储模块修复。
用户数据的保存和同步,包括但不限于:
a、启动备存储模块功能后,当主存储模块的访问出现异常,使用备存储模块维护系统运行。
b、守护进程模块监控系统中的文件或数据修改,将其记录下来得到数据变动增量记录。
c、按需将这些文件或数据的修改(也即数据变动增量记录)进行增量备份。
d、守护进程模块检测到主存储模块故障修复后,根据数据变动增量记录将修改的数据和当前主存储模块合并,并将主存储模块重新加入到device mapper的target端中。
也即本示例中的Linux系统,两个子模块,一个是守护进程模块(对应上述实施例中的监测模块),另一个是高可用存储模块(对应上述实施例中的建立模块和处理模块),如图7所示,这两个子模块交互整体流程如下:
守护进程模块,运行于用户态,负责主存储模块状态的监控,当它检测到主存储模块异常后调用内核ioctl接口(设备控制接口)与高可用存储模块交互完成主存储模块和备存储模块的替换,并对系统中的数据按照预定策略进行增量备份。
高可用存储模块,运行于内核态,负责完成将主存储模块和备存储模块分别加入到device mapper逻辑映射设备中;在系统运行过程中使用备存储模块克隆主存储模块,为主存储模块建立镜像;主存储模块异常后,将对逻辑映射设备访问替换为对备存储模块的访问,同时将主存储模块从逻辑映射设备中解绑脱离系统运行。具体控制过程包括以下示例过程。
启用备存储模块的主要流程参见图8所示,包括:
S801:构造逻辑映射设备:系统上电后,构造一个device mapper逻辑映射设备,并将主存储模块加入到它的target端中去,对逻辑映射设备的访问将转换为对主存储模块的访问IO流见图9所示,上层应用的IO访问,会先经过逻辑映射设备,然后透传给主存储模块进行处理。
S802:启动守护进程模块:当逻辑映射设备构造完成后,系统使用逻辑映射设备继续启动运行,当系统启动成功后,守护进程模块即开始运行。
S803:构造备存储模块:使用其它物理介质构造备存储模块,这里的物理介质可以是内存、文件、磁盘等,这里以内存为例,创建一个ramdisk虚拟内存盘设备,并将其加入到device mapper逻辑映射设备中去。
S804:进行备存储模块的添加同步:守护进程模块调用device mapper模块的ioctl接口,使用备存储模块为主存储模块创建一个镜像,创建镜像过程中,会将主存储模块的数据完全复制到备存储模块中,若镜像创建失败,则守护进程模块将尝试重新创建备存储模块。
S805:对主存储模块和备存储模块同步控制:镜像创建成功并启用后,对devicemapper逻辑映射设备的访问将同步转换为对主存储模块和备存储模块的共同访问的IO流见图10,上层应用的IO访问,会先经过逻辑映射设备,逻辑映射设备将IO克隆一份,然后分别发往主存储模块和备存储模块,分别进行处理。
当守护进程模块检测到主存储模块异常后,将故障主存储模块隔离出系统,使用备存储模块单独维持系统的运行,具体的流程如图11所示,包括:
S1101:监测到主存储模块异常:具体通过守护进程模块对主存储模块IO定时监控,探测主存储模块是否正常,例如监测其IO队列是否出现阻塞。
S1102:切换存储设备:守护进程模块调用device mapper模块的ioctl接口,首先将主存储模块状态置为fault状态,主存储模块不再提供IO服务,然后修改device mapper的映射关系,将主存储模块从系统中剥离出去,这样整个系统只使用备存储模块提供IO服务,其IO流见图12,上层应用对主存储模块的访问,会先经过逻辑映射设备,然后透传给备存储模块进行处理。
S1103:隔离主存储模块的访问:将主存储模块从系统中隔离出来,禁止再对主存储模块的访问,并上报系统告警信息。
S1104:监测主存储模块是否恢复:守护进程模块继续检测主存储模块是否恢复正常。
S1105:进行主存储模块的数据恢复:若主存储模块已经恢复正常,重新恢复系统对主存储模块的访问。
当守护进程模块检测到主存储模块异常后,需要对当前系统中的数据进行保存以便于主存模块恢复正常之后的数据恢复,具体的流程如图13所示:
S1301:启动同步线程:当守护进程模块检测到主存储模块异常后,守护进程模块启动数据同步线程,用于完成数据的保存和恢复工作。
S1302:进行数据变动的监测:守护进程模块对系统中的文件的删除/修改操作进行监控。
S1303:数据变动的记录:如果系统中的文件数据有变化,守护进程模块对修改过的文件进行记录。
S1304:得到数据变动增量记录:当系统中的变动数据的数量大小累积到一定阀值(或按预设时间间隔等规则进行数据的暂存),按照预定的策略从系统中dump出这些修改的数据暂存起来得到数据变动增量记录。
S1305:监测到主存储模块恢复正常:守护进程模块检测主存储模块是否恢复正常。
S1306:进行主存储模块的数据恢复:若主存储模块已经恢复正常,且可进行访问,将其之前保存的数据变动增量记录重新merge到主存储模块上。
本实施例提供的系统高可用存储控制方案在不影响系统运行的情况下,可动态地检测出主存储模块故障并切换存储介质,同时对系统中的数据进行有效保护,实现动态地将故障存储和整个系统自动分离,对系统当前数据进行有效保护,消除传统方法无法及时检测出存储故障;必须关闭系统或业务对故障存储进行修复等操作;且系统数据极易丢失的缺陷。
从保障业务的连续性和灾难恢复的角度看,本实施例提供的方案具有使得系统连续、可靠、不间断运行的先天优势,同时整个处理过程对上层应用完全透明,另外替代存储介质可以使用内存,物理磁盘,文件等来构建,使得该发明可以无需增加物理磁盘即可运行,让系统更灵活健壮可靠
显然,本领域的技术人员应该明白,上述本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在计算机存储介质(ROM/RAM、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本发明不限制于任何特定的硬件和软件结合。
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (13)
1.一种系统高可用存储控制方法,包括:
在数据访问接口与主存储模块和备存储模块的访问映射关系建立后,对所述主存储模块的运行状态进行监测;
当监测到所述主存储模块异常时,将所述主存储模块隔离并删除所述数据访问接口与所述主存储模块之间的访问映射关系;
其中,在所述主存储模块正常运行期间,控制所述主存储模块和所述备存储模块之间数据同步存储;在删除所述数据访问接口与所述主存储模块之间的访问映射关系之后,通过所述数据访问接口接收到数据访问请求时,根据所述访问映射关系访问所述备存储模块。
2.如权利要求1所述的系统高可用存储控制方法,其特征在于,所述在所述主存储模块正常运行期间,控制所述主存储模块和所述备存储模块之间数据同步存储包括:
通过所述数据访问接口接收到数据写请求时,根据所述访问映射关系将待写入的数据分别写入所述主存储模块和所述用存储模块;
通过所述数据访问接口接收到数据读请求时,根据所述访问映射关系从所述主存储模块和备存储模块中的至少一个模块中读取相应的待读取数据。
3.如权利要求2所述的系统高可用存储控制方法,其特征在于,所述根据所述访问映射关系从所述主存储模块和备存储模块中的至少一个模块中读取相应的待读取数据包括:
根据所述访问映射关系,直接从所述主存储模块或所述备存储模块中读取相应的待读取数据;
或,
根据所述访问映射关系,从所述主存储模块和所述备存储模块中传输速率最大的一个模块中读取相应的待读取数据。
4.如权利要求1-3任一项所述的系统高可用存储控制方法,其特征在于,建立数据访问接口与主存储模块和备存储模块的访问映射关系包括:
在系统启动过程中构造逻辑映射设备和数据访问接口,将所述主存储模块加入所述逻辑映射设备的目标端,并将所述数据访问接口的映射关系指向所述主存储模块;
在系统启动成功后,获取备存储模块,将获取的备存储模块加入所述逻辑映射设备的目标端,并将所述数据访问接口的映射关系指向所述备存储模块,以及将所述主存储模块和所述备存储模块之间的数据进行同步;
或,
在系统启动过程中构造逻辑映射设备和数据访问接口,将所述主存储模块以及预设的备存储模块分别加入所述逻辑映射设备的目标端,并将所述数据访问接口的映射关系分别指向所述主存储模块和所述备存储模块,以及将所述主存储模块和所述备存储模块之间的数据进行同步。
5.如权利要求4所述的系统高可用存储控制方法,其特征在于,所述备存储模块包括内存模块、文件仿真存储块、物理磁盘区域块中的至少一个。
6.如权利要求4所述的系统高可用存储控制方法,其特征在于,将所述备存储模块加入所述逻辑映射设备的目标端之前,还包括确定是否接收到备用存储启用指令;
和/或,
将所述备存储模块加入所述逻辑映射设备的目标端之后,还包括:
检测到备用存储关闭指令时,将所述备存储模块隔离并删除所述数据访问接口与所述备存储模块之间的访问映射关系。
7.如权利要求1-3任一项所述的系统高可用存储控制方法,其特征在于,当监测到所述主存储模块恢复正常时,还包括:
恢复所述数据访问接口与所述主存储模块之间的访问映射关系,并将所述主存储模块和所述备存储模块之间数据进行同步。
8.如权利要求7所述的系统高可用存储控制方法,其特征在于,所述将所述主存储模块和所述备存储模块之间数据进行同步包括:
通过镜像将所述备存储模块中当前的数据同步到所述主存储模块中;
或,
获取所述主存储模块异常期间,所述备存储模块上所变动数据的数据变动增量记录;
根据获取到的数据变动增量记录对所述主存储模块上的数据进行同步处理。
9.一种系统高可用存储控制装置,包括:
监测模块,用于在数据访问接口与主存储模块和备存储模块的访问映射关系建立后,对所述主存储模块的运行状态进行监测;
处理模块,用于在所述主存储模块正常运行期间,控制所述主存储模块和所述备存储模块之间数据同步存储,以及用于在所述监测模块监测到所述主存储模块异常时,将所述主存储模块隔离并删除所述数据访问接口与所述主存储模块之间的访问映射关系,并在通过所述数据访问接口接收到数据访问请求时,控制根据所述访问映射关系访问所述备存储模块。
10.如权利要求9所述的系统高可用存储控制装置,其特征在于,还包括建立模块;
所述建立模块用于在系统启动过程中构造逻辑映射设备和数据访问接口,将所述主存储模块加入所述逻辑映射设备的目标端,以及用于在系统启动成功后,将获取的备存储模块加入所述逻辑映射设备的目标端;以及用于将所述数据访问接口的映射关系分别指向所述主存储模块和所述备存储模块,并将所述主存储模块和所述备存储模块之间的数据进行同步;
或,
所述建立模块用于在系统启动过程中构造逻辑映射设备和数据访问接口,将所述主存储模块以及预设的备存储模块分别加入所述逻辑映射设备的目标端,将所述数据访问接口的映射关系分别指向所述主存储模块和所述备存储模块,并将所述主存储模块和所述备存储模块之间的数据进行同步。
11.如权利要求9或10所述的系统高可用存储控制装置,其特征在于,所述处理模块还用于在所述监测模块监测到所述主存储模块恢复正常时,恢复所述数据访问接口与所述主存储模块之间的访问映射关系,并将所述主存储模块和所述备存储模块之间数据进行同步。
12.一种通信设备,包括处理器、存储器以及通信总线;
所述通信总线用于实现所述处理器与所述存储器之间的通信连接;
所述处理器用于执行存储器中存储的一个或者多个程序,以实现如权利要求1-8任一项所述的系统高可用存储控制方法的步骤。
13.一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-8任一项所述的系统高可用存储控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810639500.8A CN110618951A (zh) | 2018-06-20 | 2018-06-20 | 系统高可用存储控制方法、装置、通信设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810639500.8A CN110618951A (zh) | 2018-06-20 | 2018-06-20 | 系统高可用存储控制方法、装置、通信设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110618951A true CN110618951A (zh) | 2019-12-27 |
Family
ID=68920555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810639500.8A Pending CN110618951A (zh) | 2018-06-20 | 2018-06-20 | 系统高可用存储控制方法、装置、通信设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110618951A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174597A (zh) * | 2022-07-30 | 2022-10-11 | 重庆长安汽车股份有限公司 | 一种文件数据防丢失的方法、系统、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019965A (zh) * | 2011-09-20 | 2013-04-03 | 上海博泰悦臻电子设备制造有限公司 | 存储设备 |
CN105446913A (zh) * | 2014-09-29 | 2016-03-30 | 华为数字技术(成都)有限公司 | 一种数据访问方法及装置 |
CN106357787A (zh) * | 2016-09-30 | 2017-01-25 | 郑州云海信息技术有限公司 | 一种存储容灾控制系统 |
CN106716378A (zh) * | 2014-08-07 | 2017-05-24 | 微软技术许可有限责任公司 | 存储故障之后的安全数据访问 |
CN107147529A (zh) * | 2017-05-24 | 2017-09-08 | 郑州云海信息技术有限公司 | 一种数据容灾系统及方法 |
CN107908505A (zh) * | 2017-12-04 | 2018-04-13 | 郑州云海信息技术有限公司 | 一种数据存储方法、装置、设备及系统 |
-
2018
- 2018-06-20 CN CN201810639500.8A patent/CN110618951A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019965A (zh) * | 2011-09-20 | 2013-04-03 | 上海博泰悦臻电子设备制造有限公司 | 存储设备 |
CN106716378A (zh) * | 2014-08-07 | 2017-05-24 | 微软技术许可有限责任公司 | 存储故障之后的安全数据访问 |
CN105446913A (zh) * | 2014-09-29 | 2016-03-30 | 华为数字技术(成都)有限公司 | 一种数据访问方法及装置 |
CN106357787A (zh) * | 2016-09-30 | 2017-01-25 | 郑州云海信息技术有限公司 | 一种存储容灾控制系统 |
CN107147529A (zh) * | 2017-05-24 | 2017-09-08 | 郑州云海信息技术有限公司 | 一种数据容灾系统及方法 |
CN107908505A (zh) * | 2017-12-04 | 2018-04-13 | 郑州云海信息技术有限公司 | 一种数据存储方法、装置、设备及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174597A (zh) * | 2022-07-30 | 2022-10-11 | 重庆长安汽车股份有限公司 | 一种文件数据防丢失的方法、系统、电子设备和存储介质 |
CN115174597B (zh) * | 2022-07-30 | 2023-05-26 | 重庆长安汽车股份有限公司 | 一种文件数据防丢失的方法、系统、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10146472B2 (en) | Tertiary storage unit management in bidirectional data copying | |
US9122653B2 (en) | Migrating virtual machines across sites | |
US8140790B2 (en) | Failure management method in thin provisioning technology for storage | |
US7085956B2 (en) | System and method for concurrent logical device swapping | |
US8060478B2 (en) | Storage system and method of changing monitoring condition thereof | |
US9792181B2 (en) | Pool of devices providing operating system redundancy | |
US11947429B2 (en) | Data disaster recovery method and site | |
CN111327467A (zh) | 一种服务器系统及其容灾备份方法和相关设备 | |
US8677089B2 (en) | Storage apparatus and storage system | |
CN112380062A (zh) | 一种基于系统备份点多次快速恢复系统的方法及系统 | |
CN105354113A (zh) | 一种服务器、管理服务器的系统和方法 | |
US9367409B2 (en) | Method and system for handling failures by tracking status of switchover or switchback | |
CN106919473A (zh) | 一种数据灾备系统及业务处理方法 | |
CN102708027A (zh) | 一种避免通信设备运行中断的方法及系统 | |
CN111240903A (zh) | 数据恢复方法及相关设备 | |
CN110972497A (zh) | 虚拟化平台的容灾方法及装置 | |
CN110618951A (zh) | 系统高可用存储控制方法、装置、通信设备及存储介质 | |
CN105159846A (zh) | 一种支持虚拟化磁盘双控切换的方法和存储系统 | |
CN108984602B (zh) | 一种数据库控制方法和数据库系统 | |
JP2001101032A (ja) | 異種os間制御によるos監視方式 | |
JP2006260141A (ja) | 記憶システムの制御方法、記憶システム、記憶制御装置、記憶システムの制御プログラム、情報処理システム | |
CN111427721B (zh) | 异常恢复方法及装置 | |
CN113874842A (zh) | 容错系统、服务器、容错系统的运行方法、服务器的运行方法和服务器的运行方法的程序 | |
JPH08202627A (ja) | 二重化された共用メモリの等価性回復処理方法および装置 | |
CN104298553B (zh) | 一种虚拟机迁移的方法、vrms和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191227 |
|
RJ01 | Rejection of invention patent application after publication |