一种分布式存储系统的实现方法及装置与流程

文档序号:11154634 阅读:592 来源:国知局
一种分布式存储系统的实现方法及装置与制造工艺
本发明涉及计算机
技术领域
,特别是涉及一种分布式存储系统的实现方法及装置。
背景技术
:最近几年,GPU已经成为一种非常流行的并行计算解决方案,可编程的GPU作为一种高度并行化、多线程、多核心的处理器,具备很高的内存带宽和处理执行单元,非常适合于处理一些计算密集型、可高度并行化的计算任务。近些年来,nVidia公司提出了一套统一计算设备架构(CUDA),使得GPU进行通用计算成为了一种可能。CUDA专为并行计算设计,数据并行处理会将数据元素映射到并行处理线程进行加速计算,它给用户使用的编程语法和导出API同C语言类似。从其出现到现在,便已经广泛地应用到石油和天然气开采、金融分析、医学成像处理、生物基因分析、地理信息系统等领域。传统的存储需要购买大型昂贵的存储设备存储本地数据,而分布式云存储的出现使得运行在普通服务器上廉价存储单元成为可能。云计算三大件之一的存储是云计算的一个重点,而其中的分布式存储是存储未来的发展方向。Ceph作为一种高性能、高扩展性、高可靠性的分布式存储系统,能够对外提供对象存储、块存储和文件系统存储三种功能,而对象存储和块存储主要用于云计算领域。在实践中,Ceph可被部署到上千台服务器上,能够对外提供PB级别的存储。然而当集群规模较大的时候,节点的CPU的计算效率便会随即下降。根据对Ceph的Giant版本测试可知,随着OSD数量线性增加,节点之间的连接数将会呈现井喷式增长的态势。举例来讲,Ceph中OSD每一次连接需要分配一个读线程和一个写线程来处理网络的请求,此外后端的数据处理也需要分配多个线程来处理相关的逻辑。以一个基于Giant版本搭建的单节点集群为例,该节点上配置了6个osd。当集群空闲的时候,6个osd进程大概生成700多个线程,而系统出现读写等操作的时候,线程数量将会急剧增长。在实际应用场景中,这将会对CPU的计算性能提出更为苛刻的要求。鉴于此,提供一种分布式存储系统的实现方法,以对ceph系统进行加速是本领域技术人员亟待解决的技术问题。技术实现要素:本发明的目的是提供一种分布式存储系统的实现方法及装置,解决现有技术中CPU计算任务重、影响计算速度的问题。为解决上述技术问题,本发明提供一种分布式存储系统的实现方法,包括:接收用户发送的读写请求;生成对应的写线程以及读线程,分别用来执行读网络数据和写网络数据;采用统一计算设备架构将数据元素映射到并行处理线程进行加速计算;通过图形处理器执行所述写线程以及所述读线程,以实现并行化处理。可选地,在所述通过图形处理器执行所述写线程以及所述读线程,以实现并行化处理之后还包括:将处理的结果存放到全局内存中,供后续模块函数执行。可选地,所述采用统一计算设备架构将数据元素映射到并行处理线程进行加速计算包括:采用所述统一计算设备架构对应的kernel函数并发执行节点的读请求和写请求。可选地,所述通过图形处理器执行所述写线程以及所述读线程包括:通过所述图形处理器在同一时刻并发处理多个线程。本发明还提供了一种分布式存储系统的实现装置,包括:读写请求接收模块,用于接收用户发送的读写请求;生成模块,用于生成对应的写线程以及读线程,分别用来执行读网络数据和写网络数据;映射模块,用于采用统一计算设备架构将数据元素映射到并行处理线程进行加速计算;处理模块,用于通过图形处理器执行所述写线程以及所述读线程,以实现并行化处理。可选地,还包括:存放模块,用于在通过图形处理器执行所述写线程以及所述读线程,以实现并行化处理之后,将处理的结果存放到全局内存中,供后续模块函数执行。可选地,映射模块具体用于:采用所述统一计算设备架构对应的kernel函数并发执行节点的读请求和写请求。可选地,所述处理模块具体用于:通过所述图形处理器在同一时刻并发处理多个线程。本发明所提供的分布式存储系统的实现方法及装置,通过接收用户发送的读写请求;生成对应的写线程以及读线程,分别用来执行读网络数据和写网络数据;采用统一计算设备架构将数据元素映射到并行处理线程进行加速计算;通过图形处理器执行写线程以及读线程,以实现并行化处理。Ceph分布式系统的实现模块具备很高的并行度,本发明所提供的分布式存储系统的实现方法及装置,基于GPU优化Ceph系统,能够分担CPU计算任务,使节点达到更高的计算速度。此外,GPU相对于CPU有价格上的优势,能够降低分布式存储系统的实现成本。附图说明为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明所提供的分布式存储系统的实现方法的一种具体实施方式的流程图;图2为本发明实施例提供的分布式存储系统的实现装置的结构框图。具体实施方式为了使本
技术领域
的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明所提供的分布式存储系统的实现方法的一种具体实施方式的流程图如图1所示,该方法包括:步骤S101:接收用户发送的读写请求;步骤S102:生成对应的写线程以及读线程,分别用来执行读网络数据和写网络数据;步骤S103:采用统一计算设备架构将数据元素映射到并行处理线程进行加速计算;步骤S104:通过图形处理器执行所述写线程以及所述读线程,以实现并行化处理。具体地,通过所述图形处理器在同一时刻并发处理多个线程。本发明所提供的分布式存储系统的实现方法,通过接收用户发送的读写请求;生成对应的写线程以及读线程,分别用来执行读网络数据和写网络数据;采用统一计算设备架构将数据元素映射到并行处理线程进行加速计算;通过图形处理器执行写线程以及读线程,以实现并行化处理。Ceph分布式系统的实现模块具备很高的并行度,本发明所提供的分布式存储系统的实现方法,基于GPU优化Ceph系统,能够分担CPU计算任务,使节点达到更高的计算速度。此外,GPU相对于CPU有价格上的优势,能够降低分布式存储系统的实现成本。本方案基于CUDA技术来优化Ceph系统的实现,对Ceph原生系统可并行化处理的模块利用CUDA提供的API进行重新实现。当Ceph的OSD端接收到用户请求的时候,就是对于接收的每一个Connection,Ceph原来的设计是生成对应的一个read线程和write线程,分别用来执行相关的读网络数据和写网络数据,这些线程在CPU上执行,并且在集群运行的过程中,这些连接保持相对稳定。对于集群内部来说,利用CUDA优化后,生成的每一个read线程和write线程将会在GPU中执行相关的操作,这样就分流了CPU上的读写操作负担。采用统一计算设备架构将数据元素映射到并行处理线程进行加速计算包括:采用所述统一计算设备架构对应的kernel函数并发执行节点的读请求和写请求。在CUDA编程模型中,成千上万的线程将会执行同一个函数,该函数的名称为Kernel函数。CUDA中两个重要编程就是线程和内存模型,kernel函数是由一系列线程并行执行计算任务的单元,这些线程被组织成线程Grid。线程Grid同样包含了数百个线程block。在同一线程block中的线程彼此之间紧密协作,而不同线程block之间的线程必须是独立的。对于低端GPU,程序可能在同一个时刻仅仅只能允许执行一个线程block中的线程,而对于高端GPU,能够允许同一个时刻多个线程block中线程被同时调度。CUDA系统中,存在几种不同类型的内存,这些内存之间的对比如表1所示。对于这些内存的容量来讲,纹理内存和全局内存要比其他类型的内存大。受限于容量小的约束,共享内存和寄存器一般用来做缓存。纹理内存之所以快的原因是因为其存在相应的缓存。这些可读的内存一般用来存储程序中的不变的数据。表1内存位置读写操作速度访问性GPU寄存器GPU芯片上可读可写◎◎◎◎◎线程内部局部内存板上内存可读可写◎◎线程内部常量内存板上内存只读◎◎◎线程Grid纹理内存板上内存只读◎◎◎线程Grid全局内存板上内存可读可写◎◎线程Grid共享内存GPU芯片上可读可写◎◎◎◎线程block对于上面所述的利用CUDA来优化Ceph连接的这一块,对于节点的读请求和写请求,分别实现对应的kernel函数。这些kernel函数执行是并发执行的,之间不存在过多的同步操作。在上述实施例的基础上,本发明所提供的分布式存储系统的实现方法,在通过图形处理器执行所述写线程以及所述读线程,以实现并行化处理之后还包括:将处理的结果存放到全局内存中,供后续模块函数执行。下面对本发明实施例提供的分布式存储系统的实现装置进行介绍,下文描述的分布式存储系统的实现装置与上文描述的分布式存储系统的实现方法可相互对应参照。图2为本发明实施例提供的分布式存储系统的实现装置的结构框图,参照图2分布式存储系统的实现装置可以包括:读写请求接收模块100,用于接收用户发送的读写请求;生成模块200,用于生成对应的写线程以及读线程,分别用来执行读网络数据和写网络数据;映射模块300,用于采用统一计算设备架构将数据元素映射到并行处理线程进行加速计算;处理模块400,用于通过图形处理器执行所述写线程以及所述读线程,以实现并行化处理。作为一种具体实施方式,本发明所提供的分布式存储系统的实现装置还可以进一步包括:存放模块,用于在通过图形处理器执行所述写线程以及所述读线程,以实现并行化处理之后,将处理的结果存放到全局内存中,供后续模块函数执行。进一步地,映射模块可以具体用于:采用所述统一计算设备架构对应的kernel函数并发执行节点的读请求和写请求。在上述实施例的基础上,所述处理模块具体用于:通过所述图形处理器在同一时刻并发处理多个线程。本实施例的分布式存储系统的实现装置用于实现前述的分布式存储系统的实现方法,因此分布式存储系统的实现装置中的具体实施方式可见前文中的分布式存储系统的实现方法的实施例部分,例如,读写请求接收模块100,生成模块200,映射模块300,处理模块400,分别用于实现上述分布式存储系统的实现方法中步骤101,102,103和104,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。本发明所提供的分布式存储系统的实现装置,通过接收用户发送的读写请求;生成对应的写线程以及读线程,分别用来执行读网络数据和写网络数据;采用统一计算设备架构将数据元素映射到并行处理线程进行加速计算;通过图形处理器执行写线程以及读线程,以实现并行化处理。Ceph分布式系统的实现模块具备很高的并行度,本发明所提供的分布式存储系统的实现装置,基于GPU优化Ceph系统,能够分担CPU计算任务,使节点达到更高的计算速度。此外,GPU相对于CPU有价格上的优势,能够降低分布式存储系统的实现成本。基于CUDA对ceph系统进行加速,这是基于CUDA和ceph特性而决定的。使用CUDA来进行计算工作,相比于CPU来讲,主要优点有:1.CUDA具备更大的缓存和更多的执行单元,而对应的成本确低廉的多。举例来讲,GTX550具备1G的显存,具备192个流处理器,Inteli56500是4核。然而价格上来讲,GTX550的价格是149元,而后者的价格却是1200元。做为一种分布式存储系统,Ceph内部实现具备很高的并行度,使用CUDA提供的编程接口,对系统进行并行化处理。以GTX550加速上述所说的实验平台为例,理论上来讲,最优的情况下,能够加速192倍,实际场景下一般能够达到最优效果的10%-20%,也就是计算能力提升了20多倍,而花费的硬件采购成本仅仅是采用上述所说CPU的价格的13%。由上可知,基于CUDA对现有的ceph系统进行加速,具备十分诱人的市场前景。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或
技术领域
内所公知的任意其它形式的存储介质中。以上对本发明所提供的分布式存储系统的实现方法以及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。当前第1页1 2 3
当前第1页 1 2 3
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1