G06F3/06 G06F13/16
1.一种操作存储设备的控制方法,其特征在于,所述方法包括:
接收至少一个管理节点发送的至少一个请求;
当所述至少一个请求中的一个请求为申请权限请求时,根据当前权限状 态,确定是否赋予发送所述申请权限请求的管理节点操作权限;
当所述至少一个请求中的一个请求为操作请求时,根据当前权限状态, 确定发送所述操作请求的管理节点是否具有操作权限,当所述发送所述操作 请求的管理节点具有操作权限时,根据所述操作请求执行操作。
2.根据权利要求1所述的操作存储设备的控制方法,其特征在于,根据 状态表确定是否赋予发送所述申请权限请求的管理节点操作权限或者根据所 述状态表确定发送所述操作请求的管理节点是否具有操作权限。
3.根据权利要求2所述的操作存储设备的控制方法,其特征在于,在所 述确定是否赋予发送所述申请权限请求的管理节点操作权限之后,所述方法 还包括:
当赋予发送所述申请权限请求的管理节点操作权限时,更新所述状态表。
4.根据权利要求3所述的操作存储设备的控制方法,其特征在于,在所 述更新所述状态表之后,所述方法还包括:向赋予发送所述申请权限请求的 管理节点发送响应消息,以便于所述申请权限请求的管理节点根据所述响应 消息,向存储设备发送操作请求。
5.根据权利要求1所述的操作存储设备的控制方法,其特征在于,所述 根据所述状态表,确定发送所述操作请求的管理节点是否具有操作权限,包 括:
查询所述状态表中标记的管理节点是否为发送所述操作请求的管理节 点;
当所述状态表中标记的管理节点为所述发送所述操作请求的管理节点 时,确定所述发送所述操作请求的管理节点具有操作权限。
6.根据权利要求1-5任一项所述的操作存储设备的控制方法,其特征在 于,在所述根据所述操作请求执行操作完毕之后,所述方法还包括,释放操 作权限。
7.根据权利要求1所述的操作存储设备的控制方法,其特征在于,所述 接收至少一个管理节点发送的至少一个请求之后,所述方法还包括:
串行化所述请求,以用于根据接收所述请求的顺序解析所述请求。
8.一种操作存储设备的控制方法,其特征在于,所述方法包括:
向存储设备发送申请权限请求,以用于存储设备根据所述申请权限请求, 赋予发送所述申请权限请求的管理节点操作权限,并向所述管理节点发送响 应消息;
接收所述存储设备发送的所述响应消息;
根据所述响应消息,向所述存储设备发送操作请求,以用于存储设备根 据所述操作请求执行操作。
9.一种存储设备,其特征在于,所述存储设备包括:
接收模块,用于接收至少一个管理节点发送的至少一个请求;
处理模块,用于当所述至少一个请求中的一个请求为申请权限请求时, 根据当前权限状态,确定是否赋予发送所述申请权限请求的管理节点操作权 限;
所述处理模块还用于,当所述至少一个请求中的一个请求为操作请求时, 根据当前权限状态,确定发送所述操作请求的管理节点是否具有操作权限, 当所述发送所述操作请求的管理节点具有操作权限时,根据所述操作请求执 行操作。
10.根据权利要求9所述的存储设备,其特征在于,所述处理模块根据 状态表确定是否赋予发送所述申请权限请求的管理节点操作权限或者根据所 述状态表确定发送所述操作请求的管理节点是否具有操作权限。
11.根据权利要求10所述的存储设备,其特征在于,所述处理模块还用 于,当赋予发送所述申请权限请求的管理节点操作权限时,更新所述状态表。
12.根据权利要求11所述的存储设备,其特征在于,所述存储设备还包 括发送模块,用于向赋予发送所述申请权限请求的管理节点发送响应消息, 以便于所述申请权限请求的管理节点根据所述响应消息,向存储设备发送操 作请求。
13.根据权利要求9所述的存储设备,其特征在于,所述处理模块具体 用于,
查询所述状态表中标记的管理节点是否为发送所述操作请求的管理节 点;
当所述状态表中标记的管理节点为所述发送所述操作请求的管理节点 时,确定所述发送所述操作请求的管理节点具有操作权限。
14.根据权利要求9-13任一项所述的存储设备,其特征在于,所述存储 设备还包括释放模块,用于在所述根据所述操作请求执行操作完毕之后,释 放操作权限。
15.根据权利要求9所述的操作存储设备的控制方法,所述处理模块还 用于,
串行化所述请求,以用于根据接收所述请求的顺序解析所述请求。
16.一种管理节点,其特征在于,所述管理节点包括:
发送模块,用于向存储设备发送申请权限请求,以用于存储设备根据所 述申请权限请求,赋予发送所述申请权限请求的管理节点操作权限,并向所 述管理节点发送响应消息;
接收模块,用于接收所述存储设备发送的所述响应消息;
所述发送模块还用于,根据所述响应消息向所述存储设备发送操作请求, 以用于存储设备根据所述操作请求执行操作。
本发明涉及动态数据库领域,尤其涉及一种操作存储设备的控制方法和 存储设备。
非易失性存储(Non-Volatile Memory Express,NVMe)协议支持设备管 理命令,可以直接对存储设备进行操作,这样可以避免现有基板管理控制器 (Baseboard management controller,BMC)无法对存储设备直接操作的问题, 但是由于NVMe协议可以支持多通道进行管理,例如,NVMe管理接口 (Non-Volatile Memory Express Management Interface,NVMe-MI)协议可以 支持集成电路总线(Inter-Integrated Circuit,IIC或I2C)、外部设备互联总线 (Peripheral Component Interconnect Express,PCIE)等多通道同时进行管理设 备传输协议(Management Component Transport Protocol,MCTP)管理,如图 1所示,管理节点通过NVMe管理接口向存储设备发送管理命令,该管理命 令可以为读或者写存储设备的操作命令。如图2所示,存储设备可以包括多 个管理接口,当多个管理节点通过多个管理接口发送管理命令时,就会存在 多个管理节点同时访问存储设备造成的操作冲突的问题。
本发明实施例提供一种操作存储设备的控制方法、存储设备和管理节点, 通过赋予请求申请权限的多个管理节点中的一个管理节点操作权限,并根据 该具有操作权限的管理节点发送的操作请求执行相应的操作,避免了多个管 理节点同时操作存储设备的冲突。
第一方面,本发明实施例提供了一种操作存储设备的控制方法,该方法 包括:接收至少一个管理节点发送的请求,确定接收请求的类型;当请求为 申请权限请求时,根据当前权限状态,确定是否赋予发送申请权限请求的管 理节点操作权限;当请求为操作请求时,根据当前权限状态,确定发送操作 请求的管理节点是否具有操作权限,当确定发送操作请求的管理节点具有操 作权限时,根据操作请求执行操作。
在第一方面中,当前权限状态记录了访问接口赋予权限的状态和执行请 求的状态,在第一方面中,当前权限状态可以通过查询状态表的形式来实现, 也可以通过其他方式来实现。
基于上述技术方案,通过确定接收的请求类型,根据请求的类型确定赋 予发送申请权限请求的至少一个管理节点中的一个管理节点操作权限,或者 确定发送操作请求的管理节点是否具有操作权限,并根据具有操作权限的管 理节点发送的操作请求执行操作,避免了多个管理节点同时执行操作的冲突 问题。
结合第一方面,在第一方面的第一种可能的实现方式中,当确定赋予发 送申请权限请求的至少一个管理节点中的一个管理节点操作权限时,更新状 态表,用于通过该状态表确定发送申请权限请求的管理节点是否可以赋予操 作权限,或者确定发送操作请求的管理节点是否具有操作权限,以确定多管 理节点的操作权限和合法性。
结合第一方面的第一种实现方式,在第一方面的第二种可能实现的方式 中,赋予发送申请权限请求的至少一个管理节点中的一个管理节点操作权限, 并更新状态表之后,向赋予发送申请权限请求的管理节点发送响应消息,以 便于申请权限请求的管理节点根据该响应消息,向存储设备发送操作请求。
结合第一方面,在第一方面的第三种可能实现的方式中,根据状态表确 定发送操作请求的管理节点是否具有操作权限包括,查询状态表中标记的具 有操作权限的管理节点是否为发送操作请求的管理节点,当状态表中标记的 具有操作权限的管理节点为发送操作请求的管理节点时,确定发送操作请求 的管理节点具有操作权限。
结合上述可能的实现方式中的任一种实现方式,在第一方面的第四种可 能实现的方式中,根据具有操作权限的管理节点发送的操作请求执行操作完 成之后,该方法还包括释放操作权限,以便于将该操作权限赋予发送其他请 求的管理节点。
结合第一方面,在第一方面的第五种可能实现的方式中,接收至少一个 管理节点发送的请求之后,该方法还包括串行化接收到的请求,以用于根据 接收请求的时间顺序依次接收请求。
第二方面,本发明实施例提供了一种操作存储设备的控制方法,该方法 包括:向存储设备发送申请权限请求,以用于存储设备根据申请权限请求赋 予发送申请权限请求的管理节点操作权限,并向管理节点发送响应消息;接 收到存储设备发送的响应消息;根据响应消息向存储设备发送操作请求,以 便于存储设备根据操作请求执行操作。
基于第二方面提供的操作存储设备的控制方法,对存储设备进行操作之 前,先向存储设备申请操作权限,在具有操作权限的情况下,发送操作请求, 以便于存储设备根据操作请求执行操作,避免了多个操作请求同时对存储设 备执行操作引起的冲突。
第三方面,本发明实施例提供一种存储设备,该存储设备包括:接收模 块和处理模块,接收模块用于接收至少一个管理节点发送的请求;处理模块 用于确定请求的类型,当请求为申请权限请求时,确定是否赋予发送申请权 限请求的管理节点操作权限;当请求为操作请求时,确定发送操作请求的管 理节点是否具有操作权限,当发送操作请求的管理节点具有操作权限时,根 据操作请求执行操作。
在第三方面中处理模块可以通过状态表确定是否赋予发送申请权限请求 的管理节点操作权限,或者根据状态表确定发送操作请求的管理节点是否具 有操作权限。
通过确定接收请求的类型,根据请求的类型,确定是否赋予发送请求的 管理节点操作权限或者确定是否具有操作权限,可以避免多个管理节点执行 操作引起的冲突问题。
结合第三方面,在第三方面的第一种可能实现的方式中,处理模块还用 于,当赋予发送申请权限请求的管理节点操作权限时,更新状态表,以用于 通过该状态表确定发送申请权限请求的管理节点是否可以赋予操作权限,或 者确定发送操作请求的管理节点是否具有操作权限,用以实现对多管理节点 的操作权限以及合法性的判断。
结合第三发明的第一种可能实现的方式,在第三方面的第二种可能实现 的方式中,该存储设备还包括发送模块,用于向发送申请权限请求的管理节 点发送响应消息,以用于申请权限请求的管理节点根据响应消息向存储设备 发送操作请求。
结合第三方面,在第三方面的第三种可能实现的方式中,处理模块用于 查询状态表中标记的管理节点是否为发送操作请求的管理节点;当状态表中 标记的管理节点为发送操作请求的管理节点时,确定发送操作请求的管理节 点具有操作权限。
结合上述可能的实现方式中的任一种实现方式,在第三方面的第四种 可能实现的方式中,该存储设备还包括释放模块,用于释放操作权限,以便 于将该操作权限赋予发送其他请求的管理节点。
结合第三方面,在第三方面的第五种可能实现的方式中,处理模块还用 于,串行化请求,以便于根据接收的请求按照时间顺序进行解析。
第四方面,本发明实施例提供一种管理节点,该管理节点包括发送模块 和接收模块,发送模块用于向存储设备发送申请权限请求,以用于存储设备 根据接收到的申请权限请求赋予操作权限,并向发送申请权限请求的管理节 点发送响应消息;接收模块用于接收存储设备发送的响应消息;发送模块根 据响应消息向存储设备发送操作请求,以用于存储设备根据操作请求执行操 作。
通过先向存储设备发送申请操作请求,以申请操作权限,在获取到操作 权限之后,根据操作请求执行相应的操作,避免了多管理节点之间的操作请 求造成的冲突问题。
第五方面,本发明实施例提供一种存储设备,该存储设备包括至少一个 访问接口,例如:业务访问接口、管理接口,存储器和处理器;
存储器,用于存储指令和权限状态;
处理器,用于调用存储器在存储器中的指令,以实现:
通过至少一个访问接口接收至少一个管理节点发送的至少一个请求;当 至少一个请求中的一个请求为申请权限请求时,根据当前权限状态,确定是 否赋予发送申请权限请求的管理节点操作权限;当至少一个请求中的一个请 求为操作请求时,根据当前权限状态,确定发送操作请求的管理节点是否具 有操作权限,当发送所述操作请求的管理节点具有操作权限时,根据操作请 求执行操作。
第六方面,本发明实施例提供一种存储一个或多个程序的非易失性计算 机可读存储介质,其中,一个或多个程序包括指令,该指令当被包括存储设 备执行时使存储设备执行以下事件:
接收至少一个管理节点发送的至少一个请求;当至少一个请求中的一个 请求为申请权限请求时,根据当前权限状态,确定是否赋予发送申请权限请 求的管理节点操作权限;当至少一个请求中的一个请求为操作请求时,根据 当前权限状态,确定发送操作请求的管理节点是否具有操作权限,当发送所 述操作请求的管理节点具有操作权限时,根据操作请求执行操作。
以上几个方面中,当前权限状态为接收到请求时,存储器中记录的权限 赋予权限的状态和执行请求的状态。权限状态可以通过状态表的形式体现, 也可以通过其他的逻辑方式体现。
基于上述技术方案,本发明实施例提供的操作存储设备的控制方法、存 储设备和管理节点,存储设备通过赋予请求申请权限的多个管理节点中的一 个管理节点操作权限,并根据该具有操作权限的管理节点发送的操作请求执 行相应的操作,避免了多个管理节点同时操作存储设备的冲突,同时避免了 连续的串行操作被中断的问题。
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中 所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的 前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中NVME管理系统分层图;
图2为现有技术中NVME管理子系统的结构示意图;
图3为本发明实施例提供的一种操作存储设备的控制方法的流程示意图;
图4为本发明实施例提供的状态表的示意图;
图5为本发明另一实施例提供的操作存储设备的控制方法的流程示意图;
图6为本发明在一实施例提供的操作存储设备的控制方法的流程示意图;
图7为本发明实施例提供的存储设备的示意性结构图;
图8为本发明另一实施例提供的存储设备的示意性结构图;
图9为本发明实施例提供的管理节点的示意性结构图;
图10为本发明另一实施例提供的存储设备示意性结构图。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明实施例提供的方法、管理节点和存储设备,应用于非易失性存储 (Non-Volatile Memory Express,NVMe)协议,NVMe可以减少数据读写延 迟,提供更高的性能。NVMe可以支持设备管理命令,直接对存储设备进行 操作,存储设备可以同时接收到多个管理节点发送的操作请求,该管理节点 可以为基板管理控制器(Baseboard management controller,BMC)或者主机, 由于操作请求可以为读或者写操作命令,当多个Host或者BMC同时访问存 储设备时,会造成对存储设备操作的互斥问题,或者例如一些串行操作,在 执行相应的操作过程中,执行其他的操作请求造成连续的串行操作被中断的 问题,在这种情况下,存储设备在被执行操作之前,先将可以执行操作的权 限赋予给一个管理节点,存储设备根据具有权限的管理节点发送的操作请求 执行相应的操作,执行完成之后,将该权限释放,以用于其他的管理节点执 行其他的操作。
在本发明实施例中,存储设备作为存储信息的设备,该设备可以为硬盘, 包括:固态硬盘(例如SSD盘),机械硬盘(HDD传统硬盘)等具有存储信 息的设备。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不 是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创 造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
图3为本发明实施例提供的一种操作存储设备的控制方法的流程示意图, 如图3所示,该方法100的执行主体为存储存储设备,该方法100包括:
110,接收至少一个管理节点发送的至少一个请求;
120,当至少一个请求中的一个请求为申请权限请求时,根据当前权限状 态,确定是否赋予发送申请权限请求的管理节点操作权限;
130,当至少一个请求中的一个请求为操作请求时,根据当前权限状态, 确定发送操作请求的管理节点是否具有操作权限,当发送所述操作请求的管 理节点具有操作权限时,根据操作请求执行操作。
具体的,在本发明实施例中,存储设备是存储信息的设备,该设备可以 为硬盘包括:固态硬盘(例如SSD盘),机械硬盘(HDD传统硬盘)等,也 可以为其他具有存储信息的设备。管理节点可以为主机或者BMC。在110中, 存储设备接收多个管理节点发送的请求,该请求可以为申请权限请求,也可 以为操作请求;存储设备依次确定接收请求的类型,判断接收的请求为申请 权限请求还是操作请求。在120中,当接收的请求为申请权限请求时,存储 设备根据当前的权限状态,确定是否有权限赋予发送申请权限请求的管理节 点。
在本发明实施例中,当前的权限状态可以通过查询状态表,确定是否有 赋予发送申请权限请求的管理节点操作权限,或者确定当前状态是否正在执 行操作。在本发明实施例中,存储设备还可以根据其他预定设置的逻辑方式, 确定当前的权限状态,在本发明实施例中,当前的权限状态为存储在接收到 请求的时刻。
例如,如图4所示,状态表可以分为两组,一组为权限状态组,另一组 为请求执行状态组,权限状态组用于指示各管理节点的操作权限;执行请求 状态组用于记录存储设备是否正在执行请求操作。在该权限状态组中,管理 节点对应的权限状态以“1”表示具有操作权限,以“0”表示相应的管理节 点不具有操作权限。
当存储设备当前未执行操作,且没有将操作权限赋予其他管理节点时,如图4 中A所示,权限状态组中各个管理节点的权限状态和请求执行状态组的状态 分别为“0”,此时,存储设备可以将操作权限赋予发送申请权限请求的管理 节点。在同一时间段内,存储设备允许一个管理节点获取操作权限,当存储 设备接收管理节点,例如:BMC0发送的申请权限命令,存储设备可以将操 作权限赋予管理节点BMC0,如图4中B所示,权限状态标记BMC0具有操 作权限,记作“1”,不具有操作权限的管理节点,例如BMC1、BMC2、BMC3 分别被标记,记作“0”。
在130中,当接收的请求为操作请求时,根据状态表确定发送操作请求 的管理节点是否具有操作权限,如图4中B所示,确定发送操作请求的管理 节点是否与状态表中记录的具有操作权限的管理节点为同一个管理节点,在 这里需要说明的是,在整个系统中,每个管理节点都具有唯一的标识或名称, 以保证状态表中记录的具有操作权限的管理节点与发送操作请求的管理节点 为同一个管理节点。当存储设备确定发送操作请求的管理节点与状态表中记 录的具有操作权限的管理节点为同一个管理节点时,根据操作请求执行相应 的操作,该操作为管理节点对存储设备执行的读或者写操作。执行操作时, 存储设备可以自动更新状态表,将状态表设置为正在执行状态,即如图4中C 所示,请求执行状态组的状态由未执行操作状态“0”更新为正在执行操作状 态“1”,以便于存储设备接收到其他管理节点,例如,BMC1、BMC2、BMC3 发送的操作请求时,不再根据相应的操作请求执行操作,避免存储设备同时 执行多个管理节点发送的操作请求,且多个管理节点发送的操作请求互斥的 问题,也可以避免串行操作被其他管理节点发送的操作请求干扰或中断。
当管理节点BMC0执行完相应的操作之后,存储设备自动将状态表中的 执行请求状态表标记为“0”,表示未执行操作状态,状态表如图4中D所示。
需要说明的是,在本发明实施例中,操作请求可以为读操作、写操作或 者其他操作。
采用本发明实施例提供的控制操作存储设备的方法,存储设备通过赋予 请求申请权限的多个管理节点中的一个管理节点操作权限,并根据该具有操 作权限的管理节点发送的操作请求执行相应的操作,避免了多个管理节点同 时操作存储设备的冲突,同时避免了连续的串行操作被中断的问题。
应理解,在本发明实施例中,请求可以为预定义的请求集合,当存储设 备执行部分预定义请求时,存储设备执行其他预定义的请求。
应理解,在本发明实施例中,权限状态组也可以以“0”表示相应的管理 节点具有操作权限,以“1”表示相应的管理节点不具有操作权限,也或者权 限状态组可以根据计算机采用的其他进制的数码表示管理节点具有操作权限 的标记,在本发明实施例中对此不作限制。
需要说明的是,在本发明实施例中,状态表的数据定义是可以扩展的, 不仅限于本发明实施例提供的状态表是的数据。
可选地,作为本发明另一实施例,如图5所示,根据所述状态表,确定 发送操作请求的管理节点是否具有操作权限,包括:
131,查询状态表中标记的管理节点是否为发送操作请求的管理节点;
132,当状态表中标记的管理节点为发送所述操作请求的管理节点时,确 定发送操作请求的管理节点具有操作权限。
具体地,在本发明实施例中,状态表中可以记录各管理节点并标记各管 理节点的操作权限,存储设备在同一时间段内只允许一个管理节点具有操作 权限,并在状态表中标记该管理节点具有操作权限,其他管理节点都没有操 作权限,并标记不具有操作权限的标记。当存储设备查询状态表中标记具有 操作权限的管理节点,并确定状态表中标记的具有操作权限的管理节点与发 送操作权限的管理节点为同一管理节点时,确定发送操作请求的管理节点具 有操作权限,存储设备可以根据操作请求执行相应的操作。
例如,如图4中B所示,存储设备查询状态表存储的各管理节点以及权 限状态,确定状态表中标记的具有操作权限的管理节点为BMC0,发送操作请 求的管理节点也是BMC0,则确定该管理节点BMC0具有操作权限,存储设备可 以根据管理节点BMC0发送的操作请求执行相应的操作。
采用本发明实施例提供的操作存储设备的控制方法,通过赋予请求申请 权限的多个管理节点中的一个管理节点操作权限,并根据该具有操作权限的 管理节点发送的操作请求执行相应的操作,避免了多个管理节点同时操作存 储设备的冲突,一个管理节点连续的串行操作被中断的问题。同时,通过对 发送操作请求的管理节点的身份进行验证,确保发送操作请求的管理节点合 法,避免串行操作被其他管理节点的操作请求干扰,中断。
可选地,作为本发明另一实施例,在确定是否赋予发送申请权限请求的 管理节点操作权限之后,该方法100还包括:
140,当赋予发送申请权限请求的管理节点操作权限时,更新状态表。
具体地,当存储设备赋予多个管理节点中的一个管理节点操作权限时, 在状态表中标记该管理节点的权限状态,以用于存储设备接收到其他管理节 点发送的申请权限请求之后,查询状态表,确定是否给予发送申请权限的管 理节点操作权限。在本发明实施例中,当状态表中已经标记某个管理节点具 有操作权限时,存储设备不赋予发送申请权限请求的管理节点操作权限,并 向发送申请权限请求的管理节点返回申请权限失败的响应消息。
可选地,作为本发明另一实施例中,如图5所示,在更新状态表之后, 该方法100还包括:
150,向赋予发送所述申请权限请求的管理节点发送响应消息,以便于所 述申请权限请求的管理节点根据所述响应消息,向存储设备发送操作请求。
具体的,当存储设备赋予多个管理节点中的一个管理节点操作权限时, 更新状态表,并向赋予操作权限的管理节点发送申请权限成功的响应消息, 以用于该管理节点接收到响应消息之后,向存储设备发送操作请求。
在本发明实施例中,存储设备可能在向管理节点发送赋予操作权限成功 的响应消息后,立即接收到该管理节点发送的操作请求,并处理该操作请求; 存储设备也可能在向管理节点发送赋予操作权限成功的响应消息之后,需要 先接收到多个其他管理节点发送的申请权限请求以后,才可以接收到该管理 节点发送的操作请求,存储设备处理到该管理节点发送的操作请求之前,需 要对之前接收的每一个申请权限请求进行处理,并向相应的管理节点返回申 请权限失败的响应消息,之后根据接收到的该管理节点发送的操作请求进行 相应的操作。
可选地,作为本发明另一实施例,如图5所示,在根据操作请求执行操 作之后,该方法100还包括:
160,释放操作权限。
具体的,当存储设备根据一个操作请求执行操作完毕之后,存储设备释 放操作权限,更新状态表,将状态表中的管理节点BMC0的权限状态,标记 为“0”,状态表如图4中E所示,以用于其他管理节点发送操作请求执行相 应的操作,应理解,在本发明实施例中,其他管理节点可以为存储设备刚刚 执行过的发送操作请求对应的管理节点,也可以为除该管理节点之外的其他 任一管理节点。
可选地,作为本发明另一实施例,接收至少一个管理节点发送的至少一 个请求之后,该方法100还包括:
串行化所述请求,以用于根据接收所述请求的顺序进行解析。
具体的,存储设备可以同时接收多个管理节点发送的请求,当存储设备 同时接收多个管理节点发送的请求时,将接收到的请求进行串行化,即将接 收的请求存储在存储设备中,并对存储的请求依次进行解析,还原为原始请 求。
采用本发明实施例提供的操作存储设备的控制方法,通过赋予请求申请 权限的多个管理节点中的一个管理节点操作权限,并根据该具有操作权限的 管理节点发送的操作请求执行相应的操作,避免了多个管理节点同时操作存 储设备的冲突,一个管理节点连续的串行操作被中断的问题。同时,通过对 发送操作请求的管理节点的身份进行验证,确保发送操作请求的管理节点合 法,避免串行操作被其他管理节点的操作请求干扰,甚至中断。
应理解,在本发明实施例中,图4的状态表只是为了详细描述本发明实 施例的技术方案,并不限制本发明实施例状态表的具体形式。
图6为本发明另一实施例提供的操作存储设备的控制方法,该方法400 的执行主体为管理节点,该方法400包括:
410,向存储设备发送申请权限请求,以用于存储设备根据所述申请权限 请求,赋予发送申请权限请求的管理节点操作权限,并向管理节点发送响应 消息;
420,接收存储设备发送的响应消息;
430,根据响应消息,向存储设备发送操作请求,以用于存储设备根据操 作请求执行操作。
具体的,在本发明实施例中,管理节点向存储设备发送申请权限请求, 以便于当存储设备将操作权限赋予该管理节点时,向该管理节点发送申请权 限成功的响应消息;管理节点接收到存储设备发送的响应消息后,根据响应 消息,向存储设备发送操作请求,以用于存储设备可以根据操作请求执行相 应的操作。
采用本发明实施例提供的控制操作存储设备的方法,管理节点先向存储 设备申请操作权限,当具有操作权限时,再向存储设备发送操作请求,以根 据操作请求进行相应的操作,避免了多个管理节点同时访问一个存储设备造 成的操作请求互斥的情况,同时,有效保证了串行命令的连续执行。
上文中结合图3至图6,详细描述了根据本发明实施例的控制操作存 储设备的方法,下面将结合图7至图10,详细描述根据本发明实施例的存 储设备和管理节点。
图7是本发明实施例提供的存储设备的结构示意图。如图7所示,该存 储设备500包括:接收模块510和处理模块520。
接收模块510,用于接收至少一个管理节点发送的至少一个请求;
处理模块520,用于当至少一个请求中的一个请求为申请权限请求时,确 定是否赋予发送申请权限请求的管理节点操作权限;
处理模块520还用于,当至少一个请求中的一个请求为操作请求时,确 定发送操作请求的管理节点是否具有操作权限,当发送操作请求的管理节点 具有操作权限时,根据操作请求执行操作。
具体的,接收模块510接收多个管理节点发送的请求,该请求可以为申 请权限请求,也可以为操作请求;处理模块520依次判断接收到的请求,确 定接收的请求为申请权限请求还是操作请求。当接收的请求为申请权限请求 时,处理模块520可以根据当前的状态权限,确定是否有权限赋予发送申请 权限请求的管理节点,当前权限状态的确定可以通过查询状态表确定,存储 设备根据状态表,确定当前状态是否正在执行操作,当存储设备当前未执行 操作,且没有将操作权限赋予其他管理节点时,将该操作权限赋予发送申请 权限请求的管理节点。
在本发明实施例中,处理模块520还可以通过预设定的其他逻辑方式确 定当前权限状态,在本发明实施例中对此不作限制。
在本发明实施例中,操作请求可以为读操作、写操作或者其他操作。
应理解,在本发明实施例中,请求可以为预定义的请求集合,当存储设 备执行部分预定义请求时,存储设备执行其他预定义的请求。
采用本发明实施例提供的控制操作存储设备的方法,存储设备通过赋予 请求申请权限的多个管理节点中的一个管理节点操作权限,并根据该具有操 作权限的管理节点发送的操作请求执行相应的操作,避免了多个管理节点同 时操作存储设备的冲突,同时避免了连续的串行操作被中断的问题。
可选地,作为本发明另一实施例,处理模块520还用于,当赋予发送申 请权限请求的管理节点操作权限时,更新状态表。
具体地,当处理模块520赋予多个管理节点中的一个管理节点操作权限 时,在状态表中标记该管理节点的权限状态,以用于接收模块510接收到其 他管理节点发送的申请权限请求之后,处理模块520查询状态表,确定是否 给予发送申请权限的管理节点操作权限。在本发明实施例中,当状态表中已 经标记某个管理节点具有操作权限时,处理模块520不赋予发送申请权限请 求的管理节点操作权限,并向发送申请权限请求的管理节点返回申请权限失 败的响应消息。
可选地,作为本发明另一实施例,如图8所示,存储设备500还包括发 送模块530,用于向赋予发送申请权限请求的管理节点发送响应消息,以便于 申请权限请求的管理节点根据响应消息,向存储设备发送操作请求。
具体的,当存储设备赋予多个管理节点中的一个管理节点操作权限时, 更新状态表,并向赋予操作权限的管理节点发送申请权限成功的响应消息, 以用于该管理节点接收到响应消息之后,向存储设备发送操作请求。
在本发明实施例中,接收模块510可能在发送模块530向管理节点发送 赋予操作权限成功的响应消息后,立即接收到该管理节点发送的操作请求, 并处理该操作请求;接收模块510也可能在发送模块530向管理节点发送赋 予操作权限成功的响应消息之后,需要接收多个其他管理节点发送的申请权 限请求之后,才接收到该管理节点发送的操作请求,处理模块520处理到该 管理节点发送的操作请求之前,需要对之前接收的每一个申请权限请求进行 处理,并向相应的管理节点返回申请权限失败的响应消息,根据接收到的该 管理节点发送的操作请求进行相应的操作。
可选地,作为本发明另一实施例,处理模块520具体用于,
查询状态表中标记的管理节点是否为发送操作请求的管理节点;
当状态表中标记的管理节点为发送所述操作请求的管理节点时,确定发 送所述操作请求的管理节点具有操作权限。
具体地,在本发明实施例中,状态表中可以记录各管理节点并标记各管 理节点的操作权限,存储设备在同一时间段内允许一个管理节点具有操作权 限,并在状态表中标记该管理节点具有操作权限,其他管理节点都没有操作 权限,并标记不具有操作权限的标记。当处理模块520查询状态表中标记具 有操作权限的管理节点,并确定状态表中标记的具有操作权限的管理节点与 发送操作权限的管理节点为同一管理节点时,确定发送操作请求的管理节点 具有操作权限,处理模块520可以根据操作请求执行相应的操作。
可选地,作为本发明另一实施例,如图8所示,该存储设备500还包括 释放模块540,用于在根据操作请求执行操作完毕之后,释放操作权限。
具体的,当处理模块520根据一个操作请求执行操作完毕之后,释放操 作权限,更新状态表,将状态表中的管理节点的权限状态标记修改为不具有 操作权限的标记,以用于其他管理节点发送操作请求执行相应的操作。
可选地,作为本发明另一实施例,处理模块520还用于,串行化所述请 求,以用于根据接收请求的顺序进行解析。
具体的,接收模块510可以同时接收多个管理节点发送的请求,当接收 模块510同时接收多个管理节点发送的请求时,处理模块520将接收到的请 求进行串行化,即将接收的请求存储在该存储设备中,并对存储的请求依次 进行解析,还原为原始请求。
采用本发明实施例提供的存储设备,通过赋予请求申请权限的多个管理 节点中的一个管理节点操作权限,并根据该具有操作权限的管理节点发送的 操作请求执行相应的操作,避免了多个管理节点同时操作存储设备的冲突, 一个管理节点连续的串行操作被中断的问题。同时,通过对发送操作请求的 管理节点的身份进行验证,确保发送操作请求的管理节点合法,避免串行操 作被其他管理节点的操作请求干扰,甚至中断。
需要说明的是,在本发明实施例中,根据本发明实施例的存储设备500 中的各个模块的上述和其它操作和/或功能分别为了实现图1和图4中的各个 方法的相应流程,为了简洁,在此不再赘述。
图9为本发明实施例提供的一种管理节点,该管理节点700包括:发送 模块710和接收模块720。
发送模块710,用于向存储设备发送申请权限请求,以用于存储设备根据 申请权限请求,赋予发送申请权限请求的管理节点操作权限,并向管理节点 发送响应消息;
接收模块720,用于接收存储设备发送的响应消息;
发送模块710还用于,根据响应消息向存储设备发送操作请求,以用于 存储设备根据操作请求执行操作。
具体的,在本发明实施例中,发送模块710向存储设备发送申请权限请 求,以便于当存储设备将操作权限赋予该管理节点时,向该管理节点发送申 请权限成功的响应消息;接收模块720接收到存储设备发送的响应消息后, 根据响应消息,向存储设备发送操作请求,以用于存储设备可以根据操作请 求执行相应的操作。
采用本发明实施例提供的管理节点,管理节点先向存储设备申请操作权 限,当具有操作权限时,再向存储设备发送操作请求,以根据操作请求进行 相应的操作,避免了多个管理节点同时访问一个存储设备造成的操作请求互 斥的情况,同时,有效保证了串行命令的连续执行。
需要说明的是,在本发明实施例中,根据本发明实施例的管理节点700 中的各个模块的上述和其它操作和/或功能分别为了实现图5中的各个方法的 相应流程,为了简洁,在此不再赘述。
图10为本发明实施例提供的另一存储设备的结构示意图,如图10所示, 该存储设备800包括存储器810,处理器820、多个访问接口830、多个管理 接口840和通信总线系统850。其中,存储器810,处理器820、多个访问接 口830和多个管理接口840通过通信总线系统850相连接。其中,
存储器810,用于存储指令;
处理器820,用于调用存储在存储器810中的指令,通过处理器820 中包括的接收模块、处理模块和发送模块执行以下步骤:
通过至少一个访问接口接收至少一个管理节点发送的至少一个请求;并 通过管理接口对所述请求进行管理,当至少一个请求中的一个请求为申请权 限请求时,根据当前权限状态,确定是否赋予发送申请权限请求的管理节点 操作权限;当至少一个请求中的一个请求为操作请求时,根据当前权限状态, 确定发送操作请求的管理节点是否具有操作权限,当发送所述操作请求的管 理节点具有操作权限时,根据操作请求执行操作。
在本发明实施例中,当前的权限状态可以通过状态表的形式来记录每个 访问接口的权限状态和存储设备的执行状态,也可以通过其他逻辑形式来实 现权限状态和执行状态的记录。
需要说明的是,在本发明实施例中,访问接口830包括多个接口,例如: 访问接口1,访问接口2等访问接口N,N为大于等于1的整数。管理接口840 也包括多个接口,可以用管理接口1至N表示。
在本发明实施例中,当执行完相应的操作请求时,处理器820中的释放 模块释放操作权限,以便于存储设备将操作权限赋予其他管理节点,进行相 应的操作。需要说明的是,在本发明实施例中,其他管理节点可以为刚刚执 行过的管理节点放的操作请求对应的管理节点,也可以为除该管理节点之外 的其他管理节点。
基于本发明实施例提供的存储设备,通过赋予请求申请权限的多个管理 节点中的一个管理节点操作权限,并根据该具有操作权限的管理节点发送的 操作请求执行相应的操作,避免了多个管理节点同时操作存储设备的冲突, 同时避免了连续的串行操作被中断的问题。
应理解,在本发明实施例中,该处理器820可以是中央处理单元(Central Processing Unit,CPU),该处理器820还可以是其他通用处理器、数字信号 处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者 其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用 处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该总线系统850除包括数据总线之外,还可以包括电源总线、控制总线 和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线 系统850。
在实现过程中,上述方法的各步骤可以通过处理器820中的硬件的集成 逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤 可以直接体现为硬件处理器执行完成,或者用处理器820中的硬件及软件模 块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编 程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质 中。该存储介质位于存储器810,处理器820读取存储器810中的信息,结合 其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
需要说明的是,在本发明实施例中,本发明实施例的存储设备800可 以对应于图6和图7的存储设备500,根据本发明实施例的存储设备800 中的各个模块的上述和其它操作和/或功能分别为了实现图1、图4和图5 中的各个方法的相应流程,为了简洁,在此不再赘述。
本发明实施例提供一种存储一个或多个程序的非易失性计算机可读存储 介质,其中,一个或多个程序包括指令,该指令当被包括存储设备执行时使 存储设备执行以下事件:
接收至少一个管理节点发送的至少一个请求;当至少一个请求中的一个 请求为申请权限请求时,根据当前权限状态,确定是否赋予发送申请权限请 求的管理节点操作权限;当至少一个请求中的一个请求为操作请求时,根据 当前权限状态,确定发送操作请求的管理节点是否具有操作权限,当发送所 述操作请求的管理节点具有操作权限时,根据操作请求执行操作。
在本发明实施例中,当前权限状态可以通过查询状态表确定,状态表记 录了访问接口赋予权限的状态和执行请求的状态,在本发明实施例中,还可 以通过其他的逻辑方式体现权限状态和执行请求的状态,在本发明实施例中 对此不作限制。
当存储介质根据操作请求执行操作完毕时,释放操作权限,以便于将该 操作权限赋予申请权限请求的管理节点,进行相应的操作。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方 法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意 性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有 另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统, 或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或 直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连 接,也可以是电的,机械的或其它的形式连接。该作为分离部件说明的单元 可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可 以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。 可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案 的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单 元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成 在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软 件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或 使用时,可以存储在一个非易失性(non-transitory)计算机可读取存储介质中。 基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部 分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算 机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备 (可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例该 方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存 储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限 于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可想到 各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。 因此,本发明的保护范围应以权利要求的保护范围为准。
本文发布于:2023-04-14 11:21:02,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/3/86590.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |