买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】操作存储设备的控制方法和存储设备_华为技术有限公司_201510711287.3 

申请/专利权人:华为技术有限公司

申请日:2015-10-28

公开(公告)日:2020-07-24

公开(公告)号:CN106648440B

主分类号:G06F3/06(20060101)

分类号:G06F3/06(20060101);G06F13/16(20060101)

优先权:

专利状态码:有效-授权

法律状态:2020.07.24#授权;2020.05.08#专利申请权的转移;2017.06.06#实质审查的生效;2017.05.10#公开

摘要:本发明涉及一种操作存储设备的控制方法、存储设备和管理节点,该方法包括:接收至少一个管理节点发送的至少一个请求;当至少一个请求中的一个请求为申请权限请求时,根据当前权限状态,确定是否赋予发送申请权限请求的管理节点操作权限;当至少一个请求中的一个请求为操作请求时,根据当前权限状态,确定发送操作请求的管理节点是否具有操作权限,当发送操作请求的管理节点具有操作权限时,根据操作请求执行操作。因此,通过赋予请求申请权限的多个管理节点中的一个管理节点操作权限,并根据该具有操作权限的管理节点发送的操作请求执行相应的操作,避免了多个管理节点同时操作存储设备的冲突,同时避免了连续的串行操作被中断的问题。

主权项:1.一种操作存储设备的控制方法,其特征在于,所述方法包括:接收管理节点发送的请求;当所述请求为申请权限请求时,根据状态表中的权限状态组中记录的权限状态,确定是否赋予发送所述申请权限请求的管理节点操作权限;所述状态表中包括权限状态组和请求执行状态组,所述权限状态组用于指示各管理节点的操作权限;所述执行请求状态组用于记录所述请求相关的存储设备是否正在执行其他请求操作;当所述请求为操作请求时,查询所述权限状态组中标记的管理节点是否为发送所述操作请求的管理节点,当所述状态表中标记的管理节点为所述发送所述操作请求的管理节点时,确定发送所述操作请求的管理节点具有操作权限,并查询所述执行请求状态组中记录的所述请求相关的存储设备是否在执行其他请求操作,当所述请求相关的存储设备未执行其他请求操作时,根据所述操作请求执行操作。

全文数据:操作存储设备的控制方法和存储设备技术领域[0001] 本发明涉及动态数据库领域,尤其涉及一种操作存储设备的控制方法和存储设备。背景技术[0002] 非易失性存储Non-VolatileMemoryExpress,NVMe协议支持设备管理命令,可以直接对存储设备进行操作,这样可以避免现有基板管理控制器Baseboardmanagementcontroller,BMC无法对存储设备直接操作的问题,但是由于NVMe协议可以支持多通道进行管理,例如,NVMe管理接口Non-VolatileMemoryExpressManagementInterface,NVMe-MI协议可以支持集成电路总线Inter-1ntegratedCircuit,IIC或I2C、夕卜部设备互联总线PeripheralComponentInterconnectExpress,PCIE等多通道同时进行管理设备传输协议ManagementComponentTransportProtocol,MCTP管理,如图1所不,管理节点通过NVMe管理接口向存储设备发送管理命令,该管理命令可以为读或者写存储设备的操作命令。如图2所示,存储设备可以包括多个管理接口,当多个管理节点通过多个管理接口发送管理命令时,就会存在多个管理节点同时访问存储设备造成的操作冲突的问题。发明内容[0003] 本发明实施例提供一种操作存储设备的控制方法、存储设备和管理节点,通过赋予请求申请权限的多个管理节点中的一个管理节点操作权限,并根据该具有操作权限的管理节点发送的操作请求执行相应的操作,避免了多个管理节点同时操作存储设备的冲突。[0004] 第一方面,本发明实施例提供了一种操作存储设备的控制方法,该方法包括:接收至少一个管理节点发送的请求,确定接收请求的类型;当请求为申请权限请求时,根据当前权限状态,确定是否赋予发送申请权限请求的管理节点操作权限;当请求为操作请求时,根据当前权限状态,确定发送操作请求的管理节点是否具有操作权限,当确定发送操作请求的管理节点具有操作权限时,根据操作请求执行操作。[0005] 在第一方面中,当前权限状态记录了访问接口赋予权限的状态和执行请求的状态,在第一方面中,当前权限状态可以通过查询状态表的形式来实现,也可以通过其他方式来实现。[0006] 基于上述技术方案,通过确定接收的请求类型,根据请求的类型确定赋予发送申请权限请求的至少一个管理节点中的一个管理节点操作权限,或者确定发送操作请求的管理节点是否具有操作权限,并根据具有操作权限的管理节点发送的操作请求执行操作,避免了多个管理节点同时执行操作的冲突问题。[0007] 结合第一方面,在第一方面的第一种可能的实现方式中,当确定赋予发送申请权限请求的至少一个管理节点中的一个管理节点操作权限时,更新状态表,用于通过该状态表确定发送申请权限请求的管理节点是否可以赋予操作权限,或者确定发送操作请求的管理节点是否具有操作权限,以确定多管理节点的操作权限和合法性。[0008] 结合第一方面的第一种实现方式,在第一方面的第二种可能实现的方式中,赋予发送申请权限请求的至少一个管理节点中的一个管理节点操作权限,并更新状态表之后,向赋予发送申请权限请求的管理节点发送响应消息,以便于申请权限请求的管理节点根据该响应消息,向存储设备发送操作请求。[0009] 结合第一方面,在第一方面的第三种可能实现的方式中,根据状态表确定发送操作请求的管理节点是否具有操作权限包括,查询状态表中标记的具有操作权限的管理节点是否为发送操作请求的管理节点,当状态表中标记的具有操作权限的管理节点为发送操作请求的管理节点时,确定发送操作请求的管理节点具有操作权限。[0010] 结合上述可能的实现方式中的任一种实现方式,在第一方面的第四种可能实现的方式中,根据具有操作权限的管理节点发送的操作请求执行操作完成之后,该方法还包括释放操作权限,以便于将该操作权限赋予发送其他请求的管理节点。[0011] 结合第一方面,在第一方面的第五种可能实现的方式中,接收至少一个管理节点发送的请求之后,该方法还包括串行化接收到的请求,以用于根据接收请求的时间顺序依次接收请求。[0012] 第二方面,本发明实施例提供了一种操作存储设备的控制方法,该方法包括:向存储设备发送申请权限请求,以用于存储设备根据申请权限请求赋予发送申请权限请求的管理节点操作权限,并向管理节点发送响应消息;接收到存储设备发送的响应消息;根据响应消息向存储设备发送操作请求,以便于存储设备根据操作请求执行操作。[0013] 基于第二方面提供的操作存储设备的控制方法,对存储设备进行操作之前,先向存储设备申请操作权限,在具有操作权限的情况下,发送操作请求,以便于存储设备根据操作请求执行操作,避免了多个操作请求同时对存储设备执行操作引起的冲突。[0014] 第三方面,本发明实施例提供一种存储设备,该存储设备包括:接收模块和处理模块,接收模块用于接收至少一个管理节点发送的请求;处理模块用于确定请求的类型,当请求为申请权限请求时,确定是否赋予发送申请权限请求的管理节点操作权限;当请求为操作请求时,确定发送操作请求的管理节点是否具有操作权限,当发送操作请求的管理节点具有操作权限时,根据操作请求执行操作。[0015] 在第三方面中处理模块可以通过状态表确定是否赋予发送申请权限请求的管理节点操作权限,或者根据状态表确定发送操作请求的管理节点是否具有操作权限。[0016] 通过确定接收请求的类型,根据请求的类型,确定是否赋予发送请求的管理节点操作权限或者确定是否具有操作权限,可以避免多个管理节点执行操作引起的冲突问题。[0017] 结合第三方面,在第三方面的第一种可能实现的方式中,处理模块还用于,当赋予发送申请权限请求的管理节点操作权限时,更新状态表,以用于通过该状态表确定发送申请权限请求的管理节点是否可以赋予操作权限,或者确定发送操作请求的管理节点是否具有操作权限,用以实现对多管理节点的操作权限以及合法性的判断。[0018] 结合第三发明的第一种可能实现的方式,在第三方面的第二种可能实现的方式中,该存储设备还包括发送模块,用于向发送申请权限请求的管理节点发送响应消息,以用于申请权限请求的管理节点根据响应消息向存储设备发送操作请求。[0019] 结合第三方面,在第三方面的第三种可能实现的方式中,处理模块用于查询状态表中标记的管理节点是否为发送操作请求的管理节点;当状态表中标记的管理节点为发送操作请求的管理节点时,确定发送操作请求的管理节点具有操作权限。[0020] 结合上述可能的实现方式中的任一种实现方式,在第三方面的第四种可能实现的方式中,该存储设备还包括释放模块,用于释放操作权限,以便于将该操作权限赋予发送其他请求的管理节点。[0021] 结合第三方面,在第三方面的第五种可能实现的方式中,处理模块还用于,串行化请求,以便于根据接收的请求按照时间顺序进行解析。[0022] 第四方面,本发明实施例提供一种管理节点,该管理节点包括发送模块和接收模块,发送模块用于向存储设备发送申请权限请求,以用于存储设备根据接收到的申请权限请求赋予操作权限,并向发送申请权限请求的管理节点发送响应消息;接收模块用于接收存储设备发送的响应消息;发送模块根据响应消息向存储设备发送操作请求,以用于存储设备根据操作请求执行操作。[0023] 通过先向存储设备发送申请操作请求,以申请操作权限,在获取到操作权限之后,根据操作请求执行相应的操作,避免了多管理节点之间的操作请求造成的冲突问题。[0024] 第五方面,本发明实施例提供一种存储设备,该存储设备包括至少一个访问接口,例如:业务访问接口、管理接口,存储器和处理器;[0025] 存储器,用于存储指令和权限状态;[0026] 处理器,用于调用存储器在存储器中的指令,以实现:[0027] 通过至少一个访问接口接收至少一个管理节点发送的至少一个请求;当至少一个请求中的一个请求为申请权限请求时,根据当前权限状态,确定是否赋予发送申请权限请求的管理节点操作权限;当至少一个请求中的一个请求为操作请求时,根据当前权限状态,确定发送操作请求的管理节点是否具有操作权限,当发送所述操作请求的管理节点具有操作权限时,根据操作请求执行操作。[0028] 第六方面,本发明实施例提供一种存储一个或多个程序的非易失性计算机可读存储介质,其中,一个或多个程序包括指令,该指令当被包括存储设备执行时使存储设备执行以下事件:[0029] 接收至少一个管理节点发送的至少一个请求;当至少一个请求中的一个请求为申请权限请求时,根据当前权限状态,确定是否赋予发送申请权限请求的管理节点操作权限;当至少一个请求中的一个请求为操作请求时,根据当前权限状态,确定发送操作请求的管理节点是否具有操作权限,当发送所述操作请求的管理节点具有操作权限时,根据操作请求执行操作。[0030] 以上几个方面中,当前权限状态为接收到请求时,存储器中记录的权限赋予权限的状态和执行请求的状态。权限状态可以通过状态表的形式体现,也可以通过其他的逻辑方式体现。[0031] 基于上述技术方案,本发明实施例提供的操作存储设备的控制方法、存储设备和管理节点,存储设备通过赋予请求申请权限的多个管理节点中的一个管理节点操作权限,并根据该具有操作权限的管理节点发送的操作请求执行相应的操作,避免了多个管理节点同时操作存储设备的冲突,同时避免了连续的串行操作被中断的问题。附图说明[0032] 为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0033] 图1为现有技术中NVME管理系统分层图;[0034] 图2为现有技术中NVME管理子系统的结构示意图;[0035]图3为本发明实施例提供的一种操作存储设备的控制方法的流程示意图;[0036]图4为本发明实施例提供的状态表的不意图;[0037]图5为本发明另一实施例提供的操作存储设备的控制方法的流程示意图;[0038]图6为本发明在一实施例提供的操作存储设备的控制方法的流程示意图;[0039]图7为本发明实施例提供的存储设备的示意性结构图;[0040]图8为本发明另一实施例提供的存储设备的示意性结构图;[0041]图9为本发明实施例提供的管理节点的示意性结构图;[0042]图10为本发明另一实施例提供的存储设备示意性结构图。具体实施方式[0043] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。[0044] 本发明实施例提供的方法、管理节点和存储设备,应用于非易失性存储Non-VolatileMemoryExpress,NVMe协议,NVMe可以减少数据读写延迟,提供更高的性能。NVMe可以支持设备管理命令,直接对存储设备进行操作,存储设备可以同时接收到多个管理节点发送的操作请求,该管理节点可以为基板管理控制器Baseboardmanagementcontroller,BMC或者主机,由于操作请求可以为读或者写操作命令,当多个Host或者BMC同时访问存储设备时,会造成对存储设备操作的互斥问题,或者例如一些串行操作,在执行相应的操作过程中,执行其他的操作请求造成连续的串行操作被中断的问题,在这种情况下,存储设备在被执行操作之前,先将可以执行操作的权限赋予给一个管理节点,存储设备根据具有权限的管理节点发送的操作请求执行相应的操作,执行完成之后,将该权限释放,以用于其他的管理节点执行其他的操作。[0045] 在本发明实施例中,存储设备作为存储信息的设备,该设备可以为硬盘,包括:固态硬盘例如SSD盘,机械硬盘HDD传统硬盘等具有存储信息的设备。[0046] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。[0047]图3为本发明实施例提供的一种操作存储设备的控制方法的流程示意图,如图3所示,该方法100的执行主体为存储存储设备,该方法100包括:[0048] 110,接收至少一个管理节点发送的至少一个请求;[0049] 120,当至少一个请求中的一个请求为申请权限请求时,根据当前权限状态,确定是否赋予发送申请权限请求的管理节点操作权限;[0050] 130,当至少一个请求中的一个请求为操作请求时,根据当前权限状态,确定发送操作请求的管理节点是否具有操作权限,当发送所述操作请求的管理节点具有操作权限时,根据操作请求执行操作。[0051] 具体的,在本发明实施例中,存储设备是存储信息的设备,该设备可以为硬盘包括:固态硬盘例如SSD盘,机械硬盘HDD传统硬盘等,也可以为其他具有存储信息的设备。管理节点可以为主机或者BMC。在110中,存储设备接收多个管理节点发送的请求,该请求可以为申请权限请求,也可以为操作请求;存储设备依次确定接收请求的类型,判断接收的请求为申请权限请求还是操作请求。在120中,当接收的请求为申请权限请求时,存储设备根据当前的权限状态,确定是否有权限赋予发送申请权限请求的管理节点。[0052] 在本发明实施例中,当前的权限状态可以通过查询状态表,确定是否有赋予发送申请权限请求的管理节点操作权限,或者确定当前状态是否正在执行操作。在本发明实施例中,存储设备还可以根据其他预定设置的逻辑方式,确定当前的权限状态,在本发明实施例中,当前的权限状态为存储在接收到请求的时刻。[0053] 例如,如图4所示,状态表可以分为两组,一组为权限状态组,另一组为请求执行状态组,权限状态组用于指示各管理节点的操作权限;执行请求状态组用于记录存储设备是否正在执行请求操作。在该权限状态组中,管理节点对应的权限状态以“I”表示具有操作权限,以“O”表示相应的管理节点不具有操作权限。[0054] 当存储设备当前未执行操作,且没有将操作权限赋予其他管理节点时,如图4中A所示,权限状态组中各个管理节点的权限状态和请求执行状态组的状态分别为“0”,此时,存储设备可以将操作权限赋予发送申请权限请求的管理节点。在同一时间段内,存储设备允许一个管理节点获取操作权限,当存储设备接收管理节点,例如:BMC0发送的申请权限命令,存储设备可以将操作权限赋予管理节点BMC0,如图4中B所示,权限状态标记BMCO具有操作权限,记作“I”,不具有操作权限的管理节点,例如BMCl、BMC2、BMC3分别被标记,记作“O”。[0055] 在130中,当接收的请求为操作请求时,根据状态表确定发送操作请求的管理节点是否具有操作权限,如图4中B所示,确定发送操作请求的管理节点是否与状态表中记录的具有操作权限的管理节点为同一个管理节点,在这里需要说明的是,在整个系统中,每个管理节点都具有唯一的标识或名称,以保证状态表中记录的具有操作权限的管理节点与发送操作请求的管理节点为同一个管理节点。当存储设备确定发送操作请求的管理节点与状态表中记录的具有操作权限的管理节点为同一个管理节点时,根据操作请求执行相应的操作,该操作为管理节点对存储设备执行的读或者写操作。执行操作时,存储设备可以自动更新状态表,将状态表设置为正在执行状态,即如图4中C所示,请求执行状态组的状态由未执行操作状态“O”更新为正在执行操作状态“I”,以便于存储设备接收到其他管理节点,例如,BMC1、BMC2、BMC3发送的操作请求时,不再根据相应的操作请求执行操作,避免存储设备同时执行多个管理节点发送的操作请求,且多个管理节点发送的操作请求互斥的问题,也可以避免串行操作被其他管理节点发送的操作请求干扰或中断。[0056] 当管理节点BMCO执行完相应的操作之后,存储设备自动将状态表中的执行请求状态表标记为“0”,表示未执行操作状态,状态表如图4中D所示。[0057] 需要说明的是,在本发明实施例中,操作请求可以为读操作、写操作或者其他操作。[0058] 采用本发明实施例提供的控制操作存储设备的方法,存储设备通过赋予请求申请权限的多个管理节点中的一个管理节点操作权限,并根据该具有操作权限的管理节点发送的操作请求执行相应的操作,避免了多个管理节点同时操作存储设备的冲突,同时避免了连续的串行操作被中断的问题。[0059] 应理解,在本发明实施例中,请求可以为预定义的请求集合,当存储设备执行部分预定义请求时,存储设备执行其他预定义的请求。[0060] 应理解,在本发明实施例中,权限状态组也可以以“O”表示相应的管理节点具有操作权限,以“I”表示相应的管理节点不具有操作权限,也或者权限状态组可以根据计算机采用的其他进制的数码表示管理节点具有操作权限的标记,在本发明实施例中对此不作限制。[0061] 需要说明的是,在本发明实施例中,状态表的数据定义是可以扩展的,不仅限于本发明实施例提供的状态表是的数据。[0062] 可选地,作为本发明另一实施例,如图5所示,根据所述状态表,确定发送操作请求的管理节点是否具有操作权限,包括:[0063] 131,查询状态表中标记的管理节点是否为发送操作请求的管理节点;[0064] 132,当状态表中标记的管理节点为发送所述操作请求的管理节点时,确定发送操作请求的管理节点具有操作权限。[0065] 具体地,在本发明实施例中,状态表中可以记录各管理节点并标记各管理节点的操作权限,存储设备在同一时间段内只允许一个管理节点具有操作权限,并在状态表中标记该管理节点具有操作权限,其他管理节点都没有操作权限,并标记不具有操作权限的标记。当存储设备查询状态表中标记具有操作权限的管理节点,并确定状态表中标记的具有操作权限的管理节点与发送操作权限的管理节点为同一管理节点时,确定发送操作请求的管理节点具有操作权限,存储设备可以根据操作请求执行相应的操作。[0066] 例如,如图4中B所示,存储设备查询状态表存储的各管理节点以及权限状态,确定状态表中标记的具有操作权限的管理节点为BMC0,发送操作请求的管理节点也是BMC0,则确定该管理节点BMCO具有操作权限,存储设备可以根据管理节点BMCO发送的操作请求执行相应的操作。[0067] 采用本发明实施例提供的操作存储设备的控制方法,通过赋予请求申请权限的多个管理节点中的一个管理节点操作权限,并根据该具有操作权限的管理节点发送的操作请求执行相应的操作,避免了多个管理节点同时操作存储设备的冲突,一个管理节点连续的串行操作被中断的问题。同时,通过对发送操作请求的管理节点的身份进行验证,确保发送操作请求的管理节点合法,避免串行操作被其他管理节点的操作请求干扰,中断。[0068] 可选地,作为本发明另一实施例,在确定是否赋予发送申请权限请求的管理节点操作权限之后,该方法100还包括:[0069] 140,当赋予发送申请权限请求的管理节点操作权限时,更新状态表。[0070] 具体地,当存储设备赋予多个管理节点中的一个管理节点操作权限时,在状态表中标记该管理节点的权限状态,以用于存储设备接收到其他管理节点发送的申请权限请求之后,查询状态表,确定是否给予发送申请权限的管理节点操作权限。在本发明实施例中,当状态表中已经标记某个管理节点具有操作权限时,存储设备不赋予发送申请权限请求的管理节点操作权限,并向发送申请权限请求的管理节点返回申请权限失败的响应消息。[0071]可选地,作为本发明另一实施例中,如图5所示,在更新状态表之后,该方法100还包括:[0072] 150,向赋予发送所述申请权限请求的管理节点发送响应消息,以便于所述申请权限请求的管理节点根据所述响应消息,向存储设备发送操作请求。[0073] 具体的,当存储设备赋予多个管理节点中的一个管理节点操作权限时,更新状态表,并向赋予操作权限的管理节点发送申请权限成功的响应消息,以用于该管理节点接收到响应消息之后,向存储设备发送操作请求。[0074] 在本发明实施例中,存储设备可能在向管理节点发送赋予操作权限成功的响应消息后,立即接收到该管理节点发送的操作请求,并处理该操作请求;存储设备也可能在向管理节点发送赋予操作权限成功的响应消息之后,需要先接收到多个其他管理节点发送的申请权限请求以后,才可以接收到该管理节点发送的操作请求,存储设备处理到该管理节点发送的操作请求之前,需要对之前接收的每一个申请权限请求进行处理,并向相应的管理节点返回申请权限失败的响应消息,之后根据接收到的该管理节点发送的操作请求进行相应的操作。[0075] 可选地,作为本发明另一实施例,如图5所示,在根据操作请求执行操作之后,该方法100还包括:[0076] 160,释放操作权限。[0077] 具体的,当存储设备根据一个操作请求执行操作完毕之后,存储设备释放操作权限,更新状态表,将状态表中的管理节点BMCO的权限状态,标记为“0”,状态表如图4中E所示,以用于其他管理节点发送操作请求执行相应的操作,应理解,在本发明实施例中,其他管理节点可以为存储设备刚刚执行过的发送操作请求对应的管理节点,也可以为除该管理节点之外的其他任一管理节点。[0078] 可选地,作为本发明另一实施例,接收至少一个管理节点发送的至少一个请求之后,该方法100还包括:[0079] 串行化所述请求,以用于根据接收所述请求的顺序进行解析。[0080] 具体的,存储设备可以同时接收多个管理节点发送的请求,当存储设备同时接收多个管理节点发送的请求时,将接收到的请求进行串行化,即将接收的请求存储在存储设备中,并对存储的请求依次进行解析,还原为原始请求。[0081] 采用本发明实施例提供的操作存储设备的控制方法,通过赋予请求申请权限的多个管理节点中的一个管理节点操作权限,并根据该具有操作权限的管理节点发送的操作请求执行相应的操作,避免了多个管理节点同时操作存储设备的冲突,一个管理节点连续的串行操作被中断的问题。同时,通过对发送操作请求的管理节点的身份进行验证,确保发送操作请求的管理节点合法,避免串行操作被其他管理节点的操作请求干扰,甚至中断。[0082] 应理解,在本发明实施例中,图4的状态表只是为了详细描述本发明实施例的技术方案,并不限制本发明实施例状态表的具体形式。[0083] 图6为本发明另一实施例提供的操作存储设备的控制方法,该方法400的执行主体为管理节点,该方法400包括:[0084] 410,向存储设备发送申请权限请求,以用于存储设备根据所述申请权限请求,赋予发送申请权限请求的管理节点操作权限,并向管理节点发送响应消息;[0085] 420,接收存储设备发送的响应消息;[0086] 430,根据响应消息,向存储设备发送操作请求,以用于存储设备根据操作请求执行操作。[0087] 具体的,在本发明实施例中,管理节点向存储设备发送申请权限请求,以便于当存储设备将操作权限赋予该管理节点时,向该管理节点发送申请权限成功的响应消息;管理节点接收到存储设备发送的响应消息后,根据响应消息,向存储设备发送操作请求,以用于存储设备可以根据操作请求执行相应的操作。[0088] 采用本发明实施例提供的控制操作存储设备的方法,管理节点先向存储设备申请操作权限,当具有操作权限时,再向存储设备发送操作请求,以根据操作请求进行相应的操作,避免了多个管理节点同时访问一个存储设备造成的操作请求互斥的情况,同时,有效保证了串行命令的连续执行。[0089] 上文中结合图3至图6,详细描述了根据本发明实施例的控制操作存储设备的方法,下面将结合图7至图10,详细描述根据本发明实施例的存储设备和管理节点。[0090] 图7是本发明实施例提供的存储设备的结构不意图。如图7所不,该存储设备500包括:接收模块510和处理模块520。[0091] 接收模块510,用于接收至少一个管理节点发送的至少一个请求;[0092] 处理模块520,用于当至少一个请求中的一个请求为申请权限请求时,确定是否赋予发送申请权限请求的管理节点操作权限;[0093] 处理模块520还用于,当至少一个请求中的一个请求为操作请求时,确定发送操作请求的管理节点是否具有操作权限,当发送操作请求的管理节点具有操作权限时,根据操作请求执行操作。[0094] 具体的,接收模块510接收多个管理节点发送的请求,该请求可以为申请权限请求,也可以为操作请求;处理模块520依次判断接收到的请求,确定接收的请求为申请权限请求还是操作请求。当接收的请求为申请权限请求时,处理模块520可以根据当前的状态权限,确定是否有权限赋予发送申请权限请求的管理节点,当前权限状态的确定可以通过查询状态表确定,存储设备根据状态表,确定当前状态是否正在执行操作,当存储设备当前未执行操作,且没有将操作权限赋予其他管理节点时,将该操作权限赋予发送申请权限请求的管理节点。[0095] 在本发明实施例中,处理模块520还可以通过预设定的其他逻辑方式确定当前权限状态,在本发明实施例中对此不作限制。[0096] 在本发明实施例中,操作请求可以为读操作、写操作或者其他操作。[0097] 应理解,在本发明实施例中,请求可以为预定义的请求集合,当存储设备执行部分预定义请求时,存储设备执行其他预定义的请求。[0098] 采用本发明实施例提供的控制操作存储设备的方法,存储设备通过赋予请求申请权限的多个管理节点中的一个管理节点操作权限,并根据该具有操作权限的管理节点发送的操作请求执行相应的操作,避免了多个管理节点同时操作存储设备的冲突,同时避免了连续的串行操作被中断的问题。[0099] 可选地,作为本发明另一实施例,处理模块520还用于,当赋予发送申请权限请求的管理节点操作权限时,更新状态表。[0100] 具体地,当处理模块520赋予多个管理节点中的一个管理节点操作权限时,在状态表中标记该管理节点的权限状态,以用于接收模块510接收到其他管理节点发送的申请权限请求之后,处理模块520查询状态表,确定是否给予发送申请权限的管理节点操作权限。在本发明实施例中,当状态表中已经标记某个管理节点具有操作权限时,处理模块520不赋予发送申请权限请求的管理节点操作权限,并向发送申请权限请求的管理节点返回申请权限失败的响应消息。[0101] 可选地,作为本发明另一实施例,如图8所示,存储设备500还包括发送模块530,用于向赋予发送申请权限请求的管理节点发送响应消息,以便于申请权限请求的管理节点根据响应消息,向存储设备发送操作请求。[0102] 具体的,当存储设备赋予多个管理节点中的一个管理节点操作权限时,更新状态表,并向赋予操作权限的管理节点发送申请权限成功的响应消息,以用于该管理节点接收到响应消息之后,向存储设备发送操作请求。[0103] 在本发明实施例中,接收模块510可能在发送模块530向管理节点发送赋予操作权限成功的响应消息后,立即接收到该管理节点发送的操作请求,并处理该操作请求;接收模块510也可能在发送模块530向管理节点发送赋予操作权限成功的响应消息之后,需要接收多个其他管理节点发送的申请权限请求之后,才接收到该管理节点发送的操作请求,处理模块520处理到该管理节点发送的操作请求之前,需要对之前接收的每一个申请权限请求进行处理,并向相应的管理节点返回申请权限失败的响应消息,根据接收到的该管理节点发送的操作请求进行相应的操作。[0104] 可选地,作为本发明另一实施例,处理模块520具体用于,[0105] 查询状态表中标记的管理节点是否为发送操作请求的管理节点;[0106]当状态表中标记的管理节点为发送所述操作请求的管理节点时,确定发送所述操作请求的管理节点具有操作权限。[0107] 具体地,在本发明实施例中,状态表中可以记录各管理节点并标记各管理节点的操作权限,存储设备在同一时间段内允许一个管理节点具有操作权限,并在状态表中标记该管理节点具有操作权限,其他管理节点都没有操作权限,并标记不具有操作权限的标记。当处理模块520查询状态表中标记具有操作权限的管理节点,并确定状态表中标记的具有操作权限的管理节点与发送操作权限的管理节点为同一管理节点时,确定发送操作请求的管理节点具有操作权限,处理模块520可以根据操作请求执行相应的操作。[0108] 可选地,作为本发明另一实施例,如图8所示,该存储设备500还包括释放模块540,用于在根据操作请求执行操作完毕之后,释放操作权限。[0109] 具体的,当处理模块520根据一个操作请求执行操作完毕之后,释放操作权限,更新状态表,将状态表中的管理节点的权限状态标记修改为不具有操作权限的标记,以用于其他管理节点发送操作请求执行相应的操作。[0110] 可选地,作为本发明另一实施例,处理模块520还用于,串行化所述请求,以用于根据接收请求的顺序进行解析。[0111] 具体的,接收模块510可以同时接收多个管理节点发送的请求,当接收模块510同时接收多个管理节点发送的请求时,处理模块520将接收到的请求进行串行化,即将接收的请求存储在该存储设备中,并对存储的请求依次进行解析,还原为原始请求。[0112] 采用本发明实施例提供的存储设备,通过赋予请求申请权限的多个管理节点中的一个管理节点操作权限,并根据该具有操作权限的管理节点发送的操作请求执行相应的操作,避免了多个管理节点同时操作存储设备的冲突,一个管理节点连续的串行操作被中断的问题。同时,通过对发送操作请求的管理节点的身份进行验证,确保发送操作请求的管理节点合法,避免串行操作被其他管理节点的操作请求干扰,甚至中断。[0113] 需要说明的是,在本发明实施例中,根据本发明实施例的存储设备500中的各个模块的上述和其它操作和或功能分别为了实现图1和图4中的各个方法的相应流程,为了简洁,在此不再赘述。[0114]图9为本发明实施例提供的一种管理节点,该管理节点700包括:发送模块710和接收模块720。[0115] 发送模块710,用于向存储设备发送申请权限请求,以用于存储设备根据申请权限请求,赋予发送申请权限请求的管理节点操作权限,并向管理节点发送响应消息;[0116] 接收模块720,用于接收存储设备发送的响应消息;[0117] 发送模块710还用于,根据响应消息向存储设备发送操作请求,以用于存储设备根据操作请求执行操作。[0118] 具体的,在本发明实施例中,发送模块710向存储设备发送申请权限请求,以便于当存储设备将操作权限赋予该管理节点时,向该管理节点发送申请权限成功的响应消息;接收模块720接收到存储设备发送的响应消息后,根据响应消息,向存储设备发送操作请求,以用于存储设备可以根据操作请求执行相应的操作。[0119] 采用本发明实施例提供的管理节点,管理节点先向存储设备申请操作权限,当具有操作权限时,再向存储设备发送操作请求,以根据操作请求进行相应的操作,避免了多个管理节点同时访问一个存储设备造成的操作请求互斥的情况,同时,有效保证了串行命令的连续执行。[0120] 需要说明的是,在本发明实施例中,根据本发明实施例的管理节点700中的各个模块的上述和其它操作和或功能分别为了实现图5中的各个方法的相应流程,为了简洁,在此不再赘述。[0121]图10为本发明实施例提供的另一存储设备的结构示意图,如图10所示,该存储设备800包括存储器810,处理器820、多个访问接口830、多个管理接口840和通信总线系统850。其中,存储器810,处理器820、多个访问接口830和多个管理接口840通过通信总线系统850相连接。其中,[0122] 存储器810,用于存储指令;[0123] 处理器820,用于调用存储在存储器810中的指令,通过处理器820中包括的接收模块、处理模块和发送模块执行以下步骤:[0124] 通过至少一个访问接口接收至少一个管理节点发送的至少一个请求;并通过管理接口对所述请求进行管理,当至少一个请求中的一个请求为申请权限请求时,根据当前权限状态,确定是否赋予发送申请权限请求的管理节点操作权限;当至少一个请求中的一个请求为操作请求时,根据当前权限状态,确定发送操作请求的管理节点是否具有操作权限,当发送所述操作请求的管理节点具有操作权限时,根据操作请求执行操作。[0125] 在本发明实施例中,当前的权限状态可以通过状态表的形式来记录每个访问接口的权限状态和存储设备的执行状态,也可以通过其他逻辑形式来实现权限状态和执行状态的记录。[0126] 需要说明的是,在本发明实施例中,访问接口830包括多个接口,例如:访问接口1,访问接口2等访问接口N,N为大于等于I的整数。管理接口840也包括多个接口,可以用管理接口I至N表示。[0127] 在本发明实施例中,当执行完相应的操作请求时,处理器820中的释放模块释放操作权限,以便于存储设备将操作权限赋予其他管理节点,进行相应的操作。需要说明的是,在本发明实施例中,其他管理节点可以为刚刚执行过的管理节点放的操作请求对应的管理节点,也可以为除该管理节点之外的其他管理节点。[0128] 基于本发明实施例提供的存储设备,通过赋予请求申请权限的多个管理节点中的一个管理节点操作权限,并根据该具有操作权限的管理节点发送的操作请求执行相应的操作,避免了多个管理节点同时操作存储设备的冲突,同时避免了连续的串行操作被中断的问题。[0129] 应理解,在本发明实施例中,该处理器820可以是中央处理单元CentralProcessingUnit,CPU,该处理器820还可以是其他通用处理器、数字信号处理器DSP、专用集成电路ASIC、现场可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。[0130] 该总线系统850除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统850。[0131] 在实现过程中,上述方法的各步骤可以通过处理器820中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器820中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器810,处理器820读取存储器810中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。[0132] 需要说明的是,在本发明实施例中,本发明实施例的存储设备800可以对应于图6和图7的存储设备500,根据本发明实施例的存储设备800中的各个模块的上述和其它操作和或功能分别为了实现图1、图4和图5中的各个方法的相应流程,为了简洁,在此不再赘述。[0133] 本发明实施例提供一种存储一个或多个程序的非易失性计算机可读存储介质,其中,一个或多个程序包括指令,该指令当被包括存储设备执行时使存储设备执行以下事件:[0134] 接收至少一个管理节点发送的至少一个请求;当至少一个请求中的一个请求为申请权限请求时,根据当前权限状态,确定是否赋予发送申请权限请求的管理节点操作权限;当至少一个请求中的一个请求为操作请求时,根据当前权限状态,确定发送操作请求的管理节点是否具有操作权限,当发送所述操作请求的管理节点具有操作权限时,根据操作请求执行操作。[0135] 在本发明实施例中,当前权限状态可以通过查询状态表确定,状态表记录了访问接口赋予权限的状态和执行请求的状态,在本发明实施例中,还可以通过其他的逻辑方式体现权限状态和执行请求的状态,在本发明实施例中对此不作限制。[0136] 当存储介质根据操作请求执行操作完毕时,释放操作权限,以便于将该操作权限赋予申请权限请求的管理节点,进行相应的操作。[0137] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。[0138] 该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非易失性non-transitory计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备可以是个人计算机,服务器,或者网络设备等执行本发明各个实施例该方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器ROM,Read-OnlyMemory、随机存取存储器RAM,RandomAccessMemory、磁碟或者光盘等各种可以存储程序代码的介质。[0139] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

权利要求: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.一种管理节点,其特征在于,所述管理节点包括:发送模块,用于向存储设备发送申请权限请求,以用于存储设备根据所述申请权限请求,赋予发送所述申请权限请求的管理节点操作权限,并向所述管理节点发送响应消息;接收模块,用于接收所述存储设备发送的所述响应消息;所述发送模块还用于,根据所述响应消息向所述存储设备发送操作请求,以用于存储设备根据所述操作请求执行操作。

百度查询: 华为技术有限公司 操作存储设备的控制方法和存储设备

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。