CN117807136A - 一种数据访问的方法、装置、电子设备和存储介质 - Google Patents
一种数据访问的方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117807136A CN117807136A CN202410223688.3A CN202410223688A CN117807136A CN 117807136 A CN117807136 A CN 117807136A CN 202410223688 A CN202410223688 A CN 202410223688A CN 117807136 A CN117807136 A CN 117807136A
- Authority
- CN
- China
- Prior art keywords
- target
- data
- initiator
- product data
- address
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 239000003999 initiator Substances 0.000 claims abstract description 255
- 230000003993 interaction Effects 0.000 claims abstract description 43
- 238000013507 mapping Methods 0.000 claims description 82
- 230000004044 response Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 16
- 239000000758 substrate Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000032683 aging Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Selective Calling Equipment (AREA)
Abstract
本发明提供了一种数据访问的方法、装置、电子设备和存储介质,应用于数据访问的技术领域;该方法包括:接收目标发起方的设置命令,并从设置命令中,确定目标发起方的目标设备地址;响应于设置命令,获取目标产品数据,并将目标产品数据存储在目标设备地址对应的目标数据链表中;响应于目标发起方的查询命令,根据目标设备地址,从目标数据链表中获取目标产品数据,并将目标产品数据返回给目标发起方。通过本发明实施例,发起方和接收方可以基于设备地址来进行数据的交互,从而使得接收方可以将数据返回给正确的发起方;多发起方并发访问接收方数据时,会导致获取的数据错乱的问题。
Description
技术领域
本发明涉及数据访问的技术领域,特别是涉及一种数据访问的方法、一种数据访问的装置、一种电子设备和一种非易失性计算机可读存储介质。
背景技术
随着硬件的种类逐渐增多,企业和用户往往采用SES(Small Computer SystemInterface Enclosure Services,小型计算机系统接口存储模块服务协议)作为机箱的监控以及管理的实现方式。
主机可以作为SCSI(Small Computer System Interface,小型计算机系统接口)交互的发起方,向target发起SCSI请求;target可以作为SCSI交互的接收方,向发起方回复响应。
发起方向接收方发送的SES命令可以包括查询命令和设置命令;其中,设置命令用于通知target执行SES命令,并将命令执行结果准备好,查询命令用于通知target返回基于最近一次设置命令的结果。
在发起方和接收方基于SES协议通信时,命令交互有两种形式,单命令交互和多命令交互,单命令交互是指发起方和接收方的SCSI交互通过一条SES命令完成,多命令交互指发起方和接收方的SCSI交互由多条命令组合完成。
如图1所示,SCSI主机访问VPD(Vital Product Data,重要产品数据)是一种多命令交互方式。
步骤1:发起方向接收方发送设置命令,指定需要读取的VPD偏移地址(offset)和长度(length);
接收方接收并作出响应:解析命令,将命令指定的VPD数据读入到EXP内存地址1进行数据存储。
步骤2:发起方向接收方发送查询命令获取设置命令指定的VPD数据,接收方接收并解析命令,将Exp内存地址1的数据返回给发起方。
对于高端多控设备,如图2所示,存在多个发起方访问接收方的场景。
多个发起方多命令交互场景时,SES中规定,当发起方发(发起方1和发起方2)起查询命令时,是通知接收方返回最近一次设置命令的结果。
即,每个发起方的查询命令必须紧跟其设置命令,多发起方访问接收方设备时,访问VPD的命令顺序必须为:发起方0_设置命令→发起方0_查询命令→发起方1_设置命令→发起方1_查询命令。
当多个发起方并发访问接收方获取VPD数据时,命令发起顺序可能为:发起方0_设置命令→发起方1_设置命令→发起方0_查询命令→发起方1_查询命令。
如图2所示,当发起方0发起设置命令后,接收方将发起方0_设置命令指定的offset1、length1数据读入存放到内存地址1,紧接着发起方1发起发起方1_设置命令,接收方将发起方1_设置命令指定的offset2、length2数据覆盖到内存地址1,发起方0发送发起方0_查询命令获取的VPD数据实际是发起方1请求的VPD数据,导致数据错乱。
发明内容
鉴于上述问题,提出了以便提供克服上述问题或者至少部分地解决上述问题的一种数据访问的方法、一种数据访问的装置、一种电子设备和一种非易失性计算机可读存储介质,包括:
一种数据访问的方法,应用于小型计算机系统接口交互的接收方,所述接收方通过小型计算机系统接口存储模块服务协议,与小型计算机系统接口交互的多个发起方进行数据交互,所述方法包括:
接收目标发起方的设置命令,并从所述设置命令中,确定所述目标发起方的目标设备地址;
响应于所述设置命令,获取目标产品数据,并将所述目标产品数据存储在所述目标设备地址对应的目标数据链表中;
响应于所述目标发起方的查询命令,根据所述目标设备地址,从所述目标数据链表中获取所述目标产品数据,并将所述目标产品数据返回给所述目标发起方。
可选地,所述将所述目标产品数据存储在所述目标设备地址对应的目标数据链表中,包括:
为所述目标设备地址分配一目标主机标识,并在预设的映射关系中,建立所述目标设备地址与所述目标主机标识的对应关系;
确定所述目标主机标识对应的目标数据链表,并将所述目标产品数据存储在所述目标数据链表中;
所述响应于所述目标发起方的查询命令,根据所述目标设备地址,从所述目标数据链表中获取所述目标产品数据,并将所述目标产品数据返回给所述目标发起方,包括:
响应于所述目标发起方的查询命令,从所述映射关系中,确定与所述目标设备地址对应的目标主机标识;
确定所述目标主机标识所对应的目标数据链表,并从所述目标数据链表中获取所述目标产品数据;
向所述目标设备地址所对应的目标发起方发送所述目标产品数据。
可选地,在为所述目标设备地址分配一目标主机标识之前,所述方法还包括:
遍历所述映射关系;
当所述映射关系中未匹配到所述目标设备地址时,执行为所述目标设备地址分配一目标主机标识的步骤。
可选地,所述映射关系中针对各主机标识设置有有效状态;所述方法还包括:
当检测到所述目标发起方与所述接收方断开连接时,将所述目标发起方对应的目标主机标识的有效状态置为无效。
可选地,所述为所述目标设备地址分配一目标主机标识,并在预设的映射关系中,建立所述目标设备地址与所述目标主机标识的对应关系,包括:
将一有效状态为无效的主机标识分配给所述目标设备地址,并将所述有效状态为无效的主机标识作为所述目标主机标识;
在预设的映射关系中,建立所述目标设备地址与所述目标主机标识的对应关系;
置所述目标主机标识的有效状态为有效。
可选地,所述为所述目标设备地址分配一目标主机标识,包括:
确定当前已分配到的主机标识;
在所述当前已分配到的主机标识的基础上加一,得到目标主机标识,并将所述目标主机标识分配给所述目标设备地址。
可选地,所述接收方设置有多个数据获取模块,一个数据获取模块对应一种硬件设备;所述响应于所述设置命令,获取目标产品数据,包括:
根据所述设置命令,确定所述目标产品数据的偏移量、长度,以及所述目标产品数据所对应的硬件设备,并在所述目标数据链表中为所述目标产品数据分配目标存储区域;
根据所述目标产品数据所对应的硬件设备,确定目标数据获取模块;
调用所述目标数据获取模块,根据所述目标产品数据的偏移量、长度,从目标产品数据所对应的硬件设备中获取所述目标产品数据;
所述将所述目标产品数据存储在所述目标设备地址对应的目标数据链表中,包括:
将所述目标产品数据存储至所述目标数据链表中的目标存储区域。
可选地,所述响应于所述目标发起方的查询命令,根据所述目标设备地址,从所述目标数据链表中获取所述目标产品数据,包括:
对所述查询命令进行解析,确定所述目标设备地址,以及确定待获取的目标产品数据所对应的硬件设备;
从所述映射关系中,确定所述目标设备地址对应的目标主机标识;
确定与所述目标主机标识对应的目标数据链表;
遍历所述目标数据链表,确定与所述目标产品数据所对应的硬件设备对应的目标存储区域,并从所述目标存储区域中获取所述目标产品数据。
可选地,所述当检测到所述目标发起方与所述接收方断开连接时,将所述目标发起方对应的目标主机标识的有效状态置为无效,包括:
当检测到所述目标发起方与所述接收方断开连接时,针对所述目标发起方进行广播;
在预设时间内,若未接收到所述目标发起方针对所述广播的响应,将所述目标发起方对应的目标主机标识的有效状态置为无效。
可选地,所述方法还包括:
当所述映射关系中匹配到所述目标设备地址,判断所述目标设备地址在所述映射关系中的目标主机标识的有效状态是否为无效;
当所述目标设备地址在所述映射关系中的目标主机标识的有效状态为无效时,置所述目标主机标识的有效状态为有效。
可选地,所述方法还包括:
在接收到所述目标发起方的目标命令后,对所述目标命令进行解析;
当所述目标命令为设置命令时,执行响应于所述设置命令,获取目标产品数据的步骤;
当所述目标命令为查询命令时,执行响应于所述目标发起方的查询命令,根据所述目标设备地址,从所述目标数据链表中获取所述目标产品数据,并将所述目标产品数据返回给所述目标发起方的步骤。
可选地,所述接收方包括级联的第一接收方和第二接收方。
本发明实施例还提供了一种数据访问的装置,应用于小型计算机系统接口交互的接收方,所述接收方通过小型计算机系统接口存储模块服务协议,与小型计算机系统接口交互的多个发起方进行数据交互,所述装置包括:
地址确定模块,用于接收目标发起方的设置命令,并从所述设置命令中,确定所述目标发起方的目标设备地址;
存储模块,用于响应于所述设置命令,获取目标产品数据,并将所述目标产品数据存储在所述目标设备地址对应的目标数据链表中;
返回模块,用于响应于所述目标发起方的查询命令,根据所述目标设备地址,从所述目标数据链表中获取所述目标产品数据,并将所述目标产品数据返回给所述目标发起方。
可选地,所述存储模块,用于为所述目标设备地址分配一目标主机标识,并在预设的映射关系中,建立所述目标设备地址与所述目标主机标识的对应关系;确定所述目标主机标识对应的目标数据链表,并将所述目标产品数据存储在所述目标数据链表中;
所述返回模块,用于响应于所述目标发起方的查询命令,从所述映射关系中,确定与所述目标设备地址对应的目标主机标识;确定所述目标主机标识所对应的目标数据链表,并从所述目标数据链表中获取所述目标产品数据;向所述目标设备地址所对应的目标发起方发送所述目标产品数据。
可选地,所述装置还包括:
遍历模块,用于在为所述目标设备地址分配一目标主机标识之前,遍历所述映射关系;
所述存储模块,用于当所述映射关系中未匹配到所述目标设备地址时,为所述目标设备地址分配一目标主机标识。
可选地,所述映射关系中针对各主机标识设置有有效状态;所述装置还包括:
状态设置模块,用于当检测到所述目标发起方与所述接收方断开连接时,将所述目标发起方对应的目标主机标识的有效状态置为无效。
可选地,所述存储模块,用于将一有效状态为无效的主机标识分配给所述目标设备地址,并将所述有效状态为无效的主机标识作为所述目标主机标识;在预设的映射关系中,建立所述目标设备地址与所述目标主机标识的对应关系;置所述目标主机标识的有效状态为有效。
可选地,所述存储模块,用于确定当前已分配到的主机标识;在所述当前已分配到的主机标识的基础上加一,得到目标主机标识,并将所述目标主机标识分配给所述目标设备地址。
可选地,所述接收方设置有多个数据获取模块,一个数据获取模块对应一种硬件设备;所述存储模块,用于根据所述设置命令,确定所述目标产品数据的偏移量、长度,以及所述目标产品数据所对应的硬件设备,并在所述目标数据链表中为所述目标产品数据分配目标存储区域;根据所述目标产品数据所对应的硬件设备,确定目标数据获取模块;调用所述目标数据获取模块,根据所述目标产品数据的偏移量、长度,从目标产品数据所对应的硬件设备中获取所述目标产品数据;
所述存储模块,用于将所述目标产品数据存储至所述目标数据链表中的目标存储区域。
可选地,所述存储模块,用于对所述查询命令进行解析,确定所述目标设备地址,以及确定待获取的目标产品数据所对应的硬件设备;从所述映射关系中,确定所述目标设备地址对应的目标主机标识;确定与所述目标主机标识对应的目标数据链表;遍历所述目标数据链表,确定与所述目标产品数据所对应的硬件设备对应的目标存储区域,并从所述目标存储区域中获取所述目标产品数据。
可选地,所述状态设置模块,用于当检测到所述目标发起方与所述接收方断开连接时,针对所述目标发起方进行广播;在预设时间内,若未接收到所述目标发起方针对所述广播的响应,将所述目标发起方对应的目标主机标识的有效状态置为无效。
可选地,所述装置还包括:
重置模块,用于当所述映射关系中匹配到所述目标设备地址,判断所述目标设备地址在所述映射关系中的目标主机标识的有效状态是否为无效;当所述目标设备地址在所述映射关系中的目标主机标识的有效状态为无效时,置所述目标主机标识的有效状态为有效。
可选地,所述装置还包括:
解析模块,用于在接收到所述目标发起方的目标命令后,对所述目标命令进行解析;
存储模块,用于当所述目标命令为设置命令时,响应于所述设置命令,获取目标产品数据;
返回模块,用于当所述目标命令为查询命令时,响应于所述目标发起方的查询命令,根据所述目标设备地址,从所述目标数据链表中获取所述目标产品数据,并将所述目标产品数据返回给所述目标发起方。
可选地,所述接收方包括级联的第一接收方和第二接收方。
本发明实施例还提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述数据访问的方法。
本发明实施例还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述数据访问的方法。
本发明实施例中,小型计算机系统接口交互的接收方可以先接收目标发起方的设置命令,并从设置命令中,确定目标发起方的目标设备地址;然后响应于设置命令,获取目标产品数据,并将目标产品数据存储在目标设备地址对应的目标数据链表中;接下来再响应于目标发起方的查询命令,根据目标设备地址,从目标数据链表中获取目标产品数据,并将目标产品数据返回给目标发起方。通过本发明实施例,发起方和接收方可以基于设备地址来进行数据的交互,从而使得接收方可以将数据返回给正确的发起方,解决了对于多个发起方需要多条SES指令完成交互的场景中,SES规定多发起方必须顺序访问,多发起方并发访问接收方数据时,会导致获取的数据错乱的问题,解决了SES的局限性,实现了多发起方并发访问接收方数据。
附图说明
为了更清楚地说明本发明的技术方案,下面将对本发明的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术的一种数据访问的示意图;
图2是现有技术的一种数据访问的示意图;
图3a是本发明实施例的一种数据访问的方法的步骤流程图;
图3b是本发明实施例的一种级联情况下的数据访问的示意图;
图4是本发明实施例的另一种数据访问的方法的步骤流程图;
图5a是本发明实施例的另一种数据访问的方法的步骤流程图;
图5b是本发明实施例的一种数据访问的场景示意图;
图6是本发明实施例的一种数据访问的装置的结构示意图;
图7是本发明实施例的一种电子设备的结构示意图;
图8是本发明实施例的一种非易失性计算机可读存储介质的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细地说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图3a,图3a示出了本发明实施例的一种数据访问的方法的步骤流程图,该方法可以应用于小型计算机系统接口交互的接收方,接收方通过小型计算机系统接口存储模块服务协议,与小型计算机系统接口交互的多个发起方进行数据交互。
如图3a所示,该数据访问的方法可以包括如下步骤:
步骤301、接收目标发起方的设置命令,并从设置命令中,确定目标发起方的目标设备地址。
作为一示例,目标发起方可以指多个发起方中的任意一个发起方,该目标发起方在需要与接收方进行SCSI交互来获取VPD(后续将目标发起方本次所要获取的VPD称作目标产品数据)时,可以向接收方发送一设置命令(Readcontrol命令);该设置命令可以用于指示接收方准备相应的目标产品数据。
接收方在接收到目标发起方发送的设置命令后,可以先从该设置命令中确定目标发起方的目标设备地址;示例性的,该目标设备地址可以为SAS(Server AddressableSystem,服务器可寻址系统)地址。SAS地址是一个64位长度的标识符,用于标识SAS设备,如硬盘驱动器、RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列)控制器等。通过SAS地址,可以在SAS网络中唯一地确定一个设备,并对其进行访问和控制。
作为一示例,目标发起方可以为一SAS设备,本发明实施例对此不作限制。
步骤302、响应于设置命令,获取目标产品数据,并将目标产品数据存储在目标设备地址对应的目标数据链表中。
在确定目标设备地址后,接收方可以响应于该设置命令,获取目标发起方所要获取的目标产品数据。
为了使得后续在返回目标产品数据的时候,能够确定是向哪个发起方返回目标产品数据,接收方在获取到目标产品数据后,可以将目标产品数据存储在目标设备地址对应的目标数据链表中,该目标数据链表在当前仅属于目标设备地址;基于目标设备地址,接收方可以确定目标发起方所要获取的是什么数据,且基于目标设备地址,也可以使得接收方可以确定向哪个发起方返回目标产品数据。
作为一示例,目标产品数据可以为硬件设备的状态数据,示例性的,目标产品数据可以为风扇、显示器、LED(Light-Emitting Diode,发光二极管)、硬盘等的各种状态数据;例如:可以为风扇的档位、电压、电流等,本发明实施例对此不作限制。
目标数据链表可以用于存储目标设备地址对应的目标发起方所要获取的VPD。
步骤303、响应于目标发起方的查询命令,根据目标设备地址,从目标数据链表中获取目标产品数据,并将目标产品数据返回给目标发起方。
在一些可行的实施例中,接收方在完成目标产品数据的获取和存储后,可以向目标发起方进行响应;目标发起方在接收到接收方的响应后,可以向接收方发出读取数据的查询命令。
接收方在接收到查询命令后,可以先对该查询命令进行解析,以确定目标发起方的目标设备地址。
然后,接收方可以根据该目标设备地址,确定目标设备地址所关联的目标数据链表,并从该目标数据链表中获取目标产品数据。
在获取到目标产品数据后,接收方可以将该目标产品数据返回给目标发起方,从而完成目标发起方访问接收方,并完成目标产品数据读取的过程。相对于图1、图2的访问方式,实施本发明实施例基于目标设备地址来进行数据的交互,从而将数据返回给正确的发起方,解决了对于多个发起方需要多条SES指令完成交互的场景中,SES规定多发起方必须顺序访问,多发起方并发访问接收方数据时,会导致获取的数据错乱的问题,解决了SES的局限性,实现了多发起方并发访问接收方数据。
在本发明一实施例中,上述方法还可以包括如下步骤:
在接收到目标发起方的目标命令后,对目标命令进行解析;当目标命令为设置命令时,执行响应于设置命令,获取目标产品数据的步骤;当目标命令为查询命令时,执行响应于目标发起方的查询命令,根据目标设备地址,从目标数据链表中获取目标产品数据,并将目标产品数据返回给目标发起方的步骤。
在一些可行的实施例中,接收方在接收到目标发起方发送来的目标命令时,是不清楚该目标命令是设置命令还是查询命令;因此,接收方在接收到目标发起方的目标命令后,可以先对目标命令进行解析;示例性的,可以在接收方中设置SES协议处理层。SES协议处理层在接收到目标命令后,可以先对该目标命令进行解析。该目标命令可以为SES命令。
如果解析结果标识目标命令为设置命令,则接收方可以执行响应于设置命令,获取目标产品数据的步骤;反之,如果解析结果表示目标命令为设置命令,则接收方可以执行响应于目标发起方的查询命令,根据目标设备地址,从目标数据链表中获取目标产品数据,并将目标产品数据返回给目标发起方的步骤,本发明实施例对此不作限制。
在一些可行实施例中,还可以在接收方中设置SCSI协议处理层,以用于对目标命令中的SCSI报文进行解析,并获取到目标发起方的目标设备地址。
在本发明一实施例中,接收方包括级联的第一接收方和第二接收方。
在一些可行的实施例中,接收方可以包括有级联的第一接收方和第二接收方;在本发明实施例中,无论是第一接收方还是第二接收方,都可以通过上述方法来完成数据访问;具体的,目标发起方可以基于目标设备地址来从第一接收方获取目标产品数据,也可以从第二接收方获取目标产品数据,本发明实施例对此不作限制。
如图3b所示,第一接收方与第二接收方为级联的关系;多个发起方可以直接访问第一接收方,也可以访问直接第二接收方,且第一接收方和第二接收方可以基于设备地址确定向哪个发起方返回产品数据。
本发明实施例中,小型计算机系统接口交互的接收方可以先接收目标发起方的设置命令,并从设置命令中,确定目标发起方的目标设备地址;然后响应于设置命令,获取目标产品数据,并将目标产品数据存储在目标设备地址对应的目标数据链表中;接下来再响应于目标发起方的查询命令,根据目标设备地址,从目标数据链表中获取目标产品数据,并将目标产品数据返回给目标发起方。通过本发明实施例,发起方和接收方可以基于设备地址来进行数据的交互,从而使得接收方可以将数据返回给正确的发起方,解决了对于多个发起方需要多条SES指令完成交互的场景中,SES规定多发起方必须顺序访问,多发起方并发访问接收方数据时,会导致获取的数据错乱的问题,解决了SES的局限性,实现了多发起方并发访问接收方数据。
参照图4,图4示出了本发明实施例的另一种数据访问的方法的步骤流程图;如图4所示,该数据访问的方法可以包括如下步骤:
步骤401、接收目标发起方的设置命令,并从设置命令中,确定目标发起方的目标设备地址。
接收方在接收到目标发起方发送的设置命令后,可以先对该设置命令进行解析,以从设置命令中获取目标发起方的目标设备地址。
步骤402、响应于设置命令,获取目标产品数据。
在确定目标设备地址后,接收方可以响应于该设置命令,获取目标发起方所要获取的目标产品数据。
步骤403、为目标设备地址分配一目标主机标识,并在预设的映射关系中,建立目标设备地址与目标主机标识的对应关系。
在实际应用中,直接以目标设备地址作为索引来进行后续步骤时,那么每当有新的发起方加入或离开时,都需要对数据结构进行相应的调整。且如果直接使用目标设备地址作为索引,那么当发起方的物理地址发生变化时(例如,由于网络配置更改或设备移动),相关的数据结构也需要更新。这可能会增加系统的复杂性和维护成本。另外目标设备地址可能暴露有关系统网络配置的敏感信息,这在某些安全敏感的环境中可能是一个问题。
基于这些问题,在一些可行的实施例中,可以为目标设备地址分配一具备唯一性的目标主机标识;在当前时刻,目标主机标识仅用于标识目标设备地址对应的目标发起方。
在为目标设备地址分配目标主机标识后,可以在一预设的映射关系中,建立该目标设备地址与目标主机标识的对应关系;该映射关系中还存储有其他的设备地址与主机标识的对应关系,本发明实施例对此不作限制。
作为一示例,该目标主机标识可以为一串字符,例如:可以为纯数字串,也可以为纯字母串,还可以为混合字符串,本发明实施例对此不作限制。
在本发明一实施例中,在为目标设备地址分配一目标主机标识之前,上述方法还可以包括如下步骤:
遍历映射关系;当映射关系中未匹配到目标设备地址时,执行为目标设备地址分配一目标主机标识的步骤。
在一些可行的实施例中,接收方在得到目标设备地址后,可以先遍历前述预设的映射关系,以确定该目标设备地址是否已经存储在映射关系中,从而避免重复目标设备地址在一个时刻具备两个主机标识。
在遍历映射关系的时候,如果在映射关系中没有匹配到目标设备地址的话,可以表示该目标设备地址当前未存储在映射关系中,当前的映射关系中未给目标设备地址分配主机标识;此时,接收方可以执行为目标设备地址分配一目标主机标识的步骤。
反之,如果在映射关系中匹配到目标设备地址的话,可以表示该目标设备地址当前存储在映射关系中,当前的映射关系中有给目标设备地址分配主机标识;此时,接收方可以不执行为目标设备地址分配一目标主机标识的步骤。
在本发明一实施例中,映射关系中针对各主机标识设置有有效状态,有效状态可以为“有效”或者“无效”;上述方法还可以包括如下步骤:
当检测到目标发起方与接收方断开连接时,将目标发起方对应的目标主机标识的有效状态置为无效。
在一些可行的实施例中,接收方在检测到目标发起方被拔除,即目标发起方与接收方断开连接的时候,可以将目标发起方对应的目标主机标识的有效状态置为“无效”。反之,如果目标发起方正常与接收方连接的时候,可以将目标发起方对应的目标主机标识的有效状态保持为“有效”。
作为一示例,可以通过如下方式将目标发起方对应的目标主机标识的有效状态置为无效:
当检测到目标发起方与接收方断开连接时,针对目标发起方进行广播;在预设时间内,若未接收到目标发起方针对广播的响应,将目标发起方对应的目标主机标识的有效状态置为无效。
在一些可行的实施例中,接收方在检测到目标发起方被拔除,即目标发起方与接收方断开连接的时候,可以先针对目标发起方进行广播,该广播可以用于通知目标发起方当前是否断开连接。
目标发起方若接收到该广播,则可以向接收方针对该广播进行响应;接收方接收到该响应,则可以不再执行将目标发起方对应的目标主机标识的有效状态置为无效的步骤。
反之,如果目标发起方与接收方确定断开连接,则目标发起方是无法接收到该广播的,进而无法作出响应;此时,接收方如果在预设时间内未接收到目标发起方针对广播的响应的话,可以认定目标发起方与接收方断开连接;此时,接收方可以将目标发起方的目标设备地址所对应的目标主机标识的有效状态置为无效,并删除该目标主机标识对应的目标设备地址,以便后续复用该目标主机标识。
其中,预设时间可以根据SCSI主机响应广播报文的策略灵活配置,本发明实施例对此不作限制。
在本发明一实施例中,基于有效状态的变化,上述步骤403可以通过如下子步骤来实现:
子步骤11、将一有效状态为无效的主机标识分配给目标设备地址,并将有效状态为无效的主机标识作为目标主机标识。
在一些可行的实施例中,当存在有效状态为“无效”的主机标识的时候,可以对该主机标识进行复用;具体的,在需要对目标设备地址分配主机标识的时候,可以将有效状态为“无效”的主机标识分配给目标设备地址,并将该有效状态为“无效”的主机标识作为目标主机标识。
子步骤12、在预设的映射关系中,建立目标设备地址与目标主机标识的对应关系。
在为目标设备地址分配目标主机标识后,可以在预设的映射关系中,建立该目标设备地址与目标主机标识的对应关系。
子步骤13、置目标主机标识的有效状态为有效
在建立目标设备地址与目标主机标识的对应关系后,可以将映射关系中,目标主机标识的有效状态从“无效”置为“有效”。
在本发明另一实施例中,也可以通过如下子步骤来为目标设备地址分配一目标主机标识:
子步骤21、确定当前已分配到的主机标识。
在一些可行的实施例中,主机标识可以从0开始分配;每获取到一个新的设备地址,主机标识就加1,并将映射关系中的该主机标识的有效状态置为“有效”。
在为目标设备地址分配主机标识的时候,可以先确定当前已经分配到的主机标识;示例性的,上一次分配给设备地址的主机标识为3,则可以将“3”作为当前已分配到的主机标识。
子步骤22、在当前已分配到的主机标识的基础上加一,得到目标主机标识,并将目标主机标识分配给目标设备地址
在确定当前已分配到的主机标识后,可以在当前已分配到的主机标识的基础上加一,得到目标主机标识;示例性的,当“3”为当前已分配到的主机标识时,可以将3+1=4,然后将“4”作为目标主机标识。
在确定目标主机标识后,可以将目标主机标识分配给目标设备地址。
在本发明一实施例中,上述方法还可以包括如下步骤:
当映射关系中匹配到目标设备地址,判断目标设备地址在映射关系中的目标主机标识的有效状态是否为无效;当目标设备地址在映射关系中的目标主机标识的有效状态为无效时,置目标主机标识的有效状态为有效。
在一些可行的实施例中,在将目标主机标识的有效状态置为“无效”后,可以先不删除该目标主机标识对应的目标设备地址。
在遍历映射关系,以确定映射关系中是否存在目标设备地址的时候,如果在映射关系中匹配到目标设备地址的话,可以进一步判定目标设备地址在映射关系中的目标主机标识的有效状态是否为无效。
如果目标设备地址在映射关系中的目标主机标识的有效状态为“有效”,则可以继续执行步骤404。
反之,如果目标设备地址在映射关系中的目标主机标识的有效状态为无效,则可以先将目标主机标识的有效状态从“无效”置为“有效”后,再执行步骤404,本发明实施例对此不作限制。
步骤404、确定目标主机标识对应的目标数据链表,并将目标产品数据存储在目标数据链表中。
在预设的映射关系中,建立目标设备地址与目标主机标识的对应关系之后,可以确定目标主机标识对应的目标数据链表;其中,一个数据链表对应一个主机标识。
在确定目标数据链表后,接收方可以将所获取的目标产品数据存储至目标数据链表中。
步骤405、响应于目标发起方的查询命令,从映射关系中,确定与目标设备地址对应的目标主机标识。
在一些可行的实施例中,接收方在完成目标产品数据的获取和存储后,可以向目标发起方进行响应;目标发起方在接收到接收方的响应后,可以向接收方发出读取数据的查询命令。
接收方在接收到查询命令后,可以先对该查询命令进行解析,以确定目标发起方的目标设备地址。
在确定目标发起方的目标设备地址后,接收方可以遍历映射关系,以确定与目标设备地址对应的目标主机标识。
步骤406、确定目标主机标识所对应的目标数据链表,并从目标数据链表中获取目标产品数据。
接下来,接收方可以确定与目标主机标识所对应的目标数据链表,并从该目标数据链表中,获取目标产品数据。
步骤407、向目标设备地址所对应的目标发起方发送目标产品数据。
接收方在获取到目标产品数据后,可以向目标设备地址所对应的目标发起方返回该目标产品数据。
在本发明一实施例中,接收方可以包括有级联的第一接收方和第二接收方;第一接收方和第二接收方均可以通过上述方法来完成数据访问。
在本发明实施例中,接收目标发起方的设置命令,并从设置命令中,确定目标发起方的目标设备地址;响应于设置命令,获取目标产品数据;为目标设备地址分配一目标主机标识,并在预设的映射关系中,建立目标设备地址与目标主机标识的对应关系。确定目标主机标识对应的目标数据链表,并将目标产品数据存储在目标数据链表中;响应于目标发起方的查询命令,从映射关系中,确定与目标设备地址对应的目标主机标识;确定目标主机标识所对应的目标数据链表,并从目标数据链表中获取目标产品数据;向目标设备地址所对应的目标发起方发送目标产品数据。通过本发明实施例,可以避免直接基于设备地址来作为索引所存在的诸多问题,进一步提高了本数据访问的方法的实用性。
参照图5a,图5a示出了本发明实施例的另一种数据访问的方法的步骤流程图;如图5a所示,该数据访问的方法可以包括如下步骤:
步骤501、接收目标发起方的设置命令,并从设置命令中,确定目标发起方的目标设备地址。
接收方在接收到目标发起方发送的设置命令后,可以先对该设置命令进行解析,以从设置命令中获取目标发起方的目标设备地址。
步骤502、接收方设置有多个数据获取模块,一个数据获取模块对应一种硬件设备,根据设置命令,确定目标产品数据的偏移量、长度,以及目标产品数据所对应的硬件设备,并在目标数据链表中为目标产品数据分配目标存储区域。
在一些可行的实施例中,接收方可以设置有多个数据获取模块,一个数据获取模块对应一种硬件设备,一个数据获取模块可以从一种硬件设备获取VPD;示例性的,数据获取模块可以包括有:主板数据获取模块、背板数据获取模块等,本发明实施例对此不作限制。
接收方在接收到设置命令后,可以先对设置命令进行解析,以确定目标发起方待获取的目标产品数据的偏移量和长度,以及目标产品数据所对应的硬件设备。然后,接收方可以在目标数据链表中为目标产品数据分配目标存储区域。
步骤503、根据目标产品数据所对应的硬件设备,确定目标数据获取模块。
在确定目标产品数据所对应的硬件设备后,接收方可以从多个数据获取模块中,确定用于从硬件设备获取VPD的目标数据获取模块。
步骤504、调用目标数据获取模块,根据目标产品数据的偏移量、长度,从目标产品数据所对应的硬件设备中获取目标产品数据。
然后,接收方可以调用该目标数据获取模块,根据目标产品数据的偏移量、长度,从目标产品数据所对应的硬件设备中获取目标产品数据。
作为一示例,当目标产品数据为静态数据时,如果目标产品数据在先已经获取过的话,则接收方可以复用在先获取的;反之,当目标产品数据为动态数据时,为了保证数据的实时性,接收方可以在接收到设置命令时重新获取,本发明实施例对此不作限制、
步骤505、将目标产品数据存储至目标数据链表中的目标存储区域。
在得到目标产品数据后,接收方可以将目标产品数据存储至目标数据链表中的目标存储区域。
步骤506、对查询命令进行解析,确定目标设备地址,以及确定待获取的目标产品数据所对应的硬件设备。
接收方在接收到查询命令后,可以对查询命令进行解析,以确定目标发起方的目标设备地址,并确定目标发起方所要获取的目标产品数据所对应的硬件设备。
步骤507、从映射关系中,确定目标设备地址对应的目标主机标识。
在得到目标设备地址后,接收方可以遍历映射关系,以确定目标设备地址所对应的目标主机标识。
步骤508、确定与目标主机标识对应的目标数据链表。
在确定目标设备地址对应的目标主机标识后,接收方可以确定与目标主机标识对应的目标数据链表。
步骤509、遍历目标数据链表,确定与目标产品数据所对应的硬件设备对应的目标存储区域,并从目标存储区域中获取目标产品数据。
在确定目标数据链表后,接收方可以遍历目标数据链表,以在目标数据链表中,确定与目标产品数据所对应的硬件设备对应的目标存储区域。
然后,接收方可以从该目标存储区域中获取目标发起方所要获取的目标产品数据。
步骤510、将目标产品数据返回给目标发起方。
接收方在获取到目标产品数据后,可以向目标设备地址所对应的目标发起方返回该目标产品数据。
在本发明一实施例中,接收方可以包括有级联的第一接收方和第二接收方;第一接收方和第二接收方均可以通过上述方法来完成数据访问。
以下,结合图5b,对上述数据访问的方法进行进一步说明:
如图5b所示,多个发起方(发起方0、发起方1、发起方2)可以为SCSI主机,多个发起方可以向接收方发起SCSI交互获取VPD数据,当有多个发起方时,可以顺序发送SCSI交互,也可以并发向接收方发送SCSI交互来获取Exp数据。
如图5b所示,接收方中设置有小型计算机系统接口协议处理层、小型计算机系统接口存储模块服务协议处理层和应用层,应用层设置有主板数据获取模块、背板数据获取模块,以及地址老化模块。
其中,小型计算机系统接口协议处理层主要是接收和处理SCSI报文,获取SCSI主机的设备地址(即SAS地址),分配主机标识(即HostId),生成SAS地址和HostId的映射关系。
SES协议处理层主要是完成SES命令解析,维护以HostId为唯一索引的数据链表。
Exp应用层主要是根据命令的解析结果完成具体的动作,如获取主板VPD数据、背板VPD数据等。
地址老化模块主要作用是当SCSI主机被拔掉后,更新SAS地址和HostId映射表,将被拔掉的SCSI主机的SAS地址对应的映射关系的表项的有效状态置为无效。
在图5b中,接收方可以为新的设备地址(EE:FF)分配主机标识3,并将主机标识3对应的表象的有效状态置为“有效”,添加后的映射关系可以如下表:
表1:
其中,可以将主板数据获取模块获取的数据存储至主机标识3对应的数据链表的Node1中,将背板数据获取模块获取的数据存储至主机标识3对应的数据链表的NodeN中。
本发明实施例中,接收目标发起方的设置命令,并从设置命令中,确定目标发起方的目标设备地址;接收方设置有多个数据获取模块,一个数据获取模块对应一种硬件设备,根据设置命令,确定目标产品数据的偏移量、长度,以及目标产品数据所对应的硬件设备,并在目标数据链表中为目标产品数据分配目标存储区域;根据目标产品数据所对应的硬件设备,确定目标数据获取模块;调用目标数据获取模块,根据目标产品数据的偏移量、长度,从目标产品数据所对应的硬件设备中获取目标产品数据;将目标产品数据存储至目标数据链表中的目标存储区域;对查询命令进行解析,确定目标设备地址,以及确定待获取的目标产品数据所对应的硬件设备;从映射关系中,确定目标设备地址对应的目标主机标识;确定与目标主机标识对应的目标数据链表;遍历目标数据链表,确定与目标产品数据所对应的硬件设备对应的目标存储区域,并从目标存储区域中获取目标产品数据;将目标产品数据返回给目标发起方。通过本发明实施例,发起方和接收方可以基于设备地址来进行数据的交互,从而使得接收方可以将数据返回给正确的发起方,解决了对于多个发起方需要多条SES指令完成交互的场景中,SES规定多发起方必须顺序访问,多发起方并发访问接收方数据时,会导致获取的数据错乱的问题,解决了SES的局限性,实现了多发起方并发访问接收方数据。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图6,示出了本发明实施例的一种数据访问的装置的结构示意图,该装置可以应用于小型计算机系统接口交互的接收方,接收方通过小型计算机系统接口存储模块服务协议,与小型计算机系统接口交互的多个发起方进行数据交互,该装置可以包括如下模块:
地址确定模块601,用于接收目标发起方的设置命令,并从设置命令中,确定目标发起方的目标设备地址;
存储模块602,用于响应于设置命令,获取目标产品数据,并将目标产品数据存储在目标设备地址对应的目标数据链表中;
返回模块603,用于响应于目标发起方的查询命令,根据目标设备地址,从目标数据链表中获取目标产品数据,并将目标产品数据返回给目标发起方。
在本发明一些实施例中,存储模块602,用于为目标设备地址分配一目标主机标识,并在预设的映射关系中,建立目标设备地址与目标主机标识的对应关系;确定目标主机标识对应的目标数据链表,并将目标产品数据存储在目标数据链表中;
返回模块603,用于响应于目标发起方的查询命令,从映射关系中,确定与目标设备地址对应的目标主机标识;确定目标主机标识所对应的目标数据链表,并从目标数据链表中获取目标产品数据;向目标设备地址所对应的目标发起方发送目标产品数据。
在本发明一些实施例中,装置还包括:
遍历模块,用于在为目标设备地址分配一目标主机标识之前,遍历映射关系;
存储模块602,用于当映射关系中未匹配到目标设备地址时,为目标设备地址分配一目标主机标识。
在本发明一些实施例中,映射关系中针对各主机标识设置有有效状态;装置还包括:
状态设置模块,用于当检测到目标发起方与接收方断开连接时,将目标发起方对应的目标主机标识的有效状态置为无效。
在本发明一些实施例中,存储模块602,用于将一有效状态为无效的主机标识分配给目标设备地址,并将有效状态为无效的主机标识作为目标主机标识;在预设的映射关系中,建立目标设备地址与目标主机标识的对应关系;置目标主机标识的有效状态为有效。
在本发明一些实施例中,存储模块602,用于确定当前已分配到的主机标识;在当前已分配到的主机标识的基础上加一,得到目标主机标识,并将目标主机标识分配给目标设备地址。
在本发明一些实施例中,接收方设置有多个数据获取模块,一个数据获取模块对应一种硬件设备;存储模块602,用于根据设置命令,确定目标产品数据的偏移量、长度,以及目标产品数据所对应的硬件设备,并在目标数据链表中为目标产品数据分配目标存储区域;根据目标产品数据所对应的硬件设备,确定目标数据获取模块;调用目标数据获取模块,根据目标产品数据的偏移量、长度,从目标产品数据所对应的硬件设备中获取目标产品数据;
存储模块602,用于将目标产品数据存储至目标数据链表中的目标存储区域。
在本发明一些实施例中,存储模块602,用于对查询命令进行解析,确定目标设备地址,以及确定待获取的目标产品数据所对应的硬件设备;从映射关系中,确定目标设备地址对应的目标主机标识;确定与目标主机标识对应的目标数据链表;遍历目标数据链表,确定与目标产品数据所对应的硬件设备对应的目标存储区域,并从目标存储区域中获取目标产品数据。
在本发明一些实施例中,状态设置模块,用于当检测到目标发起方与接收方断开连接时,针对目标发起方进行广播;在预设时间内,若未接收到目标发起方针对广播的响应,将目标发起方对应的目标主机标识的有效状态置为无效。
在本发明一些实施例中,装置还包括:
重置模块,用于当映射关系中匹配到目标设备地址,判断目标设备地址在映射关系中的目标主机标识的有效状态是否为无效;当目标设备地址在映射关系中的目标主机标识的有效状态为无效时,置目标主机标识的有效状态为有效。
在本发明一些实施例中,装置还包括:
解析模块,用于在接收到目标发起方的目标命令后,对目标命令进行解析;
存储模块602,用于当目标命令为设置命令时,响应于设置命令,获取目标产品数据;
返回模块603,用于当目标命令为查询命令时,响应于目标发起方的查询命令,根据目标设备地址,从目标数据链表中获取目标产品数据,并将目标产品数据返回给目标发起方。
在本发明一些实施例中,接收方包括级联的第一接收方和第二接收方
本发明实施例中,小型计算机系统接口交互的接收方可以先接收目标发起方的设置命令,并从设置命令中,确定目标发起方的目标设备地址;然后响应于设置命令,获取目标产品数据,并将目标产品数据存储在目标设备地址对应的目标数据链表中;接下来再响应于目标发起方的查询命令,根据目标设备地址,从目标数据链表中获取目标产品数据,并将目标产品数据返回给目标发起方。通过本发明实施例,发起方和接收方可以基于设备地址来进行数据的交互,从而使得接收方可以将数据返回给正确的发起方,解决了对于多个发起方需要多条SES指令完成交互的场景中,SES规定多发起方必须顺序访问,多发起方并发访问接收方数据时,会导致获取的数据错乱的问题,解决了SES的局限性,实现了多发起方并发访问接收方数据。
本发明实施例还提供了一种电子设备,如图7所示,该电子设备7包括处理器701、存储器702及存储在存储器702上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上的数据访问的方法。
本发明实施例还提供了一种非易失性计算机可读存储介质,如图8所示,该非易失性计算机可读存储介质8上存储计算机程序801,计算机程序801被处理器执行时实现如上的数据访问的方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对所提供的一种数据访问的方法、一种数据访问的装置、一种电子设备和一种非易失性计算机可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (15)
1.一种数据访问的方法,其特征在于,应用于小型计算机系统接口交互的接收方,所述接收方通过小型计算机系统接口存储模块服务协议,与小型计算机系统接口交互的多个发起方进行数据交互,所述方法包括:
接收目标发起方的设置命令,并从所述设置命令中,确定所述目标发起方的目标设备地址;
响应于所述设置命令,获取目标产品数据,并将所述目标产品数据存储在所述目标设备地址对应的目标数据链表中;
响应于所述目标发起方的查询命令,根据所述目标设备地址,从所述目标数据链表中获取所述目标产品数据,并将所述目标产品数据返回给所述目标发起方。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标产品数据存储在所述目标设备地址对应的目标数据链表中,包括:
为所述目标设备地址分配一目标主机标识,并在预设的映射关系中,建立所述目标设备地址与所述目标主机标识的对应关系;
确定所述目标主机标识对应的目标数据链表,并将所述目标产品数据存储在所述目标数据链表中;
所述响应于所述目标发起方的查询命令,根据所述目标设备地址,从所述目标数据链表中获取所述目标产品数据,并将所述目标产品数据返回给所述目标发起方,包括:
响应于所述目标发起方的查询命令,从所述映射关系中,确定与所述目标设备地址对应的目标主机标识;
确定所述目标主机标识所对应的目标数据链表,并从所述目标数据链表中获取所述目标产品数据;
向所述目标设备地址所对应的目标发起方发送所述目标产品数据。
3.根据权利要求2所述的方法,其特征在于,在为所述目标设备地址分配一目标主机标识之前,所述方法还包括:
遍历所述映射关系;
当所述映射关系中未匹配到所述目标设备地址时,执行为所述目标设备地址分配一目标主机标识的步骤。
4.根据权利要求3所述的方法,其特征在于,所述映射关系中针对各主机标识设置有有效状态;所述方法还包括:
当检测到所述目标发起方与所述接收方断开连接时,将所述目标发起方对应的目标主机标识的有效状态置为无效。
5.根据权利要求4所述的方法,其特征在于,所述为所述目标设备地址分配一目标主机标识,并在预设的映射关系中,建立所述目标设备地址与所述目标主机标识的对应关系,包括:
将一有效状态为无效的主机标识分配给所述目标设备地址,并将所述有效状态为无效的主机标识作为所述目标主机标识;
在预设的映射关系中,建立所述目标设备地址与所述目标主机标识的对应关系;
置所述目标主机标识的有效状态为有效。
6.根据权利要求2所述的方法,其特征在于,所述为所述目标设备地址分配一目标主机标识,包括:
确定当前已分配到的主机标识;
在所述当前已分配到的主机标识的基础上加一,得到目标主机标识,并将所述目标主机标识分配给所述目标设备地址。
7.根据权利要求2所述的方法,其特征在于,所述接收方设置有多个数据获取模块,一个数据获取模块对应一种硬件设备;所述响应于所述设置命令,获取目标产品数据,包括:
根据所述设置命令,确定所述目标产品数据的偏移量、长度,以及所述目标产品数据所对应的硬件设备,并在所述目标数据链表中为所述目标产品数据分配目标存储区域;
根据所述目标产品数据所对应的硬件设备,确定目标数据获取模块;
调用所述目标数据获取模块,根据所述目标产品数据的偏移量、长度,从目标产品数据所对应的硬件设备中获取所述目标产品数据;
所述将所述目标产品数据存储在所述目标设备地址对应的目标数据链表中,包括:
将所述目标产品数据存储至所述目标数据链表中的目标存储区域。
8.根据权利要求7所述的方法,其特征在于,所述响应于所述目标发起方的查询命令,根据所述目标设备地址,从所述目标数据链表中获取所述目标产品数据,包括:
对所述查询命令进行解析,确定所述目标设备地址,以及确定待获取的目标产品数据所对应的硬件设备;
从所述映射关系中,确定所述目标设备地址对应的目标主机标识;
确定与所述目标主机标识对应的目标数据链表;
遍历所述目标数据链表,确定与所述目标产品数据所对应的硬件设备对应的目标存储区域,并从所述目标存储区域中获取所述目标产品数据。
9.根据权利要求4所述的方法,其特征在于,所述当检测到所述目标发起方与所述接收方断开连接时,将所述目标发起方对应的目标主机标识的有效状态置为无效,包括:
当检测到所述目标发起方与所述接收方断开连接时,针对所述目标发起方进行广播;
在预设时间内,若未接收到所述目标发起方针对所述广播的响应,将所述目标发起方对应的目标主机标识的有效状态置为无效。
10.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述映射关系中匹配到所述目标设备地址,判断所述目标设备地址在所述映射关系中的目标主机标识的有效状态是否为无效;
当所述目标设备地址在所述映射关系中的目标主机标识的有效状态为无效时,置所述目标主机标识的有效状态为有效。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到所述目标发起方的目标命令后,对所述目标命令进行解析;
当所述目标命令为设置命令时,执行响应于所述设置命令,获取目标产品数据的步骤;
当所述目标命令为查询命令时,执行响应于所述目标发起方的查询命令,根据所述目标设备地址,从所述目标数据链表中获取所述目标产品数据,并将所述目标产品数据返回给所述目标发起方的步骤。
12.根据权利要求1所述的方法,其特征在于,
所述接收方包括级联的第一接收方和第二接收方。
13.一种数据访问的装置,其特征在于,应用于小型计算机系统接口交互的接收方,所述接收方通过小型计算机系统接口存储模块服务协议,与小型计算机系统接口交互的多个发起方进行数据交互,所述装置包括:
地址确定模块,用于接收目标发起方的设置命令,并从所述设置命令中,确定所述目标发起方的目标设备地址;
存储模块,用于响应于所述设置命令,获取目标产品数据,并将所述目标产品数据存储在所述目标设备地址对应的目标数据链表中;
返回模块,用于响应于所述目标发起方的查询命令,根据所述目标设备地址,从所述目标数据链表中获取所述目标产品数据,并将所述目标产品数据返回给所述目标发起方。
14.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至12中任一项所述数据访问的方法。
15.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至12中任一项所述数据访问的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410223688.3A CN117807136B (zh) | 2024-02-29 | 2024-02-29 | 一种数据访问的方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410223688.3A CN117807136B (zh) | 2024-02-29 | 2024-02-29 | 一种数据访问的方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117807136A true CN117807136A (zh) | 2024-04-02 |
CN117807136B CN117807136B (zh) | 2024-07-02 |
Family
ID=90422169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410223688.3A Active CN117807136B (zh) | 2024-02-29 | 2024-02-29 | 一种数据访问的方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117807136B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6697875B1 (en) * | 2000-06-27 | 2004-02-24 | Sun Microsystems, Inc. | Methods for building and using a network device database |
US20060143543A1 (en) * | 2004-12-10 | 2006-06-29 | Emulex Design & Manufacturing Corporation | Abstracting the protocol processing of storage enclosure services from the control of enclosure hardware |
US8019842B1 (en) * | 2005-01-27 | 2011-09-13 | Netapp, Inc. | System and method for distributing enclosure services data to coordinate shared storage |
US20110246677A1 (en) * | 2010-04-05 | 2011-10-06 | Lsi Logic Corporation | Systems and methods for controlling commands for target devices |
CN111209236A (zh) * | 2020-01-03 | 2020-05-29 | 苏州浪潮智能科技有限公司 | 一种多级级联expander的通信方法 |
CN112463594A (zh) * | 2020-11-13 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种sas链路调试方法、装置、设备及计算机存储介质 |
CN113836062A (zh) * | 2021-09-12 | 2021-12-24 | 苏州浪潮智能科技有限公司 | 一种数据交互方法、系统、存储介质及设备 |
US20230004518A1 (en) * | 2019-12-06 | 2023-01-05 | Inspur Suzhou Intelligent Technology Co., Ltd. | Data Transmission Method, Apparatus, and Device, and Storage Medium |
CN116401109A (zh) * | 2023-04-14 | 2023-07-07 | 苏州浪潮智能科技有限公司 | 一种机箱管理系统控制方法、装置、介质 |
-
2024
- 2024-02-29 CN CN202410223688.3A patent/CN117807136B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6697875B1 (en) * | 2000-06-27 | 2004-02-24 | Sun Microsystems, Inc. | Methods for building and using a network device database |
US20060143543A1 (en) * | 2004-12-10 | 2006-06-29 | Emulex Design & Manufacturing Corporation | Abstracting the protocol processing of storage enclosure services from the control of enclosure hardware |
US8019842B1 (en) * | 2005-01-27 | 2011-09-13 | Netapp, Inc. | System and method for distributing enclosure services data to coordinate shared storage |
US20110246677A1 (en) * | 2010-04-05 | 2011-10-06 | Lsi Logic Corporation | Systems and methods for controlling commands for target devices |
US20230004518A1 (en) * | 2019-12-06 | 2023-01-05 | Inspur Suzhou Intelligent Technology Co., Ltd. | Data Transmission Method, Apparatus, and Device, and Storage Medium |
CN111209236A (zh) * | 2020-01-03 | 2020-05-29 | 苏州浪潮智能科技有限公司 | 一种多级级联expander的通信方法 |
CN112463594A (zh) * | 2020-11-13 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种sas链路调试方法、装置、设备及计算机存储介质 |
CN113836062A (zh) * | 2021-09-12 | 2021-12-24 | 苏州浪潮智能科技有限公司 | 一种数据交互方法、系统、存储介质及设备 |
CN116401109A (zh) * | 2023-04-14 | 2023-07-07 | 苏州浪潮智能科技有限公司 | 一种机箱管理系统控制方法、装置、介质 |
Non-Patent Citations (1)
Title |
---|
冯泳, 张延园: "存储区域网络中存储资源性能监视技术的研究", 西北工业大学学报, no. 04, 30 August 2003 (2003-08-30) * |
Also Published As
Publication number | Publication date |
---|---|
CN117807136B (zh) | 2024-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3418877B1 (en) | Data writing and reading method and apparatus, and cloud storage system | |
US11221763B2 (en) | Disk lock management method, apparatus, and system | |
US11687488B2 (en) | Directory deletion method and apparatus, and storage server | |
CN103257941B (zh) | 多协议存储控制器和系统 | |
US8825819B2 (en) | Mounting specified storage resources from storage area network in machine provisioning platform | |
WO2007134918A1 (en) | Distributed storage | |
US10282120B2 (en) | Method, apparatus and system for inserting disk | |
CN102035815A (zh) | 数据获取方法、接入节点和系统 | |
CN105468300A (zh) | Ip硬盘的管理方法和装置 | |
CN108924043A (zh) | 系统监控方法、网关通信、网关装置、业务处理设备 | |
CN110502187B (zh) | 一种快照回滚方法及装置 | |
US20050235005A1 (en) | Computer system configuring file system on virtual storage device, virtual storage management apparatus, method and signal-bearing medium thereof | |
US20150006748A1 (en) | Dynamic protocol selection | |
CN109906438A (zh) | 处理i/o请求的方法、存储阵列及主机 | |
US20150381727A1 (en) | Storage functionality rule implementation | |
WO2021254214A1 (zh) | 安卓应用程序迁移的方法和装置 | |
US9319350B2 (en) | Virtual address for virtual port | |
CN112148206A (zh) | 一种数据读写方法、装置、电子设备及介质 | |
US11411887B2 (en) | Method and device for performing traffic control on user equipment | |
CN117807136B (zh) | 一种数据访问的方法、装置、电子设备和存储介质 | |
CN117407159A (zh) | 内存空间的管理方法及装置、设备、存储介质 | |
US20080201551A1 (en) | Virtual disk router system and virtual disk access system and method therefor | |
US20140289377A1 (en) | Configuring network storage system over a network | |
CN111193677A (zh) | 一种将主机fc端口归属到对应主机的方法、设备及介质 | |
CN107544746B (zh) | 存储设备的异构处理方法、异构处理装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |