一种基于分布式存储的数据复制卸载方法及终端设备技术

技术编号:31085253 阅读:29 留言:0更新日期:2021-12-01 12:36
本发明专利技术公开一种基于分布式存储的数据复制卸载方法及终端设备,该方法包括:存储网关收到数据复制指令,获取指令对应源、目的卷元数据信息,解析出相应对象信息和对象主存储节点信息,把数据复制信息发给源对象主存储节点;源对象主存储节点从本地磁盘读取复制数据,封装成写请求发给目的对象主存储节点;目的对象主存储节点完成写入操作,回复响应给源对象主存储节点;源对象主存储节点收到响应后给存储网关回复完成响应;存储网关完成所有数据复制后给客户端回复完成响应。本发明专利技术把数据复制操作从客户端和网关侧下移到分布式存储集群,能减少客户端和网关侧带宽压力,提高数据复制并发度和性能;减少虚拟化软件管理程序资源消耗和复制时延。资源消耗和复制时延。资源消耗和复制时延。

【技术实现步骤摘要】
一种基于分布式存储的数据复制卸载方法及终端设备


[0001]本专利技术涉及分布式存储领域,特别是涉及一种基于分布式存储的数据复制卸载方法、终端设备及计算机可读存储介质。

技术介绍

[0002]分布式存储系统(Ceph)将上层业务数据切割成一个个独立的对象,保存在一个由若干服务器组成的集群中;分布式存储系统同时支持对象存储、块存储和文件系统。其中主要组件有:(1)RBD:RADOS Block Device,对外提供的块设备服务(类似于提供一块硬盘,即卷);RBD会按固定大小(默认4MB)将卷进行切块,并根据块偏移、卷名等元数据对块进行命名,即对象(每一小块就是一个对象),存储到分布式集群中,实现从卷操作到对象操作的转换。(2)RADOS:Reliable Autonomic Distributed Object Store,可靠自主的分布式对象存储,是集群的统一抽象层,所有接口的数据经过这层处理后就以对象的形式存储在集群中。(3)OSD:Object Storage Device,对象存储设备,负责处理客户端读写请求的守护进程/程序,一个OSD进程通常管理一块磁盘。(4)librados:提供上层访问可靠自主的分布式对象存储集群的各种库函数接口,封装了与可靠自主的分布式对象存储层交互的接口。
[0003]分布式存储系统的读写流程概述如下,以写流程为例,假设为保证数据安全和一致性,采用传统的三副本策略对数据进行保护:参考图1。(1)用户直接读写存储网关映射出来的卷,读写请求中包含操作的偏移和长度;(2)存储网关RBD层根据RBD元数据,结合对卷写请求的偏移和长度,解析出相应对象信息;(3)Librados将相应对象操作封装为RADOS的对象操作请求;(4)根据对象名称和RADOS寻址算法找得到保存对象数据的三个OSD;(5)将对象的写请求发送给主OSD进行处理,主OSD进行数据封装后再发送给从OSD;(6)主OSD根据对象名称和OSD元数据找到对象在硬盘上的位置,并将对象数据写入硬盘;(7)根据RADOS的副本策略和RADOS的寻址算法,主OSD2将副本分别发送给从OSD1和OSD3;(8)从OSD将数据写入本地磁盘后,给主OSD回复响应;(9)当所有OSD写处理完成时,依次逆序回复完成确认消息给上级。
[0004]主要根据功能,将Ceph RBD分层架构(layering)划分为librbd(Ceph块设备接口库)、cache(缓存层)、objecter(对象接口层)和librados(RADOS接口库)四个层次。参考图2,librbd对上层用户封装符合Linux块设备标准的卷接口,供用户操作,快照和克隆卷也是在librbd抽象的;cache层主要是为了提高读写性能,负责数据缓存;objecter负责将数据操作封装成符合分布式存储Ceph集群的对象操作;librados负责真正与分布式存储集群进行业务交互。基于RBD的分层架构,RBD创建克隆卷时,采用写时复制机制(COW,copy on write);以实现快速创建卷。限制条件是只能基于快照创建克隆卷,形成快照和克隆卷的父子关系,共享相同的对象数据。
[0005]指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的镜像,只能读取。参考图3,快照(snapshot)可以是其所表示的数据的一个副本,也可以是数据的一个复制品。
[0006]在RBD层基于快照和写时复制技术克隆出一个可读写的卷,称为克隆卷。参考图4,此时克隆卷与父快照只是增加了映射关系的元数据(共用数据)。(一)flatten操作(拍扁操作),基于快照的克隆卷保留着对父快照的映射关系。当需要解除这种父快照与子克隆卷的映射关系,及将克隆卷修改成非克隆卷,就需要使用flatten操作;flatten操作是将父快照的信息拷贝一份保存到克隆卷,所以flatten操作会增加与父快照相同的空间使用量;当要删除的快照有克隆卷时,必须先进行flatten操作来解除克隆卷和父快照之间的映射关系。(二)克隆卷初次写,基于rbd的layering机制,由于快照是只读的,客户端要修改快照时,必须基于快照复制出克隆卷,对克隆卷进行写操作;克隆卷第一次写时,根据COW原理,需要先从快照parent中读出操作区域的原始数据,与客户端修改的数据进行合并,最终将合并数据写入克隆卷,如下图5所示;(1)客户端第一次写克隆卷,将要修改的数据的偏移及长度发送给存储网关;(2)存储网关RBD检测克隆卷对应区域的对象是否存在的;(3)分布式存储集群返回对象不存在的错误码给RBD;(4)rbd根据克隆关系中找到父快照;(5)RBD向父快照发起对目标域对象读请求;(6)分布式存储集群返回父快照对应区域的数据给RBD;(7)RBD将父快照数据与用户数据合并;(8)RBD将合并后的数据向分布式存储集群写入数据;(9)分布式存储集群返回写完成确认;(10)RBD向客户端返回写完成确认。(三)未flatten克隆卷读(克隆卷本身无相应数据),(1)客户端将要读取的数据的偏移及长度发送给存储网关;(2)存储网关RBD检测克隆卷对应区域的对象是否存在的;(3)分布式存储集群返回对象不存在的错误码给RBD;(4)RBD根据克隆关系中找到父快照;(5)RBD向父快照发起对目标域对象读请求;(6)分布式存储集群返回父快照对应区域的数据给RBD;(7)存储网关RBD将父快照数据返回给客户端。
[0007]VMware XCOPY原理(虚拟化软件VMware的数据复制(xcopy)原理),传统存储的数据复制(复制)是客户资源管理器将数据从源卷中读取出来,再写如到目标卷中,即首先通过源服务器从存储读取,然后跨网络传输到目标服务器,最后通过目标服务器写回存储。由于受制于这样的数据操作机制,当超过一定数量的虚拟机同时进行诸如迁移、克隆、备份、zeroing等操作的时候,往往会导致出现网络带宽资源消耗严重、CPU和内存资源被大量占用的问题。针对上述虚拟机迁移及克隆问题,VMware推出了VAAI(Vstorage APIs for Array Integration也被称为硬件加速或硬件减负API),VAAI的目的是将传统虚拟机文件搬移过程(从主机侧)卸载到共享存储阵列(通过减少冗余的IO路径,使得据移动将消耗更少的CPU资源,更少的storage fabric带宽),这样不仅可以大大减轻主机侧CPU和内存的压力,同时还极大的降低了对网络资源的要求。数据复制是VAAI基本类型之一,用于将复制任务卸载到存储。例如,可以使用数据复制将诸如虚拟机迁移、克隆等操作卸载到存储阵列或分布式存储集群,从而减少使用vSphere管理客户端资源来执行这些任务。参考图6(1)客户端给存储网关下发数据复制数据复制命令,包含了待迁移数据(源卷数据的偏移和长度)和数据迁入区域(目标卷的偏移,长度是源卷读取的长度);(2)存储网关从源卷中读取数据复制命令指定数据;(3)存储集群返回指定区域数据给存储网关;(4)存储网关将待迁移数据写入存储集群数据复制指定区域;(5)存储集本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于分布式存储的数据复制卸载方法,其特征在于,包括如下步骤:S1:客户端向存储网关发送的数据复制请求指令,指示存储网关根据对应源卷、目的卷元数据信息;及数据复制请求中的数据拷贝偏移和长度,解析出所述源卷、目的卷所映射的对象信息;S2:根据对象信息解析出源对象主存储节点信息,存储网关把需要复制的数据位置、长度信息、目的对象的拷贝位置信息发送给源对象主存储节点;S3:根据源对象主存储节点收到的信息,获取目的对象对应的主存储节点信息,并从源对象主存储节点本地对应的存储介质读取数据,封装成写请求发送给目的对象主存储节点;S4:指使目的对象主存储节点根据收到所述写请求,完成相应对象写入操作后,给源对象主存储节点回复写入成功的响应;S5:指使源对象主存储节点收到所述目的对象主存储节点回复的响应,给网关节点回复数据复制处理成功的响应;S6:指使网关节点收到所有上述源对象主存储节点所回复的响应后,给客户端回复数据复制请求完成的响应。2.如权利要求1所述的基于分布式存储的数据复制卸载方法,其特征在于:根据源卷、目的卷在网关侧是否有数据缓存、是否为克隆卷,存在四种场景,按照场景1

4优先级进行匹配处理:场景1:源卷数据复制请求区域命中缓存数据;场景2:源卷为克隆卷;场景3:目的卷为克隆卷;场景4:源卷、目的卷都为非克隆卷。3.如权利要求2所述的基于分布式存储的数据复制卸载方法,其特征在于:所述场景1中,其处理流程包括:A1:客户端向存储网关发送的数据复制请求指令,指示存储网关根据对应源卷、目的卷元数据信息;及数据复制请求中的数据拷贝偏移和长度,解析出所述源卷、目的卷所映射的对象信息;A2:所述数据复制请求指令的数据命中网关缓存数据,从网关缓存层中读取数据,封装成写请求发送给目的对象主存储节点;A3:指使目的对象主存储节点接收写请求,把数据持久化到磁盘并回复响应。4.如权利要求2所述的基于分布式存储的数据复制卸载方法,其特征在于:所述场景2中,其处理流程包括:B1:客户端向存储网关发送的数据复制请求指令,指示存储网关根据对应源卷、目的卷元数据信息;及数据复制请求中的数据拷贝偏移和长度,解析出所述源卷、目的卷所映射的对象信息;B2:指示网关结合数据迁移请求中的源克隆卷对象名,探测源克隆卷对象;B3:如源克隆卷对象不存在,则根据该卷元数据信息,从克隆卷对应的父卷中找到相应对象,给父卷对象主存储节点发送数据读请求;如源克隆卷对象存在,对源克隆卷对象主存储节点发送读请求;
B4:所述对象主存储节点接收到读请求,读取对象数据后给网关返回响应;B5:所述网关接收到读响应后构造写请求,发送给目的对象...

【专利技术属性】
技术研发人员:文刘飞刘亮奇陈坚
申请(专利权)人:深圳市杉岩数据技术有限公司
类型:发明
国别省市:

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

1