CN104007938B - 在存储网络中的键值生成方法及装置 - Google Patents
在存储网络中的键值生成方法及装置 Download PDFInfo
- Publication number
- CN104007938B CN104007938B CN201410234771.7A CN201410234771A CN104007938B CN 104007938 B CN104007938 B CN 104007938B CN 201410234771 A CN201410234771 A CN 201410234771A CN 104007938 B CN104007938 B CN 104007938B
- Authority
- CN
- China
- Prior art keywords
- character string
- key
- substring
- character
- assignmerts
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了在存储网络中的键值生成方法与装置。所述方法包括:接收读写请求;提取所述读写请求中包含的设备号、偏移量及数据长度信息;生成包含类型标示符、所述设备号、所述偏移量及所述数据长度信息的键值字符串,所述类型标示符用于表示所述读写请求为块读写请求;将所述键值字符串转换为十六进制数据形式,得到键值。采用本发明的方法与装置,可以在不对现有应用的正常使用造成影响的前提下,生成键值。
Description
技术领域
本发明涉及存储领域,尤其涉及在存储网络中的键值生成方法及装置。
背景技术
网络存储是基于网络的数据存储技术,广泛应用于服务器、工作站等设备。现有网络存储大致可分为3种:直连式存储(DAS,Direct Attached Storage)、网络存储设备(NAS,Network Attached Storage)和存储网络(SAN,Storage Area Network)。其中以SAN的应用最为广泛。SAN采用可扩展的网络拓扑结构连接服务器和存储设备,并将数据的存储和管理集中在相对独立的专用网络中,面向服务器提供数据存储服务。服务器和存储设备之间的多路、可选择的数据交换消除了以往存储结构在可扩展性和数据共享方面的局限性。
在SAN中,通常采用基于块存储方式的SCSI(Small Computer System Interface)硬盘作为存储设备。由于SCSI硬盘采用逻辑寻址的方式定位数据报文位置,因此服务器上的应用在读写存储设备上的某数据块时,首先生成该数据块的逻辑块地址(LBA,LogicalBlock Address),然后生成包含逻辑块地址的块读写请求,由服务器将块读写请求发送至SCSI硬盘,SCSI硬盘根据块读写请求中的逻辑块地址,确定设备所要读取的数据块,完成数据块的读写。
随着网络存储的应用范围越来越广,使用者对网络存储的要求也越来越高。为满足使用者对网络存储易扩展及瘦分配(Thin Provisioning)的需求,业界发布了KINETIC开放式存储平台。KINETIC开放式存储平台修改传统的存储协议栈,通过TCP/IP网络协议栈连接TCP/IP网络磁盘构成IP硬盘。IP硬盘采用键值存储的方式存取数据,根据键值读写请求中的键值确定设备所要读取的数据块,进而完成数据块的读写。IP硬盘采用键值存储的方式存取数据,不但避免了复杂的空间组织算法,提高了读写效率,而且提升了硬盘的可扩展性。
由于IP硬盘采用键值存储的方式存取数据,当网络存储所使用的存储设备由SCSI硬盘转换为IP硬盘时,为使服务器上的各个应用能够访问IP硬盘中的数据,就需要对各个应用进行修改,使各个应用能够生成键值,进而生成包含键值的键值读写请求。但是,由于一个服务器上可能存在种类多样、数量众多的应用,对每一个应用都进行修改,不但会影响现有应用的正常使用,而且也可能对应用的稳定性造成影响。
发明内容
本发明实施例提供了在存储网络中的键值生成方法及键值生成装置,以解决采用现有技术生成键值,不但会影响应用的正常使用,而且也可能对应用的稳定性造成影响的问题。
第一方面,本发明实施例提供了一种在存储网络中的键值生成方法,该方法包括:接收读写请求;提取所述读写请求中包含的设备号、偏移量及数据长度信息;生成包含类型标示符、所述设备号、所述偏移量及所述数据长度信息的键值字符串,所述类型标示符用于表示所述读写请求为块读写请求;将所述键值字符串转换为十六进制数据形式,得到键值。
结合第一方面,在第一方面第一种可能的实现方式中,所述生成包含类型标示符、所述设备号、所述偏移量及所述数据长度信息的键值字符串,包括:生成第一字符串,所述第一字符串包括表示所述设备号编码长度的第一子字符串及表示所述设备号数值的第二子字符串;生成第二字符串,所述第二字符串包括表示所述偏移量编码长度的第三子字符串及表示所述偏移量数值的第四子字符串;生成第三字符串,所述第三字符串包括表示所述数据长度信息编码长度的第五子字符串及表示所述数据长度信息数值的第六子字符串;生成包含所述类型标示符、所述第一字符串、所述第二字符串及所述第三字符串的键值字符串。
结合第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,所述生成第一字符串,包括:依次连接第一分隔符、所述第一子字符串、第二分隔符及所述第二子字符串,生成所述第一字符串。
结合第一方面第一种可能的实现方式,在第一方面第三种可能的实现方式中,依次连接第一分隔符、所述第三子字符串、第二分隔符及所述第四子字符串,生成所述第二字符串。
结合第一方面第一种可能的实现方式,在第一方面第四种可能的实现方式中,依次连接第一分隔符、所述第五子字符串、第二分隔符及所述第六子字符串,生成所述第三字符串。
结合第一方面第一种可能的实现方式、第一方面第二种可能的实现方式、第一方面第三种可能的实现方式或第一方面第四种可能的实现方式,在第一方面第五种可能的实现方式中,所述生成包含所述类型标示符、所述第一字符串、所述第二字符串及所述第三字符串的键值字符串,包括:依次连接所述类型标示符、所述第一字符串、所述第二字符串及所述第三字符串,生成所述键值字符串。
结合第一方面第一种可能的实现方式、第一方面第二种可能的实现方式、第一方面第三种可能的实现方式、第一方面第四种可能的实现方式或第一方面第五种可能的实现方式,在第一方面第六种可能的实现方式中,所述将所述键值字符串转换为十六进制数据形式得到键值,包括:将所述键值字符串所包含的数值转换为十六进制形式,并根据ASCII码表将所述键值字符串所包含的字符映射为十六进制数值,得到十六进制形式的键值。
第二方面,本发明实施例提供了一种在存储网络中的键值生成装置,该装置包括:接收单元,用于接收读写请求;提取单元,用于在所述接收单元接收到的所述读写请求为块读写请求时,提取所述读写请求中包含的设备号、偏移量及数据长度信息;生成单元,用于生成包含类型标示符、所述提取单元提取到的所述设备号、所述偏移量及所述数据长度信息的键值字符串,所述类型标示符用于表示所述读写请求为块读写请求;转换单元,用于将所述生成单元生成的所述键值字符串转换为十六进制数据形式得到键值。
结合第二方面,在第二方面第一种可能的实现方式中,所述生成单元包括:第一生成子单元,用于生成第一字符串,所述第一字符串包括表示所述设备号编码长度的第一子字符串及表示所述设备号数值的第二子字符串;第二生成子单元,用于生成第二字符串,所述第二字符串包括表示所述偏移量编码长度的第三子字符串及表示所述偏移量数值的第四子字符串;第三生成子单元,用于生成第三字符串,所述第三字符串包括表示所述数据长度信息编码长度的第五子字符串及表示所述数据长度信息数值的第六子字符串;键值字符串生成子单元,用于生成包含所述类型标示符、所述第一生成子单元生成的所述第一字符串、所述第二生成子单元生成的所述第二字符串及所述第三生成子单元生成的所述第三字符串的键值字符串。
结合第二方面第一种可能的实现方式,在第二方面第二种可能的实现方式中,所述第一生成子单元,用于依次连接第一分隔符、所述第一子字符串、第二分隔符及所述第二字符串,生成所述第一字符串。
结合第二方面第一种可能的实现方式,在第二方面第三种可能的实现方式中,所述第二生成子单元,用于依次连接第一分隔符、所述第三子字符串、第二分隔符及所述第四子字符串,生成所述第二字符串。
结合第二方面第一种可能的实现方式,在第二方面第四种可能的实现方式中,所述第三生成子单元,用于依次连接第一分隔符、所述第五子字符串、第二分隔符及所述第六子字符串,生成所述第三字符串。
结合第二方面第一种可能的实现方式、第二方面第二种可能的实现方式、第二方面第三种可能的实现方式或第二方面第四种可能的实现方式,在第二方面第五种可能的实现方式中,所述键值字符串生成子单元,用于依次连接所述类型标示符、所述第一字符串、所述第二字符串及所述第三字符串,生成所述键值字符串。
结合第二方面第一种可能的实现方式、第二方面第二种可能的实现方式、第二方面第三种可能的实现方式、第二方面第四种可能的实现方式或第二方面第五种可能的实现方式,在第二方面第六种可能的实现方式中,所述转换单元,用于将所述键值字符串中的数值转换为十六进制形式,并根据ASCII码表将所述键值字符串中的字符映射为十六进制数值。
本发明实施例中,接收读写请求;若所述读写请求为块读写请求,提取所述读写请求中包含的设备号、偏移量及数据长度信息;生成包含类型标示符、所述设备号、所述偏移量及所述数据长度信息的键值字符串,所述类型标示符用于表示所述读写请求为块读写请求;将所述键值字符串转换为十六进制数据形式得到键值。采用本实施例,可以在应用发送的读写请求为基于SCSI硬盘的块读写请求时,根据块读写请求中包含的逻辑块地址生成键值。当网络存储所使用的存储设备由SCSI硬盘转换为IP硬盘时,可以在不对应用进行修改的前提下,将基于SCSI硬盘的块读写请求生成键值。可以在不对现有应用的正常使用造成影响的前提下,降低对应用稳定性造成的影响。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明在存储网络中的键值生成方法一个实施例的流程图;
图2A为本发明在存储网络中的键值生成装置一个实施例的示意图;
图2B为本发明在存储网络中的键值生成装置生成单元一个实施例的示意图;
图3为本发明在存储网络中的键值生成装置另一个实施例的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
参见图1,为本发明在存储网络中的键值生成方法一个实施例的流程图。该方法可以由存储网络中连接在服务器和IP硬盘之间的独立设备执行。另外,由于各个应用生成的读写请求都需要通过服务器的通信接口,例如网络适配器(NIC,Network InterfaceCard),发送至存储设备,因此该方法也可以由服务器来实现。该方法包括如下步骤:
步骤101,接收读写请求。
由于同一个服务器上可能会有多种类型、多个不同的应用,每一个应用生成的读写请求,都需要通过服务器的通信接口发送至存储设备。因此,在接收读写请求时,可以直接接收某一应用发送的读写请求,也可以从服务器的通信接口接收通过该通信接口发送的所有读写请求。
步骤102,提取所述读写请求中包含的设备号、偏移量及数据长度信息。
由于同一服务器上的可能有多种多样应用,不同应用所生成的读写请求类型可能不一致,并且同一应用在不同时刻生成的读写请求类型可能也不一致。由于读写请求可能是块读写请求、文件读写请求或键值读写请求等,因此在接收到读写请求后,可以首先确定读写请求类型,进而确定是否需要根据该读写请求所包含的内容生成键值。例如,当读写请求为块读写请求时,需要根据块读写请求所包含的内容生产键值,而当读写请求为键值读写请求时,由于读写请求本身已经包含了键值,因此就不需要再生产键值。读写请求的请求类型可以通过读写请求所包含的类型标示符进行判断,也可以根据读写请求包含的内容进行判断。
由于现有存储设备通常为SCSI硬盘,当应用需要在存储设备上普通硬盘上读写数据时,通常会生成一个基于SCSI硬盘的读写请求。当该读写请求为基于SCSI硬盘的块读写请求时,读写请求中会包括应用所要读写的数据块的逻辑块地址等信息。所述逻辑块地址包含该数据块所在存储设备的设备号、所述数据块在存储设备中的地址偏移量及数据块的数据长度信息等等信息。因此可以提取该读写请求中的设备号、偏移量及数据长度信息。
如果所述读写请求为文件读写请求,那么可以采用与文件读写请求对应的方法对读写请求进行处理。例如先将文件读写请求转换为块读写请求,然后再采用本发明实施例进行处理。在此就不再做详细说明。
步骤103,生成包含类型标示符、所述设备号、所述偏移量及所述数据长度信息的键值字符串,所述类型标示符用于表示所述读写请求为块读写请求。
在根据设备号、偏移量及数据长度信息生成键值时,可以首先生成键值字符串,所述键值字符串包含类型标示符、所述设备号、所述偏移量及所述数据长度信息。其中,类型标示符可以为预先设定的字符。
为使生成的键值字符串结构清晰,在生成键值字符串时,可以采用如下方式:生成第一字符串,所述第一字符串包括表示所述设备号编码长度的第一子字符串及表示所述设备号数值的第二子字符串;生成第二字符串,所述第二字符串包括表示所述偏移量编码长度的第三子字符串及表示所述偏移量数值的第四子字符串;生成第三字符串,所述第三字符串包括表示所述数据长度信息编码长度的第五子字符串及表示所述数据长度信息数值的第六子字符串;生成包含所述类型标示符、所述第一字符串、所述第二字符串及所述第三字符串的键值字符串。
其中,在生成第一字符串时,可以依次连接第一分隔符、所述第一子字符串、第二分隔符及所述第二字符串,得到第一字符串。例如,若所述第一分隔符为“:”,所述第二分隔符为“_”,所述设备编号用DEVNO表示,所述设备号编码长度为16位,则所述第一字符串可以为“:2_DEVNO”,其中编码长度可以根据需求设定,通常为16位。
在生成第二字符串时,可以依次连接第一分隔符、所述第三子字符串、第二分隔符及所述第四字符串,得到第二字符串。例如,若所述第一分隔符为“:”,所述第二分隔符为“_”,所述偏移量用OFFSET表示,所述偏移量编码长度为32位,则所述第二字符串可以为“:4_OFFSET”,其中编码长度可以根据需求设定,通常为32位或64位。
在生成第三字符串时,可以依次连接第一分隔符、所述第五子字符串、第二分隔符及所述第六子字符串,得到第三字符串。例如,若所述第一分隔符为“:”,所述第二分隔符为“_”,所述数据长度信息用LENGTH表示,所述数据长度信息编码长度为32位,则所述第三字符串可以为“:4_LENGTH”,其中编码长度可以根据需求设定,通常为32位或64位。
在生成键值字符串时,可以依次连接所述类型标示符、所述第一字符串、所述第二字符串及所述第三字符串生成所述键值字符串。例如,若块读写请求的类型标示符为B,所述第一字符串为“:2_DEVNO”、第二字符串为“:4_OFFSET”、第三字符串为“:4_LENGTH”,则所述键值字符串可以表示为“B:2_DEVNO:4_OFFSET:4_LENGTH”。“B:2_DEVNO:4_OFFSET:4_LENGTH”表示希望在设备编号为DEVNO的设备中,读写偏移为OFFSET,长度为LENGTH的数据。
在此需要说明的是,所述键值字符串包括类型标示符、所述设备号、所述偏移量及所述数据长度信息即可,键值字符串具体的结构本发明不做限定。
步骤104,将所述键值字符串转换为十六进制数据形式,得到键值。
通过键值存储接口进行数据读写所需键值通常为十六进制形式,但键值字符串中可能既包括其他进制形式的数值又包括字符,字符串各个部分的格式不统一,不符合作为键值的形式要求,无法作为键值使用。例如,所述类型标示符、所述第一分隔符及所述第二分隔符等通常为字符,而第一子字符串、第二子字符串、第三子字符串、第四子字符串、第五子字符串、第六子字符串通常为数值。
因此,可以将所述键值字符串转换为十六进制数据形式,得到通过键值存储接口进行数据读写所需的键值。将所述键值字符串转换为十六进制数值形式时,可以将非十六进制的数值转换为十六进制,并将字符通过映射表映射为十六进制数值。例如,可以将所述键值字符串中的第一子字符串、第二子字符串、第三子字符串、第四子字符串、第五子字符串、第六子字符串等数值转换为十六进制形式,并将所述键值字符串中类型标示符、第一分隔符及第二分隔符等字符映射为十六进制数值。当键值字符串为“B:2_DEVNO:4_OFFSET:4_LENGTH”形式时,若所述DEVNO为0x0803,所述OFFSET为1MB,所述LENGTH为1MB。则可以根据ASCII码表将字符,将“B”映射为对应的十六进制数0x42,将“:”映射为对应的十六进制数0x3A,将“_”映射为对应的十六进制数0x2D。并将1MB用十六进制表示为0x00100000。转换后得到的键值即为0x423A022D08033A042D001000003A042D00100000。
从上述实施例可以看出,接收读写请求;若所述读写请求为块读写请求,提取所述读写请求中包含的设备号、偏移量及数据长度信息;生成包含类型标示符、所述设备号、所述偏移量及所述数据长度信息键值字符串,所述类型标示符用于表示所述读写请求为块读写请求;将所述键值字符串转换为十六进制数据形式得到键值。采用本实施例,可以在应用发送的读写请求为基于SCSI硬盘的块读写请求时,根据块读写请求中包含的逻辑块地址生成键值。当网络存储所使用的存储设备由SCSI硬盘转换为IP硬盘时,可以在不对应用进行修改的前提下,根据基于SCSI硬盘的块读写请求生成键值。可以在不对现有应用的正常使用造成影响的前提下,降低对应用稳定性造成的影响。
方便并且快速的根据逻辑块地址生成键值。实现过程可以通过独立的转换设备完成,不但可以保持服务器正常使用,而且可以保障服务器的稳定性。
参见图2A,为本发明在存储网络中的键值生成装置一个实施例的示意图。所述键值生成装置可以是服务器与IP硬盘之间的一个独立设备,也可以设置在所述服务器的NIC中。
该键值生成装置包括:接收单元201,提取单元202,生成单元203,转换单元204。
其中,所述接收单元201,用于接收读写请求。
所述提取单元202,用于提取所述接收单元201接收到的所述读写请求中包含的设备号、偏移量及数据长度信息。
所述生成单元203,用于生成包含类型标示符、所述提取单元202提取到的所述设备号、所述偏移量及所述数据长度信息的键值字符串,所述类型标示符用于表示所述读写请求为块读写请求。
所述转换单元204,用于将所述生成单元203生成的所述键值字符串转换为十六进制数据形式得到键值。
如图2B所示,所述生成单元203可以包括第一生成子单元2031,第二生成子单元2032,第三生成子单元2033及键值字符串生成子单元2034。
所述第一生成子单元2031,用于生成第一字符串,所述第一字符串包括表示所述设备号编码长度的第一子字符串及表示所述设备号数值的第二子字符串。具体来说,所述第一生成子单元2031,用于依次连接第一分隔符、所述第一子字符串、第二分隔符及所述第二字符串,生成所述第一字符串。
所述第二生成子单元2032,用于生成第二字符串,所述第二字符串包括表示所述偏移量编码长度的第三子字符串及表示所述偏移量数值的第四子字符串。具体来说,所述第二生成子单元2032,用于依次连接第一分隔符、所述第三子字符串、第二分隔符及所述第四子字符串,生成所述第二字符串。
所述第三生成子单元2033,用于生成第三字符串,所述第三字符串包括表示所述数据长度信息编码长度的第五子字符串及表示所述数据长度信息数值的第六子字符串。具体来说,所述第三生成子单元2033,用于依次连接第一分隔符、所述第五子字符串、第二分隔符及所述第六子字符串,生成所述第三字符串。
所述键值字符串生成子单元2034,用于生成包含所述类型标示符、所述第一生成子单元2031生成的所述第一字符串、所述第二生成子单元2032生成的所述第二字符串及所述第三生成子单元2033生成的所述第三字符串的键值字符串。具体来说,所述键值字符串生成子单元2034,用于依次连接所述类型标示符、所述第一字符串、所述第二字符串及所述第三字符串,生成所述键值字符串。
所述转换单元204,还可以用于将所述键值字符串中的数值转换为十六进制形式,并根据ASCII码表将所述键值字符串中的字符映射为十六进制数值。
从上述实施例可以看出,采用本实施例,可以在应用发送的读写请求为基于SCSI硬盘的块读写请求时,根据块读写请求中包含的逻辑块地址生成键值。当网络存储所使用的存储设备由SCSI硬盘转换为IP硬盘时,可以在不对应用进行修改的前提下,根据基于SCSI硬盘的块读写请求生成键值。可以在不对现有应用的正常使用造成影响的前提下,降低对应用稳定性造成的影响。
参见图3,为本发明键值生成装置另一个实施例的示意图。
如图3所示,所述组播传输装置包括处理器301,存储器302,通信接口303,所述处理器301、所述存储器302与所述通信接口303之间通过总线304连接。
其中,所述总线304可以是外设部件互连标准(PERIPHERAL COMPONENTINTERCONNECT,简称PCI)总线或扩展工业标准结构(EXTENDED INDUSTRY STANDARDARCHITECTURE,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述存储器302用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器302可能包含随机存取存储器(RANDOM ACCESS MEMORY,简称RAM)存储器,也可能还包括非易失性存储器(NON-VOLATILE MEMORY),例如至少一个磁盘存储器。
所述处理器301执行所述存储器302存放的程序,用于通过所述通信接口303接收读写请求;提取所述读写请求中包含的设备号、偏移量及数据长度信息;生成包含类型标示符、所述设备号、所述偏移量及所述数据长度信息键值字符串,所述类型标示符用于表示所述读写请求为块读写请求;将所述键值字符串转换为十六进制数据形式得到键值。
所述处理器301,还用于生成第一字符串,所述第一字符串包括表示所述设备号编码长度的第一子字符串及表示所述设备号数值的第二子字符串;生成第二字符串,所述第二字符串包括表示所述偏移量编码长度的第三子字符串及表示所述偏移量数值的第四子字符串;生成第三字符串,所述第三字符串包括表示所述数据长度信息编码长度的第五子字符串及表示所述数据长度信息数值的第六子字符串;生成包含所述类型标示符、所述第一字符串、所述第二字符串及所述第三字符串的键值字符串。
所述处理器301,还用于依次连接第一分隔符、所述第一子字符串、第二分隔符及所述第二子字符串,生成所述第一字符串。
所述处理器301,还用于依次连接第一分隔符、所述第三子字符串、第二分隔符及所述第四子字符串,生成所述第二字符串。
所述处理器301,还用于依次连接第一分隔符、所述第五子字符串、第二分隔符及所述第六子字符串,生成所述第三字符串。
所述处理器301,还用于依次连接所述类型标示符、所述第一字符串、所述第二字符串及所述第三字符串,生成所述键值字符串。
所述处理器301,还用于将所述键值字符串所包含的数值转换为十六进制形式,并根据ASCII码表将所述键值字符串所包含的字符映射为十六进制数值,得到十六进制形式的键值。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种在存储网络中的键值生成方法,其特征在于,所述方法包括:
接收读写请求;
提取所述读写请求中包含的设备号、偏移量及数据长度信息;
生成包含类型标示符、所述设备号、所述偏移量及所述数据长度信息的键值字符串,所述类型标示符用于表示所述读写请求为块读写请求;所述生成包含类型标示符、所述设备号、所述偏移量及所述数据长度信息的键值字符串,包括:生成第一字符串,所述第一字符串包括表示所述设备号编码长度的第一子字符串及表示所述设备号数值的第二子字符串;生成第二字符串,所述第二字符串包括表示所述偏移量编码长度的第三子字符串及表示所述偏移量数值的第四子字符串;生成第三字符串,所述第三字符串包括表示所述数据长度信息编码长度的第五子字符串及表示所述数据长度信息数值的第六子字符串;生成包含所述类型标示符、所述第一字符串、所述第二字符串及所述第三字符串的键值字符串;
将所述键值字符串转换为十六进制数据形式,得到键值。
2.如权利要求1所述的方法,其特征在于,所述生成第一字符串,包括:
依次连接第一分隔符、所述第一子字符串、第二分隔符及所述第二子字符串,生成所述第一字符串。
3.如权利要求1所述的方法,其特征在于,所述生成第二字符串,包括:
依次连接第一分隔符、所述第三子字符串、第二分隔符及所述第四子字符串,生成所述第二字符串。
4.如权利要求1所述的方法,其特征在于,所述生成第三字符串,包括:
依次连接第一分隔符、所述第五子字符串、第二分隔符及所述第六子字符串,生成所述第三字符串。
5.如权利要求1至4任一权利要求所述的方法,其特征在于,所述生成包含所述类型标示符、所述第一字符串、所述第二字符串及所述第三字符串的键值字符串,包括:
依次连接所述类型标示符、所述第一字符串、所述第二字符串及所述第三字符串,生成所述键值字符串。
6.如权利要求5所述的方法,其特征在于,所述将所述键值字符串转换为十六进制数据形式得到键值,包括:
将所述键值字符串所包含的数值转换为十六进制形式,并根据ASCII码表将所述键值字符串所包含的字符映射为十六进制数值,得到十六进制形式的键值。
7.一种在存储网络中的键值生成装置,其特征在于,所述装置包括:
接收单元,用于接收读写请求;
提取单元,用于提取所述接收单元接收到的所述读写请求中包含的设备号、偏移量及数据长度信息;
生成单元,用于生成包含类型标示符、所述提取单元提取到的所述设备号、所述偏移量及所述数据长度信息的键值字符串,所述类型标示符用于表示所述读写请求为块读写请求;所述生成单元包括:第一生成子单元,用于生成第一字符串,所述第一字符串包括表示所述设备号编码长度的第一子字符串及表示所述设备号数值的第二子字符串;第二生成子单元,用于生成第二字符串,所述第二字符串包括表示所述偏移量编码长度的第三子字符串及表示所述偏移量数值的第四子字符串;第三生成子单元,用于生成第三字符串,所述第三字符串包括表示所述数据长度信息编码长度的第五子字符串及表示所述数据长度信息数值的第六子字符串;键值字符串生成子单元,用于生成包含所述类型标示符、所述第一生成子单元生成的所述第一字符串、所述第二生成子单元生成的所述第二字符串及所述第三生成子单元生成的所述第三字符串的键值字符串;
转换单元,用于将所述生成单元生成的所述键值字符串转换为十六进制数据形式,得到键值。
8.如权利要求7所述的装置,其特征在于,
所述第一生成子单元,还用于依次连接第一分隔符、所述第一子字符串、第二分隔符及所述第二字符串,生成所述第一字符串。
9.如权利要求7所述的装置,其特征在于,
所述第二生成子单元,还用于依次连接第一分隔符、所述第三子字符串、第二分隔符及所述第四子字符串,生成所述第二字符串。
10.如权利要求7所述的装置,其特征在于,
所述第三生成子单元,还用于依次连接第一分隔符、所述第五子字符串、第二分隔符及所述第六子字符串,生成所述第三字符串。
11.如权利要求7至10任一权利要求所述的装置,其特征在于,
所述键值字符串生成子单元,还用于依次连接所述类型标示符、所述第一字符串、所述第二字符串及所述第三字符串,生成所述键值字符串。
12.如权利要求11所述的装置,其特征在于,
所述转换单元,还用于将所述键值字符串中的数值转换为十六进制形式,并根据ASCII码表将所述键值字符串中的字符映射为十六进制数值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410234771.7A CN104007938B (zh) | 2014-05-29 | 2014-05-29 | 在存储网络中的键值生成方法及装置 |
PCT/CN2015/079951 WO2015180650A1 (zh) | 2014-05-29 | 2015-05-27 | 在存储网络中的键值生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410234771.7A CN104007938B (zh) | 2014-05-29 | 2014-05-29 | 在存储网络中的键值生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104007938A CN104007938A (zh) | 2014-08-27 |
CN104007938B true CN104007938B (zh) | 2017-04-05 |
Family
ID=51368609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410234771.7A Active CN104007938B (zh) | 2014-05-29 | 2014-05-29 | 在存储网络中的键值生成方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104007938B (zh) |
WO (1) | WO2015180650A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104007938B (zh) * | 2014-05-29 | 2017-04-05 | 华为技术有限公司 | 在存储网络中的键值生成方法及装置 |
CN104360819B (zh) * | 2014-09-29 | 2018-04-27 | 华为技术有限公司 | 数据写入方法及装置 |
CN105468300B (zh) * | 2015-11-20 | 2018-08-14 | 华为技术有限公司 | Ip硬盘的管理方法和装置 |
CN111752480A (zh) * | 2016-03-24 | 2020-10-09 | 华为技术有限公司 | 一种数据写方法、数据读方法及相关设备、系统 |
CN108021333B (zh) * | 2016-11-03 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 随机读写数据的系统、装置及方法 |
CN111354099B (zh) * | 2020-02-26 | 2022-10-21 | 深圳市元征科技股份有限公司 | 一种数据处理方法、数据处理装置及诊断设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541461A (zh) * | 2010-12-31 | 2012-07-04 | 阿里巴巴集团控股有限公司 | 远程数据存储的数据读写方法、装置及其系统 |
CN103353867A (zh) * | 2005-12-29 | 2013-10-16 | 亚马逊科技公司 | 具有网络服务客户接口的分布式存储系统 |
CN103559027A (zh) * | 2013-10-22 | 2014-02-05 | 北京航空航天大学 | 一种key与value分开存储的key-value存储系统设计方法 |
CN103560957A (zh) * | 2013-10-15 | 2014-02-05 | 华为技术有限公司 | 查表键值构造方法、微码下发方法、装置及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2698718A2 (en) * | 2011-05-31 | 2014-02-19 | Huawei Technologies Co., Ltd. | Data reading and writing method, device and storage system |
CN103327052B (zh) * | 2012-03-22 | 2018-04-03 | 深圳市腾讯计算机系统有限公司 | 数据存储方法和系统以及数据访问方法和系统 |
CN103744882B (zh) * | 2013-12-20 | 2018-05-25 | 浪潮(北京)电子信息产业有限公司 | 一种基于键值对的目录片段表示方法及装置 |
CN104007938B (zh) * | 2014-05-29 | 2017-04-05 | 华为技术有限公司 | 在存储网络中的键值生成方法及装置 |
-
2014
- 2014-05-29 CN CN201410234771.7A patent/CN104007938B/zh active Active
-
2015
- 2015-05-27 WO PCT/CN2015/079951 patent/WO2015180650A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103353867A (zh) * | 2005-12-29 | 2013-10-16 | 亚马逊科技公司 | 具有网络服务客户接口的分布式存储系统 |
CN102541461A (zh) * | 2010-12-31 | 2012-07-04 | 阿里巴巴集团控股有限公司 | 远程数据存储的数据读写方法、装置及其系统 |
CN103560957A (zh) * | 2013-10-15 | 2014-02-05 | 华为技术有限公司 | 查表键值构造方法、微码下发方法、装置及系统 |
CN103559027A (zh) * | 2013-10-22 | 2014-02-05 | 北京航空航天大学 | 一种key与value分开存储的key-value存储系统设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104007938A (zh) | 2014-08-27 |
WO2015180650A1 (zh) | 2015-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104007938B (zh) | 在存储网络中的键值生成方法及装置 | |
CN104380278B (zh) | 用于客户端管理会话持续性的设备、系统和方法 | |
WO2019144553A1 (zh) | 数据存储方法、装置及存储介质 | |
US7350052B2 (en) | Network system and method for setting volume group in the network system | |
CN102918509B (zh) | 数据读写方法、装置和存储系统 | |
CN103176833A (zh) | 一种基于虚拟机的数据发送方法、接收方法及系统 | |
CN103608784A (zh) | 网络卷创建方法、数据存储方法、存储设备和存储系统 | |
CN107506145B (zh) | 一种物理存储调度方法及云主机创建方法 | |
CN107291392A (zh) | 一种固态硬盘及其读写方法 | |
CN108132760A (zh) | 一种提升ssd读性能的方法及系统 | |
CN109189341A (zh) | 分布式存储系统的目录负载均衡方法、装置、设备及介质 | |
CN109032799A (zh) | 存储资源管理方法、装置、设备及可读存储介质 | |
US10437849B2 (en) | Method and apparatus for implementing storage of file in IP disk | |
CN104216664A (zh) | 网络卷创建方法、数据存储方法、存储设备和存储系统 | |
CN101630332B (zh) | 数据存储管理方法、数据存储管理装置和系统 | |
CN110199270A (zh) | 存储系统中存储设备的管理方法及装置 | |
CN108133026B (zh) | 一种多数据的处理方法、系统及存储介质 | |
CN106708445A (zh) | 链路选择方法及装置 | |
CN109597577A (zh) | 一种处理nvme协议读写命令的方法、系统及相关装置 | |
CN102480516A (zh) | 网际网络小型电脑界面的数据单元的解析方法 | |
CN101741861B (zh) | 一种数据存储方法及装置 | |
CN107105021A (zh) | 一种数据读写方法和装置 | |
CN104932982A (zh) | 一种消息访存的编译方法及相关装置 | |
CN107220124A (zh) | 一种路径选择方法及装置 | |
US9122806B2 (en) | SATA data appliance for providing SATA hosts with access to a configurable number of SATA drives residing in a SAS topology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |