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

文档序号:9597130阅读:来源:国知局
盘阵列的高可用集群的控制系统的一具体实施例的系统构成示意图;
[0035]图5为本发明一种基于软磁盘阵列的高可用集群的控制系统一具体实施例中控制器之间信息传输的过程示意图;
[0036]图6为本发明一种基于软磁盘阵列的高可用集群的控制系统一具体实施例中主控制器中的监控器监控磁盘阵列事件并通知其他节点的过程示意图。
【具体实施方式】
[0037]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明的一种基于软磁盘阵列的高可用集群的控制方法、控制系统及集群中的控制器的【具体实施方式】进行说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0038]本发明一实施例的一种基于软磁盘阵列的高可用集群的控制方法,如图1所示,包括以下步骤:
[0039]S100,构建一个受主控制器控制的软磁盘阵列,称为第一磁盘阵列。
[0040]本步骤中,第一磁盘阵列就是构建的一个软磁盘阵列,其中“第一”是对主控制器中的软磁盘阵列的一个命名,没有其他特殊含义。
[0041]且本领域技术人员可以理解,在集群中构建的软磁盘阵列是基于一组真实的物理磁盘构建的,物理磁盘的数量根据实际集群存储量及数据处理量进行配置。如集群中可以包含8个、6个、或者10个物理磁盘。且每个磁盘的存储容量可以相同也可以各不相同。当然,一个集群中一般有一个主控制器,其他节点可作为从控制器,从控节点可在主控制器故障时代替主控制器进行数据存取等操作。但需要说明的是,集群中的所有节点(包括主控制器)都是共享同一组物理磁盘的。完成步骤S100后,继续执行步骤S200。
[0042]S200,在集群除主控制器外的其他节点中构建与第一磁盘阵列相同的软磁盘阵列,作为第一磁盘阵列副盘。
[0043]根据本步骤的描述,构建的第一磁盘阵列副盘是与第一磁盘阵列相同的。此处所说的相同是指,两个磁盘阵列指向相同的物理磁盘,且存储的元数据完全相同,两者状态也相同。
[0044]S300,主控制器接收控制命令,根据控制命令对第一磁盘阵列进行修改,得到第一磁盘阵列的最新状态,并发送同步命令到其他节点。
[0045]其中,主控制器接收的控制命令是指从软磁盘阵列使用者(用户)处接收到的软磁盘阵列修改命令以及由于操作软磁盘阵列修改命令造成的读写数据。如软磁盘阵列的构建、删除以及更新等操作。主控制器发送的同步命令是与控制命令相对应的修改命令。如控制命令中要求主控制器对第一磁盘阵列进行重建(Rebuild),则主控制器首先会开始重建所述第一磁盘阵列,此时第一磁盘阵列则进入开始重建状态,此时,主控制器也会发送一个要求其他节点的相应磁盘阵列副盘也进入开始重建状态的修改命令。
[0046]S400,其他节点根据同步命令将第一磁盘阵列副盘的状态修改为与第一磁盘阵列的最新状态相同。
[0047]根据前面的描述,如主控制器中的第一磁盘阵列进入开始重建状态时,则其他节点的相应磁盘阵列副盘也会进入到开始重建状态,主控制器中的第一磁盘阵列进入重建中状态时,其他节点中的副盘也会根据接收到的修改命令进入到重建中状态,保持与主控制器中的第一磁盘阵列的状态完全一致。从而集群中的其他节点可以在主控制器故障时随时顶替主控制器的工作继续为客户服务。由此也能看出,事实上只有第一磁盘阵列是真实的从属于主控制器的软磁盘阵列,而其他节点中的第一磁盘阵列副盘都只是第一磁盘阵列的一个镜像,其真实指向的物理地址与第一磁盘阵列相同,在主控制器能够正常工作的情况下,第一磁盘阵列副盘只是在自身节点中同步第一磁盘阵列的状态。
[0048]本发明实施例的一种基于软磁盘阵列的高可用集群的控制方法,其构建从属于主控制器的第一磁盘阵列,在其他节点中通过重组的方式构建第一磁盘阵列的副盘,并将主控制器中第一磁盘的状态及时的同步到其他节点。从而使其他节点中第一磁盘阵列副盘的状态与第一磁盘阵列的状态保持一致,且第一磁盘阵列副盘与第一磁盘阵列中的元数据是完全相同的,从而在主控制器故障时,其他节点能够快速的代替主控制器继续工作,而无需重新读取元数据,大大缩短其他节点成为新的主控制器所需要的时间,提高用户体验。
[0049]需要说明的是,该一种基于软磁盘阵列的高可用集群的控制方法中,主控制器可以为集群中多个控制节点中的任意一个节点,而且当原来的主控制器发生故障时,其他节点可以接管原来主控制器的工作成为新的主控制器。而特殊的,在双控系统中,集群中包括两个控制节点,其中一个作为主控制器,另一个则作为从控制器。两个节点之间可互相通讯,并且共享一组物理磁盘。
[0050]另外,考虑到数据传输、同步的效率,以及节点处理速度,当集群中节点数量较多时,也可选择集群中固定的几个作为备选的主控制器,从而在数据同步时,只在固定的几个节点中构建第一磁盘阵列副盘,并及时对副盘的状态进行同步更新。
[0051]当然,作为一种可实施方式,也可以在集群的除主控器外的每个其他节点中均构建一个第一磁盘阵列副盘。
[0052]具体的,步骤S300,主控制器接收控制命令,根据控制命令对第一磁盘阵列进行修改,得到第一磁盘阵列的最新状态,并发送同步命令到其他节点步骤中,主控制器先根据控制命令对第一磁盘阵列进行修改,得到第一磁盘阵列的最新状态之后,才会发送同步命令到其他节点。
[0053]在其中一个实施例中,步骤S200,在集群除主控制器外的其他节点中构建与第一磁盘阵列相同的软磁盘阵列,作为第一磁盘阵列副盘中,其他节点从第一磁盘阵列对应的物理磁盘上读出元信息,并根据所读出的元信息重组成第一磁盘阵列副盘。
[0054]更佳的,其他节点读出元信息后,可将第一磁盘阵列重组为只读的第一磁盘阵列副盘。此时,相应的节点不能修改第一磁盘阵列副盘中的元信息。即,集群中除主控制器能够对第一磁盘阵列中的元数据进行修改外,其他节点不能对第一磁盘副盘中的元数据进行修改,更不能对所述第一磁盘阵列对应的元数据进行修改。即使对节点自身对应的第一磁盘阵列副盘,节点也不能修改其元数据。
[0055]该实施例中更加明确了所属的概念,一个磁盘阵列只属于一个控制器(本实施例中的主控制器),虽然集群中其他节点与主控制器看到的磁盘阵列设备是相同的(主控制器中的第一磁盘阵列与其他节点中的第一磁盘阵列副盘指向相同的物理磁盘),但是只有主控制器可以有权限对第一磁盘阵列进行读写操作,而其他节点仅具有只读的权限。这样就保证了,同一时间只有一个控制器在写,避免多个控制器对硬盘读写的冲突。且磁盘阵列的所属信息会在磁盘阵列建立时写入到元数据中,用于判断哪个控制器是磁盘阵列的所属者。
[0056]另外,本发明的一种基于软磁盘阵列的高可用集群的控制方法中,还包括下面的步骤:
[0057]当主控制器故障时,集群中的另一节点被选为新的主控制器;新的主控制器将自身的第一磁盘阵列副盘修改为可读可写软磁盘阵列。
[0058]该实施例中,其他节点代理主控制器进行磁盘阵列控制后,新的主控制器就拥有了对磁盘阵列全部的读写权限,成为新的磁盘阵列的所属者。当然,如果原主控制器故障排除,能够恢复工作后,也可按照相同的程序将新主控制器的功能交还给原主控制器。
[0059]为了实现上述控制方法,基于同一发明构思,本发明还提供一种基于软磁盘阵列的高可用集群的控制器100。使用上述方法对软磁盘阵列集群进行控制时,大部分功能可通过下面提供的控制器100中的功能模块完成。控制器100中部分与前述方法步骤相同的功能在此不再赘述。
[0060]其中一个实施例的软磁盘阵列集群中的控制器100,如图2所示,包括处理模块130、节点通信模块140以及软磁盘阵列存储模块150。
[0061]其中,软磁盘阵列存储模块150,用于存储各节点对应的软磁盘阵列。
[0062]而处理模块130作为控制器中最主要的功能模块,用于接收控制命令,并当当前节点为主控制器时,根据接收的控制命令对当前节点对应的软磁盘阵列进行修改或者构建新的软磁盘阵列,并通过节点通信模块140发送同步命令至集群中的其他节点,集群中的其他节点根据该同步命令将当前节点对应的软磁盘阵列修改为与主控制器对应的软磁盘阵列相同的状态;当当前节点为非主控制器时,将接收的同步命令通过节点通信模块140发送给主控制器,主控制器根据接收的同步命令对当前节点对应的软磁盘
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1