一种基于分布式存储系统的条带卷实现方法及其存储架构与流程

文档序号:13557287阅读:1038来源:国知局
一种基于分布式存储系统的条带卷实现方法及其存储架构与流程

本发明涉及信息存储技术领域,尤其涉及的是一种基于分布式存储系统的条带卷实现方法及其存储架构。



背景技术:

serversan至今并未有一个公认的定义,它是一个进化中的概念,许多人认为其将可能是未来存储的发展趋势。

vespaceserversan支持三种不同类型数据分布的卷:1.线性分布;2.条带分布;3.纠删码分布;本发明专利是针对第2中条带分布,类似于传统单机存储的raid0。由于vespaceserversan是分布式系统,条带分布卷的数据是需要通过网络传输。传统的单机的机制并未考虑网络的因素,本发明的切片与合并方法,能提升网络性能,增加系统的负载能力。

因此,现有技术还有待于改进和发展。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于分布式存储系统的条带卷实现方法及其存储架构,旨在提出一种适用于分布式存储系统的数据分布方式,针对基于网络的数据传输,达到节约cpu资源、网络带宽、磁盘顺序写的目标。

本发明解决技术问题所采用的技术方案如下:

一种基于分布式存储系统的条带卷实现方法,其中,

具体步骤包括:

a、预先将所述存储主机抽象成n个用于承载数据的组件,并将所述组件划分成若干固定大小的存储块;所述n个组件为条带宽度,所述存储块的存储空间为条带深度,条带宽度乘以条带深度等于条带卷大小;

b、当应用主机接收到的读写请求需跨条带卷读写时,则将同一组件中连续的数据进行合并,通过一次网络请求并发读写。

其中,所述分布式存储系统包括应用主机、策略主机与存储主机。

其中,所述存储块的大小为2kb的次方。

其中,所述步骤b具体为:

b1、应用主机将接收到的写入数据以条带深度为大小、切片成多个第一数据块;当所述写入数据大于条带卷时,将预存入同一组件中的多个第一数据块合并为第二数据块,并将所述第二数据块并发写入相对应的组件,所述第二数据块为n个;

b2、当应用主机接收到的读取数据请求、并且所述读取数据大于条带卷时,则将同一组件中连续的数据合并为第三数据进行读取,所述第三数据块为n个。

其中,所述应用主机与组件通过tcp连接。

其中,当读写数据请求小于条带深度时,仅需读写对应的单个组件;

当读写数据请求大于条带深度、小于等于条带卷时,则需处理单个条带内所涉及的多个组件;

当读写数据请求大于条带卷时,则需执行1个以上的满条带卷读写。

一种存储架构,包括:应用主机、策略主机、存储主机;

所述存储架构中存储有计算机程序,该计算机程序被应用主机和/或策略主机执行时实现以上所述基于分布式存储系统的条带卷实现方法的步骤。

本发明的有益效果:本发明所述一种基于分布式存储系统的条带卷实现方法及其存储架构,旨在提出一种适用于分布式存储系统的数据分布方式,针对基于网络的数据传输,通过将数据切片达到多个后端节点并行写入的效果,通过将数据合并达到多个连续位置的数据块整合仅需一次网络请求即可发送完成,达到节约cpu资源、网络带宽、磁盘顺序写的目标。

附图说明

图1是本发明一种存储架构较佳实施例的架构模块图。

图2是本发明一种基于分布式存储系统的条带卷实现方法较佳实施例的条带卷划分结构图。

图3是本发明一种基于分布式存储系统的条带卷实现方法较佳实施例的条带卷数据存放示意图。

图4是本发明一种基于分布式存储系统的条带卷实现方法较佳实施例的数据切片示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例提供了一种基于分布式存储系统的条带卷实现方法,请参见图1-4,如图所示,其采用应用主机-策略主机-存储主机的处理架构;其中存储主机由多个物理磁盘组成。

具体包括如下步骤:

a、预先将所述存储主机抽象成n个用于承载数据的组件,并将所述组件划分成若干固定大小的存储块;所述n个组件为条带宽度,所述存储块的存储空间为条带深度,条带宽度乘以条带深度等于条带卷大小。

进一步的,所述存储块的大小为2kb的次方。

具体实施例中,所述应用主机:管理虚拟磁盘的生命周期,完成数据接收、缓存、转发等功能。本发明主要是涉及应用主机的条带化数据的处理流程,处理流程由独立的micocontroller处理,多个虚拟磁盘之间不受影响。

所述策略主机:承担应用vespaceserversan的元数据管理,资源调度,存储策略控制,完成整个分布式系统的协调与控制。

所述存储主机:vespaceserversan存储系统中,存储主机用于管理物理磁盘,将物理存储资源抽象成多个组件,用于承载来至虚拟磁盘的数据。

vespaceserversan存储系统生成的虚拟磁盘与真实的物理磁盘,在用户视角是完全相同的,用户无需区别二者。与物理磁盘相同,虚拟磁盘的读写请求经过操作系统的存储io栈,最终转化为data,length,offset。

其中,所述data:对于写请求表示需要写入的数据的缓冲区;对于读请求表示从磁盘读取数据的缓冲区;

所述length:data为缓冲区长度;

所述offset:需要读写虚拟磁盘的偏移位置。

b、当应用主机接收到的读写请求需跨条带卷读写时,则将同一组件中连续的数据进行合并,通过一次网络请求并发读写。

所述步骤b具体为:

b1、应用主机将接收到的写入数据以条带深度为大小、切片成多个第一数据块;当所述写入数据大于条带卷时,将预存入同一组件中的多个第一数据块合并为第二数据块,并将所述第二数据块并发写入相对应的组件,所述第二数据块为n个;

b2、当应用主机接收到的读取数据请求、并且所述读取数据大于条带卷时,则将同一组件中连续的数据合并为第三数据进行读取,所述第三数据块为n个。

进一步的,所述应用主机与组件通过tcp连接。

其中,当读写数据请求小于条带深度时,仅需读写对应的单个组件;

当读写数据请求大于条带深度、小于等于条带卷时,则需处理单个条带内所涉及的多个组件;

当读写数据请求大于条带卷时,则需执行1个以上的满条带卷读写。

具体实施例中,对于分布式存储系统io请求需要经过网络,多次的网络请求会造成性能的损耗。vespaceserversan的条带卷会将跨条带卷的请求io合并,达到节约cpu资源、网络带宽、磁盘顺序写的目标。

如图3所示,假设写入80kb数据,虚拟磁盘的微控制器将其切成16kb大小的数据块abcde,并发通过网络将5块数据存到5个组件中,理论速度是之前的5倍。假设写入的数据是160kb,切分数据后数据块为abcdefghij两个条带,通过两次网络请求将数据发送到组件中落盘。根据图3中展示,数据块a与数据块f在组件中是连续的,以此类推b和g,c和h,...都是连续的。于是vespaceserversan条带卷微控制器将组件中连续的数据块合并成一个数据,不仅节省了网络带宽,利用了普通磁盘的顺序操作性能高的特点。对于条带越小,写入数据块越大的情况,这种条带方式性能越好。

如图4所示,为本发明的vespaceserversan切片示意图;该切片方式,可以使用少量的cpu时间,完成数据切片与合并,并不会对系统性能造成影响。以条带深度为16k为例,写入一个较大的数据块,比如1mb。请求参数为:data,length,offset。假设offset是条带大小对齐的情况,length=1mb。

条带数量=1mb÷80kb=12.8(需要写13个条带,满写12个条带,最后一个只需操作4个组件)

通过数据合并后,可以分成5个数据切片,分别通过一次请求,将数据发送到组件。不采用合并需要发送12.8*5=64个请求,采用合并只需要发送5个请求。大大的减少了网络开销。

综上所述,本发明公开了一种基于分布式存储系统的条带卷实现方法,具体包括:预先将所述存储主机抽象成n个用于承载数据的组件,并将所述组件划分成若干固定大小的存储块;所述n个组件为条带宽度,所述存储块的存储空间为条带深度,条带宽度乘以条带深度等于条带卷大小;当应用主机接收到的读写请求需跨条带卷读写时,则将同一组件中连续的数据进行合并,通过一次网络请求并发读写。本发明不仅节约了系统资源与网络带宽,且由于将整块组件中连续的数据整合,使得普通磁盘在大部分情况下都是顺序读写,带来更好的系统性能。

基于上述一种基于分布式存储系统的条带卷实现方法,本发明还公开了一种存储架构,包括:应用主机、策略主机、存储主机;

所述存储架构中存储有计算机程序,该计算机程序被应用主机和/或策略主机执行时实现以上所述基于分布式存储系统的条带卷实现方法的步骤。具体如上所述。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

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