一种数据处理方法及相关设备与流程

文档序号:17356854发布日期:2019-04-09 21:45阅读:151来源:国知局
一种数据处理方法及相关设备与流程

本申请涉及计算机系统领域,尤其涉及一种数据处理方法及相关设备。



背景技术:

网络存储设备是一个专用数据存储服务器,包括cpu、主板、内存等,用来提供跨平台文件共享功能。它以数据为中心,将存储设备与服务器分离,以集中管理数据。

随着网络存储设备中数据存储量的增加,网络存储设备可以通过并行小型计算机系统接口(smallcomputersysteminterface,scsi)外接硬盘的方式来增加存储空间,具体的,网络存储设备通过并行scsi将数据写入到外接硬盘中。

但随着人们对数据存储的需求越来越大,对网络存储设备的数据处理速度提出进一步的要求,现有技术中通过并行scsi与外接硬盘进行通信以处理数据的方式已经无法满足人们的需求,一种更加快速的数据处理方式亟待推出。



技术实现要素:

本申请实施例提供了一种数据处理方法及相关设备,网络存储设备通过sas卡外接硬盘,将scsi读写命令封装为scsi数据包后发送给sas卡,由于scsi数据包的数据头可以供sas卡从多个硬盘中确定目标硬盘,并将scsi读写命令发送给目标硬盘,从而实现了通过sas卡与外接硬盘通信以进行数据处理中,提高了数据处理速度。

第一方面,本申请实施例提供一种数据处理方法,方法应用于数据处理系统,数据处理系统包括网络存储设备、串行小型计算机系统接口sas卡和至少一个硬盘,网络存储设备通过sas卡外接至少一个硬盘,方法包括:

网络存储设备获取小型计算机系统接口scsi读写命令;

网络存储设备对scsi读写命令进行封装,得到封装后的scsi数据包,scsi数据包包含数据头和数据结构,数据头用于供sas卡从至少一个硬盘中确定需要访问的目标硬盘,数据结构中包含scsi读写命令;

网络存储设备将scsi数据包发送给sas卡,scsi数据包用于指示sas卡将scsi读写命令发送到目标硬盘,scsi读写命令用于指示目标硬盘将与scsi读写命令对应的数据结果发送给sas卡;

网络存储设备通过sas卡获取数据结果。

本申请一种可能实现方式中,数据结构还包含数据存放地址,网络存储设备通过sas卡获取数据结果,包括:

网络存储设备从数据存放地址中读取数据结果,数据存储地址用于指示sas卡将目标硬盘发送的数据结果填写到数据存储地址中。

本申请一种可能实现方式中,sas卡上配置有至少一个端口,每个端口上配置有与端口一一对应的至少一个扩展器,sas卡通过扩展器与至少一个外接设备连接,至少一个外接设备中包含至少一个硬盘,方法还包括:

网络存储设备读取sas卡中的配置页信息,配置页信息包含至少一个扩展器的地址信息、至少一个外接设备的地址信息,至少一个外接设备中的每个外接设备与扩展器的归属关系。

本申请一种可能实现方式中,方法还包括:

网络存储设备获取sas卡的属性值,sas卡的属性值用于指示sas卡的数据处理能力;

网络存储设备根据sas卡的数据处理能力为sas卡分配内存地址空间;

网络存储设备向sas卡发送初始化命令,初始化命令中携带有描述内存地址空间的信息;

网络存储设备获取sas卡的端口属性值,并向端口发送使能命令,使能命令用于指示sas卡获取配置页信息。

第二方面,本申请实施例还提供了另一种数据处理方法,方法应用于数据处理系统,数据处理系统包括网络存储设备、串行小型计算机系统接口sas卡和至少一个硬盘,网络存储设备通过sas卡外接至少一个硬盘,方法包括:

sas卡接收并解封小型计算机系统接口scsi数据包,得到scsi数据包的数据头和数据结构;

sas卡根据数据头从至少一个硬盘中确定需要访问的目标硬盘;

sas卡将数据结构中的scsi读写命令发送给目标硬盘,scsi读写命令用于指示目标硬盘获取与scsi读写命令对应的数据结果;

sas卡接收目标硬盘发送的数据结果;

sas卡将数据结果发送给网络存储设备。

本申请一种可能实现方式中,数据结构还包含数据存放地址,sas卡将数据结果发送给网络存储设备,包括:

sas卡将数据结果写入数据存放地址中,数据存放地址用于供网络存储设备从数据存放地址中读取数据结果。

本申请一种可能实现方式中,sas卡上配置有至少一个端口,每个端口上配置有与端口一一对应的至少一个扩展器,sas卡通过扩展器与至少一个外接设备连接,至少一个外接设备中包含至少一个硬盘,方法还包括:

sas卡获取配置页信息,配置页信息包含至少一个扩展器的地址信息、至少一个外接设备的地址信息,至少一个外接设备中的每个外接设备与扩展器的归属关系。

本申请一种可能实现方式中,方法还包括:

sas卡向网络存储设备发送sas卡的属性值,sas卡的属性值用于指示sas卡的数据处理能力,sas卡的数据处理能力用于供网络存储设备根据sas卡的数据处理能力为sas卡分配内存地址空间;

sas卡接收网络存储设备发送的初始化命令,初始化命令中携带有描述内存地址空间的信息;

基于初始化命令,sas卡执行初始化操作;

sas卡接收网络存储设备发送的端口使能命令;

sas卡获取配置页信息,具体包括:

基于端口使能命令,sas卡获取配置页信息。

第三方面,本申请实施例提供一种网络存储设备,网络存储设备包含于数据处理系统中,数据处理系统还包括串行小型计算机系统接口sas卡和至少一个硬盘,网络存储设备通过sas卡外接至少一个硬盘,网络存储设备包括:

获取单元,用于获取小型计算机系统接口scsi读写命令;

封装单元,用于对scsi读写命令进行封装,得到封装后的scsi数据包,scsi数据包包含数据头和数据结构,数据头用于供sas卡从至少一个硬盘中确定需要访问的目标硬盘,数据结构中包含scsi读写命令;

发送单元,用于将scsi数据包发送给sas卡,scsi数据包用于指示sas卡将scsi读写命令发送到目标硬盘,scsi读写命令用于指示目标硬盘将与scsi读写命令对应的数据结果发送给sas卡;

获取单元,还用于通过sas卡获取数据结果。

本申请一种可能实现方式中,数据结构还包含数据存放地址,

获取单元具体用于:从数据存放地址中读取数据结果,数据存储地址用于指示sas卡将目标硬盘发送的数据结果填写到数据存储地址中。

本申请一种可能实现方式中,sas卡上配置有至少一个端口,每个端口上配置有与端口一一对应的至少一个扩展器,sas卡通过扩展器与至少一个外接设备连接,至少一个外接设备中包含至少一个硬盘,网络存储设备还包括:

读取单元,用于读取sas卡中的配置页信息,所述配置页信息包含至少一个扩展器的地址信息、至少一个外接设备的地址信息,至少一个外接设备中的每个外接设备与所述扩展器的归属关系。

本申请一种可能实现方式中,获取单元,还用于获取sas卡的属性值,用于指示sas卡的数据处理能力;

网络存储设备还包括:分配单元,用于根据sas卡的数据处理能力为sas卡分配内存地址空间;

发送单元,还用于向sas卡发送初始化命令,初始化命令中携带有描述内存地址空间的信息;

获取单元,还用于获取sas卡的端口属性值,并向sas卡发送端口使能命令,使能命令用于指示sas卡获取配置页信息。

第四方面,本申请实施例提供一种串行小型计算机系统接口sas卡,sas卡包含于数据处理系统中,数据处理系统还包括网络存储设备和至少一个硬盘,网络存储设备通过sas卡外接至少一个硬盘,sas卡包括:

解封单元,用于接收并解封小型计算机系统接口scsi数据包,得到scsi数据包的数据头和数据结构;

确定单元,用于根据数据头从至少一个硬盘中确定需要访问的目标硬盘;

发送单元,用于将数据结构中的小型计算机系统接口scsi读写命令发送给目标硬盘,scsi读写命令用于指示目标硬盘获取与scsi读写命令对应的数据结果;

接收单元,用于接收目标硬盘发送的数据结果;

发送单元,还用于将数据结果发送给网络存储设备。

本申请一种可能实现方式中,数据结构还包含数据存放地址,发送单元,还用于将数据结果写入数据存放地址中,数据存放地址用于供网络存储设备从数据存放地址中读取数据结果。

本申请一种可能实现方式中,sas卡上配置有至少一个端口,每个端口上配置有与端口一一对应的至少一个扩展器,sas卡通过扩展器与至少一个外接设备连接,至少一个外接设备中包含至少一个硬盘,sas卡还包括:

获取单元,用于获取配置页信息,配置页信息包含至少一个扩展器的地址信息、至少一个外接设备的地址信息,至少一个外接设备中的每个外接设备与扩展器的归属关系。

本申请一种可能实现方式中,发送单元,还用于向网络存储设备发送sas卡的属性值,sas卡的属性值用于指示sas卡的数据处理能力,sas卡的数据处理能力用于供网络存储设备根据sas卡的数据处理能力为sas卡分配内存地址空间;

接收单元,还用于接收网络存储设备发送的初始化命令,初始化命令中携带有描述内存地址空间的信息;

sas卡还包括:初始化单元,用于基于初始化命令,执行初始化操作;

接收单元,还用于接收网络存储设备发送的端口使能命令;

获取单元,还用于获取配置页信息,具体包括:

获取单元,还用于基于端口使能命令,获取配置页信息。

第五方面,本申请实施例提供一种网络存储设备,包括存储器和处理器;所述存储器用于存储计算机程序代码;所述处理器用于执行所述存储器存储的代码,使得网络存储设备执行如前述第一方面中任一项所述的方法。

第六方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持网络设备实现上述方面中所涉及的功能,例如,例如发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存网络设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

从以上技术方案可以看出,本申请实施例具有以下优点:

网络存储设备通过sas卡外接由至少一个硬盘,当网络存储设备获取到scsi读写命令时,对scsi读写命令进行封装得到scsi数据包,通过数据头供sas卡从外接的至少一个硬盘中确定需要访问的目标硬盘,在数据结构中放入scsi读写命令,并将scsi数据包发送给sas卡,从而指示sas卡将scsi读写命令发送给目标硬盘,以获得与scsi读写命令对应的数据结果,进而网络存储设备通过sas卡获取到数据结果,从而实现了网络存储设备通过sas卡将数据写入到外接硬盘中,由于sas卡相对于scsi可以提供更快的数据处理速度,本申请提供的方案具体展示了网络存储设备如何通过sas卡实现数据的输入/输出,显著提高了网络存储设备数据交互效率;此外,由于sas卡相较于scsi可以外接更多的硬盘,从而扩展了网络存储设备的存储空间。

附图说明

图1为本申请实施例提供的数据处理方法的一种网络架构示意图;

图2为本申请实施例提供的数据处理方法的一种流程示意图;

图3为本申请实施例提供的数据处理方法的另一种流程示意图;

图4为本申请实施例提供的数据处理方法的又一种流程示意图;

图5为本申请实施例提供的网络存储设备的一种结构示意图;

图6为本申请实施例提供的sas卡的一种结构示意图;

图7为本申请实施例提供的网络存储设备的另一种结构示意图。

具体实施方式

本申请实施例提供了一种数据处理方法及相关设备,网络存储设备通过sas卡外接硬盘,将scsi读写命令封装为scsi数据包后发送给sas卡,由于scsi数据包的数据头可以供sas卡从多个硬盘中确定目标硬盘,并将scsi读写命令发送给目标硬盘,从而实现了通过sas卡与外接硬盘通信以进行数据处理中,提高了数据处理速度。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。术语“至少一个”是指一个或者多个,“多个”是指两个或两个以上。

参见图1所示,为本申请实施例提供的数据处理方法的一种网络架构图,本实施例提供的数据处理方法应用于数据处理系统10中,数据处理系统10包含网络存储设备100、串行小型计算机系统接口(serialattachedsmallcomputersysteminterface,)sas卡110、扩展器(expander)120和外接设备200,其中,外接设备200可以包括硬盘210和/或机箱管理器(enclosure)220或其他设备等。

本申请实施例中,网络存储设备100上配置有至少一个sas卡110,网络存储设备100与sas卡通过高速串行计算机扩展总线(peripheralcomponentinterconnectexpress,pcie)进行通信,用于在获取到小型计算机系统接口(smallcomputersysteminterface,scsi)命令后发送给sas卡110,并获取与scsi命令对应的数据结果。

具体的,网络存储设备100可以为计算机设备、服务器、个人电脑、笔记本电脑或其他类型的具有存储功能的通信设备等。

本申请实施例中,sas卡110上有配置有至少一个端口,每个端口可以插入一个扩展器120,sas卡110可以通过扩展器120外接硬盘210和/或机箱管理器220或其他外接设备,具体此处不再一一列举。

本申请实施例中,每个扩展器120可以连接至少两个外接设备200,用于将网络存储设备100发送给sas卡110的scsi命令传输给外接设备200。

其中,扩展器120上还可以附着有温度传感器、发光二极管(lightemittingdiode,led)或其他元器件,具体此处不做限定。

本申请实施例中,硬盘210用于根据接收到的scsi读命令执行读操作,根据接收到的scsi写命令执行写操作。

本申请实施例中,机箱管理器220用于根据接收到的scsi控制命令控制扩展器120上的元器件工作,作为示例,例如开启温度传感器、关闭温度传感器、调亮led、调灭led或其他类型的控制操作等,具体此处不做限定。

本申请实施例中,虽然图1中只示出了2个sas卡110,但实际情况中每个网络存储设备100上可以配置一个或多个sas卡110。

虽然图1中每个sas卡110上仅示出了两个扩展器120,但实际情况中每个sas卡110上可以配置一个或多个扩展器120。

虽然图1中一个扩展器120上仅连接了两个硬盘210,但实际情况中,一个扩展器120上连接的硬盘210和/或机箱管理器220的数量均可以为一个或多个。

应当理解,sas卡110、扩展器120、硬盘210和/或机箱管理器220的数量均可以结合实际情况灵活设定。

下面对本申请中的数据处理方法进行详细描述,请参阅图2,本发明实施例提供的数据处理方法的一个实施例,所述数据处理方法应用于上述数据处理系统10中,方法可以包括:

201、网络存储设备获取小型计算机系统接口scsi读写命令。

本申请实施例中,scsi读写命令包括scsi读命令和scsi写命令,其中,scsi读命令用于对外接硬盘进行读操作,scsi写命令用于对外接硬盘进行写操作。

202、网络存储设备对所述小型计算机系统接口scsi读写命令进行封装,得到封装后的小型计算机系统接口scsi数据包。

本申请实施例中,网络存储设备在获取到scsi读写命令后,可以对所述scsi读写命令进行封装,具体的,可以添加数据头和数据结构。

本申请实施例中,数据头至少包括需要访问的目标硬盘的地址,用于供sas卡从网络存储设备外接的至少一个硬盘中确定需要访问的目标硬盘;还可以包括scsi读写命令的种类或scsi读写命令的长度等信息。其中,scsi读写命令的长度指的是scsi读写命令在数据包中所占的空间的长度。数据结构中存放有所述scsi读写命令。

本申请实施例中,目标硬盘的地址可以为目标硬盘的ip地址,也可以为目标硬盘的局域网地址,还可以为其他类型的地址等,具体此处不做限定。

203、网络存储设备将小型计算机系统接口scsi数据包发送给串行小型计算机系统接口sas卡。

本申请实施例中,网络存储设备在将scsi读写命令封装成为scsi数据包之后,可以将所述scsi数据包发送给sas卡,该scsi数据包用于指示sas卡将所述scsi读写命令发送到目标硬盘,所述scsi读写命令用于指示目标硬盘将与所述scsi读写命令对应的数据结果发送给sas卡。

本申请实施例中,数据结果与scsi读写命令相对应,具体的,当scsi数据包中包含的为scsi读命令时,目标硬盘返回的数据结果为根据scsi读命令执行读操作后返回的读取数据;当scsi数据包中包含的为scsi写命令时,目标硬盘返回的数据结果可以为写操作成功,也可以为写入数据在目标硬盘中的存储位置等,上述举例,仅为方便理解本方案,此处不做限定。

204、网络存储设备通过串行小型计算机系统接口sas卡获取数据结果。

本申请实施例中,网络存储设备通过sas卡外接由至少一个硬盘,当网络存储设备获取到scsi读写命令时,对scsi读写命令进行封装得到scsi数据包,通过数据头供sas卡从外接的至少一个硬盘中确定需要访问的目标硬盘,在数据结构中放入scsi读写命令,并将scsi数据包发送给sas卡,从而指示sas卡将scsi读写命令发送给目标硬盘,以获得与scsi读写命令对应的数据结果,进而网络存储设备通过sas卡获取到数据结果,从而实现了网络存储设备通过sas卡将数据写入到外接硬盘中,由于sas卡相对于scsi可以提供更快的数据处理速度,本申请提供的方案具体展示了网络存储设备如何通过sas卡实现数据的输入/输出,显著提高了网络存储设备数据交互效率;此外,由于sas卡相较于scsi可以外接更多的硬盘,从而扩展了网络存储设备的存储空间。

请参阅图3,本发明实施例提供的数据处理方法的另一个实施例,方法应用于图1中的数据处理系统10,方法可以包括:

301、sas卡接收并解封小型计算机系统接口scsi数据包。

本申请实施例中,sas卡在接收到scsi数据包后,可以解封该scsi数据包,以得到所述scsi数据包的数据头和数据结构。

302、sas卡根据数据头从至少一个硬盘中确定需要访问的目标硬盘。

本申请实施例中,由于数据头至少包括需要访问的目标硬盘的地址,则sas卡在解封获得scsi数据包的数据头后,可以根据目标硬盘的地址从sas卡外接的至少一个硬盘中确定需要访问的目标硬盘。

303、sas卡将数据结构中的scsi读写命令发送给目标硬盘。

本申请实施例中,由于数据结构中存放有所述scsi读写命令,则sas卡在解封获得scsi数据包的数据结构后,可以获得所述scsi读写命令,并将所述scsi读写命令发送给通过步骤302确定的目标硬盘。

304、sas卡接收目标硬盘发送的数据结果。

本申请实施例中,sas卡将所述scsi读写命令发送给目标硬盘后,目标硬盘根据所述scsi读写命令执行读写操作,并获得与scsi读写命令对应的数据结果,从而sas卡可以接收到目标硬盘发送的数据结果。

305、sas卡将数据结果发送给网络存储设备。

本申请实施例中,sas卡接收并解封网络存储设备发送的scsi数据包,得到scsi数据包的数据头和数据结构,根据数据头从外接的至少一个硬盘中确定需要访问的目标硬盘,将数据结构中的scsi读写命令发送给目标硬盘,以获得与scsi读写命令对应的数据结果,进而将数据结果发送给网络存储设备,从而实现了网络存储设备通过sas卡将数据写入到外接硬盘中,由于sas卡相对于scsi可以提供更快的数据处理速度,本申请提供的方案具体展示了网络存储设备如何通过sas卡实现数据的输入/输出,显著提高了网络存储设备数据交互效率;此外,由于sas卡相较于scsi可以外接更多的硬盘,从而扩展了网络存储设备的存储空间。

请参阅图4,本发明实施例提供的数据处理方法的又一个实施例,方法应用于图1中的数据处理系统10,方法可以包括:

401、网络存储设备获取sas卡的属性值。

本申请实施例中,网络存储设备可以向至少一个sas卡发送属性值获取指令,进而接收至少一个sas卡中每个sas卡发送的属性值。

本申请实施例中,sas卡的属性值至少包括sas卡支持的请求数据帧最大值和回复数据帧最大值,用于指示sas卡的数据处理能力,sas卡的属性值还可以包括sas卡支持的最大扩展器个数、硬盘个数和/或机箱管理器个数等性能参数,sas卡的属性值还可以包括sas卡的标识和/或sas卡的版本号等产品信息。

本申请实施例中,sas卡的数据处理能力指的是sas卡支持的请求数据帧最大值和回复数据帧最大值。

本申请实施例中,数据帧是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据。其中,请求数据帧和回复数据帧为两种类型的数据帧,分别用于承载请求数据和回复数据。

402、网络存储设备根据sas卡的数据处理能力为sas卡分配内存地址空间。

本申请实施例中,网络存储设备在获取到每个sas卡的属性值之后,可以根据至少一个sas卡中的多个sas卡各自支持的请求数据帧最大值和回复数据帧最大值分别建立一个由多个请求数据帧组成的帧池和一个由多个回复数据帧组成的帧池,并根据每个sas卡各自支持的请求数据帧最大值和回复数据帧最大值为多个sas卡中的每个sas卡分配帧池空间。

本申请实施例中,内存地址空间包括请求数据帧的帧池空间和回复数据帧的帧池空间。

403、网络存储设备向sas卡发送初始化命令。

本申请实施例中,网络存储设备在获取到每个sas卡的属性值之后,可以向sas卡发送初始化命令中携带有描述内存地址空间的信息,也即sas卡被分配到的帧池空间。

本申请实施例中,网络存储设备可以多个sas卡中的任一个sas卡发送初始化命令,也可以同时向多个sas卡发送初始化命令,具体此处不做限定。

404、sas卡执行初始化操作。

本申请实施例中,sas卡基于接收到的初始化命令执行初始化操作。

405、网络存储设备获取sas卡的端口属性值。

本申请实施例中,sas卡的端口属性值包括sas卡上的端口个数、端口类型和/或每个端口对scsi命令的最大支持个数。

作为一种实现方式,网络存储设备可以在步骤403之后向sas卡发送端口属性值获取指令,从而sas卡在步骤404之后向网络存储设备发送端口属性值。

作为另一种实现方式,步骤405也可以和步骤401合并,也即网络存储设备可以同时向sas卡发送sas卡的属性值和sas卡的端口属性值获取指令,则sas卡可以同时向网络存储设备发送sas卡的属性值和sas卡的端口属性值。

406、sas卡接收网络存储设备发送的端口使能命令。

本申请实施例中,端口使能命令是指端口启动命令。

本申请实施例中,网络存储设备获取每个sas卡的属性值和sas卡的端口的属性值,并根据每个sas卡的属性值确定sas卡的数据处理能力,从而为该sas卡分配响应的内存,不仅便于网络存储设备管理各个sas卡,且有利于提高网络存储设备的内存空间的利用效率。

407、sas卡获取配置页信息。

本申请实施例中,sas卡基于所述端口使能命令,开始工作,获取并存储配置页信息。其中,每个sas卡的配置页信息中均可以包括sas卡配置页、端口配置页、扩展器配置页和/或机箱管理器配置页。

本申请实施例中,sas卡配置页包括每个sas卡外接的外接设备的类型、每个外接设备的设备号、每个sas卡上配置的端口的端口号、每个设备所属的端口号、每个外接设备的地址和/或其他类型的sas卡配置页信息等。

其中,外接设备的地址可以为外接设备的互联网协议(internetprotocol,ip)地址,作为示例,例如硬盘的ip地址;也可以为外接设备的局域网地址,作为示例,例如机箱管理器在由网络管理设备、sas卡和外接设备构成的局域网中分配的局域网地址;还可以为其他类型的地址等,具体此处不做限定。

本申请实施例中,端口配置页包括每个端口的端口号、每个端口的端口宽度、每个端口的端口类型、每个端口的端口地址和/或其他类型的端口配置页信息。

本申请实施例中,扩展器配置页包括在发现外接设备过程中产生的警告和错误、扩展器的地址、扩展器归属的端口的端口号和/或其他类型的扩展器配置页信息。

本申请实施例中,机箱管理器配置页包括机箱管理器支持的管理协议版本、管理的元器件的类型、以及管理的元器件的索引地址和/或其他类型的机箱管理器配置页信息。

本申请实施例中,外接设备可以包括硬盘、机箱管理器和/或其他类型的外接设备等。

408、网络存储设备读取sas卡中的配置页信息。

本申请实施例中,网络存储设备在读取到sas卡中的配置页信息中的配置页信息后,可以根据配置页信息中描述的外接设备、扩展器、端口和sas卡的归属关系,为每个sas卡建立拓扑树形数据结构,具体的,可以先初始化逻辑根节点,将扩展器作为枝干节点,每一个外接设备作为叶子节点,以建立每个sas卡的拓扑树形数据结构。

本申请实施例中,网络存储设备通过sas卡获取到外接设备的配置页信息,并且根据外接设备、扩展器、端口和sas卡的归属关系,为每个sas卡建立拓扑树形数据结构,从而方便对sas卡进行管理,提高网络存储设备对外接设备、扩展器的利用率。

409、网络存储设备获取小型计算机系统接口scsi命令。

本申请实施例中,网络存储设备可以接收到scsi命令,也可以生成scsi命令。其中,scsi命令由启动器发出,用于让目标器执行某种操作,可以根据与scsi命令对应的操作的种类划分为不同的种类,作为示例,例如的scsi读命令、scsi写命令或向机箱管理器发送的用于控制扩展器的scsi控制命令等命令均为不同种类的命令等,具体scsi命令的种类,此处不进行限定。

410、网络存储设备对小型计算机系统接口scsi命令进行封装,得到封装后的小型计算机系统接口scsi数据包。

本申请实施例中,网络存储设备在获取到scsi命令后,可以对所述scsi命令进行封装,具体的,可以添加数据头和数据结构。

411、网络存储设备将小型计算机系统接口scsi数据包发送给sas卡。

本申请实施例中,网络存储设备可以将scsi数据包发送给sas卡,从而sas卡可以解封该scsi数据包,以得到所述scsi数据包的数据头和数据结构。数据结构中存放有所述scsi命令和数据存放地址,其中数据存放地址用于存放数据结果。

本申请实施例中,scsi数据包的数据头至少包括需要访问的外接设备的地址,当scsi命令为对硬盘执行的读写命令时,scsi数据包的数据头至少包括需要访问的目标硬盘的地址;当scsi命令为对扩展器执行的控制命令时,scsi数据包的数据头至少包括需要访问的机箱管理器的地址。还可以包括scsi命令的种类或scsi命令的长度等信息。应当理解,此处对scsi数据包的数据头和数据结构的举例仅为方便理解本方案,具体此处不做限定。

412、sas卡将小型计算机系统接口scsi命令发送给外接设备。

本申请实施例中,sas卡在根据scsi数据包的数据头确定了需要访问的外接设备的地址之后,将scsi数据包的数据结构中的scsi命令发送给所述外接设备。具体的,当scsi命令为scsi读写命令时,sas卡可以在根据scsi数据包的数据头确定了需要访问的目标硬盘的地址之后,将所述scsi读写命令发送给目标硬盘;当scsi命令为scsi控制命令时,sas卡可以在根据scsi数据包的数据头确定了需要访问的机箱管理器的地址之后,将所述scsi读写命令发送给所述机箱管理器,应当理解,此处对scsi命令的举例仅为方便理解本方案,具体此处不做限定。

本申请实施例中,外接设备根据接收到的scsi命令执行对应的操作,作为示例,当scsi命令为scsi读命令时,目标硬盘根据scsi读命令执行读操作,并将读到的数据结果返回给sas卡;当scsi数据包中包含的为scsi写命令时,目标硬盘返回的数据结果可以为写操作成功,也可以为写入数据在目标硬盘中的存储位置;当scsi命令为scsi控制命令时,机箱管理器可以根据所述scsi控制命令对扩展器上对应的元器件执行控制操作,应当理解,此处对scsi命令的举例仅为方便理解本方案,具体此处不做限定。

413、sas卡接收数据结果。

本申请实施例中,sas卡可以接收外接设备返回的数据结果。

414、sas卡将数据结果写入数据存放地址中。

本申请实施例中,sas卡可以将接收到的数据结果写入scsi数据包的数据机构的数据存放地址中。

415、网络存储设备从数据存放地址中读取数据结果。

本申请实施例中,网络存储设备通过sas卡外接由至少一个硬盘,当网络存储设备获取到scsi读写命令时,对scsi读写命令进行封装得到scsi数据包,sas卡接收并解封网络存储设备发送的scsi数据包,得到scsi数据包的数据头和数据结构,根据数据头从外接的至少一个硬盘中确定需要访问的目标硬盘,将数据结构中的scsi读写命令发送给目标硬盘,以获得与scsi读写命令对应的数据结果,进而将数据结果发送给网络存储设备,从而实现了网络存储设备通过sas卡将数据写入到外接硬盘中,由于sas卡相对于scsi可以提供更快的数据处理速度,本申请提供的方案具体展示了网络存储设备如何通过sas卡实现数据的输入/输出,显著提高了网络存储设备数据交互效率;此外,由于sas卡相较于scsi可以外接更多的硬盘,从而扩展了网络存储设备的存储空间。

为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关装置。

具体参阅图5,为本申请实施例提供的网络存储设备的一种结构示意图,所述网络存储设备500包含于图1所示的数据处理系统10中,网络存储设备500包括:

获取单元501,用于获取小型计算机系统接口scsi读写命令;

封装单元502,用于对scsi读写命令进行封装,得到封装后的scsi数据包,scsi数据包包含数据头和数据结构,数据头用于供sas卡从至少一个硬盘中确定需要访问的目标硬盘,数据结构中包含scsi读写命令;

发送单元503,用于将scsi数据包发送给sas卡,scsi数据包用于指示sas卡将scsi读写命令发送到目标硬盘,scsi读写命令用于指示目标硬盘将与scsi读写命令对应的数据结果发送给sas卡;

获取单元501,还用于通过sas卡获取数据结果。

本申请实施例中,数据结构还包含数据存放地址,获取单元501具体用于:从数据存放地址中读取数据结果,数据存储地址用于指示sas卡将目标硬盘发送的数据结果填写到数据存储地址中。

本申请实施例中,sas卡上配置有至少一个端口,每个端口上配置有与端口一一对应的至少一个扩展器,sas卡通过扩展器与至少一个外接设备连接,至少一个外接设备中包含至少一个硬盘,网络存储设备500还包括:

读取单元504,用于读取sas卡中的配置页信息,所述配置页信息包含至少一个扩展器的地址信息、至少一个外接设备的地址信息,至少一个外接设备中的每个外接设备与所述扩展器的归属关系。

本申请实施例中,获取单元501,还用于获取sas卡的属性值,用于指示sas卡的数据处理能力;

网络存储设备还包括:分配单元505,用于根据sas卡的数据处理能力为sas卡分配内存地址空间;

发送单元503,还用于向sas卡发送初始化命令,初始化命令中携带有描述内存地址空间的信息;

获取单元501,还用于获取sas卡的端口属性值,并向sas卡发送端口使能命令,使能命令用于指示sas卡获取配置页信息。

具体参阅图6,为本申请实施例提供的串行小型计算机系统接口sas卡的一种结构示意图,所述sas卡600包含于图1所示的数据处理系统10中,sas卡600包括:

解封单元601,用于接收并解封小型计算机系统接口scsi数据包,得到scsi数据包的数据头和数据结构;

确定单元602,用于根据数据头从至少一个硬盘中确定需要访问的目标硬盘;

发送单元603,用于将数据结构中的小型计算机系统接口scsi读写命令发送给目标硬盘,scsi读写命令用于指示目标硬盘获取与scsi读写命令对应的数据结果;

接收单元604,用于接收目标硬盘发送的数据结果;

发送单元603,还用于将数据结果发送给网络存储设备。

本申请一种可能实现方式中,数据结构还包含数据存放地址,

发送单元603,还用于将数据结果写入数据存放地址中,数据存放地址用于供网络存储设备从数据存放地址中读取数据结果。

本申请一种可能实现方式中,sas卡上配置有至少一个端口,每个端口上配置有与端口一一对应的至少一个扩展器,sas卡通过扩展器与至少一个外接设备连接,至少一个外接设备中包含至少一个硬盘,sas卡还包括:

获取单元605,用于获取配置页信息,配置页信息包含至少一个扩展器的地址信息、至少一个外接设备的地址信息,至少一个外接设备中的每个外接设备与扩展器的归属关系。

本申请一种可能实现方式中,发送单元603,还用于向网络存储设备发送sas卡的属性值,sas卡的属性值用于指示sas卡的数据处理能力,sas卡的数据处理能力用于供网络存储设备根据sas卡的数据处理能力为sas卡分配内存地址空间;

接收单元604,还用于接收网络存储设备发送的初始化命令,初始化命令中携带有描述内存地址空间的信息;

sas卡还包括:初始化单元606,用于基于初始化命令,执行初始化操作;

接收单元604,还用于接收网络存储设备发送的端口使能命令;

获取单元605,还用于获取配置页信息,具体包括:

获取单元605,还用于基于端口使能命令,获取配置页信息。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

接下来介绍本申请实施例提供的另一种主机,请参阅图7所示,为本申请实施例提供的网络存储设备的一种结构示意图,终端设备700包括:

接收器701、发射器702、处理器703和存储器704(其中终端设备700中的处理器703的数量可以一个或多个,图7中以一个处理器为例)。在本申请的一些实施例中,接收器701、发射器702、处理器703和存储器704可通过总线或其它方式连接,其中,图7中以通过总线连接为例。

存储器704可以包括只读存储器和随机存取存储器,并向处理器703提供指令和数据。存储器704的一部分还可以包括非易失性随机存取存储器(non-volatilerandomaccessmemory,nvram)。存储器704存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。

处理器703控制终端设备的操作,处理器703还可以称为中央处理单元(centralprocessingunit,cpu)。具体的应用中,终端设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。

上述本申请实施例揭示的方法可以应用于处理器703中,或者由处理器703实现。处理器703可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器703中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器703可以是通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器704,处理器703读取存储器704中的信息,结合其硬件完成上述方法的步骤。

接收器701可用于接收输入的数字或字符信息,以及产生与网络存储设备的相关设置以及功能控制有关的信号输入。

发射器702可用于通过外接接口输出数字或字符信息;还可以通过pcie接口与sas卡通信;还可以包括显示屏等显示设备。

本申请实施例中,处理器703,用于执行前述的网络存储设备执行的数据处理方法。

本申请实施例中还提供一种包含数据处理指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图2至图4所示实施例描述的方法中网络存储设备所执行的步骤。

本申请实施例中还提供一种包含数据处理指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图2至图4所示实施例描述的方法中sas卡所执行的步骤。

本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有数据处理的指令,当其在计算机上运行时,使得计算机执行如前述图2至图4所示实施例描述的方法中网络存储设备所执行的步骤。

本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有数据处理的指令,当其在计算机上运行时,使得计算机执行如前述图2至图4所示实施例描述的方法中sas卡所执行的步骤。

其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,asic,或一个或多个用于控制上述第一方面方法的程序执行的集成电路。

本申请实施例中还提供一种芯片系统,该芯片系统包括处理器,用于支持网络设备实现上述方面中所涉及的功能,例如,例如发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存网络设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

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