CN105353984A - 基于软磁盘阵列的高可用集群控制器、控制方法及系统 - Google Patents

基于软磁盘阵列的高可用集群控制器、控制方法及系统 Download PDF

Info

Publication number
CN105353984A
CN105353984A CN201510744986.8A CN201510744986A CN105353984A CN 105353984 A CN105353984 A CN 105353984A CN 201510744986 A CN201510744986 A CN 201510744986A CN 105353984 A CN105353984 A CN 105353984A
Authority
CN
China
Prior art keywords
flexible plastic
array
plastic disc
master controller
controller
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.)
Granted
Application number
CN201510744986.8A
Other languages
English (en)
Other versions
CN105353984B (zh
Inventor
陈杰
沈伟亮
殷秋萍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING FORTUNET INFORMATION TECHNOLOGY CO LTD
Original Assignee
BEIJING FORTUNET INFORMATION TECHNOLOGY CO LTD
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BEIJING FORTUNET INFORMATION TECHNOLOGY CO LTD filed Critical BEIJING FORTUNET INFORMATION TECHNOLOGY CO LTD
Priority to CN201510744986.8A priority Critical patent/CN105353984B/zh
Publication of CN105353984A publication Critical patent/CN105353984A/zh
Application granted granted Critical
Publication of CN105353984B publication Critical patent/CN105353984B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于软磁盘阵列的高可用集群控制器、控制方法及系统。其中控制方法包括以下步骤:构建一个受主控制器控制的软磁盘阵列,称为第一磁盘阵列;在集群除主控制器外的其他节点中构建与第一磁盘阵列相同的软磁盘阵列,作为第一磁盘阵列副盘;主控制器接收控制命令,根据控制命令对第一磁盘阵列进行修改,得到第一磁盘阵列的最新状态,并发送同步命令到其他节点;其他节点根据同步命令将第一磁盘阵列副盘的状态修改为与第一磁盘阵列的最新状态相同。其使其他节点中第一磁盘阵列副盘的状态与主控制器中的状态一致,且磁盘阵列中的元数据相同,在主控制器故障时,其他节点能够快速的代替主控制器继续工作,提高用户体验。

Description

基于软磁盘阵列的高可用集群控制器、控制方法及系统
技术领域
本发明涉及磁盘阵列技术领域,尤其涉及一种基于软磁盘阵列的高可用集群的控制器、控制方法及控制系统。
背景技术
RAID(RedundantArraysofIndependentDisks,磁盘阵列)的高可用性集群是指透过网络共享存储设备,且每个节点都有控制存储设备的能力。在众多节点中,如果一个节点失效了,另外一个节点可以马上接管所有的操作,准备好本地资源,恢复故障节点上卷信息,为用户继续提供服务。
具有软RAID的集群系统在传统控制模式下,虽然存储设备共享元数据共享,但对于RAID的计算和RAID的控制都是运行在每个节点的内部,多个节点之间没有沟通,无法同步各节点的状态。例如:当一个节点的RAID增加一块硬盘时,另外一个节点无法知道该事件。一个节点正在重建或者重建完成时,其他节点也无法知道。
因此,在传统控制模式下,主控制器发生故障时,其他节点需要重新录入或者修改磁盘中的元数据,所需时间较长,造成节点启动速度慢。
发明内容
基于此,有必要针对传统技术中新控制节点接管主控制器所用时间较长,效率低的问题,提供一种能够更快应对主控制器故障的一种基于软磁盘阵列的高可用集群的控制方法、应用该方法的控制器,以及包括多个控制器的控制系统。
为实现本发明目的提供的一种基于软磁盘阵列的高可用集群的控制方法,包括以下步骤:
构建一个受主控制器控制的软磁盘阵列,称为第一磁盘阵列;
在集群除主控制器外的其他节点中构建与所述第一磁盘阵列相同的软磁盘阵列,作为第一磁盘阵列副盘;
主控制器接收控制命令,根据所述控制命令对所述第一磁盘阵列进行修改,得到所述第一磁盘阵列的最新状态,并发送同步命令到所述其他节点;
所述其他节点根据所述同步命令将所述第一磁盘阵列副盘的状态修改为与所述第一磁盘阵列的最新状态相同。
作为一种基于软磁盘阵列的高可用集群的控制方法的可实施方式,所述主控制器接收控制命令,根据所述控制命令对所述第一磁盘阵列进行修改,得到所述第一磁盘阵列的最新状态,并发送同步命令到所述其他节点步骤中,所述主控制器先根据所述控制命令对所述第一磁盘阵列进行修改,得到所述第一磁盘阵列的最新状态之后,才会发送所述同步命令到所述其他节点。
作为一种基于软磁盘阵列的高可用集群的控制方法的可实施方式,所述在集群除主控制器外的其他节点中构建与所述第一磁盘阵列相同的软磁盘阵列,作为第一磁盘阵列副盘步骤中,所述其他节点从所述第一磁盘阵列对应的物理磁盘上读出元信息,并根据所读出的元信息重组成第一磁盘阵列副盘。
作为一种基于软磁盘阵列的高可用集群的控制方法的可实施方式,所述在集群除主控制器外的其他节点中构建与所述第一磁盘阵列相同的软磁盘阵列,作为第一磁盘阵列副盘步骤中,在所述集群的除所述主控器外的每个其他节点中均构建一个所述第一磁盘阵列副盘。
作为一种基于软磁盘阵列的高可用集群的控制方法的可实施方式,所述第一磁盘阵列副盘为只读软磁盘阵列。
作为一种基于软磁盘阵列的高可用集群的控制方法的可实施方式,当所述主控制器故障时,所述集群中的另一节点被选为新的主控制器;所述新的主控制器将自身的第一磁盘阵列副盘修改为可读可写软磁盘阵列。
基于同一发明构思的一种基于软磁盘阵列的高可用集群的控制器,包括处理模块、节点通信模块以及软磁盘阵列存储模块;
所述软磁盘阵列存储模块,用于存储各节点对应的软磁盘阵列;
所述处理模块,用于接收控制命令,并当当前节点为主控制器时,根据接收的控制命令对当前节点对应的软磁盘阵列进行修改或者构建新的软磁盘阵列,并发送同步命令至集群中的其他节点,集群中的其他节点根据该同步命令将当前节点对应的软磁盘阵列修改为与所述主控制器对应的软磁盘阵列相同的状态;当当前节点为非主控制器时,将接收的所述同步命令通过所述节点通信模块发送给主控制器,所述主控制器根据接收的同步命令对当前节点对应的软磁盘阵列进行修改或者构建新的软磁盘阵列,并经节点通信模块发送同步命令至非主控制器,该非主控制器根据接收到的所述同步命令对当前节点对应的软磁盘阵列的状态修改为与所述主控制器对应的软磁盘阵列相同的状态;
作为一种基于软磁盘阵列的高可用集群的控制器的可实施方式,集群中的主控制器构建有所述主控制器具有读写权限的软磁盘阵列,集群中除所述主控制器外的其他节点中构建有与所述主控制器中的软磁盘阵列相同的软磁盘阵列,作为副盘,但所述其他节点对所述副盘没有写权限。
作为一种基于软磁盘阵列的高可用集群的控制器的可实施方式,所述处理模块中包括控制命令处理单元、阵列操作单元、远程控制命令处理单元;
所述控制命令处理单元,用于当当前节点为主控制器时,接收所述控制命令,将所述控制命令发送给所述阵列操作单元,并发送同步命令给所述节点通信模块;当当前节点为从控制器时通过所述节点通信模块发送所述控制命令给集群中的主控制器;
所述远程控制命令处理单元,用于当前节点为非主控制器时,接收通过所述节点通信模块传输来的同步命令,并将所述同步命令发送给所述阵列操作单元;
所述阵列操作单元,用于当当前节点为主控制器时,根据接收的控制命令对当前节点对应的软磁盘阵列进行修改或者构建新的软磁盘阵列;当当前节点为从控制器时,根据所述同步命令对当前控制器对应的软磁盘阵列的状态进行修改,修改为与所述主控制器对应的软磁盘阵列相同的状态;
还包括阵列事件监控单元;所述阵列事件监控单元用于当当前控制器为主控制器时,实时监测所述当前控制器对应的软磁盘阵列的状态变化,并发送所述状态变化对应的修改命令到所述节点通信模块;
所述节点通信模块还用于传输所述阵列事件监控单元发送来的修改命令到所述集群中的其他节点。
作为一种基于软磁盘阵列的高可用集群的控制器的可实施方式,当集群中的主控制器失效时,所述控制命令处理单元接收到由非主控制器转变为主控制器的控制命令,所述阵列操作单元会将当前控制器对应的软磁盘阵列的控制权限修改为读写权限。
作为一种基于软磁盘阵列的高可用集群的控制器的可实施方式,所述处理模块根据软磁盘阵列的元数据中的主控制器信息判断当前控制器是否为主控制器。
基于同一发明构思的一种基于软磁盘阵列的高可用集群的控制系统,包括两个以上前述的控制器。
作为一种基于软磁盘阵列的高可用集群的控制系统的可实施方式,该控制系统包括两个所述控制器,两个所述控制器中的节点通信模块之间采用进程间通信模式进行通信,且采用非透明桥接方式。
本发明的有益效果包括:本发明提供的一种基于软磁盘阵列的高可用集群的控制方法,其构建从属于主控制器的第一磁盘阵列,在集群的其他节点中通过重组的方式构建第一磁盘阵列的副盘,并将主控制器中第一磁盘的状态及时的同步到其他节点。从而使其他节点中第一磁盘阵列副盘的状态与第一磁盘阵列的状态保持一致,且第一磁盘阵列副盘与第一磁盘阵列中的元数据是完全相同的,在主控制器故障时,其他节点能够快速的代替主控制器继续工作,而无需重新读取元数据,大大缩短其他节点成为新的主控制器所需要的时间,提高用户体验。同时本发明提供的基于软磁盘阵列的高可用集群中的控制器其能够在集群中执行上述方法步骤,使集群系统同样具有上述快速处理主控制器故障的功能。本发明同时提供的基于软磁盘阵列的高可用集群控制系统包含了前述的控制器也具有快速应对主控制器故障的优越性能。
附图说明
图1为本发明一种基于软磁盘阵列的高可用集群的控制方法的一具体实施例的流程图;
图2为本发明一种基于软磁盘阵列的高可用集群的控制器的一具体实施例的构成示意图;
图3为本发明一种基于软磁盘阵列的高可用集群的控制器的另一具体实施例的构成示意图;
图4为本发明一种基于软磁盘阵列的高可用集群的控制系统的一具体实施例的系统构成示意图;
图5为本发明一种基于软磁盘阵列的高可用集群的控制系统一具体实施例中控制器之间信息传输的过程示意图;
图6为本发明一种基于软磁盘阵列的高可用集群的控制系统一具体实施例中主控制器中的监控器监控磁盘阵列事件并通知其他节点的过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明的一种基于软磁盘阵列的高可用集群的控制方法、控制系统及集群中的控制器的具体实施方式进行说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明一实施例的一种基于软磁盘阵列的高可用集群的控制方法,如图1所示,包括以下步骤:
S100,构建一个受主控制器控制的软磁盘阵列,称为第一磁盘阵列。
本步骤中,第一磁盘阵列就是构建的一个软磁盘阵列,其中“第一”是对主控制器中的软磁盘阵列的一个命名,没有其他特殊含义。
且本领域技术人员可以理解,在集群中构建的软磁盘阵列是基于一组真实的物理磁盘构建的,物理磁盘的数量根据实际集群存储量及数据处理量进行配置。如集群中可以包含8个、6个、或者10个物理磁盘。且每个磁盘的存储容量可以相同也可以各不相同。当然,一个集群中一般有一个主控制器,其他节点可作为从控制器,从控节点可在主控制器故障时代替主控制器进行数据存取等操作。但需要说明的是,集群中的所有节点(包括主控制器)都是共享同一组物理磁盘的。完成步骤S100后,继续执行步骤S200。
S200,在集群除主控制器外的其他节点中构建与第一磁盘阵列相同的软磁盘阵列,作为第一磁盘阵列副盘。
根据本步骤的描述,构建的第一磁盘阵列副盘是与第一磁盘阵列相同的。此处所说的相同是指,两个磁盘阵列指向相同的物理磁盘,且存储的元数据完全相同,两者状态也相同。
S300,主控制器接收控制命令,根据控制命令对第一磁盘阵列进行修改,得到第一磁盘阵列的最新状态,并发送同步命令到其他节点。
其中,主控制器接收的控制命令是指从软磁盘阵列使用者(用户)处接收到的软磁盘阵列修改命令以及由于操作软磁盘阵列修改命令造成的读写数据。如软磁盘阵列的构建、删除以及更新等操作。主控制器发送的同步命令是与控制命令相对应的修改命令。如控制命令中要求主控制器对第一磁盘阵列进行重建(Rebuild),则主控制器首先会开始重建所述第一磁盘阵列,此时第一磁盘阵列则进入开始重建状态,此时,主控制器也会发送一个要求其他节点的相应磁盘阵列副盘也进入开始重建状态的修改命令。
S400,其他节点根据同步命令将第一磁盘阵列副盘的状态修改为与第一磁盘阵列的最新状态相同。
根据前面的描述,如主控制器中的第一磁盘阵列进入开始重建状态时,则其他节点的相应磁盘阵列副盘也会进入到开始重建状态,主控制器中的第一磁盘阵列进入重建中状态时,其他节点中的副盘也会根据接收到的修改命令进入到重建中状态,保持与主控制器中的第一磁盘阵列的状态完全一致。从而集群中的其他节点可以在主控制器故障时随时顶替主控制器的工作继续为客户服务。由此也能看出,事实上只有第一磁盘阵列是真实的从属于主控制器的软磁盘阵列,而其他节点中的第一磁盘阵列副盘都只是第一磁盘阵列的一个镜像,其真实指向的物理地址与第一磁盘阵列相同,在主控制器能够正常工作的情况下,第一磁盘阵列副盘只是在自身节点中同步第一磁盘阵列的状态。
本发明实施例的一种基于软磁盘阵列的高可用集群的控制方法,其构建从属于主控制器的第一磁盘阵列,在其他节点中通过重组的方式构建第一磁盘阵列的副盘,并将主控制器中第一磁盘的状态及时的同步到其他节点。从而使其他节点中第一磁盘阵列副盘的状态与第一磁盘阵列的状态保持一致,且第一磁盘阵列副盘与第一磁盘阵列中的元数据是完全相同的,从而在主控制器故障时,其他节点能够快速的代替主控制器继续工作,而无需重新读取元数据,大大缩短其他节点成为新的主控制器所需要的时间,提高用户体验。
需要说明的是,该一种基于软磁盘阵列的高可用集群的控制方法中,主控制器可以为集群中多个控制节点中的任意一个节点,而且当原来的主控制器发生故障时,其他节点可以接管原来主控制器的工作成为新的主控制器。而特殊的,在双控系统中,集群中包括两个控制节点,其中一个作为主控制器,另一个则作为从控制器。两个节点之间可互相通讯,并且共享一组物理磁盘。
另外,考虑到数据传输、同步的效率,以及节点处理速度,当集群中节点数量较多时,也可选择集群中固定的几个作为备选的主控制器,从而在数据同步时,只在固定的几个节点中构建第一磁盘阵列副盘,并及时对副盘的状态进行同步更新。
当然,作为一种可实施方式,也可以在集群的除主控器外的每个其他节点中均构建一个第一磁盘阵列副盘。
具体的,步骤S300,主控制器接收控制命令,根据控制命令对第一磁盘阵列进行修改,得到第一磁盘阵列的最新状态,并发送同步命令到其他节点步骤中,主控制器先根据控制命令对第一磁盘阵列进行修改,得到第一磁盘阵列的最新状态之后,才会发送同步命令到其他节点。
在其中一个实施例中,步骤S200,在集群除主控制器外的其他节点中构建与第一磁盘阵列相同的软磁盘阵列,作为第一磁盘阵列副盘中,其他节点从第一磁盘阵列对应的物理磁盘上读出元信息,并根据所读出的元信息重组成第一磁盘阵列副盘。
更佳的,其他节点读出元信息后,可将第一磁盘阵列重组为只读的第一磁盘阵列副盘。此时,相应的节点不能修改第一磁盘阵列副盘中的元信息。即,集群中除主控制器能够对第一磁盘阵列中的元数据进行修改外,其他节点不能对第一磁盘副盘中的元数据进行修改,更不能对所述第一磁盘阵列对应的元数据进行修改。即使对节点自身对应的第一磁盘阵列副盘,节点也不能修改其元数据。
该实施例中更加明确了所属的概念,一个磁盘阵列只属于一个控制器(本实施例中的主控制器),虽然集群中其他节点与主控制器看到的磁盘阵列设备是相同的(主控制器中的第一磁盘阵列与其他节点中的第一磁盘阵列副盘指向相同的物理磁盘),但是只有主控制器可以有权限对第一磁盘阵列进行读写操作,而其他节点仅具有只读的权限。这样就保证了,同一时间只有一个控制器在写,避免多个控制器对硬盘读写的冲突。且磁盘阵列的所属信息会在磁盘阵列建立时写入到元数据中,用于判断哪个控制器是磁盘阵列的所属者。
另外,本发明的一种基于软磁盘阵列的高可用集群的控制方法中,还包括下面的步骤:
当主控制器故障时,集群中的另一节点被选为新的主控制器;新的主控制器将自身的第一磁盘阵列副盘修改为可读可写软磁盘阵列。
该实施例中,其他节点代理主控制器进行磁盘阵列控制后,新的主控制器就拥有了对磁盘阵列全部的读写权限,成为新的磁盘阵列的所属者。当然,如果原主控制器故障排除,能够恢复工作后,也可按照相同的程序将新主控制器的功能交还给原主控制器。
为了实现上述控制方法,基于同一发明构思,本发明还提供一种基于软磁盘阵列的高可用集群的控制器100。使用上述方法对软磁盘阵列集群进行控制时,大部分功能可通过下面提供的控制器100中的功能模块完成。控制器100中部分与前述方法步骤相同的功能在此不再赘述。
其中一个实施例的软磁盘阵列集群中的控制器100,如图2所示,包括处理模块130、节点通信模块140以及软磁盘阵列存储模块150。
其中,软磁盘阵列存储模块150,用于存储各节点对应的软磁盘阵列。
而处理模块130作为控制器中最主要的功能模块,用于接收控制命令,并当当前节点为主控制器时,根据接收的控制命令对当前节点对应的软磁盘阵列进行修改或者构建新的软磁盘阵列,并通过节点通信模块140发送同步命令至集群中的其他节点,集群中的其他节点根据该同步命令将当前节点对应的软磁盘阵列修改为与主控制器对应的软磁盘阵列相同的状态;当当前节点为非主控制器时,将接收的同步命令通过节点通信模块140发送给主控制器,主控制器根据接收的同步命令对当前节点对应的软磁盘阵列进行修改或者构建新的软磁盘阵列,并经节点通信模块140发送同步命令至非主控制器,该非主控制器根据接收到的同步命令对当前节点对应的软磁盘阵列的状态修改为与主控制器对应的软磁盘阵列相同的状态。
具体的,处理模块130中包括控制命令处理单元131、阵列操作单元132及远程控制命令处理单元133。
其中,所述控制命令处理单元131与所述阵列操作单元132之间、控制命令处理单元131与节点通信模块140之间、节点通信模块140与远程控制命令处理单元133之间,以及远程控制命令处理单元133与阵列操作单元132之间都是通讯连接的。而阵列操作单元132能够直接对软磁盘阵列进行监控和管理。
具体的,所述控制命令处理单元131用于当当前节点为主控制器时,接收所述控制命令,将所述控制命令发送给所述阵列操作单元132,并发送同步命令给所述节点通信模块140;当当前节点为从控制器时通过所述节点通信模块140发送所述控制命令给集群中的主控制器;阵列操作单元132用于当当前节点为主控制器时,根据接收的控制命令对当前节点对应的软磁盘阵列进行修改或者构建新的软磁盘阵列;当当前节点为从控制器时,根据所述同步命令对当前节点对应的软磁盘阵列的状态进行修改,修改为与所述主控制器对应的软磁盘阵列相同的状态;所述远程控制命令处理单元133,用于当前节点为非主控制器时,接收通过所述节点通信模块140传输来的同步命令,并将所述同步命令发送给所述阵列操作单元132;节点通信模块140用于当当前控制器100为主控制器时,发送控制命令处理单元131接收到的控制命令到集群中的其他节点;当当前控制器100为非主控制器时,接收集群中的主控制器同步过来的控制命令,并将接收到的控制命令传输到远程控制命令处理单元133。
且集群中的主控制器中构建有主控制器具有读写权限的软磁盘阵列,集群中除主控制器外的其他节点中构建有与主控制器中的软磁盘阵列相同的软磁盘阵列,作为副盘,但其他节点对所述副盘没有写权限。
需要说明的而是,集群中的每个节点均可采用本发明实施例的控制器100。在使用过程中可以根据需求设置其中一个控制器100作为主控制器,而集群中的其他节点则作为非主控制器。但是,如前面方法中所描述的,当主控制器发生故障时,可选择某个节点立即代替主控制器继续工作。并且本发明实施例的控制器100在其为非主控制器时会构建主控制器中的软磁盘阵列的副盘,能够读取与主控制器相同的磁盘阵列设备,还可以通过节点通信模块140实时同步主控制器中软磁盘阵列的状态。作如此配置的控制器100使用在集群中时,能够在主控制器故障时快速接替主控制器的工作,而不需要再进行磁盘阵列元数据重新录入等操作。提高集群故障处理的速度,增强用户体验。
且非主控制器在构建主控制器中软磁盘阵列的副盘时,可通过读取主控制器中软磁盘阵列的元数据并通过磁盘重组构建。
而软磁盘阵列的所属者信息是写入到元数据中的,每个控制器中的处理模块130可根据元数据中的主控制器信息判断当前控制器是否为主控制器。
在其中一个软磁盘阵列集群中的控制器100的实施例中,如图3所示,还包括阵列事件监控单元134;阵列事件监控单元134会实时监测当前控制器100对应的软磁盘阵列的状态变化,并且会在当前控制器100为主控制器时,发送状态变化对应的修改命令到节点通信模块140。相应的,节点通信模块140接收到阵列事件监控单元134传输来的修改命令后,会将修改命令发送到集群中的其他节点。
需要说明的是,集群中包括主控制器在内的各个节点之间都是通过节点通信模块140进行通信及数据传输的。其中节点通信模块140可以采用进程间通信的模式在节点之间传输数据。其在两个节点(控制器100)之间进行通信时运用NTB(Non-TransparentBridge,非透明桥接)转址功能,把要传送的信息(一般为修改命令)存储到另一节点的特定缓冲区内。并且通过NTBdoorbell(NTB门铃)信息通知对方节点有信息要接收。如此,实现两个节点之间快速的信息交换功能。
与前述方法中的描述类似,当控制命令处理单元131接收到由非主控制器转变为主控制器的控制命令时,阵列操作单元132会将当前控制器100对应的软磁盘阵列的控制权限修改为读写权限。
阵列操作单元132本身就是对控制器100对应的软磁盘阵列进行建立、删除以及更新软磁盘阵列的状态。因此,当节点的功能转换时(由非主控制器转换为主控制器),阵列操作单元132会负责对自身的软磁盘阵列的状态进行更改。把其对软磁盘阵列的权限修改为读写,从而新的主控制器就基本成为了磁盘阵列的新的所属者,能够主动对软磁盘阵列进行一些修改操作。当然,新的主控制器在对软磁盘阵列进行修改后,也会通过节点通信模块140同步修改信息到其他节点,使其他节点中的磁盘阵列副盘保持与新的主控制器中的软磁盘阵列的状态相同。以便在新的主控制器发生故障时能够有新的节点快速代替它的工作。
其中,一般是在主控制器发生故障时,会将非主控制器转换为主控制器。
另外还需要说明的是,阵列操作单元132可采用mdadm工具实现。Mdadm工具是在用户空间里用来管理和监控软磁盘阵列的一个工具。透过该工具可以建立、删除磁盘阵列或者更新磁盘阵列的状态,也可以监控磁盘阵列内部发生的事件。在控制器100内部,mdadm工具可封装在MDHA系统中。MDHA是一套实现磁盘阵列高可用性模块相当于处理模块130。MDHA系统中的磁盘阵列应用程序接口(MDAPI)相当于控制器100中的控制命令处理单元131,MDHA系统中的远程磁盘阵列应用程序接口(RPCMDAPI)作为控制器100中的远程控制命令处理单元133。MDHA系统中的监控器(monitor)作为控制器100中的阵列事件监控单元134。而节点通信模块140在控制器100中作为单独的模块存在。在控制器100内部,MDHA系统能够与节点通信模块140之间进行通信,完成控制器100中软磁盘阵列与其他节点中软磁盘阵列状态的同步。
基于相同的发明构思,本发明还提供一种软磁盘阵列集群控制系统,这个系统中包含有至少两个前述的控制器。系统在工作过程中,系统中的控制器中的各功能模块会按照前述的方法步骤对信息进行处理,完成集群的控制工作。且控制器中的节点通信模之间可以采用进程间通信模式进行通信,且运用NTB转址功能。
下面以两个控制器的系统为例,对系统的工作过程进行详细的介绍。
如图4所示,控制器中集成有MDHA系统,MDHA系统中的MDAPI作为控制器的控制器的控制命令处理单元,MDHA系统中的mdadm作为控制器中的阵列操作单元,MDHA系统中的监控器作为控制器中的阵列事件监控单元,而MDHA系统中的RPCMDAPI作为控制器中的远程控制命令处理单元。
节点通信模块以单独的模块形式设置在控制器中。
这个系统中假设控制器1为主控制器。假设控制器1调用创建命令建立了一个所属者是控制器1的软磁盘阵列,叫做md0。控制器1同时会通过节点通信模块传送同步命令至控制器2,让控制器2执行远程创建操作。控制器2会从物理磁盘上读出来元信息,并且会重组与控制器1相同的磁盘阵列md0,所述md0为只读权限。这样,使控制器1和控制器2中具有了相同的md设备。但是这个相同的md设备真正的所有者是控制器1,控制器1具有对md0的读写权限,而控制器2只具有只读的权限。
从图4中可以看出,两个控制器中的节点通信模块运用NTB物理转址功能,把要传送的信息存放到对方控制器的特定缓冲区内。当然,在每个控制器中都是配备有缓冲区的。且每个控制器对应的软磁盘阵列都存在各自的存储模块中。同时,两个控制器共用同一组物理磁盘,如图4中所示的物理层。该实施例中供包含了7个物理磁盘,图4中的磁盘1~7。在其他实施例中,物理磁盘的数量也可以为其他数值。
控制器通过MDHA系统对软磁盘阵列的创建、删除以及更新等操作的流程如图5所示。其工作的流程总体上分为两种,一种是控制器是创建的磁盘的所属者,另一种是不是创建测磁盘的所属者。
第一种,控制器是所属者时,工作流程如图中实线所示,按顺序①→②→③→④进行。当前控制器,也即控制器1先做MD操作(创建、删除或者更新等),做完之后再通过进程间通信(Inter-ProcessCommunication,IPC)进行远程过程调用,通知对方控制器,也即控制器2进行相应的创建、删除或者更新等操作,最后结束。
第二种,当控制器不是所属者时,工作流程如图中虚线所示,按照顺序A、B、C、D进行、当前控制器,也即控制器1会先通知对方控制器(控制器2)进行创建、删除或者更新磁盘阵列等操作,然后由控制器2远程呼叫控制器1做相应的创建、删除或者更新等操作,最后结束。
在双控制器系统中,MDHA系统中的监控器只监控属于自己的软磁盘阵列。并且在软磁盘阵列发生事件时,通知其他控制器做相应的处理,使得其他控制器上的相应软磁盘阵列副盘的状态与主控制器的状态一致。例如,如图6所示,控制器1为主控制器,是软磁盘阵列的所属者时,监控器监控到自身的软磁盘阵列发生下列情况时,都会通过节点通信模块告诉对方控制器(控制器2)执行相应的操作。这些情况或者说事件包括:开始重建、重建中、重建结束、备用活动、磁盘失效等。而非所属者的控制器不得改变软磁盘阵列的元数据信息,并且仅有只读的权限。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (13)

1.一种基于软磁盘阵列的高可用集群的控制方法,其特征在于,包括以下步骤:
构建一个受主控制器控制的软磁盘阵列,称为第一磁盘阵列;
在集群除主控制器外的其他节点中构建与所述第一磁盘阵列相同的软磁盘阵列,作为第一磁盘阵列副盘;
主控制器接收控制命令,根据所述控制命令对所述第一磁盘阵列进行修改,得到所述第一磁盘阵列的最新状态,并发送同步命令到所述其他节点;
所述其他节点根据所述同步命令将所述第一磁盘阵列副盘的状态修改为与所述第一磁盘阵列的最新状态相同。
2.根据权利要求1所述的基于软磁盘阵列的高可用集群的控制方法,其特征在于,所述主控制器接收控制命令,根据所述控制命令对所述第一磁盘阵列进行修改,得到所述第一磁盘阵列的最新状态,并发送同步命令到所述其他节点步骤中,所述主控制器先根据所述控制命令对所述第一磁盘阵列进行修改,得到所述第一磁盘阵列的最新状态之后,才会发送所述同步命令到所述其他节点。
3.根据权利要求1所述的基于软磁盘阵列的高可用集群的控制方法,其特征在于,所述在集群除主控制器外的其他节点中构建与所述第一磁盘阵列相同的软磁盘阵列,作为第一磁盘阵列副盘步骤中,所述其他节点从所述第一磁盘阵列对应的物理磁盘上读出元信息,并根据所读出的元信息重组成第一磁盘阵列副盘。
4.根据权利要求1所述的基于软磁盘阵列的高可用集群的控制方法,其特征在于,所述在集群除主控制器外的其他节点中构建与所述第一磁盘阵列相同的软磁盘阵列,作为第一磁盘阵列副盘步骤中,在所述集群的除所述主控器外的其他每个节点中均构建一个所述第一磁盘阵列副盘。
5.根据权利要求3所述的基于软磁盘阵列的高可用集群的控制方法,其特征在于,所述第一磁盘阵列副盘为只读软磁盘阵列。
6.根据权利要求5所述的基于软磁盘阵列的高可用集群的控制方法,其特征在于,当所述主控制器故障时,所述集群中的另一节点被选为新的主控制器;所述新的主控制器将自身的只读软磁盘阵列修改为可读可写软磁盘阵列。
7.一种基于软磁盘阵列的高可用集群的控制器,其特征在于,包括处理模块、节点通信模块以及软磁盘阵列存储模块;
所述软磁盘阵列存储模块,用于存储各节点对应的软磁盘阵列;
所述处理模块,用于接收控制命令,并当当前节点为主控制器时,根据接收的控制命令对当前节点对应的软磁盘阵列进行修改或者构建新的软磁盘阵列,发送同步命令至集群中的其他节点,集群中的其他节点根据该同步命令将当前节点对应的软磁盘阵列修改为与所述主控制器对应的软磁盘阵列相同的状态;当当前节点为非主控制器时,将接收的所述同步命令通过所述节点通信模块发送给主控制器,所述主控制器根据接收的同步命令对当前节点对应的软磁盘阵列进行修改或者构建新的软磁盘阵列,并经节点通信模块发送同步命令至非主控制器,该非主控制器根据接收到的所述同步命令将当前节点对应的软磁盘阵列的状态修改为与所述主控制器对应的软磁盘阵列相同的状态。
8.根据权利要求7所述的基于软磁盘阵列的高可用集群的控制器,其特征在于:
集群中的主控制器构建有所述主控制器具有读写权限的软磁盘阵列,集群中除所述主控制器外的其他节点中构建有与所述主控制器中的软磁盘阵列相同的软磁盘阵列,作为副盘,但所述其他节点对所述副盘没有写权限。
9.根据权利要求7所述的应用于软磁盘阵列的高可用集群的控制器,其特征在于,所述处理模块中包括控制命令处理单元、阵列操作单元、远程控制命令处理单元;
所述控制命令处理单元,用于当当前节点为主控制器时,接收所述控制命令,将所述控制命令发送给所述阵列操作单元,并发送同步命令给所述节点通信模块;当当前节点为从控制器时通过所述节点通信模块发送所述控制命令给集群中的主控制器;
所述远程控制命令处理单元,用于当前节点为从控制器时,接收通过所述节点通信模块传输来的同步命令,并将所述同步命令发送给所述阵列操作单元;
所述阵列操作单元,用于当当前节点为主控制器时,根据接收的控制命令对当前节点对应的软磁盘阵列进行修改或者构建新的软磁盘阵列;当当前节点为从控制器时,根据所述同步命令将当前节点对应的软磁盘阵列的状态修改为与所述主控制器对应的软磁盘阵列相同的状态;
所述处理模块中还包括阵列事件监控单元;所述阵列事件监控单元用于当当前节点为主控制器时,实时监测所述当前节点对应的软磁盘阵列的状态变化,并发送所述状态变化对应的修改命令到所述节点通信模块;
所述节点通信模块还用于传输所述阵列事件监控单元发送来的修改命令到所述集群中的其他节点。
10.根据权利要9所述的基于软磁盘阵列的高可用集群的控制器,其特征在于,当集群中的主控制器失效时,所述控制命令处理单元接收到由非主控制器转变为主控制器的控制命令,所述阵列操作单元将非主控制器对应的软磁盘阵列的控制权限修改为读写权限。
11.根据权利要8所述的基于软磁盘阵列的高可用集群的控制器,其特征在于:
所述处理模块根据软磁盘阵列的元数据中的主控制器信息判断当前节点是否为主控制器。
12.一种基于软磁盘阵列的高可用集群的控制系统,其特征在于,包括两个以上权利要求7至11任一项所述的控制器。
13.根据权利要求10所述的基于软磁盘阵列的高可用集群的控制系统,其特征在于,包括两个所述控制器,两个所述控制器中的节点通信模块之间采用进程间通信模式进行通信。
CN201510744986.8A 2015-11-05 2015-11-05 基于软磁盘阵列的高可用集群控制器、控制方法及系统 Active CN105353984B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510744986.8A CN105353984B (zh) 2015-11-05 2015-11-05 基于软磁盘阵列的高可用集群控制器、控制方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510744986.8A CN105353984B (zh) 2015-11-05 2015-11-05 基于软磁盘阵列的高可用集群控制器、控制方法及系统

Publications (2)

Publication Number Publication Date
CN105353984A true CN105353984A (zh) 2016-02-24
CN105353984B CN105353984B (zh) 2019-01-11

Family

ID=55329962

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510744986.8A Active CN105353984B (zh) 2015-11-05 2015-11-05 基于软磁盘阵列的高可用集群控制器、控制方法及系统

Country Status (1)

Country Link
CN (1) CN105353984B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107104841A (zh) * 2017-05-22 2017-08-29 深信服科技股份有限公司 一种集群高可用交付方法及系统
CN113806273A (zh) * 2020-06-16 2021-12-17 英业达科技有限公司 快速周边组件互连数据传输控制系统
CN114415979A (zh) * 2022-03-29 2022-04-29 浙江大华技术股份有限公司 存储装置的处理方法、计算机设备及存储装置
CN114706715A (zh) * 2022-06-07 2022-07-05 深圳市途佳智慧科技有限公司 一种基于bmc的分布式raid的控制方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1836217A (zh) * 2003-06-18 2006-09-20 国际商业机器公司 用于处理到远程存储位置的故障恢复的方法、系统以及程序
CN102333001A (zh) * 2011-11-01 2012-01-25 北京联创信安科技有限公司 一种存储容错的实现方法、装置以及系统
CN105159794A (zh) * 2015-08-18 2015-12-16 浪潮(北京)电子信息产业有限公司 镜像实现系统和方法
CN103186554B (zh) * 2011-12-28 2016-11-23 阿里巴巴集团控股有限公司 分布式数据镜像方法及存储数据节点
CN103180831B (zh) * 2010-09-17 2017-07-11 赛门铁克公司 故障处理系统和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1836217A (zh) * 2003-06-18 2006-09-20 国际商业机器公司 用于处理到远程存储位置的故障恢复的方法、系统以及程序
CN103180831B (zh) * 2010-09-17 2017-07-11 赛门铁克公司 故障处理系统和方法
CN102333001A (zh) * 2011-11-01 2012-01-25 北京联创信安科技有限公司 一种存储容错的实现方法、装置以及系统
CN103186554B (zh) * 2011-12-28 2016-11-23 阿里巴巴集团控股有限公司 分布式数据镜像方法及存储数据节点
CN105159794A (zh) * 2015-08-18 2015-12-16 浪潮(北京)电子信息产业有限公司 镜像实现系统和方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107104841A (zh) * 2017-05-22 2017-08-29 深信服科技股份有限公司 一种集群高可用交付方法及系统
CN113806273A (zh) * 2020-06-16 2021-12-17 英业达科技有限公司 快速周边组件互连数据传输控制系统
CN113806273B (zh) * 2020-06-16 2024-04-09 英业达科技有限公司 快速周边组件互连数据传输控制系统
CN114415979A (zh) * 2022-03-29 2022-04-29 浙江大华技术股份有限公司 存储装置的处理方法、计算机设备及存储装置
CN114415979B (zh) * 2022-03-29 2022-07-15 浙江大华技术股份有限公司 存储装置的处理方法、计算机设备及存储装置
CN114706715A (zh) * 2022-06-07 2022-07-05 深圳市途佳智慧科技有限公司 一种基于bmc的分布式raid的控制方法、装置、设备及介质

Also Published As

Publication number Publication date
CN105353984B (zh) 2019-01-11

Similar Documents

Publication Publication Date Title
CN109857445A (zh) 存储系统和控制软件配置方法
CN103503414B (zh) 一种计算存储融合的集群系统
CN105933391B (zh) 一种节点扩容方法、装置及系统
JP4355674B2 (ja) リモートコピー方法及びストレージシステム
CN101776983B (zh) 磁盘阵列中双控制器信息的同步方法、及磁盘阵列系统
CN105353984A (zh) 基于软磁盘阵列的高可用集群控制器、控制方法及系统
CN109376197B (zh) 一种数据同步方法、服务器及计算机存储介质
CN105103144A (zh) 用于存储器的自适应控制的设备及方法
JP7116802B2 (ja) マスター・スタンドバイコンテナシステム切替
JP2009230385A (ja) ストレージシステム及びストレージシステムにおける論理ユニットの引継方法
CN102761566A (zh) 迁移虚拟机的方法和装置
CN103365717B (zh) 内存访问方法、装置及系统
JP4121255B2 (ja) クラスタ構成記憶システム
WO2016176807A1 (zh) 一种dram刷新方法、装置和系统
JP4927784B2 (ja) ネットワーク中継装置およびネットワーク中継システム
CN105760519A (zh) 一种集群文件系统及其文件锁分配方法
CN104471523A (zh) 计算机系统及其控制方法
CN104536702A (zh) 一种存储阵列系统及数据写请求处理方法
CN100530069C (zh) 一种非同质存储设备的虚拟化系统及方法
CN106878382A (zh) 一种分布式仲裁集群中动态改变集群规模的方法及装置
US8661212B2 (en) Storage system
CN105657057A (zh) 一种计算存储融合的集群系统
CN106603665B (zh) 云平台连续数据同步方法及其装置
CN106685688A (zh) 一种集群计算机设备同步升级方法
CN104243172A (zh) 一种分散控制系统的扩展输入输出装置和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant