CN104216664B - 网络卷创建方法、数据存储方法、存储设备和存储系统 - Google Patents
网络卷创建方法、数据存储方法、存储设备和存储系统 Download PDFInfo
- Publication number
- CN104216664B CN104216664B CN201410428740.5A CN201410428740A CN104216664B CN 104216664 B CN104216664 B CN 104216664B CN 201410428740 A CN201410428740 A CN 201410428740A CN 104216664 B CN104216664 B CN 104216664B
- Authority
- CN
- China
- Prior art keywords
- data
- address
- memory node
- slice
- verification
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种网络卷创建方法,包括:第一存储节点接收所述管理节点发送的第一网络卷创建请求;根据所述RAID类型信息和所述网络卷的大小信息确定所述多个存储节点中的每个存储节点待分配的存储空间的大小;向所述每个存储节点分别发送第二网络卷创建请求;为每个存储节点分配的存储空间指定每个存储节点对应的逻辑地址;向所述管理节点发送所述第一网络卷创建请求的响应消息,所述第一网络卷创建请求的响应消息包括:所述网络卷的逻辑地址,所述网络卷的逻辑地址包括所述每个存储节点对应的逻辑地址。可以实现网络卷的创建。
Description
技术领域
本发明涉及存储技术,尤其涉及一种网络卷创建方法、数据存储方法、存储设备和存储系统。
背景技术
传统的存储系统采用集中的存储服务器存放所有数据,存储服务器又称存储节点,可以包含多个硬盘,在多个硬盘之间可以根据独立磁盘冗余数组(Redundant Array ofIndependent Disks,RAID)类型创建普通卷,将数据存储在普通卷中,可以实现数据的冗余。
RAID简称为硬盘阵列。其基本思想就是把多个硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个容量巨大的硬盘。根据选择的版本不同,RAID比单颗硬盘有以下方面的好处:增强数据集成度,增强容错功能,增加处理量或容量。另外,磁盘阵列对于电脑来说,看起来就像一个单独的硬盘或逻辑存储单元。传统的RAID技术是在硬盘间实现的,以RAID 5为例,要实现RAID 5技术至少需要三颗硬盘,将数据和相对应的奇偶校验信息存储到组成RAID 5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID 5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
然而,目前的普通卷是在一个存储节点内建立的,当该存储节点发生故障时,其存储的数据都会丢失,可靠性不能得到保证,因此亟待创建一种跨存储节点的网络卷。
发明内容
本发明实施例提供了一种网络卷创建方法、数据存储方法、存储设备和存储系统,可以实现网络卷的创建。
第一方面,本发明实施例提供一种网络卷创建方法,所述方法应用于存储系统中,所述存储系统包括一个管理节点和多个存储节点,所述方法包括:
所述多个存储节点中的第一存储节点接收所述管理节点发送的第一网络卷创建请求,所述第一网络卷创建请求包括网络卷的信息,所述网络卷的信息包括RAID类型信息和所述网络卷的大小信息;
根据所述RAID类型信息和所述网络卷的大小信息确定所述多个存储节点中的每个存储节点待分配的存储空间的大小;
向所述每个存储节点分别发送第二网络卷创建请求,所述第二网络卷创建请求包括所述每个存储节点待分配的存储空间的大小,使得所述每个存储节点根据所述每个存储节点待分配的存储空间的大小为所述网络卷分配存储空间;
为每个存储节点分配的存储空间指定每个存储节点对应的逻辑地址;
向所述管理节点发送所述第一网络卷创建请求的响应消息,所述第一网络卷创建请求的响应消息包括:所述网络卷的逻辑地址,所述网络卷的逻辑地址包括所述每个存储节点对应的逻辑地址。
在第一方面的第一种可能的实现方式中,还包括:
根据所述RAID类型信息和所述网络卷的大小信息,确定创建所述网络卷所需的所述多个存储节点。
在第一方面的第二种可能的实现方式中,所述网络卷的信息还包括存储节点信息,所述存储节点信息用于指示创建所述网络卷所需的所述多个存储节点;
所述方法还包括:根据所述存储节点信息,确定创建所述网络卷所需的所述多个存储节点。
在第一方面的第三种可能的实现方式中,还包括:
将所述每个存储节点对应的逻辑地址分别发送给所述每个存储节点,使得所述每个存储节点记录自身的逻辑地址与分配的存储空间的物理地址之间的映射关系。
结合第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述存储系统还包括主机,所述方法还包括:
向所述主机发送所述网络卷的信息,以及所述网络卷的逻辑地址。
在第一方面的第五种可能的实现方式中,还包括:记录并保存所述每个存储节点对应的逻辑地址与所述每个存储节点的对应关系。
在第一方面的第六种可能的实现方式中,所述逻辑地址包括数据地址;所述第一网络卷创建请求的响应消息具体包括:所述网络卷的数据地址。
在第一方面的第七种可能的实现方式中,所述第二网络卷创建请求的响应消息包括:分配的存储空间的物理地址;
所述为每个存储节点分配的存储空间指定每个存储节点对应的逻辑地址具体包括:根据所述分配的存储空间的物理地址,为每个存储节点分配的存储空间指定每个存储节点对应的逻辑地址。
第二方面,本发明实施例提供一种数据存储方法,所述方法应用于存储系统中,所述存储系统包括主机和多个存储节点,所述方法包括:
所述多个存储节点中的第一存储节点将目标数据切分为至少两个切片数据;
计算所述至少两个切片数据的校验数据,为所述校验数据分配校验地址;
确定每个切片数据的数据地址;
根据所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点,以及根据所述校验地址与存储节点的对应关系确定校验数据对应的存储节点;
向每个切片数据对应的存储节点发送第一写数据请求,所述第一写数据请求包括切片数据和数据地址,使得所述每个切片数据对应的存储节点根据数据地址与物理地址的映射关系,将切片数据写入物理地址对应的存储空间中;
向校验数据对应的存储节点发送第二写数据请求,所述第二写数据请求包括校验数据和校验地址,使得所述校验数据对应的存储节点根据校验地址与物理地址的映射关系,将校验数据写入物理地址对应的存储空间中。
在第二方面的第一种可能的实现方式中,所述方法还包括:
接收所述主机发送的第三写数据请求,所述第三写数据请求包括网络卷的标识、数据长度和所述目标数据;
所述将目标数据切分为至少两个切片数据具体包括:根据RAID类型和所述数据长度将目标数据切分为至少两个切片数据,所述RAID类型是根据所述网络卷的标识确定的。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第三写数据请求还包括存储地址;
所述确定每个切片数据的数据地址具体包括:根据所述存储地址和所述数据长度确定每个切片数据的数据地址。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述方法还包括:
接收所述主机发送的第一读数据请求,所述第一读数据请求包括所述存储地址和所述数据长度,所述第一读数据请求用于读取所述目标数据;
根据所述存储地址和所述数据长度确定所述目标数据包含的各个切片数据的数据地址;
根据所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点;
向每个切片数据对应的存储节点发送第二读数据请求,所述第二读数据请求包括切片数据的数据地址,使得所述每个切片数据对应的存储节点根据数据地址与物理地址的映射关系,从所述物理地址对应的存储空间中读取所述切片数据并发送给所述第一存储节点;
接收每个切片数据对应的存储节点发送的切片数据,合并成所述目标数据发送给所述主机。
第三方面,本发明实施例提供一种存储设备,所述存储设备包括:
接收模块,用于接收管理节点发送的第一网络卷创建请求,所述第一网络卷创建请求包括网络卷的信息,所述网络卷的信息包括RAID类型信息和所述网络卷的大小信息;
确定模块,用于根据所述RAID类型信息和所述网络卷的大小信息确定所述网络卷所需的多个存储节点中的每个存储节点待分配的存储空间的大小;
发送模块,用于向所述每个存储节点分别发送第二网络卷创建请求,所述第二网络卷创建请求包括所述每个存储节点待分配的存储空间的大小,使得所述每个存储节点根据所述每个存储节点待分配的存储空间的大小为所述网络卷分配存储空间;
地址指定模块,用于为每个存储节点分配的存储空间指定每个存储节点对应的逻辑地址;
所述发送模块,还用于向所述管理节点发送所述第一网络卷创建请求的响应消息,所述第一网络卷创建请求的响应消息包括:所述网络卷的逻辑地址,所述网络卷的逻辑地址包括所述每个存储节点对应的逻辑地址。
在第三方面的第一种可能的实现方式中,所述确定模块,还用于根据所述RAID类型信息和所述网络卷的大小信息,确定创建所述网络卷所需的所述多个存储节点。
在第三方面的第二种可能的实现方式中,所述网络卷的信息还包括存储节点信息,所述存储节点信息用于指示创建所述网络卷所需的所述多个存储节点;
所述确定模块,还用于根据所述存储节点信息,确定创建所述网络卷所需的所述多个存储节点。
在第三方面的第三种可能的实现方式中,所述发送模块,还用于将所述每个存储节点对应的逻辑地址分别发送给所述每个存储节点,使得所述每个存储节点记录自身的逻辑地址与分配的存储空间的物理地址之间的映射关系。
在第三方面的第四种可能的实现方式中,还包括记录模块;
所述记录模块,还用于记录并保存所述每个存储节点对应的逻辑地址与所述每个存储节点的对应关系。
在第三方面的第五种可能的实现方式中,所述逻辑地址包括数据地址;
所述第一网络卷创建请求的响应消息具体包括:所述网络卷的数据地址。
在第三方面的第六种可能的实现方式中,所述第二网络卷创建请求的响应消息包括:分配的存储空间的物理地址;
所述地址指定模块,具体用于根据所述分配的存储空间的物理地址,为每个存储节点分配的存储空间指定每个存储节点对应的逻辑地址。
第四方面,本发明实施例提供一种存储设备,所述存储设备包括:
切分模块,用于将目标数据切分为至少两个切片数据;
计算模块,用于计算所述至少两个切片数据的校验数据,为所述校验数据分配校验地址;
确定模块,用于确定每个切片数据的数据地址;根据所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点,以及根据所述校验地址与存储节点的对应关系确定校验数据对应的存储节点;
发送模块,用于向每个切片数据对应的存储节点发送第一写数据请求,所述第一写数据请求包括切片数据和数据地址,使得所述每个切片数据对应的存储节点根据数据地址与物理地址的映射关系,将切片数据写入物理地址对应的存储空间中;向校验数据对应的存储节点发送第二写数据请求,所述第二写数据请求包括校验数据和校验地址,使得所述校验数据对应的存储节点根据校验地址与物理地址的映射关系,将校验数据写入物理地址对应的存储空间中。
在第四方面的第一种可能的实现方式中,所述存储设备还包括:接收模块;
所述接收模块,用于接收主机发送的第三写数据请求,所述第三写数据请求包括网络卷的标识、数据长度和所述目标数据;
所述切分模块,具体用于根据RAID类型和所述数据长度将目标数据切分为至少两个切片数据,所述RAID类型是根据所述网络卷的标识确定的。
结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述第三写数据请求还包括存储地址;
所述确定模块,具体用于根据所述存储地址和所述数据长度确定每个切片数据的数据地址。
结合第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,
所述接收模块,还用于接收所述主机发送的第一读数据请求,所述第一读数据请求包括所述存储地址和所述数据长度,所述第一读数据请求用于读取所述目标数据;
所述确定模块,还用于根据所述存储地址和所述数据长度确定所述目标数据包含的各个切片数据的数据地址;根据所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点;
所述发送模块,还用于向每个切片数据对应的存储节点发送第二读数据请求,所述第二读数据请求包括切片数据的数据地址,使得所述每个切片数据对应的存储节点根据数据地址与物理地址的映射关系,从所述物理地址对应的存储空间中读取所述切片数据并发送给所述第一存储节点;
所述接收模块,还用于接收每个切片数据对应的存储节点发送的切片数据,合并成所述目标数据发送给所述主机。
第五方面,本发明实施例提供一种存储系统,所述存储系统包括:如权利要求13-19任一权利要求所述的存储设备以及管理节点;
所述管理节点,用于向所述多个存储节点中的第一存储节点发送第一网络卷创建请求,所述第一网络卷创建请求包括网络卷的信息,所述网络卷的信息包括RAID类型信息和所述网络卷的大小信息。
第六方面,本发明实施例提供一种存储系统,所述存储系统包括如权利要求20-23任一权利要求所述的存储设备以及主机;
所述主机,用于向所述存储设备发送第三写数据请求,所述第三写数据请求包括网络卷的标识、数据长度和所述目标数据。
第七方面,本发明实施例提供一种存储设备,处理器、存储器和通信总线;
其中,所述处理器和所述存储器通过所述通信总线进行通信;
所述存储器用于保存程序;
所述处理器用于执行所述程序,以实现:
接收管理节点发送的第一网络卷创建请求,所述第一网络卷创建请求包括网络卷的信息,所述网络卷的信息包括RAID类型信息和所述网络卷的大小信息;
根据所述RAID类型信息和所述网络卷的大小信息确定多个存储节点中的每个存储节点待分配的存储空间的大小;
向所述每个存储节点分别发送第二网络卷创建请求,所述第二网络卷创建请求包括所述每个存储节点待分配的存储空间的大小,使得所述每个存储节点根据所述每个存储节点待分配的存储空间的大小为所述网络卷分配存储空间;
为每个存储节点分配的存储空间指定每个存储节点对应的逻辑地址;
向所述管理节点发送所述第一网络卷创建请求的响应消息,所述第一网络卷创建请求的响应消息包括:所述网络卷的逻辑地址,所述网络卷的逻辑地址包括所述每个存储节点对应的逻辑地址。
在第七方面的第一种可能的实现方式中,所述处理器,还用于根据所述RAID类型信息和所述网络卷的大小信息,确定创建所述网络卷所需的所述多个存储节点。
在第七方面的第二种可能的实现方式中,所述网络卷的信息还包括存储节点信息,所述存储节点信息用于指示创建所述网络卷所需的所述多个存储节点;
所述处理器,还用于根据所述存储节点信息,确定创建所述网络卷所需的所述多个存储节点。
在第七方面的第三种可能的实现方式中,所述处理器,还用于将所述每个存储节点对应的逻辑地址分别发送给所述每个存储节点,使得所述每个存储节点记录自身的逻辑地址与分配的存储空间的物理地址之间的映射关系。
在第七方面的第四种可能的实现方式中,所述处理器,还用于记录并保存所述每个存储节点对应的逻辑地址与所述每个存储节点的对应关系。
在第七方面的第五种可能的实现方式中,所述逻辑地址包括数据地址;
所述第一网络卷创建请求的响应消息具体包括:所述网络卷的数据地址。
在第七方面的第六种可能的实现方式中,所述第二网络卷创建请求的响应消息包括:分配的存储空间的物理地址;
所述处理器,具体用于根据所述分配的存储空间的物理地址,为每个存储节点分配的存储空间指定每个存储节点对应的逻辑地址。
第八方面,本发明实施例提供一种存储设备,处理器、存储器和通信总线;其中,所述处理器和所述存储器通过所述通信总线进行通信;
所述存储器用于保存程序;
所述处理器用于执行所述程序,以实现:
将目标数据切分为至少两个切片数据;
计算所述至少两个切片数据的校验数据,为所述校验数据分配校验地址;
确定每个切片数据的数据地址;
根据所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点,以及根据所述校验地址与存储节点的对应关系确定校验数据对应的存储节点;
向每个切片数据对应的存储节点发送第一写数据请求,所述第一写数据请求包括切片数据和数据地址,使得所述每个切片数据对应的存储节点根据数据地址与物理地址的映射关系,将切片数据写入物理地址对应的存储空间中;
向校验数据对应的存储节点发送第二写数据请求,所述第二写数据请求包括校验数据和校验地址,使得所述校验数据对应的存储节点根据校验地址与物理地址的映射关系,将校验数据写入物理地址对应的存储空间中。
在第八方面的第一种可能的实现方式中,所述处理器,还用于接收所述主机发送的第三写数据请求,所述第三写数据请求包括网络卷的标识、数据长度和所述目标数据;
所述处理器,具体用于根据RAID类型和所述数据长度将目标数据切分为至少两个切片数据,所述RAID类型是根据所述网络卷的标识确定的。
结合第八方面的第一种可能的实现方式,在第八方面的第二种可能的实现方式中,所述第三写数据请求还包括存储地址;
所述处理器,具体用于根据所述存储地址和所述数据长度确定每个切片数据的数据地址。
本发明实施例中,第一存储节点在接收管理节点发送的第一网络卷创建请求后,确定出每个存储节点待分配的存储空间,向每个存储节点发送第二网络卷创建请求使得各存储节点可以根据第二网络卷创建请求分配存储空间,第一存储节点对各存储节点分配存储空间指定逻辑地址,并将逻辑地址发送给管理节点,使得管理节点知道网络卷创建成功,以及该网络卷的逻辑地址。以此,实现了网络卷的创建。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种网络卷创建方法的应用网络架构示意图;
图2为本发明实施例提供的一种网络卷创建方法的信令图;
图3为本发明实施例提供的一种数据存储方法的流程图;
图4为本发明实施例提供的另一种数据存储方法的流程图;
图5为本发明实施例提供的一种存储设备的结构示意图;
图6为本发明实施例提供的另一种存储设备的结构示意图;
图7A为本发明实施例提供的一种存储系统的结构示意图;
图7B为本发明实施例提供的另一种存储系统的结构示意图;
图8为本发明实施例提供的又一种存储设备的结构示意图;
图9为本发明实施例提供的再一种存储设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的网络卷创建方法可以在存储系统上实现。图1为本发明实施例提供的网络卷创建方法的系统架构示意图,如图1所示,该存储系统包括主机、管理节点和多个存储设备(又称存储节点)。
主机可以包括当前技术已知的任何计算设备,如服务器、台式计算机等等。在主机内部,安装有操作系统以及其他应用程序。
管理节点可以包括当前技术已知的任何计算设备,如服务器、台式计算机等等。其内部结构可以与主机相同。
存储节点可以包括当前技术已知的存储设备,如独立磁盘冗余阵列(RedundantArrays of Inexpensive Disks,RAID)、磁盘簇(Just a Bunch OfDisks,JBOD)、直接存取存储器(Direct Access Storage Device,DASD)的一个或多个互连的磁盘驱动器,诸如磁带库、一个或多个存储单元的磁带存储设备。
其中,各个存储节点相互连接,主机与管理节点之间以及管理节点与各个存储节点通过网络连接,这里的网络可以是互联网internet,也可以是IP SAN(IP Storage AreaNetwork,基于IP地址的存储局域网络)以及其他私有网络等。
请参考图1,图1是本发明一种网络卷创建方法的实施例,如图1所示,所示方法包括:
步骤S201:所述多个存储节点中的第一存储节点接收所述管理节点发送的第一网络卷创建请求,所述第一网络卷创建请求包括网络卷的信息;
管理节点可以将第一网络卷创建请求发送给多个存储节点中的任意一个存储节点,该存储节点接收到第一网络卷创建请求后可以通过修改属性设置让自己成为第一存储节点。
网络卷的信息可以是RAID类型信息和网络卷的大小信息,其中,RAID类型信息可以是本领域技术人员所熟知的RAID类型,例如:常用的RAID5,RAID6等,也可以是上纠偏码的冗余类型,例如:Erasure Code10+2,9+3,8+4等。网络卷的大小信息是指所述网络卷所包括的存储空间的大小。
在本发明另一个实施例中,网络卷的信息还可以包括存储节点的信息,用于指示创建所述网络卷所需的存储节点。
可选的,网络卷的信息还可以包括网络卷的标识。
步骤S202:根据所述RAID类型信息和所述网络卷的大小信息确定所述多个存储节点中的每个存储节点待分配的存储空间的大小。
第一存储节点可以根据RAID类型信息和网络卷的大小信息,确定每个存储节点待分配的存储空间。举例来说,RAID类型信息是“4+1”的RAID5,其中,四个存储节点用于存储写数据请求中携带的待写入数据,第一存储节点用于存储所述待写入数据的校验数据。需要说明的是,当接收到写数据请求时,需要将待写入数据进行切分得到四个切片数据,所述四个切片数据分别存储在四个存储节点中。再如,网络卷的大小信息是20M,则每个存储节点待分配的存储空间是4M。
步骤S203:第一存储节点向所述每个存储节点分别发送第二网络卷创建请求,所述第二网络卷创建请求包括每个存储节点待分配的存储空间的大小,使得每个存储节点根据所述每个存储节点待分配的存储空间的大小为所述网络卷分配存储空间。
当第一网络卷创建请求携带的网络卷的信息包括存储节点信息时,所述存储节点信息用于指示创建所述网络卷所需的存储节点,则第一存储节点可以直接通过存储节点信息从所述存储系统包含的存储节点中确定出创建所述网络卷所需的存储节点。
第一存储节点分别向每个存储节点发送第二网络卷创建请求后,接收到第二网络卷创建请求的存储节点可以扫描自己的存储空间,划分出4M的存储空间提供给所述网络卷。
如果存储空间分配成功,存储节点将发送给第一存储节点所述第二网络卷创建请求的响应消息,所述响应消息用于指示存储空间分配成功。可选的,所述响应消息中还可以包含分配的存储空间的物理地址。
步骤S204:第一存储节点为所述每个存储节点分配的存储空间指定每个存储节点对应的逻辑地址。
第一存储节点在接收到各个存储节点的响应消息,得知存储空间分配成功以后,可以给所述网络卷指定一段连续的逻辑地址,由于所述网络卷的存储空间是分布在多个存储节点上的,因此每个存储节点的存储空间对应一段逻辑地址。也可以是,为每个存储节点分配的存储空间指定每个存储节点对应的逻辑地址,将每个存储节点对应的逻辑地址合并起来就是所述网络卷的逻辑地址。需要说明的是,第一存储节点指定的逻辑地址可以包含数据地址和校验地址,其中,数据地址用于存储写数据请求中的待写入数据,校验地址用于存储待写入数据的校验数据。举例来说,数据地址可以是VB-0,VB-1,VB-2,VB-3、VB-4、VB-5,校验地址可以是P-0,P-1,P-2,P-3等等。
进一步地,以所述网络卷是“4+1”的RAID5为例,为所述网络卷指定的逻辑地址可以是VB-0,VB-1,VB-2,VB-3,校验地址可以是P-0。
步骤S205:第一存储节点向所述管理节点发送所述第一网络卷创建请求的响应消息,所述第一网络卷创建请求的响应消息包括:所述网络卷的逻辑地址。
具体的,第一网络卷创建请求的响应消息中携带的逻辑地址可以是数据地址,举例来说,数据地址可以是VB-0、VB-1、VB-2、VB-3。
可选的,所述第一网络卷创建请求的响应消息还可以包括所述网络卷的标识,以便管理节点可以记录并保存所述网络卷的标识与所述网络卷的RAID类型信息以及所述网络卷的大小信息等信息的对应关系。需要说明的是,这里的网络卷的标识可以是在主机发送给第一存储节点的第一网络卷创建请求中携带的,也可以是由第一存储节点生成的。
本发明实施例中,第一存储节点在接收管理节点发送的第一网络卷创建请求后,确定出每个存储节点待分配的存储空间,向每个存储节点发送第二网络卷创建请求使得各存储节点可以根据第二网络卷创建请求分配存储空间,第一存储节点对各存储节点分配存储空间指定逻辑地址,并将逻辑地址发送给管理节点,使得管理节点知道网络卷创建成功,以及该网络卷的逻辑地址。以此,实现了网络卷的创建。
在上述实施例中,还可以包括:
步骤S206:第一存储节点将所述网络卷的信息发送给主机,所述网络卷的信息可以包括:所述网络卷的标识、所述网络卷的RAID类型、所述网络卷的大小信息以及所述网络卷的逻辑地址以及存储节点的信息等。
所述存储节点的信息是指第一存储节点的信息,还可以包含网络卷所在的所有存储节点的信息。
所述主机可以根据网络卷的信息,将所述网络卷映射为一个盘符,例如D盘或E盘,供用户使用。
此外,主机还可以记录并保存所述网络卷的标识与所述网络卷的RAID类型、所述网络卷的大小信息以及所述网络卷的逻辑地址以及存储节点的信息等信息之间的对应关系。
可选的,该步骤也可以是,当主机向网络卷查询网络卷时,管理节点将所述网络卷的信息发送给主机,或者由管理节点主动将所述网络卷的信息发送给主机。
在上述实施例中,还可以包括:
步骤S207:第一存储节点分别向每个存储节点发送每个存储节点对应的逻辑地址,使得每个存储节点记录自身的逻辑地址与分配的存储空间的物理地址之间的映射关系。所述逻辑地址与分配的存储空间的物理地址之间的映射关系,用于所述每个存储节点在写数据的时候,可以根据该映射关系将数据写入物理地址对应的存储空间中,或者在读数据的时候,可以根据该映射关系从物理地址对应的存储空间中读取数据。
在上述实施例中,还可以包括:
步骤S208:记录每个存储节点对应的逻辑地址与每个存储节点的对应关系。
具体的,第一存储节点在指定了所述网络卷的逻辑地址之后,可以记录所述网络卷与所述指定的逻辑地址的对应关系,以及每个节点对应的逻辑地址与每个存储节点的对应关系。具体的,以表1为例,可以用网络卷的标识唯一标识所述网络卷,并采用映射表的形式记录所述网络卷的标识与逻辑地址,以及每个逻辑地址所在的存储节点的对应关系。
表1
在上述实施例中,还可以包括:
步骤S209:根据所述网络卷的信息确定创建所述网络卷所需的存储节点。
当步骤201中第一网络卷创建请求携带的网络卷的信息包括RAID类型信息和网络卷的大小信息,而没有包括存储节点的信息时,则所述第一存储节点可以根据RAID类型信息和网络卷的大小信息确定创建所述网络卷所需的存储节点。
举例来说,所述网络卷的RAID类型是“4+1”的RAID 5,则第一存储节点需要从多个存储节点中选出5个存储节点,其中,4个存储节点用于存储写数据请求中携带的待写入数据,1个存储节点用于存储所述待写入数据的校验数据。需要说明的是,当接收到写数据请求时,需要将待写入数据进行切分得到4个切片数据,所述4个存储节点分别存储4个切片数据。另外,在本发明实施例中,可以根据负载均衡的策略,选择用于创建网络卷的存储节点。例如,如果所述网络卷的大小信息是20M,则对于“4+1”的RAID 5来说,每个存储节点需要分配的存储空间是4M。因此,在选择存储节点时,首先需选择空闲空间大于4M的存储节点,其次可以根据存储节点的繁忙程度来进行选择,优先选择处理业务请求比较少的存储节点。
请参考图3,图3是本发明实施例一种数据存储方法的流程示意图,所述数据存储方法可以应用在存储系统中,所述存储系统包括主机和多个存储节点,如图3所示,所述方法包括:
步骤S301:多个存储节点中的第一存储节点将目标数据切分为至少两个切片数据;
接收目标数据的存储节点可以是网络卷所在的第一存储节点,所述目标数据是第一存储节点接收到的写数据请求中携带的,第一存储节点将接收到的目标数据按照RAID类型和目标数据的长度将目标数据切分为至少两个切片数据。
步骤S302:计算所述至少两个切片数据的校验数据,为所述校验数据分配校验地址;
具体的,可以根据RAID类型计算所述至少两个切片数据的校验数据,并且根据校验数据分配校验地址。
步骤S303:确定每个切片数据的数据地址;
在本发明实施例中,写数据请求中还可以携带有目标数据的存储地址和数据长度,所述存储地址是存储所述目标数据的起始的逻辑地址,根据所述存储地址和数据长度可以确定出存储所述目标数据的一段连续的逻辑地址。在对目标数据进行切分以后,同样也需要对存储地址进行划分,得到每个存储节点的存储切片数据的逻辑地址,在本发明实施例中,存储切片数据的逻辑地址可以称作数据地址。
步骤S304:根据所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点,以及根据所述校验地址与存储节点的对应关系确定校验数据对应的存储节点;
第一存储节点可以根据事先保存的所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点,以及根据所述校验地址与存储节点的对应关系确定校验数据对应的存储节点。
步骤S305:向每个切片数据对应的存储节点发送第一写数据请求,所述第一写数据请求包括切片数据和数据地址,使得所述每个切片数据对应的存储节点根据数据地址与物理地址的映射关系,将切片数据写入物理地址对应的存储空间中;
在本发明实施例中,每个存储节点中可以保存逻辑地址和物理地址之间的映射关系,再接收到切片数据以后,可以根据逻辑地址和物理地址之间的映射关系,将切片数据写入物理地址对应的存储空间中,在步骤S305中切片数据对应的逻辑地址是数据地址。
步骤S306:向校验数据对应的存储节点发送第二写数据请求,所述第二写数据请求包括校验数据和校验地址,使得所述校验数据对应的存储节点根据校验地址与物理地址的映射关系,将校验数据写入物理地址对应的存储空间中。
在本发明实施例中,每个存储节点中可以保存逻辑地址和物理地址之间的映射关系,再接收到校验数据以后,可以根据逻辑地址和物理地址之间的映射关系,将校验数据写入物理地址对应的存储空间中,在步骤S306中校验数据对应的逻辑地址是校验地址。
在本发明实施例中,第一存储节点将目标数据切分为至少两个切片数据,计算至少两个切片数据的校验数据,将切片数据和校验数据存储在各个存储节点中,因此实现了数据冗余,即使其中一个存储节点发生故障时,也可以利用其它存储节点中存储的切片数据和校验数据恢复出发生故障的存储节点存储的数据,因此保证了数据可靠性。
请参考图4,图4是本发明实施例另一种数据存储方法的流程示意图,如图4所示,所述方法包括:
步骤S401:多个存储节点中的第一存储节点接收所述主机发送的写数据请求A,所述写数据请求A包括网络卷的标识、存储地址、数据长度和目标数据。
在本发明实施例中,用户可以通过主机上的盘符(例如:D盘或E盘)来选择存储数据的网络卷,每个网络卷可以用网络卷的标识(例如:ID号)唯一标识,并且主机中保存有网络卷的标识与所述网络卷的第一存储节点之间的对应关系,因此,主机可以通过用户选择的网络卷的标识确定出所述网络卷的第一存储节点,向所述第一存储节点发送写数据请求A。
所述写数据请求A可以包括:网络卷的标识、存储地址、数据长度和目标数据等信息。
存储地址是指待存储的目标数据的逻辑地址,在存储系统的每个存储节点上,一个逻辑地址都对应一段物理地址,目标数据最终是写到物理地址对应的存储空间中。数据长度是指目标数据的长度。
步骤S402:根据RAID类型和所述数据长度将所述目标数据切分为至少两个切片数据,所述RAID类型是根据所述网络卷的标识确定的。
由于所述网络卷是事先由所述第一存储节点创建的,所述第一存储节点中可以保存所述网络卷的标识与所述网络卷的RAID类型之间的对应关系,因此,第一存储节点可以根据所述网络卷的标识确定所述网络卷的RAID类型。然后,根据RAID类型和所述数据长度将所述目标数据切分为至少两个切片数据。
步骤S403:根据所述RAID类型计算所述至少两个切片数据的校验数据。
举例来说,可以计算出所述至少两个切片数据的奇偶校验信息,将所述奇偶校验信息作为所述至少两个切片数据的校验数据,分别存储在不同的存储节点上,当其中一个切片数据发生损坏时,可以利用未发生损坏的切片数据和校验数据恢复所述被损坏的数据。
步骤S404:根据所述存储地址和所述数据长度确定每个切片数据的数据地址,为所述校验数据分配校验地址。
在本发明实施例中,所述存储地址是存储所述目标数据的起始的逻辑地址,根据所述存储地址和数据长度可以确定出存储所述目标数据的一段连续的逻辑地址。在对目标数据进行切分以后,同样也需要对存储地址进行划分,得到每个存储节点的存储切片数据的逻辑地址,在本发明实施例中,存储每个切片数据的逻辑地址可以称作数据地址。
然而,校验地址并不是在写数据请求A中携带的,而是由第一存储节点分配的。需要说明的是,由图2所示的实施例可知,第一存储节点在创建所述网络卷时,为所述网络卷的存储空间指定了一段逻辑地址,其中,所述逻辑地址包括数据地址和校验地址。对于主机来说,校验地址是不可见的,因此,校验地址可以由第一存储节点分配。
需要说明的是,根据所述存储地址和所述数据长度确定每个切片数据的数据地址,和为所述校验数据分配校验地址之间没有先后顺序之分。
步骤S405:根据所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点,以及根据所述校验地址与存储节点的对应关系确定校验数据对应的存储节点。
第一存储节点可以根据事先保存的所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点,以及根据所述校验地址与存储节点的对应关系确定校验数据对应的存储节点。具体的,其对应关系可以参考表1所示的映射表。
步骤S406:向每个切片数据对应的存储节点发送写数据请求B,所述写数据请求B包括切片数据和数据地址,使得所述每个切片数据对应的存储节点根据数据地址与物理地址的映射关系,将切片数据写入物理地址对应的存储空间中。
以“4+1”类型的RAID 5为例,所述目标数据需要被切分成四个切片数据,并计算所述四个切片数据的一个校验数据,在获得四个切片数据的数据地址以及一个校验数据的数据地址后,可以分别向四个切片数据的数据地址对应的四个存储节点发送写数据请求B,所述写数据请求B包括切片数据和数据地址。
当四个切片数据的数据地址对应的数据节点接收到写数据请求B后,可以根据数据地址与物理地址之间的对应关系,将切片数据写入物理地址对应的存储空间中。
需要说明的是,如果所述第一存储节点本身就是存储其中一个切片数据的存储节点,那么第一存储节点只需要向另外三个存储节点发送写数据请求B。
步骤S407:向校验数据对应的存储节点发送写数据请求C,所述写数据请求C包括校验数据和校验地址,使得所述校验数据对应的存储节点根据校验地址与物理地址的映射关系,将校验数据写入物理地址对应的存储空间中。
在本发明实施例中,校验数据可以是一个或多个,因此校验地址以及校验地址对应的存储节点也可以是一个或多个。例如,当RAID类型是RAID5时,校验数据是一个;当RAID类型是RAID 6时,校验数据是两个。
步骤S407和步骤S406之间没有先后顺序之分。
在本发明实施例中,第一存储节点在接收主机发送的写数据请求A后,根据RAID类型和数据长度将目标数据切分为至少两个切片数据,计算至少两个切片数据的校验数据,将切片数据和校验数据存储在各个存储节点中,因此实现了数据冗余,即使其中第一存储节点发生故障时,也可以利用其它存储节点中存储的切片数据和校验数据恢复出发生故障的存储节点存储的数据,因此保证了数据可靠性。
在上述实施例中还可以包括:
步骤S408:接收所述主机发送的读数据请求A,所述读数据请求A包括所述存储地址和所述数据长度,所述第一读数据请求用于读取所述目标数据。
步骤S409:根据所述存储地址和所述数据长度确定所述目标数据包含的各个切片数据的数据地址。
具体的,确定各个切片数据的数据地址的步骤与步骤S404类似,这里不再赘述。
步骤S410:根据所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点。
具体的,确定每个切片数据对应的存储节点的步骤与步骤S405类似,这里不再赘述。
步骤S411:向每个切片数据对应的存储节点发送读数据请求B,所述读数据请求B包括切片数据的数据地址,使得所述每个切片数据对应的存储节点根据数据地址与物理地址的映射关系,从所述物理地址对应的存储空间中读取所述切片数据并发送给所述第一存储节点。
步骤S412:接收每个切片数据对应的存储节点发送的切片数据,合并成所述目标数据发送给所述主机。
当其中第一存储节点在读取切片数据时,发现该切片数据已经损坏,则可以发送错误报告给第一存储节点,第一存储节点可以指示所述网络卷的其他存储节点读取所述目标数据的未发生损坏的切片数据和校验数据,以恢复所述发生损坏的切片数据。
在本发明另一个实施例中,可以由第一存储节点定期主动检查所述网络卷所在的各个存储节点中存储的切片数据是否发生损坏,如果是,可以采用上面的方式恢复发生损坏的切片数据。
请参考图5,图5是本发明实施例一种存储设备50的结构示意图,如图5所示,所述存储设备包括:
接收模块501,用于接收管理节点发送的第一网络卷创建请求,所述第一网络卷创建请求包括网络卷的信息,所述网络卷的信息包括RAID类型信息和所述网络卷的大小信息;
管理节点可以将第一网络卷创建请求发送给多个存储节点中的任意第一存储节点,该存储节点接收到第一网络卷创建请求后可以通过修改属性设置让自己成为第一存储节点。
网络卷的信息可以是RAID类型信息和网络卷的大小信息,其中,RAID类型信息可以是本领域技术人员所熟知的RAID类型,例如:常用的RAID5,RAID6等,也可以是上纠偏码的冗余类型,例如:Erasure Code10+2,9+3,8+4等。网络卷的大小信息是指所述网络卷所包括的存储空间的大小。需要说明的是,本发明实施例中的存储设备可以视作第一存储节点。
在本发明另一个实施例中,网络卷的信息还可以包括存储节点的信息,用于指示创建所述网络卷所需的存储节点。
可选的,网络卷的信息还可以包括网络卷的标识。
确定模块502,用于根据所述RAID类型信息和所述网络卷的大小信息确定所述网络卷所需的多个存储节点中的每个存储节点待分配的存储空间的大小;
具体的,确定模块502可以根据RAID类型信息和网络卷的大小信息,确定每个存储节点待分配的存储空间。举例来说,RAID类型信息是“4+1”的RAID 5,其中,四个存储节点用于存储写数据请求中携带的待写入数据,第一存储节点用于存储所述待写入数据的校验数据。需要说明的是,当接收到写数据请求时,需要将待写入数据进行切分得到四个切片数据,所述四个切片数据分别存储在四个存储节点中。再如,网络卷的大小信息是20M,则每个存储节点待分配的存储空间是4M。
发送模块503,用于向所述每个存储节点分别发送第二网络卷创建请求,所述第二网络卷创建请求包括所述每个存储节点待分配的存储空间的大小,使得所述每个存储节点根据所述每个存储节点待分配的存储空间的大小为所述网络卷分配存储空间;
当第一网络卷创建请求携带的网络卷的信息包括存储节点信息时,所述存储节点信息用于指示创建所述网络卷所需的存储节点,则可以直接通过存储节点信息从所述存储系统包含的存储节点中确定出创建所述网络卷所需的存储节点。
在发送模块503分别每个存储节点发送第二网络卷创建请求后,接收到第二网络卷创建请求的存储节点可以扫描自己的存储空间,划分出4M的存储空间提供给所述网络卷。
如果存储空间分配成功,存储节点将返回所述第二网络卷创建请求的响应消息,所述响应消息用于指示存储空间分配成功。可选的,所述响应消息中还可以包含分配的存储空间的物理地址。
地址指定模块504,用于为每个存储节点分配的存储空间指定每个存储节点对应的逻辑地址;
具体的,在各个存储节点返回所述第二网络卷创建请求的响应消息后,地址指定模块504以给所述网络卷指定一段连续的逻辑地址,由于所述网络卷的存储空间是分布在多个存储节点上的,因此每个存储节点的存储空间对应一段逻辑地址。也可以是,为每个存储节点分配的存储空间指定每个存储节点对应的逻辑地址,将每个存储节点对应的逻辑地址合并起来就是所述网络卷的逻辑地址。需要说明的是,所述逻辑地址可以包含数据地址和校验地址,其中,数据地址用于存储写数据请求中的待写入数据,校验地址用于存储待写入数据的校验数据。举例来说,数据地址可以是VB-0,VB-1,VB-2,VB-3、VB-4、VB-5,校验地址可以是P-0,P-1,P-2,P-3等等。
进一步地,以所述网络卷是“4+1”的RAID5为例,为所述网络卷指定的逻辑地址可以是VB-0,VB-1,VB-2,VB-3,校验地址可以是P-0。
所述发送模块503,还用于向所述管理节点发送所述第一网络卷创建请求的响应消息,所述第一网络卷创建请求的响应消息包括:所述网络卷的逻辑地址,所述网络卷的逻辑地址包括所述每个存储节点对应的逻辑地址。
具体的,第一网络卷创建请求的响应消息中携带的逻辑地址可以是数据地址,举例来说,数据地址可以是VB-0、VB-1、VB-2、VB-3。
可选的,所述第一网络卷创建请求的响应消息还可以包括所述网络卷的标识,以便管理节点可以记录并保存所述网络卷的标识与所述网络卷的RAID类型信息以及所述网络卷的大小信息等信息的对应关系。需要说明的是,这里的网络卷的标识可以是在主机发送给所述存储设备的第一网络卷创建请求中携带的,也可以是由所述存储设备生成的。
本发明实施例中,存储设备在接收管理节点发送的第一网络卷创建请求后,确定出每个存储节点待分配的存储空间,向每个存储节点发送第二网络卷创建请求使得各存储节点可以根据第二网络卷创建请求分配存储空间,存储设备对各存储节点分配存储空间指定逻辑地址,并将逻辑地址发送给管理节点,使得管理节点知道网络卷创建成功,以及该网络卷的逻辑地址。以此,实现了网络卷的创建。
在上述实施例中,确定模块502,还可以用于根据所述RAID类型信息和所述网络卷的大小信息,确定创建所述网络卷所需的所述多个存储节点。可选地,所述网络卷的信息还包括存储节点信息,所述存储节点信息用于指示创建所述网络卷所需的所述多个存储节点,则确定模块502,还可以用于根据所述存储节点信息,确定创建所述网络卷所需的所述多个存储节点。
当第一网络卷创建请求携带的网络卷的信息包括RAID类型信息和网络卷的大小信息,而没有包括存储节点的信息时,则所述存储设备可以根据RAID类型信息和网络卷的大小信息确定创建所述网络卷所需的存储节点;当第一网络卷创建请求携带的网络卷的信息包括存储节点的信息时,则可以根据存储节点的信息确定创建所述网络卷所需的存储节点。
举例来说,所述网络卷的RAID类型是“4+1”的RAID 5,则所述存储设备需要从多个存储节点中选出5个存储节点,其中,4个存储节点用于存储写数据请求中携带的待写入数据,1个存储节点用于存储所述待写入数据的校验数据。需要说明的是,当接收到写数据请求时,需要将待写入数据进行切分得到4个切片数据,所述4个存储节点分别存储4个切片数据。另外,在本发明实施例中,可以根据负载均衡的策略,选择用于创建网络卷的存储节点。例如,如果所述网络卷的大小信息是20M,则对于“4+1”的RAID 5来说,每个存储节点需要分配的存储空间是4M。因此,在选择存储节点时,首先需选择空闲空间大于4M的存储节点,其次可以根据存储节点的繁忙程度来进行选择,优先选择处理业务请求比较少的存储节点。
可选地,所述发送模块503,还用于将所述每个存储节点对应的逻辑地址分别发送给所述每个存储节点,使得所述每个存储节点记录自身的逻辑地址与分配的存储空间的物理地址之间的映射关系。所述逻辑地址与分配的存储空间的物理地址之间的映射关系,用于所述每个存储节点在写数据的时候,可以根据该映射关系将数据写入物理地址对应的存储空间中,或者在读数据的时候,可以根据该映射关系从物理地址对应的存储空间中读取数据。
可选地,所述存储设备还可以包括记录模块505,用于记录并保存所述每个存储节点对应的逻辑地址与所述每个存储节点的对应关系。
具体的,所述存储设备在指定了所述网络卷的逻辑地址之后,可以记录所述网络卷与所述指定的逻辑地址的对应关系,以及每个节点对应的逻辑地址与每个存储节点的对应关系。
可选地,在上述实施例中,所述逻辑地址可以包括数据地址,所述第一网络卷创建请求的响应消息具体包括:所述网络卷的数据地址。
可选地,在上述实施例中,所述第二网络卷创建请求的响应消息可以包括:分配的存储空间的物理地址。
所述地址指定模块504,具体用于根据所述分配的存储空间的物理地址,为每个存储节点分配的存储空间指定每个存储节点对应的逻辑地址。
请参考图6,图6是本发明实施例一种存储设备的结构示意图,如图6所示,所述存储设备包括:
切分模块601,用于将目标数据切分为至少两个切片数据;
所述目标数据是所述存储设备接收到的写数据请求中携带的,存储设备将接收到的目标数据按照RAID类型和目标数据的长度将目标数据切分为至少两个切片数据。
计算模块602,用于计算所述至少两个切片数据的校验数据,为所述校验数据分配校验地址;
具体的,可以根据RAID类型计算所述至少两个切片数据的校验数据,并且根据校验数据分配校验地址。
确定模块603,用于确定每个切片数据的数据地址;根据所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点,以及根据所述校验地址与存储节点的对应关系确定校验数据对应的存储节点;
在本发明实施例中,写数据请求中还携带有目标数据的存储地址和数据长度,所述存储地址是存储所述目标数据的起始的逻辑地址,根据所述存储地址和数据长度可以确定出存储所述目标数据的一段连续的逻辑地址。在对目标数据进行切分以后,同样也需要对存储地址进行划分,得到每个存储节点的存储切片数据的逻辑地址,在本发明实施例中,存储切片数据的逻辑地址可以称作数据地址。
存储设备可以根据事先保存的所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点,以及根据所述校验地址与存储节点的对应关系确定校验数据对应的存储节点。
发送模块604,用于向每个切片数据对应的存储节点发送第一写数据请求,所述第一写数据请求包括切片数据和数据地址,使得所述每个切片数据对应的存储节点根据数据地址与物理地址的映射关系,将切片数据写入物理地址对应的存储空间中;向校验数据对应的存储节点发送第二写数据请求,所述第二写数据请求包括校验数据和校验地址,使得所述校验数据对应的存储节点根据校验地址与物理地址的映射关系,将校验数据写入物理地址对应的存储空间中。
在本发明实施例中,每个存储节点中可以保存逻辑地址和物理地址之间的映射关系,这里的逻辑地址可以是数据地址或校验地址,再接收到切片数据以后,可以根据数据地址和物理地址之间的映射关系,将切片数据写入物理地址对应的存储空间中,根据校验地址和物理地址之间的映射关系,将校验数据写入物理地址对应的存储空间中。
在本发明实施例中,存储设备将目标数据切分为至少两个切片数据,计算至少两个切片数据的校验数据,将切片数据和校验数据存储在各个存储节点中,因此实现了数据冗余,即使其中一个存储节点发生故障时,也可以利用其它存储节点中存储的切片数据和校验数据恢复出发生故障的存储节点存储的数据,因此保证了数据可靠性。
在上述实施例中,存储设备还可以包括接收模块605;
所述接收模块605,用于接收主机发送的第三写数据请求,所述第三写数据请求包括网络卷的标识、数据长度和所述目标数据;
根据RAID类型和所述数据长度,切分模块601可以将目标数据切分为至少两个切片数据,所述RAID类型是根据所述网络卷的标识确定的。
可选的,第三写数据请求还可以包括存储地址;
所述确定模块603,具体用于根据所述存储地址和所述数据长度确定每个切片数据的数据地址。
可选的,所述接收模块605,还用于接收所述主机发送的第一读数据请求,所述第一读数据请求包括所述存储地址和所述数据长度,所述第一读数据请求用于读取所述目标数据;
所述确定模块603,还用于根据所述存储地址和所述数据长度确定所述目标数据包含的各个切片数据的数据地址;根据所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点;
所述发送模块604,还用于向每个切片数据对应的存储节点发送第二读数据请求,所述第二读数据请求包括切片数据的数据地址,使得所述每个切片数据对应的存储节点根据数据地址与物理地址的映射关系,从所述物理地址对应的存储空间中读取所述切片数据并发送给所述第一存储节点;
所述接收模块605,还用于接收每个切片数据对应的存储节点发送的切片数据,合并成所述目标数据发送给所述主机。
请参考图7A,图7A是本发明实施例一种存储系统的结构示意图,所述存储系统包括管理节点701、存储节点702;需要说明的是,在本发明实施例中存储节点702又称存储设备。
所述管理节点701,用于向所述多个存储节点中的第一存储节点发送第一网络卷创建请求,所述第一网络卷创建请求包括网络卷的信息,所述网络卷的信息包括RAID类型信息和所述网络卷的大小信息。
所述第一存储节点702,用于接收所述管理节点701发送的第一网络卷创建请求,所述第一网络卷创建请求包括网络卷的信息,所述网络卷的信息包括RAID类型信息和所述网络卷的大小信息;根据所述RAID类型信息和所述网络卷的大小信息确定所述多个存储节点中的每个存储节点702待分配的存储空间的大小;向所述每个存储节点702分别发送第二网络卷创建请求,所述第二网络卷创建请求包括所述每个存储节点待分配的存储空间的大小,使得所述每个存储节点根据所述每个存储节点待分配的存储空间的大小为所述网络卷分配存储空间;为每个存储节点分配的存储空间指定每个存储节点对应的逻辑地址;向所述管理节点701发送所述第一网络卷创建请求的响应消息,所述第一网络卷创建请求的响应消息包括:所述网络卷的逻辑地址,所述网络卷的逻辑地址包括所述每个存储节点对应的逻辑地址。
本发明实施例中,第一存储节点702在接收管理节点701发送的第一网络卷创建请求后,确定出每个存储节点待分配的存储空间,向每个存储节点702发送第二网络卷创建请求使得各存储节点可以根据第二网络卷创建请求分配存储空间,第一存储节点702对各存储节点分配存储空间指定逻辑地址,并将逻辑地址发送给管理节点,使得管理节点701知道网络卷创建成功,以及该网络卷的逻辑地址。以此,实现了网络卷的创建。
请参考图7B,图7B是本发明实施例一种存储系统的结构示意图,所述存储系统包括主机703、存储节点702;需要说明的是,在本发明实施例中存储节点702又称存储设备。
所述存储节点702,用于将目标数据切分为至少两个切片数据;计算所述至少两个切片数据的校验数据,为所述校验数据分配校验地址;确定每个切片数据的数据地址;根据所述数据地址与存储节点702的对应关系确定每个切片数据对应的存储节点702,以及根据所述校验地址与存储节点702的对应关系确定校验数据对应的存储节点;向每个切片数据对应的存储节点702发送第一写数据请求,所述第一写数据请求包括切片数据和数据地址,使得所述每个切片数据对应的存储节点702根据数据地址与物理地址的映射关系,将切片数据写入物理地址对应的存储空间中;向校验数据对应的存储节点702发送第二写数据请求,所述第二写数据请求包括校验数据和校验地址,使得所述校验数据对应的存储节点702根据校验地址与物理地址的映射关系,将校验数据写入物理地址对应的存储空间中。
所述主机700,用于向所述存储设备702发送第三写数据请求,所述第三写数据请求包括网络卷的标识、数据长度和所述目标数据
在本发明实施例中,第一存储节点702将目标数据切分为至少两个切片数据,计算至少两个切片数据的校验数据,将切片数据和校验数据存储在各个存储节点中,因此实现了数据冗余,即使其中一个存储节点发生故障时,也可以利用其它存储节点中存储的切片数据和校验数据恢复出发生故障的存储节点存储的数据,因此保证了数据可靠性。
请参考图8,本发明实施例提供了一种存储设备800的示意图。存储设备800可以包括当前技术已知的存储设备,本发明具体实施例并不对存储设备800的具体实现做限定。存储设备800包括:
处理器(processor)810,通信接口(Communications Interface)820,存储器(memory)830,通信总线840。
处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。
通信接口820,用于与网元通信,比如与主机或者交换机等通信。
处理器810,用于执行程序832。
具体地,程序832可以包括程序代码,所述程序代码包括计算机操作指令。
处理器810可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器830,用于存放程序832。存储器830可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序832具体可以包括:
接收模块501,用于接收管理节点发送的第一网络卷创建请求,所述第一网络卷创建请求包括网络卷的信息,所述网络卷的信息包括RAID类型信息和所述网络卷的大小信息;
确定模块502,用于根据所述RAID类型信息和所述网络卷的大小信息确定所述网络卷所需的多个存储节点中的每个存储节点待分配的存储空间;
发送模块503,用于向所述每个存储节点分别发送第二网络卷创建请求,所述第二网络卷创建请求包括所述每个存储节点待分配的存储空间的大小,使得所述每个存储节点根据所述每个存储节点待分配的存储空间的大小为所述网络卷分配存储空间;
地址指定模块504,用于为每个存储节点分配的存储空间指定每个存储节点对应的逻辑地址;
所述发送模块503,还用于向所述管理节点发送所述第一网络卷创建请求的响应消息,所述第一网络卷创建请求的响应消息包括:所述网络卷的逻辑地址,所述网络卷的逻辑地址包括所述每个存储节点对应的逻辑地址。
程序832中各模块的具体实现可以参见图8所示实施例中的相应模块,在此不赘述。
请参考图9,本发明实施例提供了一种存储设备900的示意图。存储设备900可以包括当前技术已知的存储设备,本发明具体实施例并不对存储设备900的具体实现做限定。存储设备900包括:
处理器(processor)910,通信接口(Communications Interface)920,存储器(memory)930,通信总线940。
处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信。
通信接口920,用于与网元通信,比如与主机或者交换机等通信。
处理器910,用于执行程序932。
具体地,程序932可以包括程序代码,所述程序代码包括计算机操作指令。
处理器910可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器930,用于存放程序932。存储器930可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序932具体可以包括:
切分模块601,用于将目标数据切分为至少两个切片数据;
计算模块602,用于计算所述至少两个切片数据的校验数据,为所述校验数据分配校验地址;
确定模块603,用于确定每个切片数据的数据地址;根据所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点,以及根据所述校验地址与存储节点的对应关系确定校验数据对应的存储节点;
发送模块604,用于向每个切片数据对应的存储节点发送第一写数据请求,所述第一写数据请求包括切片数据和数据地址,使得所述每个切片数据对应的存储节点根据数据地址与物理地址的映射关系,将切片数据写入物理地址对应的存储空间中;向校验数据对应的存储节点发送第二写数据请求,所述第二写数据请求包括校验数据和校验地址,使得所述校验数据对应的存储节点根据校验地址与物理地址的映射关系,将校验数据写入物理地址对应的存储空间中。
程序932中各模块的具体实现可以参见图9所示实施例中的相应模块,在此不赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个设备中,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理子模块,即可以位于一个地方,或者也可以分布到多个网络子模块上。可以根据实际的需要选择其中的部分或者全部,模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (9)
1.一种数据存储方法,其特征在于,所述方法应用于存储系统中,所述存储系统包括主机和多个存储节点,所述方法包括:
接收所述主机发送的第三写数据请求,所述第三写数据请求包括网络卷的标识、数据长度和目标数据;
所述多个存储节点中的第一存储节点根据RAID类型和所述数据长度将所述目标数据切分为至少两个切片数据,所述RAID类型是根据所述网络卷的标识确定的;
计算所述至少两个切片数据的校验数据,为所述校验数据分配校验地址;
确定每个切片数据的数据地址;
根据所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点,以及根据所述校验地址与存储节点的对应关系确定校验数据对应的存储节点;
向每个切片数据对应的存储节点发送第一写数据请求,所述第一写数据请求包括切片数据和数据地址,使得所述每个切片数据对应的存储节点根据数据地址与物理地址的映射关系,将切片数据写入物理地址对应的存储空间中;
向校验数据对应的存储节点发送第二写数据请求,所述第二写数据请求包括校验数据和校验地址,使得所述校验数据对应的存储节点根据校验地址与物理地址的映射关系,将校验数据写入物理地址对应的存储空间中。
2.根据权利要求1所述的方法,其特征在于,所述第三写数据请求还包括存储地址;
所述确定每个切片数据的数据地址具体包括:根据所述存储地址和所述数据长度确定每个切片数据的数据地址。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收所述主机发送的第一读数据请求,所述第一读数据请求包括所述存储地址和所述数据长度,所述第一读数据请求用于读取所述目标数据;
根据所述存储地址和所述数据长度确定所述目标数据包含的各个切片数据的数据地址;
根据所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点;
向每个切片数据对应的存储节点发送第二读数据请求,所述第二读数据请求包括切片数据的数据地址,使得所述每个切片数据对应的存储节点根据数据地址与物理地址的映射关系,从所述物理地址对应的存储空间中读取所述切片数据并发送给所述第一存储节点;
接收每个切片数据对应的存储节点发送的切片数据,合并成所述目标数据发送给所述主机。
4.一种存储设备,其特征在于,所述存储设备包括:
接收模块,用于接收主机发送的第三写数据请求,所述第三写数据请求包括网络卷的标识、数据长度和目标数据;
切分模块,用于根据RAID类型和所述数据长度将所述目标数据切分为至少两个切片数据,所述RAID类型是根据所述网络卷的标识确定的;
计算模块,用于计算所述至少两个切片数据的校验数据,为所述校验数据分配校验地址;
确定模块,用于确定每个切片数据的数据地址;根据所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点,以及根据所述校验地址与存储节点的对应关系确定校验数据对应的存储节点;
发送模块,用于向每个切片数据对应的存储节点发送第一写数据请求,所述第一写数据请求包括切片数据和数据地址,使得所述每个切片数据对应的存储节点根据数据地址与物理地址的映射关系,将切片数据写入物理地址对应的存储空间中;向校验数据对应的存储节点发送第二写数据请求,所述第二写数据请求包括校验数据和校验地址,使得所述校验数据对应的存储节点根据校验地址与物理地址的映射关系,将校验数据写入物理地址对应的存储空间中。
5.根据权利要求4所述的存储设备,其特征在于,所述第三写数据请求还包括存储地址;
所述确定模块,具体用于根据所述存储地址和所述数据长度确定每个切片数据的数据地址。
6.根据权利要求5所述的存储设备,其特征在于,
所述接收模块,还用于接收所述主机发送的第一读数据请求,所述第一读数据请求包括所述存储地址和所述数据长度,所述第一读数据请求用于读取所述目标数据;
所述确定模块,还用于根据所述存储地址和所述数据长度确定所述目标数据包含的各个切片数据的数据地址;根据所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点;
所述发送模块,还用于向每个切片数据对应的存储节点发送第二读数据请求,所述第二读数据请求包括切片数据的数据地址,使得所述每个切片数据对应的存储节点根据数据地址与物理地址的映射关系,从所述物理地址对应的存储空间中读取所述切片数据并发送给第一存储节点;
所述接收模块,还用于接收每个切片数据对应的存储节点发送的切片数据,合并成所述目标数据发送给所述主机。
7.一种存储系统,其特征在于,所述存储系统包括如权利要求4-6任一权利要求所述的存储设备以及主机;
所述主机,用于向所述存储设备发送第三写数据请求,所述第三写数据请求包括网络卷的标识、数据长度和所述目标数据。
8.一种存储设备,其特征在于,包括:处理器、存储器和通信总线;
其中,所述处理器和所述存储器通过所述通信总线进行通信;
所述存储器用于保存程序;
所述处理器用于执行所述程序,以实现:
接收主机发送的第三写数据请求,所述第三写数据请求包括网络卷的标识、数据长度和目标数据;
根据RAID类型和所述数据长度将所述目标数据切分为至少两个切片数据,所述RAID类型是根据所述网络卷的标识确定的;
计算所述至少两个切片数据的校验数据,为所述校验数据分配校验地址;
确定每个切片数据的数据地址;
根据所述数据地址与存储节点的对应关系确定每个切片数据对应的存储节点,以及根据所述校验地址与存储节点的对应关系确定校验数据对应的存储节点;
向每个切片数据对应的存储节点发送第一写数据请求,所述第一写数据请求包括切片数据和数据地址,使得所述每个切片数据对应的存储节点根据数据地址与物理地址的映射关系,将切片数据写入物理地址对应的存储空间中;
向校验数据对应的存储节点发送第二写数据请求,所述第二写数据请求包括校验数据和校验地址,使得所述校验数据对应的存储节点根据校验地址与物理地址的映射关系,将校验数据写入物理地址对应的存储空间中。
9.根据权利要求8所述的存储设备,其特征在于,所述第三写数据请求还包括存储地址;所述处理器,具体用于根据所述存储地址和所述数据长度确定每个切片数据的数据地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410428740.5A CN104216664B (zh) | 2013-06-26 | 2013-06-26 | 网络卷创建方法、数据存储方法、存储设备和存储系统 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410428740.5A CN104216664B (zh) | 2013-06-26 | 2013-06-26 | 网络卷创建方法、数据存储方法、存储设备和存储系统 |
CN201380000748.5A CN103608784B (zh) | 2013-06-26 | 2013-06-26 | 网络卷创建方法、数据存储方法、存储设备和存储系统 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380000748.5A Division CN103608784B (zh) | 2013-06-26 | 2013-06-26 | 网络卷创建方法、数据存储方法、存储设备和存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104216664A CN104216664A (zh) | 2014-12-17 |
CN104216664B true CN104216664B (zh) | 2017-06-09 |
Family
ID=52098210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410428740.5A Active CN104216664B (zh) | 2013-06-26 | 2013-06-26 | 网络卷创建方法、数据存储方法、存储设备和存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104216664B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6526235B2 (ja) * | 2016-11-25 | 2019-06-05 | 華為技術有限公司Huawei Technologies Co.,Ltd. | データチェック方法および記憶システム |
CN107707628B (zh) | 2017-09-06 | 2020-06-02 | 华为技术有限公司 | 用于传输数据处理请求的方法和装置 |
CN109669930A (zh) * | 2018-12-14 | 2019-04-23 | 成都四方伟业软件股份有限公司 | 数据质量报告生成方法及系统 |
CN109976669B (zh) * | 2019-03-15 | 2023-07-28 | 百度在线网络技术(北京)有限公司 | 一种边缘存储方法、装置和存储介质 |
CN112256201B (zh) * | 2020-10-23 | 2023-10-31 | 南京鹏云网络科技有限公司 | 一种分布式块存储系统及其卷信息管理方法 |
CN114301575B (zh) * | 2021-12-21 | 2024-03-29 | 阿里巴巴(中国)有限公司 | 数据处理方法、系统、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1472963A (zh) * | 2002-07-30 | 2004-02-04 | 深圳市中兴通讯股份有限公司 | 分布式视频点播系统及其实现数据存储和访问的方法 |
CN102981927A (zh) * | 2011-09-06 | 2013-03-20 | 阿里巴巴集团控股有限公司 | 分布式独立冗余磁盘阵列存储方法及分布式集群存储系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7287121B2 (en) * | 2003-08-27 | 2007-10-23 | Aristos Logic Corporation | System and method of establishing and reconfiguring volume profiles in a storage system |
-
2013
- 2013-06-26 CN CN201410428740.5A patent/CN104216664B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1472963A (zh) * | 2002-07-30 | 2004-02-04 | 深圳市中兴通讯股份有限公司 | 分布式视频点播系统及其实现数据存储和访问的方法 |
CN102981927A (zh) * | 2011-09-06 | 2013-03-20 | 阿里巴巴集团控股有限公司 | 分布式独立冗余磁盘阵列存储方法及分布式集群存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104216664A (zh) | 2014-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104216664B (zh) | 网络卷创建方法、数据存储方法、存储设备和存储系统 | |
CN103608784B (zh) | 网络卷创建方法、数据存储方法、存储设备和存储系统 | |
CN104583930B (zh) | 数据迁移的方法、控制器和数据迁移装置 | |
CN103761190B (zh) | 数据处理方法及装置 | |
US20160283129A1 (en) | Method, apparatus, and system for calculating identification threshold to distinguish cold data and hot data | |
CN104461390B (zh) | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 | |
CN109791520A (zh) | 物理介质感知的空间耦合的日志记录和重放 | |
US20080168251A1 (en) | Network system and method for setting volume group in the network system | |
CN105068758B (zh) | 面向并行数据采集的分布式文件系统数据i/o优化方法 | |
CN108052655A (zh) | 数据写入及读取方法 | |
CN113485636B (zh) | 一种数据访问方法、装置和系统 | |
CA2635334A1 (en) | Method and system for network storage device failure protection and recovery | |
CN103761059B (zh) | 一种用于海量数据管理的多盘位存储方法及系统 | |
CN104520802B (zh) | 数据发送方法、数据接收方法和存储设备 | |
CN103530388A (zh) | 一种云存储系统中提升性能的数据处理方法 | |
CN107273046B (zh) | 一种基于固态盘阵列的数据处理方法及系统 | |
CN107908571A (zh) | 一种数据写入方法、闪存装置及存储设备 | |
CN110134338A (zh) | 一种分布式存储系统及其数据冗余保护方法和相关设备 | |
US7689767B2 (en) | Method to detect and suggest corrective actions when performance and availability rules are violated in an environment deploying virtualization at multiple levels | |
CN110389710A (zh) | 分配存储资源的方法和装置 | |
CN104050102A (zh) | 一种电信系统中的对象存储方法及装置 | |
DE112020003290T5 (de) | Datenplatzierung in einer schreib-cache-architektur, die eine lesehitze-datenaufteilung unterstützt | |
CN105791370B (zh) | 一种数据处理方法及相关服务器 | |
CN108874314A (zh) | 一种独立冗余磁盘阵列的重构方法及装置 | |
CN104951242B (zh) | 用于在存储阵列之间自动重定位数据的方法和装置 |
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 |