元数据传输方法、客户端设备及服务器设备.pdf

上传人:32 文档编号:1097706 上传时间:2018-03-31 格式:PDF 页数:17 大小:733.80KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910139294.5

申请日:

2009.06.05

公开号:

CN101567890A

公开日:

2009.10.28

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):H04L 29/06申请公布日:20091028|||实质审查的生效|||公开

IPC分类号:

H04L29/06; H04L12/56

主分类号:

H04L29/06

申请人:

成都市华为赛门铁克科技有限公司

发明人:

罗姣林

地址:

611731四川省成都市高新区西部园区清水河片区

优先权:

专利代理机构:

北京三友知识产权代理有限公司

代理人:

任默闻

PDF下载: PDF下载
内容摘要

本发明实施例公开了一种元数据传输方法,该方法包括:生成元数据请求;将所述元数据请求打包为自定义的小型计算机接口SCSI指令;在SCSI链路上传输所述SCSI指令。本发明实施例还公开了一种元数据传输方法,该方法包括:在SCSI链路接收自定义的SCSI指令并进行解包分析,获得元数据请求;根据所述元数据请求,回应数据在磁盘阵列中的读写目标位置。本发明实施例同时公开一种客户端设备和服务器设备。采用以上技术方案可以提升系统的整体性能,并降低系统成本。

权利要求书

1、  一种元数据传输方法,其特征在于,该方法包括:
生成元数据请求;
将所述元数据请求打包为自定义的小型计算机接口SCSI指令;
在SCSI链路上传输所述SCSI指令。

2、
  如权利要求1所述的方法,其特征在于,所述在SCSI链路上传输所述SCSI指令包括:
对所述SCSI指令进行物理封包,将物理封包后的SCSI指令在SCSI链路上传输。

3、
  一种元数据传输方法,其特征在于,该方法包括:
在SCSI链路接收自定义的SCSI指令并进行解包分析,获得元数据请求;
根据所述元数据请求,回应数据在磁盘阵列中的读写目标位置。

4、
  如权利要求3所述的方法,其特征在于,所述在SCSI链路接收自定义的SCSI指令并进行解包分析,获得元数据请求,包括:
在SCSI链路接收自定义的SCSI指令,对所述SCSI指令进行解包处理;
对解包后的SCSI指令进行分析处理,获得元数据请求。

5、
  如权利要求4所述的方法,其特征在于,所述对SCSI指令进行解包处理包括:
解包所述SCSI指令中的命令描述块及相关属性。

6、
  如权利要求3至5中任一项所述的方法,其特征在于,所述根据所述元数据请求,回应数据在磁盘阵列中的读写目标位置,包括:
根据所述元数据请求确定将进行数据写入操作时,使缓存进入待数据写入状态,并发送缓存已准备好的应答,该应答中包括所述数据在磁盘阵列中的写入位置;
或者,根据所述元数据请求确定将进行数据读出操作时,使缓存进入待数据读出状态,发送缓存已准备好的应答,该应答中包括数据在磁盘阵列中的读出位置。

7、
  一种客户端设备,其特征在于,包括:
文件系统客户端,用于生成元数据请求;
SCSI启动器,用于获取所述元数据请求,并将所述元数据请求打包为自定义的SCSI指令在SCSI链路上传输。

8、
  如权利要求7所述的设备,其特征在于,所述SCSI启动器包括:
虚拟处理器驱动模块,用于获取所述元数据请求,将所述元数据请求打包为自定义的SCSI指令;
SCSI启动器中间层模块,用于接收虚拟处理器驱动模块下发的SCSI指令并进行分发;
主机适配卡启动器模式驱动模块,用于接收SCSI启动器中间层模块分发的SCSI指令,对该SCSI指令进行物理封包;
主机适配卡,用于将物理封包后的SCSI指令在SCSI链路上发出。

9、
  一种服务器设备,其特征在于,包括:
SCSI目标器,用于在SCSI链路接收自定义的SCSI指令并进行解包分析,获得元数据请求;
元数据服务器,用于根据所述元数据请求,回应数据在磁盘阵列中的读写目标位置。

10、
  如权利要求9所述的设备,其特征在于,所述SCSI目标器包括:
主机适配卡,用于在SCSI链路上接收自定义的SCSI指令;
主机适配卡目标器模式驱动模块,用于对主机适配卡提交的自定义的SCSI指令进行解包处理,得到解包后的SCSI指令;
SCSI目标器中间层模块,用于接收并转发主机适配卡目标器模式驱动模块提交的解包后的SCSI指令;
虚拟处理器,用于接收SCSI目标器中间层模块提交的解包后的SCSI指令,对所述解包后的SCSI指令进行分析处理,获得元数据请求,将所述元数据请求送至元数据服务器。

说明书

元数据传输方法、客户端设备及服务器设备
技术领域
本发明涉及通信技术领域,尤其涉及元数据传输方法、客户端设备及服务器设备。
背景技术
元数据,是一种描述数据及其环境的数据。在设计高性能的分布式系统的时候,元数据的传输机制是非常重要的一环,元数据的传输效率、可靠性、延迟(Latency)等因素都将影响整个系统的性能、可靠性、IOPS(IO-per-Second,每秒输入输出数目)等指标。目前广泛使用以太网的TCP/IP(TCP:TransmissionControl Protocol,传输控制协议;IP:Internet Protocol,网络互连协议)或UDP/IP(UDP:User Datagram Protocol,用户数据报协议)方式传输元数据,这种方式实现简单,实用性强。
但是,发明人在实现本发明的过程中发现上述现有技术存在如下不足:
由于元数据通讯和实际的数据通讯使用了两套不同的网络,所以增加了部署的难度,造成维护难度大、系统成本高。且由于该系统的元数据和实际数据在不同的链路上传输,会导致可靠性下降,当传输元数据的以太网出现故障的时候,可能造成整个系统的“短木板”效应,使得系统性能大大降低。
发明内容
本发明实施例提供一种元数据传输方法、客户端设备及服务器设备,以提升系统的整体性能,并降低系统成本。
本发明实施例提供一种元数据传输方法,该方法包括:
生成元数据请求;
将所述元数据请求打包为自定义的小型计算机接口SCSI指令;
在SCSI链路上传输所述SCSI指令。
本发明实施例还提供一种元数据传输方法,该方法包括:
在SCSI链路接收自定义的SCSI指令并进行解包分析,获得元数据请求;
根据所述元数据请求,回应数据在磁盘阵列中的读写目标位置。
本发明实施例还提供一种客户端设备,该设备包括:
文件系统客户端,用于生成元数据请求;
SCSI启动器,用于获取所述元数据请求,并将所述元数据请求打包为自定义的SCSI指令在SCSI链路上传输。
本发明实施例还提供一种服务器设备,该设备包括:
SCSI目标器,用于在SCSI链路接收自定义的SCSI指令并进行解包分析,获得元数据请求;
元数据服务器,用于根据所述元数据请求,回应数据在磁盘阵列中的读写目标位置。
本发明实施例中,将文件系统客户端生成的元数据请求打包为自定义的小型计算机接口SCSI指令,在SCSI链路上传输,无需使用额外的以太网传输元数据,使元数据的传输和实际数据的传输在同一网络实现,提升系统的整体性能,并降低系统成本。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中元数据传输方法流程图;
图2为本发明另一实施例中元数据传输方法流程图;
图3为本发明实施例中客户端设备的结构示意图;
图4为本发明实施例中SCSI启动器与目标器结构示意图;
图5为本发明实施例中服务器设备的结构示意图;
图6为本发明实施例中元数据传输的一个具体实例示意图;
图7为本发明实施例中状态机模型图;
图8为本发明实施例中文件系统中元数据的传输示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
为了避免系统可靠性的“短木板”,降低时延、提升系统的可维护性、减少部署的复杂程度以及降低系统的成本,发明人考虑在本发明实施例中,通过SCSI(Small Computer System Interface,小型计算机接口)复用数据链路进行元数据传输。由于元数据链路的带宽不会要求特别高,复用并不会引起系统性能问题。
如图1所示,本发明实施例中元数据传输方法流程可以包括:
步骤101、生成元数据请求;
步骤102、将所述元数据请求打包为自定义的SCSI指令;
步骤103、在SCSI链路上传输所述SCSI指令。其中,在具体实施时可以包括:对所述SCSI指令进行物理封包,将物理封包后的SCSI指令在SCSI链路上传输。
本实施例将元数据请求打包为自定义的小型计算机接口SCSI指令,在SCSI链路上传输,无需使用额外的以太网传输元数据,使元数据的传输和实际数据的传输在同一网络实现,提升系统的整体性能,并降低系统成本。
如图2所示,本发明另一实施例中元数据传输方法流程可以包括:
步骤201、在SCSI链路接收自定义的SCSI指令并进行解包分析,获得元数据请求;
步骤202、根据所述元数据请求,回应数据在磁盘阵列中的读写目标位置。
本实施例在SCSI链路上接收SCSI指令以获得元数据,无需使用额外的以太网传输元数据,使元数据的传输和实际数据的传输在同一网络实现,提升系统的整体性能,并降低系统成本。
由图1、图2所示流程可以得知,本发明实施例中,在发送端,将文件系统客户端生成的元数据请求打包为自定义的小型计算机接口SCSI指令,在SCSI链路上传输;在接收端,在SCSI链路接收自定义的SCSI指令并进行解包分析,获得元数据请求;根据所述元数据请求,回应数据在磁盘阵列中的读写目标位置;可以在数据链路通道使用SCSI协议复用传输元数据,使元数据的传输和实际数据通讯传输在同一网络实现,与现有技术中元数据使用以太网传输、实际数据通讯在光纤网络进行的技术方案相比,可以提升系统的整体性能,并降低系统成本。
本发明实施例通过SCSI的方式来实现元数据的通讯,从SCSI的原理来说,在实现SCSI方式通讯时,可以先实现SCSI目标器和启动器。
实施中,由于缺省的情况下主机上面的HBA(Host Bus Adapter,主机适配卡)工作于启动器模式,因而可以驱动HBA的目标器模式开启,在SCSI链路接收到自定义的SCSI指令后,可以对物理封包的自定义SCSI指令进行解包处理;还可以驱动一个虚拟设备运行,对解包后的SCSI指令进行分析处理,获得元数据请求。
实施中,对物理封包的所述SCSI指令进行解包处理,可以包括:解包所述SCSI指令中的命令描述块及相关属性。
实施中,可在目标器上仿真一个虚拟设备来处理目标器接收的自定义SCSI指令。该SCSI设备标识可以是0x00。通过仿真这个虚拟设备,使SCSI指令被投递给该虚拟设备。所述SCSI指令用于传送元数据,SCSI指令通过SCSI协议传输,所述SCSI协议支持许多设备类型,比如磁盘(0x03)、磁带、网卡、扫描仪等。在本发明实施例中,通过驱动虚拟处理器运行对解包后的SCSI指令进行分析处理,获得元数据请求。
实施中,根据所述元数据请求,回应数据在磁盘阵列中的读写目标位置,可以包括:
根据所述元数据请求确定将进行数据写入操作时,使缓存进入待数据写入状态,并发送缓存已准备好的应答,该应答中包括所述数据在磁盘阵列中的写入位置;
或者,根据所述元数据请求确定将进行数据读出操作时,使缓存进入待数据读出状态,发送缓存已准备好的应答,该应答中包括数据在磁盘阵列中的读出位置。
通过上述具体实现方式,可方便地实现SCSI目标器和启动器,以便在SCSI链路上以SCSI指令的方式传输元数据,无需使用额外的以太网传输元数据,提升系统的整体性能。
如图3所示,本发明实施例中的客户端设备可以包括:
文件系统客户端301,用于生成元数据请求;
SCSI启动器302,用于获取所述元数据请求,并将所述元数据请求打包为自定义的SCSI指令在SCSI链路上传输。
如图4所示,一个实施例中,SCSI启动器可以包括:
虚拟处理器驱动模块,用于获取所述元数据请求,将所述元数据请求打包为自定义的SCSI指令;
SCSI启动器中间层模块,用于接收虚拟处理器驱动模块下发的SCSI指令并进行分发;
主机适配卡启动器模式驱动模块,用于接收SCSI启动器中间层模块分发的SCSI指令,对该SCSI指令进行物理封包;
主机适配卡,用于将物理封包后的SCSI指令在SCSI链路上发出。
本实施例的客户端设备可将元数据请求打包为自定义的小型计算机接口SCSI指令,在SCSI链路上传输,无需使用额外的以太网传输元数据,提升系统的整体性能。
如图5所示,本发明实施例中的服务器设备可以包括:
SCSI目标器501,用于在SCSI链路接收自定义的SCSI指令并进行解包分析,获得元数据请求;
元数据服务器502,用于根据所述元数据请求,回应数据在磁盘阵列中的读写目标位置。
如图4所示,一个实施例中,SCSI目标器可以包括:
主机适配卡,用于在SCSI链路上接收自定义的SCSI指令;
主机适配卡目标器模式驱动模块,用于对主机适配卡提交的自定义的SCSI指令进行解包处理,得到解包后的SCSI指令;
SCSI目标器中间层模块,用于接收并转发主机适配卡目标器模式驱动模块提交的解包后的SCSI指令;
虚拟处理器,用于接收SCSI目标器中间层模块提交的解包后的SCSI指令,对所述解包后的SCSI指令进行分析处理,获得元数据请求,将所述元数据请求送至元数据服务器。
本实施例的服务器设备可在SCSI链路上接收SCSI指令以获得元数据,无需使用额外的以太网传输元数据,从而提升系统的整体性能。
图4还示出了客户端设备与服务器设备通过HBA交互。从图4可以看到,服务器设备中,物理的HBA之上需要的是一个目标器模式的驱动模块,在这个驱动模块之上是SCSI目标器中间层模块,该中间层模块可以用来维护SCSI名字空间,即逻辑单元(Logical Unit Number,LUN)的相关信息、进行SCSI会话管理等,在中间层模块上是一个注册到中间上面的虚拟处理器,该设备将接受来自于SCSI启动器的信息并处理,最后回传给SCSI启动器。当然该设备也可以是磁盘(0x03)、磁带、网卡、扫描仪等虚拟设备。
对于SCSI的启动器实现,只需要实现“虚拟处理器”的驱动就可以了,Windows/AIX/Solaris/Linux/BSD等均提供了标准的接口,但是对于SCSI目标器则需要自行实现。具体的细节在T10/T11(两个SCSI标准化工作组)SAM(SCSI架构模型)中有详细描述。
SCSI目标器从逻辑上可以划分为三个层次,分别是:端口层(PORT)、中间层(TGT)、设备(DEVICE)层。其中PORT层主要负责和SCSI目标器硬件的接口,负责报文的打包解包等操作。中间层负责处理到达的命令,维护LUN名字空间信息,SCSI任务或会话管理等。DEVICE层主要负责实现目标器设备的特定接口,比如磁盘、磁带、处理器等。
一个具体实施中,如图6所示,元数据的传输处理可以包括如下流程(图中仅详述了客户端设备的处理,服务器设备的处理前已说明,这里不再赘述):
步骤601、文件系统客户端将元数据请求发送至虚拟处理器驱动模块。
步骤602、虚拟处理器驱动模块将接收的元数据请求打包为自定义的SCSI指令,该SCSI指令中包括CDB(Command Description Block,命令描述块)。
步骤603、虚拟处理器驱动模块将自定义SCSI指令发送到SCSI启动器中间层模块。
步骤604、SCSI启动器中间层模块将接收的SCSI指令下发到HBA启动器模式驱动模块。
步骤605、HBA启动器模式驱动模块对接收的SCSI指令进行物理封包。
步骤606、HBA启动器模式驱动模块将物理封包后携带有SCSI头的SCSI指令数据包交给SCSI启动器的HBA并由SCSI启动器的HBA发送到SCSI目标器。
步骤607、SCSI目标器处理接收的数据包,向SCSI启动器的HBA发送缓存已准备好可以接收数据的应答。
步骤608、SCSI启动器的HBA向SCSI目标器传输待写入的数据。
步骤609-613、SCSI目标器回送响应消息。
图6所示流程示出了数据写入时处理,实施中若读取数据,则无需执行步骤607、608,在609返回响应时一并返回需要的数据。
本实施例提供了一种优化的在SCSI链路上传输元数据的方法,无需使用额外的以太网传输元数据,提升系统的整体性能,并降低系统成本。
实施中,可以将SCSI命令从产生到处理结束分为6个状态,并以此建立如图7的状态机模型,这六个状态分别是INIT即初始状态;CDB状态即命令已经获取;XFER状态即Buffer已经分配成功,可以进行数据传输应答ready_to_xfer;DATA状态即主机的写请求已经到达缓存;XMIT状态即命令处理完成,可以传输结果和状态;DONE状态即命令结构不再使用,可以安全释放。
在一种实现中,目标器分配一个命令后,分配函数会将状态设置为INIT状态,当PORT驱动接收到命令的数据报文并解开CDB,并在正确设置命令中的CDB和相关属性后,将状态更改为CDB状态并提交命令到队列,TGT发现所述命令如果是主机的写入操作且长度合法后,会分配缓存并将状态更改为XFER,并调用PORT提供的方法读取数据,PORT驱动在读取完成后需要将状态变更为DATA状态,即数据已经正常接收状态并重新加入命令队列中,进行进一步的处理,一般在磁盘或者磁带写入完成后会将状态变更为XMIT,通过中间层可以回送SCSI处理结果,TGT将调用PORT的方法函数传回SCSI处理结果给主机。TGT调用结束后会在回调中将命令设置为DONE,并释放Buffer,并调用PORT的方法函数释放这些命令。
上述实施例介绍了目标器中SCSI命令从产生到处理结束的状态,所述目标器在SCSI链路上接收SCSI指令时,需要经过上述状态转换,以实现SCSI指令的解包处理并最终获得元数据。
图8为文件系统的一个具体实例,图中示意性地说明了磁盘阵列804在网络中的位置,该磁盘阵列是用于存储元数据,供元数据服务器802进行元数据读写处理。若元数据和实际数据的传输是通过光纤网络,则在传输元数据和实际数据时,可经由光纤交换机803进行网络节点的连接处理。当然实施中元数0据和实际数据也可以通过其它类型的网络进行复用传输,实施中是通过同一网络即可。
图8所示的文件系统可以是“共享存储”方式的并行文件系统集群,利用光纤网络来传输元数据信息。图示系统中没有额外的用于交换元数据的以太网,所有的元数据均通过数据通道进行,这样避免了比光纤更不可靠的以太网出现故障而导致整个系统瘫痪的难题。
在文件系统客户端801中可实现SCSI的启动器模式的“虚拟处理器”设备驱动,在元数据服务器端802需要实现方案所描述的SCSI目标器设备。
本发明实施例中,在发送端,将文件系统客户端下发的元数据请求打包为自定义的小型计算机接口SCSI指令,在SCSI链路上传输;在接收端,在SCSI链路接收自定义的SCSI指令并进行解包分析,获得元数据请求;根据所述元数据请求,回应数据在磁盘阵列中的读写目标位置;可以使元数据的传输和实际数据通讯传输在同一网络实现,与现有技术中元数据使用以太网传输、实际数据通讯在光纤网络进行的技术方案相比,可以提升系统的整体性能,包括提高系统的IOPS、可靠性、降低时延,同时降低系统成本;元数据的传输和实际数据通讯传输可以在光纤网络实现,不依赖于以太网设备,充分发挥FC(Fiber Channel,光纤通道)低时延和高QoS保证的优势。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,可以包括上述实施例方法中的全部或部分步骤,所述的存储介质可以包括:ROM、RAM、磁盘、光盘等。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

元数据传输方法、客户端设备及服务器设备.pdf_第1页
第1页 / 共17页
元数据传输方法、客户端设备及服务器设备.pdf_第2页
第2页 / 共17页
元数据传输方法、客户端设备及服务器设备.pdf_第3页
第3页 / 共17页
点击查看更多>>
资源描述

《元数据传输方法、客户端设备及服务器设备.pdf》由会员分享,可在线阅读,更多相关《元数据传输方法、客户端设备及服务器设备.pdf(17页珍藏版)》请在专利查询网上搜索。

本发明实施例公开了一种元数据传输方法,该方法包括:生成元数据请求;将所述元数据请求打包为自定义的小型计算机接口SCSI指令;在SCSI链路上传输所述SCSI指令。本发明实施例还公开了一种元数据传输方法,该方法包括:在SCSI链路接收自定义的SCSI指令并进行解包分析,获得元数据请求;根据所述元数据请求,回应数据在磁盘阵列中的读写目标位置。本发明实施例同时公开一种客户端设备和服务器设备。采用以上技术。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1