一种数据写入方法及装置制造方法及图纸

技术编号:18860587 阅读:126 留言:0更新日期:2018-09-05 14:12
本发明专利技术提供一种数据写入方法及装置,所述方法包括:当接收到针对目标文件的写入请求时,按照预设区块大小将所述目标文件划分为原始数据块,并根据所述原始数据块利用奇偶校验算法计算至少一个校验数据块;将所述目标文件对应的原始数据块以及校验数据块并发写入对象object组中的连续多个空闲区块;将所述object组中的各object映射至不同的对象存储设备OSD。应用本发明专利技术实施例可以解决Ceph EC存在写惩罚的问题,并提高Ceph的数据写入性能。

Data writing method and device

The invention provides a data writing method and an apparatus, which include: when receiving a write request for a target file, dividing the target file into original data blocks according to a preset block size, and calculating at least one checking data block according to the original data block using a parity check algorithm; The original data block corresponding to the label file and the check data block are concurrently written to successive free blocks in the object group of the object; each object in the object group is mapped to a different object storage device OSD. The embodiment of the invention can solve the problem of writing penalty in Ceph EC and improve the data writing performance of Ceph EC.

【技术实现步骤摘要】
一种数据写入方法及装置
本专利技术涉及数据处理
,尤其涉及一种数据写入方法及装置。
技术介绍
Ceph(分布式存储系统)是一种性能优异、高可靠性和高扩展性分布式存储系统,广泛应用于各类大中小型存储环境。目前,Ceph主要采用多副本策略以保证数据的可靠性,但是多副本策略降低了Ceph的磁盘利用率,例如,2副本磁盘利用率50%,3副本磁盘利用率33%。为了提高磁盘利用率,Ceph提出了纠删码(ErasureCoding,EC)策略。纠删码算法将写入数据分成K份原始数据,通过这K份原始数据计算出M份校验数据,通过这K+M份中的任意K份数据可以还原出所有原始数据。然而实践发现,现有CephEC方案中当条带中部分原始数据发生修改时,需要先将条带中未发生修改的原始数据读出,重新计算校验数据,并将发生修改的数据和新计算的校验块写入条带中的相应位置,即存在写惩罚。
技术实现思路
本专利技术提供一种数据写入方法及装置,以解决现有CephEC方案不支持覆盖写,且存在写惩罚的问题。根据本专利技术的第一方面,提供一种数据写入方法,应用于分布式对象存储系统中的存储节点,所述方法包括:当接收到针对目标文件的写入请求时,按照预设区块大小将所述目标文件划分为原始数据块,并根据所述原始数据块利用奇偶校验算法计算至少一个校验数据块;将所述目标文件对应的原始数据块以及校验数据块并发写入对象object组中的连续多个空闲区块;其中,所述object组中包括至少三个object,所述object组中各object包括等量等大小的区块,所述连续多个空闲区块依次归属于所述object组中的各object;将所述object组中的各object映射至不同的对象存储设备OSD。根据本专利技术的第二方面,提供一种数据写入装置,应用于分布式对象存储系统中的存储节点,所述装置包括:接收单元,用于接收写入请求;划分单元,用于当所述接收单元接收到针对目标文件的写入请求时,按照预设区块大小将所述目标文件划分为原始数据块;校验单元,用于根据所述原始数据块利用奇偶校验算法计算至少一个校验数据块;写入单元,用于将所述目标文件对应的原始数据块以及校验数据块并发写入对象object组中的连续多个空闲区块;其中,所述object组中包括至少三个object,所述object组中各object包括等量等大小的区块,所述连续多个空闲区块依次归属于所述object组中的各object;映射单元,用于将所述object组中的各object映射至不同的对象存储设备OSD。应用本专利技术公开的技术方案,当接收到针对目标文件的写入请求时,按照预设区块大小将目标文件划分为原始数据块,并利用奇偶校验算法计算至少一个校验数据块;进而,可以将目标文件对应的原始数据块以及校验数据块并发写入object组中的连续多个空闲区块,并将object组中的各object映射至不同的OSD,解决了CephEC存在写惩罚的问题,并提高了Ceph的数据写入性能。附图说明图1是本专利技术实施例提供的一种数据写入方法的流程示意图;图2是本专利技术实施例提供的一种object组的示意图;图3~图7是本专利技术实施例提供的数据写入object的示意图;图8是本专利技术实施例提供的一种数据写入装置的结构示意图;图9是本专利技术实施例提供的另一种数据写入装置的结构示意图;图10是本专利技术实施例提供的另一种数据写入装置的结构示意图;图11是本专利技术实施例提供的另一种数据写入装置的结构示意图;图12是本专利技术实施例提供的一种数据写入装置的硬件结构示意图。具体实施方式为了使本
的人员更好地理解本专利技术实施例中的技术方案,并使本专利技术实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本专利技术实施例中技术方案作进一步详细的说明。请参见图1,为本专利技术实施例提供的一种数据写入方法的流程示意图,其中,该数据写入方法可以应用于分布式对象存储系统(如Ceph,下文中以Ceph为例)中的存储节点,如图1所示,该数据写入方法可以包括以下步骤:步骤101、当接收到针对目标文件的写入请求时,按照预设区块大小将目标文件划分为原始数据块,并根据该原始数据块利用奇偶校验算法计算至少一个校验数据块。本专利技术实施例中,考虑到现有CephCE方案不支持覆盖写,且存在写惩罚,同时,为了在保证数据可靠性的前提下,提高磁盘利用率,可以采用ZFS(ZettabyteFileSystem,动态文件系统)的RAIDZ(RedundantArraysofIndependentDisksZ,独立磁盘构成的具有冗余能力的阵列Z)机制替换CephEC冗余策略,通过ZFS为Ceph对外提供块存储。其中,采用ZFS的RAIDZ机制替换CephEC冗余策略,通过ZFS为Ceph对外提供块存储的方式可以包括但不限于:采用Ceph中的RBD(RADOS(Reliable,AutonomicDistributedObjectStore,可靠、自治、分布式对象存储)BlockDevices,块设备)替代ZFS中的vdev(VirtualDevice,虚拟设备),当需要进行数据写入时,将待写入的数据按照预设区块大小进行原始数据块划分,并计算校验数据块,进而分别写入到各RBD中的object(对象)中;或者,采用Ceph中的object替代ZFS中的vdev,当需要进行数据写入时,将待写入的数据按照预设区块大小进行原始数据块划分,并计算校验数据块,进而分别写入到各object中。其中,同一次写入的数据对应的原始数据块和校验数据块需要写入到不同的object,用于写入原始数据块和校验数据块的预设数量的object可以形成一个object组,同一object组中各object按照预设区块大小进行区块划分。其中,上述预设数量为大于等于三个,object组中各object包括等量等大小的区块。例如,上述object组的示意图可以如图2所示,在该示例中,object1~objectn为object组中各object的编号,0~N为object组中各object的区块的LBA(LogicalBlockAddress,逻辑区块地址)地址,当需要对object组进行数据写入时,可以按照object组中各object编号从小到大,且LBA地址从小到大的顺序进行数据写入,即先写object1的LBA0,然后写object2的LBA0…最终写objectn的LBAN。需要说明的是,在本专利技术实施例中,如图2所示,预设数量的object形成的object组可以相当于ZFSRAIDZ方案中预设数量的vdev组成的M1vdev,object组中各object的区块的编址方式可以参见M1vdev中包括的各vdev中区块的编址方式,object组响应数据读写请求的具体实现细节与M1vdev响应数据读写请求的具体实现细节相类似,本专利技术实施例对此不做赘述。本专利技术实施例中,当存储节点接收到文件(下文中称为目标文件)写入请求时,存储节点可以按照预设区块大小将目标文件划分为数据块(本文中称为原始数据块)。其中,目标文件可以包括新写入的数据或之前已写入的数据对应的修改后的数据。例如,假设预设区块大小为512K,目标文件大小为2M,则目标文件可以划分为4个原始数据块。本本文档来自技高网
...

【技术保护点】
1.一种数据写入方法,应用于分布式对象存储系统中的存储节点,其特征在于,所述方法包括:当接收到针对目标文件的写入请求时,按照预设区块大小将所述目标文件划分为原始数据块,并根据所述原始数据块利用奇偶校验算法计算至少一个校验数据块;将所述目标文件对应的原始数据块以及校验数据块并发写入对象object组中的连续多个空闲区块;其中,所述object组中包括至少三个object,所述object组中各object包括等量等大小的区块,所述连续多个空闲区块依次归属于所述object组中的各object;将所述object组中的各object映射至不同的对象存储设备OSD。

【技术特征摘要】
1.一种数据写入方法,应用于分布式对象存储系统中的存储节点,其特征在于,所述方法包括:当接收到针对目标文件的写入请求时,按照预设区块大小将所述目标文件划分为原始数据块,并根据所述原始数据块利用奇偶校验算法计算至少一个校验数据块;将所述目标文件对应的原始数据块以及校验数据块并发写入对象object组中的连续多个空闲区块;其中,所述object组中包括至少三个object,所述object组中各object包括等量等大小的区块,所述连续多个空闲区块依次归属于所述object组中的各object;将所述object组中的各object映射至不同的对象存储设备OSD。2.根据权利要求1所述的方法,其特征在于,所述将所述目标文件对应的原始数据块以及校验数据块并发写入object组中的连续多个空闲区块,包括:若当前的object组的已用容量达到第一预设阈值,且已分配的object组的总容量未达到预设最大容量,则分配新的object组,并将所述原始数据块以及校验数据块并发写入新分配的object组中的连续多个空闲区块。3.根据权利要求2所述的方法,其特征在于,所述将所述目标文件对应的原始数据块以及校验数据块并发写入object组中的连续多个空闲区块,还包括:若当前的object组的已用容量达到第一预设阈值,且已分配的object组的总容量已达到预设最大容量,则将所述原始数据块以及校验数据块并发写入存在空闲区块且初始分配的object组中的连续多个空闲区块。4.根据权利要求1所述的方法,其特征在于,所述object组为虚拟对象Vobject组,所述Vobject组中各Vobeject包括至少一个object,且各Vobject中包括的object数量相同;所述将所述目标文件对应的原始数据块以及校验数据块并发写入对象object组中的连续多个空闲区块,包括:若所述Vobject组中存在空闲区块的object的已用容量达到第二预设阈值,且已分配的object的总容量未达到预设最大容量,则为所述Vobject组中各Vobject分配新的object,并将所述原始数据块以及校验数据块并发写入所述Vobject组中存在空闲区块且初始分配的object的连续多个空闲区块;所述将所述object组中的各object映射至不同的OSD,包括:将所述Vobject组中的各object映射至不同的OSD;其中,归属于不同Vobeject的object映射至不同的OSD。5.根据权利要求4所述的方法,其特征在于,所述将所述目标文件对应的原始数据块以及校验数据块并发写入所述Vobject组中存在空闲区块且初始分配的object的连续多个空闲区块之后,还包括:记录所述原始数据块以及校验数据块所在的区块归属的Vobject的标识以及地址,并记录所述原始数据块以及校验数据块所在...

【专利技术属性】
技术研发人员:马海兵陈钊
申请(专利权)人:新华三技术有限公司
类型:发明
国别省市:浙江,33

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

1