基于分布式存储系统的数据处理方法技术方案

技术编号:17784253 阅读:21 留言:0更新日期:2018-04-22 15:44
本发明专利技术提供了基于分布式存储系统的数据处理方法,包括:定义至少包含压缩模式、离线压缩起始时间及离线压缩终止时间的压缩配置项;当写入待处理数据时,由客户端、服务端或者客户端与服务端先后对待处理数据执行链式压缩处理,并仅在离线压缩模式下根据离线压缩起始时间及离线压缩终止时间确定服务端介入执行链式压缩处理的时刻;当读取待处理数据时,至少由客户端执行链式解压缩处理;并在执行链式压缩处理或者链式解压缩处理后通过网络向对端设备进行响应。通过本发明专利技术,可提高带宽利用率,节省存储空间,加快数据重构速度,提高了分布式存储系统在执行写入操作或者读取操作时的数据吞吐能力。

【技术实现步骤摘要】
基于分布式存储系统的数据处理方法
本专利技术涉及分布式存储
,尤其涉及一种基于分布式存储系统的数据处理方法。
技术介绍
随着虚拟化、云计算和大数据的发展、分布式存储系统成为数据存储的主要方式,在开源分布式存储领域,分布式存储系统都采用了基于副本的冗余技术或EC技术。CEPH是开源的统一分布式存储系统,是上述目前最主流的开源存储项目之一。CEPH基于C/S(客户端/服务器)架构实现,客户端可以通过RADOS对外提供对象访问接口,也可以在RADOS之上对外提供高层应用接口,高层应用接口包括RBD、RGW和CephFS;服务端包括OSD、MON和MDS,分别负责数据的存储、CEPH集群状态的管理和文件系统元数据的管理;当通过RADOS或者高层应用接口RBD、RGW和CephFS向CEPH集群写入数据时,RADOS以对象(RADOS将接收到的数据块称为“对象”)名的hash值、存储池PG数、PG掩码等作为输入参数、通过CRUSH计算得到对象的目标OSDs。采用基冗余技术时,会得到一个OSD列表,其中列表中的第一个OSD称为主OSD,其他的OSD称为副本OSD。然后RADOS与主OSD建立TCP/IP连接,通过网络将数据传输到主OSD端。采用基于副本的冗余技术时,主OSD与各个副本OSD建立TCP/IP连接,通过网络并行的将数据传输到各个副本OSD,同时将数据存储到本地磁盘中;在存储系统出现OSD或者节点故障时,由于数据是副本形式存储,系统内部会根据数据的副本自动进行故障OSD或者节点上的数据进行重建恢复,以保证数据的冗余性。数据以多副本形式存储、所需的存储空间及存储成本随着副本数的增加线性的增长,以n(n∈N+)副本为例,所需的存储空间为实际存储数据量的n倍,存储利用率为1/n;基于副本的冗余技术、存储成本高且存储利用率底。相关参考文件如中国专利技术专利CN105635252A。如果采用基于EC的冗余技术时,主OSD首先根据EC编码规则分割数据块并生成校验块,然后与各个副本OSD建立TCP/IP连接,通过网络并行的将数据块传输到各个副本OSD,同时将数据存储到本地磁盘中;在存储系统出现OSD或者节点故障时,系统内部会根据剩余的数据块自动进行故障OSD或者节点上的数据进行重建恢复,为保证数据的冗余性。数据根据EC编码规则分块存储、所需的计算量随着EC编码规则所确定的冗余度的增加线性的增长,以K+M模式为例,写入数据需要切割为K个子数据块,同时生成M个校验块;读取数据时,需要读取K个数据块,然后合并为完整的数据,当出现数据块损坏或者丢失时,还需要通过校验块重新生成损坏或者丢失的数据块。因此,基于EC的冗余技术进行数据写入与读取时就导致副本的冗余过大。更重要的是,单纯地提高K与M的数量无疑于增加了IO延迟,并严重影响了基于CEPH或者其他类型的分布式存储系统的IO性能,并对计算机的CPU及内存造成了非常大的计算开销,并造成磁盘存储空间的极大浪费。
技术实现思路
本专利技术的目的在于公开一种基于分布式存储系统的数据处理方法,用以提高带宽利用率,节省存储空间,加快数据重构速度,提升分布式存储系统在执行写入操作或者读取操作时的存储性能,降低分布式存储系统的设备部署成本。为实现上述专利技术目的,本专利技术提供了一种基于分布式存储系统的数据处理方法,包括:定义至少包含压缩模式、离线压缩起始时间及离线压缩终止时间的压缩配置项,所述压缩模式包括在线压缩模式与离线压缩模式;当写入待处理数据时,由客户端、服务端或者客户端与服务端先后对所述待处理数据执行链式压缩处理,并仅在离线压缩模式下根据离线压缩起始时间及离线压缩终止时间确定服务端介入执行链式压缩处理的时刻;当读取待处理数据时,至少由客户端执行链式解压缩处理;并在执行链式压缩处理或者链式解压缩处理后通过网络向对端设备进行响应。作为本专利技术的进一步改进,所述分布式存储系统包括:CEPH、Glusterfs、HDFS、Lustre。作为本专利技术的进一步改进,当读取待处理数据时,由客户端执行链式压缩处理所得到的待处理数据,仅由客户端执行链式解压缩处理;当部分读取待处理数据时,由服务端与客户端先后执行链式解压缩处理。作为本专利技术的进一步改进,所述压缩配置项还包括:链式解压标签,当读取待处理数据时,若为由服务端执行链式压缩处理所得到的待处理数据,则根据所述链式解压标签决定由客户端或者服务端执行链式解压缩处理;若为由客户端与服务端先后执行链式压缩处理得到的待处理数据,则根据所述链式解压标签决定仅由客户端或者客户端与服务端先后执行链式解压缩处理。作为本专利技术的进一步改进,所述压缩配置项还包括:压缩开关、压缩算法、压缩块大小、压缩率临界值及压缩粒度;其中,所述压缩算法包括snappy压缩算法、zlib压缩算法、lzo压缩算法、lz4压缩算法或者gzip压缩算法;所述压缩率临界值选定大于0且小于1的浮点值;所述压缩块大小设置为服务端中2nKB,n取大于或者等于1的正整数;所述压缩粒度设置为存储池级别或者磁盘级别;作为本专利技术的进一步改进,所述压缩算法选用snappy压缩算法;所述压缩块大小设置为64KB;在客户端与服务端先后执行链式压缩处理时,将所述压缩粒度设置为对象级别。作为本专利技术的进一步改进,所述数据处理方法还包括:在写入待处理数据时,由RADOS和/或OSD对由待处理数据经过至少一次切割处理所形成的若干子数据块在文件系统中所形成的空洞进行至少一次合并处理;在读取待处理数据时,由RADOS和/或OSD对由所述子数据块经过至少一次链式压缩处理所形成的压缩数据块经过链式解压缩处理后所形成的未经过链式压缩处理所对应的源数据在客户端的文件系统中分配文件系统空间。作为本专利技术的进一步改进,所述OSD配置为主OSD及副本OSD;在写入待处理数据时还包括:首先,通过RBD将待处理数据转换为对象,当RADOS收到写入请求,对写入请求所对应的待处理数据所转换得到的上述对象,根据客户端的压缩配置项进行数据压缩;然后,将压缩后所形成的压缩数据所形成的对象的对象名哈希值、PG数量、PGP数量、OSDMap、CrushMap作为CRUSH算法输入,计算对象在执行写入操作时所对应的位于服务端中的主OSD及副本OSD的设备列表;将在客户端中执行数据压缩处理后的数据通过网络发送至服务端的主OSD,以通过主OSD根据压缩模式决定服务端的压缩时刻;若为在线压缩模式,由主OSD根据服务端所设定的压缩配置项中的压缩算法执行数据压缩处理后,将压缩后的数据保存至挂载至服务端的本地磁盘中,同时将压缩后的数据通过网络发送至服务端的副本OSD;若为离线压缩模式,主OSD直接将待处理数据存储至挂载至服务端的本地磁盘中,并将待处理数据通过网络发送至服务端的副本OSD,以仅由副本OSD根据服务端的压缩配置项在服务端中分别执行至少一次压缩后保存至挂载至服务端的本地磁盘中;然后,由服务端的副本OSD通过网络向作为对端设备的主OSD进行响应;其中,所述对象由对象标识oid、对象名称name、数据偏移o_offset、数据长度o_length、<offset,length>列表及数据块o_chunk共同描述。作为本专利技术的进一步改进,所述OSD配置本文档来自技高网
...
基于分布式存储系统的数据处理方法

【技术保护点】
基于分布式存储系统的数据处理方法,其特征在于,包括:定义至少包含压缩模式、离线压缩起始时间及离线压缩终止时间的压缩配置项,所述压缩模式包括在线压缩模式与离线压缩模式;当写入待处理数据时,由客户端、服务端或者客户端与服务端先后对所述待处理数据执行链式压缩处理,并仅在离线压缩模式下根据离线压缩起始时间及离线压缩终止时间确定服务端介入执行链式压缩处理的时刻;当读取待处理数据时,至少由客户端执行链式解压缩处理;并在执行链式压缩处理或者链式解压缩处理后通过网络向对端设备进行响应。

【技术特征摘要】
1.基于分布式存储系统的数据处理方法,其特征在于,包括:定义至少包含压缩模式、离线压缩起始时间及离线压缩终止时间的压缩配置项,所述压缩模式包括在线压缩模式与离线压缩模式;当写入待处理数据时,由客户端、服务端或者客户端与服务端先后对所述待处理数据执行链式压缩处理,并仅在离线压缩模式下根据离线压缩起始时间及离线压缩终止时间确定服务端介入执行链式压缩处理的时刻;当读取待处理数据时,至少由客户端执行链式解压缩处理;并在执行链式压缩处理或者链式解压缩处理后通过网络向对端设备进行响应。2.根据权利要求1所述的数据处理方法,其特征在于,所述分布式存储系统包括:CEPH、Glusterfs、HDFS、Lustre。3.根据权利要求2所述的数据处理方法,其特征在于,当读取待处理数据时,由客户端执行链式压缩处理所得到的待处理数据,仅由客户端执行链式解压缩处理;当部分读取待处理数据时,由服务端与客户端先后执行链式解压缩处理。4.根据权利要求2所述的数据处理方法,其特征在于,所述压缩配置项还包括:链式解压标签,当读取待处理数据时,若为由服务端执行链式压缩处理所得到的待处理数据,则根据所述链式解压标签决定由客户端或者服务端执行链式解压缩处理;若为由客户端与服务端先后执行链式压缩处理得到的待处理数据,则根据所述链式解压标签决定仅由客户端或者客户端与服务端先后执行链式解压缩处理。5.根据权利要求2所述的数据处理方法,其特征在于,所述压缩配置项还包括:压缩开关、压缩算法、压缩块大小、压缩率临界值及压缩粒度;其中,所述压缩算法包括snappy压缩算法、zlib压缩算法、lzo压缩算法、lz4压缩算法或者gzip压缩算法;所述压缩率临界值选定大于0且小于1的浮点值;所述压缩块大小设置为服务端中2nKB,n取大于或者等于1的正整数;所述压缩粒度设置为存储池级别或者磁盘级别。6.根据权利要求5所述的数据处理方法,其特征在于,所述压缩算法选用snappy压缩算法;所述压缩块大小设置为64KB;在客户端与服务端先后执行链式压缩处理时,将所述压缩粒度设置为对象级别。7.根据权利要求2至6中任一项所述的数据处理方法,其特征在于,所述数据处理方法还包括:在写入待处理数据时,由RADOS和/或OSD对由待处理数据经过至少一次切割处理所形成的若干子数据块在文件系统中所形成的空洞进行至少一次合并处理;在读取待处理数据时,由RADOS和/或OSD对由所述子数据块经过至少一次链式压缩处理所形成的压缩数据块经过链式解压缩处理后所形成的未经过链式压缩处理所对应的源数据在客户端的文件系统中分配文件系统空间。8.根据权利要求7所述的数据处理方法,其特征在于,所述OSD配置为主OSD及副本OSD;在写入待处理数据时还包括:首先,通过RBD将待处理数据转换为对象,当RADOS收到写入请求,对写入请求所对应的待处理数据所...

【专利技术属性】
技术研发人员:许广彬郑军张银滨李忠文
申请(专利权)人:无锡华云数据技术服务有限公司
类型:发明
国别省市:江苏,32

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

1