数据读取方法及设备技术

技术编号:15540490 阅读:92 留言:0更新日期:2017-06-05 10:20
本发明专利技术实施例提供一种数据读取方法及设备,该方法包括:获取主机的读取指令,读取指令中包括源逻辑单元号LUN的标识以及待读取数据的第一起始地址以及第一数据长度,源LUN对应有冗余视图,冗余视图包括至少一个第一记录项,每个第一记录项中存储有对源LUN中的至少部分数据进行冗余存储的目标LUN的标识;在确定源LUN对应的存储空间中的数据无法读取时,根据第一起始地址、第一数据长度以及冗余视图,确定待读取的数据对应的目标LUN的标识;根据待读取数据对应的目标LUN的标识,读取第一冗余数据,并将第一冗余数据返回至主机。本实施例可以提高存储系统的冗余数据的利用率。

Data reading method and apparatus

The embodiment of the invention provides a data reading method and apparatus, the method includes: obtaining the host read instruction, including source identification logical unit number LUN in the reading instruction and the first starting address of data to be read and the first data length, LUN source corresponding to the redundant views, redundant views includes at least a first record. The first record in each storage of redundant storage for at least part of the data source in the LUN LUN target identification; in determining the source LUN corresponding to the storage space in the data cannot be read, according to the first starting address, the data length and redundant views, to determine the read data corresponding to the target LUN logo; according to the read data corresponding to the target ID of LUN reads the first redundant data, and the first redundant data back to the host machine. The embodiment can improve the utilization ratio of redundant data in a storage system.

【技术实现步骤摘要】
数据读取方法及设备
本专利技术实施例涉及存储
,尤其涉及一种数据读取方法及设备。
技术介绍
随着计算机技术以及网络技术的高速发展,计算机自带的存储器逐渐难以满足存储需求,于是发展出相对独立的存储设备。该存储设备具有自己的接口和协议,通过同轴电缆、网线、光纤等方式与计算机主机连接。现有技术中,该存储设备可以通过逻辑单元号(logicalunitnumber,LUN)对计算机主机提供磁盘空间。具体地,将存储设备的磁盘空间划分为多个区块,每个区块对应一个LUN。当存储设备接收到计算机主机的读取指令时,若某个LUN对应的区块存在磁盘坏道或者数据损坏时,就无法从该LUN的对应存储位置读取到正确的数据。此时,如果该LUN存在镜像LUN,则查看该LUN与镜像LUN对应的数据是否满足数据一致性的状态,若一致,则从该镜像LUN对应的存储空间中读取数据,向计算机主机返回读取的数据,并将该数据写入该LUN对应的存储空间中,若不一致,则向计算机主机返回介质错误(Mediumerror)信息。然而,现有技术中,只有在该LUN与镜像LUN对应的数据满足数据一致性状态时,才可以从镜像LUN中读取数据。对于该LUN对应的存储空间中有部分损坏数据时,即使镜像LUN对应的存储空间中存储有该部分损坏数据对应的正确数据时,但由于该镜像LUN与该LUN不满足数据一致性状态,因此不能从该镜像LUN中获取正确的数据,导致无法充分利用存储系统的冗余数据。
技术实现思路
本专利技术实施例提供一种数据读取方法及设备,以提高存储系统的冗余数据的利用率。第一方面,本专利技术实施例提供一种数据读取方法,包括:获取主机的读取指令,所述读取指令中包括源逻辑单元号LUN的标识以及待读取数据的第一起始地址以及第一数据长度,所述源LUN对应有冗余视图,所述冗余视图包括至少一个第一记录项,每个所述第一记录项中存储有对所述源LUN中的至少部分数据进行冗余存储的目标LUN的标识;在确定所述源LUN对应的存储空间中的数据无法读取时,根据所述第一起始地址、第一数据长度以及所述冗余视图,确定所述待读取的数据对应的目标LUN的标识;可选地,第一记录项中还存储有第二冗余数据的第二起始地址和第二数据长度;在确定第一起始地址和第一数据长度对应的地址空间与第二起始地址和第二数据长度对应的地址空间存在交集时,可以确定对应的第一记录项中的目标LUN的标识为待读取的数据对应的目标LUN的标识;根据所述待读取数据对应的目标LUN的标识,读取第一冗余数据,并将所述第一冗余数据返回至所述主机。通过源LUN对应有冗余视图,冗余视图包括至少一个第一记录项,每个第一记录项中存储有对源LUN中的至少部分数据进行冗余存储的目标LUN的标识,使得在源LUN对应的存储空间中的数据无法读取时,不需要判断该源LUN中的数据是否与目标LUN中的数据满足数据一致性,只要获取该待读取数据对应的冗余视图中的第一记录项,确定待读取数据对应的目标LUN的标识;根据待读取数据对应的目标LUN的标识,读取第一冗余数据,提高了存储系统中冗余数据的利用率。在一种可能的设计中,所述源LUN对应的存储空间被划分为多个数据块,其中,每个所述数据块各自对应有冗余视图;所述根据所述第一起始地址、第一数据长度以及所述冗余视图,确定所述待读取的数据对应的目标LUN的标识,包括:根据所述第一起始地址、第一数据长度以及所述源LUN的标识对应的各数据块的地址空间,确定所述待读取的数据对应的至少一个第一目标数据块;根据各所述第一目标数据块对应的冗余视图中的第一记录项,确定所述待读取数据对应的目标LUN的标识。在一种可能的设计中,所述第一记录项中还存储有第二冗余数据的第二起始地址和第二数据长度,所述第二起始地址和所述第二数据长度形成的第二地址空间为数据块的地址空间的子集;所述根据各所述第一目标数据块对应的冗余视图中的第一记录项,确定所述待读取数据对应的目标LUN的标识,包括:根据所述第一起始地址和所述第一数据长度,确定第一地址空间;根据所述第一地址空间、各所述第一目标数据块对应的冗余视图中的第一记录项对应的第二地址空间,确定与所述第一地址空间存在交集的第二地址空间对应的目标记录项,且所述第一地址空间是多个所述第二地址空间形成的地址空间的子集;根据各所述目标记录项,确定所述待读取数据对应的目标LUN的标识。通过将源LUN对应的存储空间划分为多个数据块,每个数据块对应有各自的冗余视图。这样,只要找到对应待读取的数据对应的目标数据块,就可以只在该目标数据块中对第一记录项进行遍历,减少了遍历时间,提高了读取数据的效率。在一种可能的设计中,所述第一记录项中还存储有各目标LUN的优先级;所述根据所述第一地址空间、各所述第一目标数据块的冗余视图中的第一记录项对应的第二地址空间,确定与所述第一地址空间存在交集的第二地址空间对应的目标记录项,包括:根据所述第一地址空间以及每个数据块的地址空间,确定所述待读取数据针对每个第一目标数据块的第三地址空间;针对任一第一目标数据块,根据所述冗余视图中的各第一记录项中的目标LUN的优先级从高到低的顺序,遍历所述冗余视图中的每个第一记录项,得到与所述第三地址空间存在交集的第二地址空间对应的目标记录项,且所述第三地址空间是至少一个所述第二地址空间形成的地址空间的子集,针对同一冗余数据,所述目标记录项中的目标LUN的优先级高于其它第一记录项中的目标LUN的优先级。下面将详细说明在冗余视图中插入记录项的过程,本领域技术人员可以理解,在冗余视图中插入记录项的过程,可以不依赖于上述的可能的设计单独实现,也可以在上述可能的设计的基础上实现。在一种可能的设计中,所述方法还包括:获取所述源LUN的标识、待插入冗余视图的第二记录项,所述第二记录项中包括第三冗余数据的第三起始地址和第三数据长度、所述第三冗余数据对应的目标LUN的标识以及所述目标LUN的优先级;根据所述第三起始地址、第三数据长度以及所述源LUN的标识对应的各数据块的地址空间,确定所述第三冗余数据对应的至少一个第二目标数据块;根据各所述第二目标数据块对应的冗余视图中每个第一记录项中存储的目标LUN的优先级以及所述第二记录项中存储的目标LUN的优先级,对各所述第二目标数据块对应的冗余视图进行插入记录项的处理。在一种可能的设计中,所述根据各所述第二目标数据块对应的冗余视图中每个第一记录项中存储的目标LUN的优先级以及所述第二记录项中存储的目标LUN的优先级,对各所述第二目标数据块对应的冗余视图进行插入记录项的处理,包括:根据所述第三起始地址、所述第三数据长度以及每个数据块的地址空间,确定所述第三冗余数据针对每个第二目标数据块的第三记录项,所述第三记录项中包括第四起始地址、第四数据长度、所述第三冗余数据对应的目标LUN的标识以及所述目标LUN的优先级;针对任一第二目标数据块,根据所述第二目标数据块对应的冗余视图中的各第一记录项的优先级从高到低的顺序,遍历所述冗余视图中的每个第一记录项,直至所述第三记录项中的目标LUN的优先级高于第一记录项中的目标LUN的优先级为止,将所述第三记录项插入到该第一记录项之前。下面将详细说明在冗余视图中删除记录项的过程,本领域技术人员可以理解,在冗余视图中删除记录项的过程,可本文档来自技高网...
数据读取方法及设备

【技术保护点】
一种数据读取方法,其特征在于,包括:获取主机的读取指令,所述读取指令中包括源逻辑单元号LUN的标识以及待读取数据的第一起始地址以及第一数据长度,所述源LUN对应有冗余视图,所述冗余视图包括至少一个第一记录项,每个所述第一记录项中存储有对所述源LUN中的至少部分数据进行冗余存储的目标LUN的标识;在确定所述源LUN对应的存储空间中的数据无法读取时,根据所述第一起始地址、第一数据长度以及所述冗余视图,确定所述待读取的数据对应的目标LUN的标识;根据所述待读取数据对应的目标LUN的标识,读取第一冗余数据,并将所述第一冗余数据返回至所述主机。

【技术特征摘要】
1.一种数据读取方法,其特征在于,包括:获取主机的读取指令,所述读取指令中包括源逻辑单元号LUN的标识以及待读取数据的第一起始地址以及第一数据长度,所述源LUN对应有冗余视图,所述冗余视图包括至少一个第一记录项,每个所述第一记录项中存储有对所述源LUN中的至少部分数据进行冗余存储的目标LUN的标识;在确定所述源LUN对应的存储空间中的数据无法读取时,根据所述第一起始地址、第一数据长度以及所述冗余视图,确定所述待读取的数据对应的目标LUN的标识;根据所述待读取数据对应的目标LUN的标识,读取第一冗余数据,并将所述第一冗余数据返回至所述主机。2.根据权利要求1所述的方法,其特征在于,所述源LUN对应的存储空间被划分为多个数据块,其中,每个所述数据块各自对应有冗余视图;所述根据所述第一起始地址、第一数据长度以及所述冗余视图,确定所述待读取的数据对应的目标LUN的标识,包括:根据所述第一起始地址、第一数据长度以及所述源LUN的标识对应的各数据块的地址空间,确定所述待读取的数据对应的至少一个第一目标数据块;根据各所述第一目标数据块对应的冗余视图中的第一记录项,确定所述待读取数据对应的目标LUN的标识。3.根据权利要求2所述的方法,其特征在于,所述第一记录项中还存储有第二冗余数据的第二起始地址和第二数据长度,所述第二起始地址和所述第二数据长度形成的第二地址空间为数据块的地址空间的子集;所述根据各所述第一目标数据块对应的冗余视图中的第一记录项,确定所述待读取数据对应的目标LUN的标识,包括:根据所述第一起始地址和所述第一数据长度,确定第一地址空间;根据所述第一地址空间、各所述第一目标数据块对应的冗余视图中的第一记录项对应的第二地址空间,确定与所述第一地址空间存在交集的第二地址空间对应的目标记录项,且所述第一地址空间是多个所述第二地址空间形成的地址空间的子集;根据各所述目标记录项,确定所述待读取数据对应的目标LUN的标识。4.根据权利要求3所述的方法,其特征在于,所述第一记录项中还存储有各目标LUN的优先级;所述根据所述第一地址空间、各所述第一目标数据块的冗余视图中的第一记录项对应的第二地址空间,确定与所述第一地址空间存在交集的第二地址空间对应的目标记录项,包括:根据所述第一地址空间以及每个数据块的地址空间,确定所述待读取数据针对每个第一目标数据块的第三地址空间;针对任一第一目标数据块,根据所述冗余视图中的各第一记录项中的目标LUN的优先级从高到低的顺序,遍历所述冗余视图中的每个第一记录项,得到与所述第三地址空间存在交集的第二地址空间对应的目标记录项,且所述第三地址空间是至少一个所述第二地址空间形成的地址空间的子集,针对同一冗余数据,所述目标记录项中的目标LUN的优先级高于其它第一记录项中的目标LUN的优先级。5.根据权利要求2所述的方法,其特征在于,所述方法还包括:获取所述源LUN的标识、待插入冗余视图的第二记录项,所述第二记录项中包括第三冗余数据的第三起始地址和第三数据长度、所述第三冗余数据对应的目标LUN的标识以及所述目标LUN的优先级;根据所述第三起始地址、第三数据长度以及所述源LUN的标识对应的各数据块的地址空间,确定所述第三冗余数据对应的至少一个第二目标数据块;根据各所述第二目标数据块对应的冗余视图中每个第一记录项中存储的目标LUN的优先级以及所述第二记录项中存储的目标LUN的优先级,对各所述第二目标数据块对应的冗余视图进行插入记录项的处理。6.根据权利要求5所述的方法,其特征在于,所述根据各所述第二目标数据块对应的冗余视图中每个第一记录项中存储的目标LUN的优先级以及所述第二记录项中存储的目标LUN的优先级,对各所述第二目标数据块对应的冗余视图进行插入记录项的处理,包括:根据所述第三起始地址、所述第三数据长度以及每个数据块的地址空间,确定所述第三冗余数据针对每个第二目标数据块的第三记录项,所述第三记录项中包括第四起始地址、第四数据长度、所述第三冗余数据对应的目标LUN的标识以及所述目标LUN的优先级;针对任一第二目标数据块,根据所述第二目标数据块对应的冗余视图中的各第一记录项的优先级从高到低的顺序,遍历所述冗余视图中的每个第一记录项,直至所述第三记录项中的目标LUN的优先级高于第一记录项中的目标LUN的优先级为止,将所述第三记录项插入到该第一记录项之前。7.根据权利要求2所述的方法,其特征在于,所述方法还包括:获取所述源LUN对应的存储空间的新写入数据的写入信息,所述写入信息包括所述源LUN的标识、所述新写入数据的第四起始地址和第四数据长度;根据所述新写入数据的第四起始地址、第四数据长度以及所述源LUN的标识对应的各数据块的地址空间,确定所述新写入数据对应的至少一个第三目标数据块;根据各所述第三目标数据块对应的冗余视图中每个第四记录项中的第五起始地址和第五数据长度、所述第四起始地址和所述第四数据长度,对各所述第三目标数据块对应的冗余视图进行删除记录项的处理。8.根据权利要求7所述的方法,其特征在于,所述根据各所述第三目标数据块对应的冗余视图中每个第四记录项中的第五起始地址和第五数据长度、所述第四起始地址和所述第四数据长度,对各所述第三目标数据块对应的冗余视图进行删除记录项的处理,包括:根据所述第四起始地址、所述第四数据长度以及每个数据块的地址空间,确定所述新写入数据针对每个第三目标数据块的第六起始地址和第六数据长度以及第四地址空间;遍历所述冗余视图中的每个第四记录项,若所述第四记录项对应的第五地址空间与所述第四地址空间存在交集,则根据所述第五起始地址、第五数据长度、第六起始地址和第六数据长度,对所述第三目标数据块对应的冗余视图进行删除记录项的处理。9.根据权利要求8所述的方法,其特征在于,所述根据所述第五起始地址、第五数据长度、第六起始地址和第六数据长度,对所述第三目标数据块对应的冗余视图进行删除记录项的处理,包括:根据所述第五起始地址、第五数据长度、第六起始地址和第六数据长度建立第一分解空间R1和第二分解空间R2;其中,所述R1的起始地址和数据长度如下:R1_lba=D5;R1_len=D6-D5;其中,所述R2的起始地址和数据长度如下:R2_lba=D6+L6;R2_len=D5+L5-D6-L6,其中,所述R1_lba为所述第一分解空间的起始地址,所述R1_len为所述第一分解空间的数据长度,所述R2_lba为所述第二分解空间的起始地址,所述R2_len为所述第二分解空间的数据长度,所述D5为第五起始地址、所述D6为第六起始地址、所述L5为第五数据长度、所述L6为第六数据长度;根据所述R1的数据长度和所述R2的数据长度,对所述第三目标数据块对应的冗余视图进行删除记录项的处理。10.根据权利要求9所述的方法,其特征在于,所述根据所述R1的数据长度和所述R2的数据长度,对所述第三目标数据块对应的冗余视图进行删除记录项的处理,包括:若所述R1的数据长度大于0,所述R2的数据长度大于0,则删除所述第四记录项,并插入第五记录项和第六记录项,所述第五记录项中的起始地址为D5,数据长度为D6-D5,所述第六记录项中的起始地址为D6+L6,数据长度为D5+L5-D6-L6;若所述R1的数据长度大于0,所述R2的数据长度小于等于0,则删除所述第四记...

【专利技术属性】
技术研发人员:罗镇孙吉峰
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1