一种硬件集群装置及一种存储设备管理方法与流程

文档序号:26101318发布日期:2021-07-30 18:12阅读:53来源:国知局
一种硬件集群装置及一种存储设备管理方法与流程

本发明实施例涉及通信领域,具体而言,涉及一种硬件集群装置、一种存储设备管理方法、存储介质及电子装置。



背景技术:

服务器集群是指将多个服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。这种集群方案可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。

但是目前的集群方案只能做到软件系统层面的集群,也就是当某一台服务器出现故障,运行在这台服务器上的应用就会切换到其它的服务器上,而此故障的服务器上的硬盘资源就不会被应用,而传输到该发生故障的服务器上的存储链路也会被切断,从而也不能得到此服务器上的硬盘内容。这种集群方案即降低了存储资源的利用率,也容易导致数据的丢失,影响使用。



技术实现要素:

本发明实施例提供了一种硬件集群装置、一种存储设备管理方法、存储介质及电子装置,以至少解决相关技术中存储资源利用率低的问题。

根据本发明的一个实施例,提供了一种硬件集群装置,包括至少两个主机,其中:

第一主机中包括的第一存储组件和第二主机中包括的第二存储组件之间通过预定接口连接,所述第一主机和所述第二主机为至少两个所述主机中包括的任意两个主机。

在一个可选的实施例中,所述第一存储组件和所述第二存储组件之间通过串行连接sas接口连接。

在一个可选的实施例中,所述第一存储组件中包括第一存储器和用于对所述第一存储器进行控制的第一控制器,所述第二存储组件中包括第二存储器和用于对所述第二存储器进行控制的第二控制器,其中,

所述第一存储器通过所述sas接口与所述第二控制器连接,所述第一控制器通过所述sas接口与所述第一存储器连接。

在一个可选的实施例中,所述第一主机中包括的第一网络组件和所述第二主机中包括的第二网络组件之间通过中继设备连接。

在一个可选的实施例中,所述中继设备包括交换机。

根据本发明的另一个实施例,提供了一种存储设备管理方法,应用于前述的硬件集群装置中,包括:

所述第一主机接收来自所述第二主机的存储管理指令,其中,所述存储管理指令用于指示将所述第一存储组件中包括的第一存储器与所述第二存储组件中包括的第二控制器进行挂载操作,以使所述第二控制器具备控制所述第一存储器的能力,所述存储管理指令是所述第二主机在确定所述第一主机发生故障之后所发送的;

所述第一主机基于所述存储管理指令,解除所述第一主机中包括的第一控制器对所述第一存储器的控制,以及对所述第一存储器和所述第二控制器进行挂载操作。

在一个可选的实施例中,所述第一主机基于所述存储管理指令,对所述第一存储器和所述第二控制器进行挂载操作包括:

所述第一主机基于所述存储管理指令,将所述第一主机的数据传输接口由第一接口切换为第二接口,其中,所述第一接口为所述第一控制器连接的接口,所述第二接口为所述第一存储器连接的接口;

所述第一主机通过所述第二接口,对所述第一存储器和所述第二控制器进行挂载操作。

根据本发明的另一个实施例,提供了一种存储设备管理方法,应用于前述的硬件集群装置中,包括:

所述第二主机在确定所述第一主机发生故障的情况下,向所述第一主机发送存储管理指令,以指示所述第一主机将所述第一存储组件中包括的第一存储器与所述第二存储组件中包括的第二控制器进行挂载操作,以使所述第二控制器具备控制所述第一存储器的能力。

在一个可选的实施例中,所述第二主机在向所述第一主机发送存储管理指令之前,所述方法还包括:

所述第二主机向所述第一主机发送目标信号;

所述第二主机在确定预定时间内未接收到所述第一主机基于所述目标信号返回的反馈信号的情况下,确定所述第一主机发生故障。

根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

通过本发明,由于第一主机中的第一存储组件与第二主机中的存储组件进行了连接,因而当其中一个主机发生故障时,第二主机能够对第一主机的存储组件进行调用,从而实现对第一主机的存储组件的充分利用,避免数据丢失和资源浪费,因此,可以解决存储资源利用率低的问题,达到提高存储资源利用率,避免数据丢失的效果。

附图说明

图1是根据本发明实施例的一种硬件集群装置的结构框图;

图2是根据本发明实施例的一种存储设备控制方法的流程图;

图3是根据本发明实施例的一种存储设备控制方法的流程图;

图4是根据本发明具体实施例的结构示意图一;

图5是根据本发明具体实施例的流程图;

图6是根据本发明具体实施例的结构示意图二。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明的实施例。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

在本实施例中提供了一种硬件集群装置,如图1及图2所示,包括至少两个主机(对应图1中的存储设备),其中:

第一主机中包括的第一存储组件和第二主机中包括的第二存储组件之间通过预定接口连接,第一主机和第二主机为至少两个主机中包括的任意两个主机。

在本实施例中,第一主机中的第一存储组件与第二主机中的第二存储组件通过预定接口进行连接,因而当其中一个主机发生故障的情况下,另一主机可以对发生故障的主机的存储组件进行调用,从而避免存储资源的浪费,同时也避免存储资源中的数据因链路断开而发生丢失。

其中,至少两个主机可以是两两相连的,预定接口可以(但不限于)是sas接口、网络接口等其它用于能够调用存储组件的接口;存储组件包括(但不限于)用于进行数据存储的存储模块(如硬盘、flash等),以及用于对存储模块进行控制的控制模块,如控制芯片、cpu等,而为了实现对存储模块和控制模块的控制,还可以设置用于对存储模块和控制模块进行调配控制的控制单元,其中,控制单元可以是cpu、mcu、fpga等具有逻辑运算功能的设备或装置。此时,为了实现控制模块、存储模块以及控制单元的彼此独立,还可以是设置为三个模块进行独立供电的供电单元,供电单元可以是自带的独立电源,也可以是其它能够供电的设备或装置。

在一个可选的实施例中,第一存储组件和第二存储组件之间通过串行连接sas接口连接。

在一个可选的实施例中,第一存储组件中包括第一存储器和用于对第一存储器进行控制的第一控制器,第二存储组件中包括第二存储器和用于对第二存储器进行控制的第二控制器,其中:

第一存储器通过sas接口与第二控制器连接,第一控制器通过sas接口与第一存储器连接。

在本实施例中,通过sas接口将存储器与控制器进行连接,能够保证存储器被正常调用。

其中,存储器可以是用于进行数据存储的存储模块(如硬盘、flash等),控制器可以是用于对存储模块进行控制的控制模块,如控制芯片、cpu等。

在一个可选的实施例中,第一主机中包括的第一网络组件和第二主机中包括的第二网络组件之间通过中继设备连接。

在本实施例中,通过中继设备进行连接能够实现在设备发生故障时及时调用其它设备对故障设备的存储资源进行调用,从而实现对故障设备的及时控制。

在一个可选的实施例中,中继设备包括交换机。

在本实施例中,中继设备还可以是除了交换机以外的具有数据中继功能的设备或装置,且中继设备的数量可以有多个。

在本实施例中提供了一种运行于前述硬件集群装置的存储设备控制方法,图3是根据本发明实施例的存储设备控制方法的流程图,如图3所示,该流程包括如下步骤:

步骤s202,第一主机接收来自第二主机的存储管理指令,其中,存储管理指令用于指示将第一存储组件中包括的第一存储器与第二存储组件中包括的第二控制器进行挂载操作,以使第二控制器具备控制第一存储器的能力,存储管理指令是第二主机在确定第一主机发生故障之后所发送的;

步骤s204,第一主机基于存储管理指令,解除第一主机中包括的第一控制器对第一存储器的控制,以及对第一存储器和第二控制器进行挂载操作。

在本实施例中,在第一主机发生故障的情况下,由第二主机的第二控制器对第一存储器进行调用控制,从而使得第一存储器的存储资源能够被有效利用,同时第一存储器中存储的数据也能被调用,避免数据丢失。

其中,第二控制器控制第一存储器的能力可以是控制第一存储器存储目标数据,也可以是第一存储器将存储数据调出,还可以是配合第二存储器共同存储目标数据等;挂载操作包括(但不限于)第一存储器与第二控制器进行信号连接,使得第一存储器能够识别来自第二控制器的控制信号,并根据控制信号存储或输出数据;挂载操作还可以包括基于第二控制器的控制信号向第二控制器反馈自身的状态或执行了数据存储或输出的动作反馈信号。

在一个可选的实施例中,第一主机基于所述存储管理指令,对所述第一存储器和所述第二控制器进行挂载操作包括:

步骤s2042,第一主机基于存储管理指令,将第一主机的数据传输接口由第一接口切换为第二接口,其中,第一接口为第一控制器连接的接口,第二接口为第一存储器连接的接口;

步骤s2044,第一主机通过第二接口,对第一存储器和第二控制器进行挂载操作。

在本实施例中,将接口进行切换能够避免发生故障的设备持续对其它设备的存储器进行控制,使得其它设备的存储器能够被其它正常工作的设备控制,保证数据的正常存储和传输。

在本实施例中提供了一种运行于前述硬件集群装置的存储设备控制方法,图4是根据本发明实施例的存储设备控制方法的流程图,如图4所示,该流程包括如下步骤:

步骤s302,第二主机在确定第一主机发生故障的情况下,向第一主机发送存储管理指令,以指示第一主机将第一存储组件中包括的第一存储器与第二存储组件中包括的第二控制器进行挂载操作,以使第二控制器具备控制第一存储器的能力。

在本实施例中,在确定第一主机发生故障的情况下由第二主机向第一主机发送存储管理指令能够实现故障管理的自动化,从而提高故障管理的处理速度。

在一个可选的实施例中,第二主机在向第一主机发送存储管理指令之前,该方法还包括:

步骤s3002,第二主机向第一主机发送目标信号;

步骤s3004,第二主机在确定预定时间内未接收到所述第一主机基于所述目标信号返回的反馈信号的情况下,确定所述第一主机发生故障。

在本实施例中,目标信号可以(但不限于)是预先设置的信号,如自定义gpio信号或波形等。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

下面通过具体实施例对本发明进行说明。

如图2及图5所示,以主机a和主机b为例,当出现以下几种情况时,可以由主机a接管主机b的存储部件:

情况a、主机b主板(对应图2以及图5中的主控)正常;

情况b、主板b的cpu正常,但除网络接口外的外围器件发生损坏,如pcie桥片,usb芯片等;

情况c、主板b的cpu好,但网络接口损坏;

情况d、cpu损坏或主板损坏。

此时,主机a可以通过网络接口向主机b申请接管主机b的存储部分;在a、b情况下,主机b的主控通过协议信号如i2c或gpio,或spi等信号释放存储芯片并使释放后的存储芯片与主机a进行挂载,以使主机a可以对用于控制存储芯片的存储控制芯片进行调用,实现对主机b的存储芯片的调用。

若主机b对协议信号无应答,则主机a判定主机b异常,需要强制接收主机b存储部分;此时,主机a通过自定义的sas接口拉出两条gpio数据线连接主机b的cpu,以告知主机b的cpu执行接管操作;此时若主机b仅是网络部分(即前述网络接口)发生损坏,那么主机b按照a、b情况下的操作方案释放存储部分,并使释放的存储部分与主机a进行挂载;若是主机b的主控部分发生损坏,那么由主机a的sas接口引出的gpio来控制主机b中的存储器,使主机b中的存储器自主解除来自主机b的控制,以使主机b中存储器能够被主机a使用。

以上完成了集群服务中主机a接管主机b所有情况的模拟,单以上情况不仅仅为主控a和主控b,任意相连主机之间均可完成此项服务。

需要说明的是,一般集群方案包含主机和主机,主机和扩展柜(即扩展的存储阵列,用于进行数据存储)。受限于sas线缆的pin脚数量,主机和扩展柜之间的sas接口使用其两个自定义引脚,当集群方案实现时需要满足兼容主机和扩展柜的连接方式

而对于情况c和情况d,如图6所示,在主机b的网络接口挂死的情况下,主机a与主机b不能正常通讯,同时需要主机a需要接收主机b的存储器以完成存储调用操作,此时可以采用以下方案:

主机a的cpu通过sas接口的自定义gpio向主机b的控制模组发送协商好的波形,该波形包括但不限于长时间高或低电平,脉冲数量等约定好的“暗号”以告知主机b的cpu,当出现c情况时,由于主机b的cpu完好,但是网络损坏情况,主机b的cpu能够通过sas接口接收到主机a的gpio,从而释放存储器资源,其中,释放资源过程包括但不限于使用低速协议如i2c,spi,uart或gpio等,使主机b的cpu通过gpio输出信号到主机a以回应主机a的接管信号。主机a接收到了回应信号开始接管主机b的存储资源。以上操作完成了主机b挂死但cpu完好,主机a接管主机b的整个控制过程。

当发生主机b主板异常、掉电、cpu损坏的d情况时,主机a与主机b无法通讯,此时,主机a的cpu通过sas接口的自定义gpio向主机b的控制模组发送协商好的波形,包括但不限于长时间高或低电平,脉冲数量等约定好的“暗号”以告知主机b的cpu,但由于主机b主板异常无法ack,那么通过主机b的控制模组在延时一定时间后,发出gpio信号送至主机b的8054(相当于前述的存储控制芯片),使其上行口从8070(相当于前述的cpu)切换至对外sas接口,此时主机a将强行接收8054下的存储器。以上操作完成了主机b主板异常情况下的主机a接收主机b存储器的控制过程。

本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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