CN107817947B - 一种数据存储方法、装置及系统 - Google Patents

一种数据存储方法、装置及系统 Download PDF

Info

Publication number
CN107817947B
CN107817947B CN201610825721.5A CN201610825721A CN107817947B CN 107817947 B CN107817947 B CN 107817947B CN 201610825721 A CN201610825721 A CN 201610825721A CN 107817947 B CN107817947 B CN 107817947B
Authority
CN
China
Prior art keywords
data storage
data
storage block
block group
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610825721.5A
Other languages
English (en)
Other versions
CN107817947A (zh
Inventor
袁冬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201610825721.5A priority Critical patent/CN107817947B/zh
Publication of CN107817947A publication Critical patent/CN107817947A/zh
Application granted granted Critical
Publication of CN107817947B publication Critical patent/CN107817947B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种数据存储方法、装置及系统,方法包括:接收针对第一数据的存储指令;并分配用于按照多副本数据存储规则存储第一数据的第一数据存储块组,将第一数据存储至第一数据存储块组的各个数据存储块中;判断第一数据存储块组是否写满;如果是,判断第一数据存储块组是否满足预设的存储方式转化条件;若满足,将任意一个数据存储块中存储的数据存储至EC数据存储块中;删除第一数据存储块组中存储的所有数据。应用本发明实施例,判断多副本存储规则存储的数据是否满足预设的存储方式转化条件,将满足存储方式转化条件的数据转存储至EC数据存储块中,并删除所有多副本存储规则存储的数据,节省了存储空间。

Description

一种数据存储方法、装置及系统
技术领域
本发明涉及计算机领域,特别涉及一种数据存储方法、装置及系统。
背景技术
近线存储(Nearline Storage)又称低频访问存储,是随着客户存储环境的细化所提出的一个概念,所谓的近线存储,外延相对较广泛,主要定位于客户在线存储和离线存储之间的应用。就是指将那些并不是经常用到,或者说数据的访问量并不大的数据存放在性能较低的存储设备上。在多数情况下由于不常用数据占总数据量的比重比较大,这也就要求近线存储设备具有较大的容量。
目前,在近线存储中为了解决大规模数据的可靠性问题,多按照多副本数据存储规则对数据进行存储,即将同样的数据在多个不同位置的数据存储块进行存储,例如常用的三副本技术,就是将三份同样的数据存储在三个不同的数据存储块中,这样即使数据的一个数据副本出现问题,也不会导致该数据出现问题。数据存储块为计算机硬盘或存储区中划分的用于存储数据的存储块。
然而,通常情况下,存储的数据在经过一段时间的高频率访问后,其访问率将大幅降低。当访问频率降低后,系统对数据存储的可靠性要求将降低,由于按照多副本数据存储规则对数据进行存储,需要将多份同样的数据在多个不同的数据存储块中存储,占用的存储空间大;因此在访问频率降低的情况下,如果依然按照多副本数据存储规则进行数据存储,将带来较大的存储空间浪费。
发明内容
本发明实施例的目的在于提供一种数据存储方法、装置及系统,以节省存储空间。
为达到上述目的,本发明实施例公开了一种数据存储方法,所述方法包括:
接收针对第一数据的存储指令;
根据所述存储指令,分配用于按照多副本数据存储规则存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中;
判断所述第一数据存储块组是否写满;
如果是,判断所述第一数据存储块组是否满足预设的存储方式转化条件;
如果满足,确定纠删码EC数据存储块,并按照EC数据存储规则,将第一数据存储块中存储的数据存储至所述EC数据存储块中,其中,所述第一数据存储块为:所述第一数据存储块组的任意一个数据存储块;
删除所述第一数据存储块组的各个数据存储块中存储的所有数据。
优选的,所述根据所述存储指令,分配用于按照多副本数据存储规则存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中,包括:
根据所述存储指令,判断是否存在处于可写入状态的数据存储块;
如果存在,按照多副本数据存储规则,根据处于可写入状态的数据存储块确定用于存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中;
如果不存在,按照多副本数据存储规则,创建数据存储块,获得用于存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中。
优选的,所述判断是否存在处于可写入状态的数据存储块,包括:
判断空白数据存储块的数量是否小于所述多副本数据存储规则对应的数据存储块数量,若不小于,判定存在处于可写入状态的数据存储块;
或,判断当前是否存在未写满的多副本形式的数据存储块,如果存在,判定存在处于可写入状态的数据存储块。
优选的,所述判断所述第一数据存储块组是否满足预设的存储方式转化条件,包括:
判断预设时间段内是否接收到针对所述第一数据存储块组的删除指令,若为否,则判定满足预设的存储方式转化条件;
和/或,
判断预设时间段内针对所述第一数据存储块组的访问频率是否小于第一预设阈值,如果小于,则判定满足预设的存储方式转化条件。
优选的,所述方法还包括:
接收针对所述EC数据存储块中第二数据的修改请求,其中,所述第二数据为所述EC数据存储块中存储的任一数据;
拒绝响应所述修改请求。
优选的,所述方法还包括:
接收针对所述EC数据存储块中第二数据的删除指令,其中,所述第二数据为所述EC数据存储块中存储的任一数据;
更新所述第二数据的状态为删除状态。
优选的,所述方法还包括:
接收针对所述第二数据的访问请求;
判断所述第二数据是否处于删除状态;
若为是,拒绝响应所述访问请求。
优选的,所述方法还包括:
统计处于删除状态的数据的数据总量;
判断所述数据总量是否大于第二预设阈值或所述数据总量占所述EC数据存储块容量的比例是否大于第三预设阈值;
如果大于,确定第二数据存储块组,按照多副本数据存储规则,将所述EC数据存储块中处于非删除状态的数据存储至所述第二数据存储块组的各个数据存储块中。
优选的,在判断所述数据总量大于所述第二预设阈值或所述数据总量占所述EC数据存储块容量的比例大于所述第三预设阈值的情况下,所述方法还包括:
判断当前处于可写入状态的数据存储块总量是否小于第四预设阈值,如果是,执行所述确定第二数据存储块组,按照多副本数据存储规则,将所述EC数据存储块中存储的数据存储至所述第二数据存储块组的各个数据存储块中的步骤。
为达到上述目的,本发明实施例还公开了一种数据存储装置,所述装置包括:
第一接收模块,用于接收针对第一数据的存储指令;
第一存储模块,用于根据所述存储指令,分配用于按照多副本数据存储规则存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中;
第一判断模块,用于判断所述第一数据存储块组是否写满;
第二判断模块,用于在所述第一判断模块判断结果为是的情况下,判断所述第一数据存储块组是否满足预设的存储方式转化条件;
第二存储模块,用于在做所述第二判断模块判断结果为满足的情况下,确定纠删码EC数据存储块,并按照EC数据存储规则,将第一数据存储块中存储的数据存储至所述EC数据存储块中,其中,所述第一数据存储块为:所述第一数据存储块组的任意一个数据存储块;
删除模块,用于删除所述第一数据存储块组的各个数据存储块中存储的所有数据。
优选的,所述第一存储模块,包括:
第三判断子模块,用于根据所述存储指令,判断是否存在处于可写入状态的数据存储块;
第三存储子模块,用于在所述第三判断子模块判断结果为存在的情况下,按照多副本数据存储规则,根据处于可写入状态的数据存储块确定用于存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中;
第四存储子模块,用于在所述第三判断子模块判断结果为不存在的情况下,按照多副本数据存储规则,创建数据存储块,获得用于存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中。
优选的,所述第三判断子模块,具体用于:
判断空白数据存储块的数量是否小于所述多副本数据存储规则对应的数据存储块数量,若不小于,判定存在处于可写入状态的数据存储块;
或,判断当前是否存在未写满的多副本形式的数据存储块,如果存在,判定存在处于可写入状态的数据存储块。
优选的,所述第二判断模块,具体用于:
在所述第一判断模块判断结果为是的情况下,
判断预设时间段内是否接收到针对所述第一数据存储块组的删除指令,若为否,则判定满足预设的存储方式转化条件;
和/或,
判断预设时间段内针对所述第一数据存储块组的访问频率是否小于第一预设阈值,如果小于,则判定满足预设的存储方式转化条件。
优选的,所述装置还包括:
第二接收模块,用于接收针对所述EC数据存储块中第二数据的修改请求,其中,所述第二数据为所述EC数据存储块中存储的任一数据;
第一拒绝响应模块,用于拒绝响应所述修改请求。
优选的,所述装置还包括:
第三接收模块,用于接收针对所述EC数据存储块中第二数据的删除指令,其中,所述第二数据为所述EC数据存储块中存储的任一数据;
更新模块,用于更新所述第二数据的状态为删除状态。
优选的,所述装置还包括:
第四接收模块,用于接收针对所述第二数据的访问请求;
第四判断模块,用于判断所述第二数据是否处于删除状态;
第二拒绝响应模块,用于在所述第四判断模块判断结果为是的情况下,拒绝响应所述访问请求。
优选的,所述装置还包括:
统计模块,用于统计处于删除状态的数据的数据总量;
第五判断模块,用于判断所述数据总量是否大于第二预设阈值或所述数据总量占所述EC数据存储块容量的比例是否大于第三预设阈值;
第五存储模块,用于在所述第五判断模块判断结果为是的情况下,确定第二数据存储块组,按照多副本数据存储规则,将所述EC数据存储块中处于非删除状态的数据存储至所述第二数据存储块组的各个数据存储块中。
优选的,所述装置还包括:
第六判断模块,用于在所述第五判断模块判断结果为是的情况下,判断当前处于可写入状态的数据存储块总量是否小于第四预设阈值,如果是,触发所述第五存储模块。
为达到上述目的,本发明实施例还公开了一种数据存储系统,所述系统包括:
客户端、应用上述数据存储装置的存储服务器;
其中,所述客户端用于向所述存储服务器发送针对第一数据的存储指令。
本发明实施例提供了一种数据存储方法、装置及系统,方法包括:接收针对第一数据的存储指令;并分配用于按照多副本数据存储规则存储第一数据的第一数据存储块组,将第一数据存储至第一数据存储块组的各个数据存储块中;判断第一数据存储块组是否写满;如果是,判断第一数据存储块组是否满足预设的存储方式转化条件;如果满足,按照EC数据存储规则,将任意一个数据存储块中存储的数据存储至EC数据存储块中;删除第一数据存储块组中存储的所有数据。应用本发明实施例,通过判断多副本存储规则存储的数据是否满足预设的存储方式转化条件,将满足存储方式转化条件的数据转存储至EC数据存储块中,并删除所有多副本存储规则存储的数据,节省了存储空间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据存储方法的第一种流程示意图;
图2为本发明实施例提供的一种数据存储方法的第二种流程示意图;
图3为本发明实施例提供的一种数据存储方法的第三种流程示意图;
图4为本发明实施例提供的一种数据存储方法的第四种流程示意图;
图5为本发明实施例提供的一种数据存储方法的第五种流程示意图;
图6为本发明实施例提供的一种数据存储方法的第六种流程示意图;
图7为本发明实施例提供的一种数据存储装置的第一种结构示意图;
图8为本发明实施例提供的一种数据存储装置的第二种结构示意图;
图9为本发明实施例提供的一种数据存储装置的第三种结构示意图;
图10为本发明实施例提供的一种数据存储装置的第四种结构示意图;
图11为本发明实施例提供的一种数据存储装置的第五种结构示意图;
图12为本发明实施例提供的一种数据存储装置的第六种结构示意图;
图13为本发明实施例提供的一种数据存储系统的结构示意图;
图14为本发明实施例提供的一种具体的数据存储的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面通过具体实施例,对本发明进行详细的说明。
图1为本发明实施例提供的一种数据存储方法的流程示意图,方法包括步骤:
S101:接收针对第一数据的存储指令。
随着计算机科学技术的迅速发展,在信息的交换和传递过程中会产生大量的数据,这些数据往往需要保存,以便后续能够调用。在计算机科学中,“数据”是指所有能输入到计算机并被计算机程序处理的信息的总称,是用于输入计算机进行处理,具有一定意义的符号、文字、数字、语音、图像、视频等的通称。第一数据可以但不限于上述所说的符号、文字、数字、语音、图像、视频。
数据在存储时,通常对应有一个针对该数据的存储指令,服务器接收到该存储指令后,对数据进行存储,该存储指令可以是操作该数据的用户发送的,也可以是配置管理服务器自动识别数据已达到保存条件时生成的。比较合理的是,存储指令可以包括但不限于:数据的标识信息、数据的大小等。根据该数据存储指令可以知道需要存储的是哪一个数据,还可以知道存储该数据需要占用的存储空间的大小。
S102:根据所述存储指令,分配用于按照多副本数据存储规则存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中。
根据存储指令,可以知道需要存储的是哪一个数据,还可以知道存储该数据需要占用的存储空间的大小。示例性的,假设存储指令为:“视频X;1.5GB”那么根据存储指令可以知道需要对数据大小为1.5GB的视频X进行存储。与现有技术相同,将需要存储的数据大小为1.5GB的视频X按照多副本数据存储规则进行存储,即将数据大小为1.5GB的视频X复制为多份,每一份均存储在一个数据存储块中。多副本可以为三副本、四副本、五副本……,常用的为三副本,具体为将数据大小为1.5GB的视频X复制为三份,每一份均存储在一个数据存储块中。数据存储块为计算机硬盘或存储单元中划分的用于存储数据的存储区域。
根据多副本数据存储规则的特点,即为将一个数据复制为多份,再将每一份数据存储在一个数据存储块中,那么每个数据存储块所存储的数据完全相同,通常称这些数据存储块为数据存储块组;对于三副本来说,存储有相同数据的共三个数据存储块称为数据存储块组,这个数据存储块组就是第一数据存储块组。
实际应用中,根据所述存储指令,分配用于按照多副本数据存储规则存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中,可以根据所述存储指令,判断是否存在处于可写入状态的数据存储块;如果存在,按照多副本数据存储规则,根据处于可写入状态的数据存储块确定用于存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中;如果不存在,按照多副本数据存储规则,创建数据存储块,获得用于存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中。
首先介绍一下数据存储块的含义,数据存储块可以为计算机硬盘中按照一个设定的划分单位划分的存储空间,例如,计算机的存储空间为100GB的存储区D可以按照4GB的大小进行划分,得到25个数据存储块,分别命名为数据存储块D1-D25,采用同样的划分过程,将同样存储空间大小的存储区E、存储区F对应划分为数据存储块E1-E25、数据存储块F1-F25。当然,这里的存储区的大小以及划分单位是可以根据具体的数据结构进行设定的,本申请不对其做明确限定。
为了简单明了的阐述本申请,下文中均以三副本为例进行说明。
在同一个计算机系统中,多副本均设定为三副本。在三副本的数据存储规则下,根据接收到的存储指令,判断是否存在处于可写入状态的数据存储块,具体的,判断是否存在处于可写入的数据存储块有两种具体的方法,满足下述任意一种方法均可判定存在处于可写入的数据存储块,下面分别对两种具体的方法进行说明:
A:判断空白数据存储块的数量是否小于所述多副本数据存储规则对应的数据存储块数量,若不小于,判定存在处于可写入状态的数据存储块。
当前采用的为三副本数据存储规则,需要将数据复制为三份,存储在三个不同位置的数据存储块中,因此,需要至少有三个数据存储块才能满足数据存储要求,假设当前状态下,数据存储块D9、数据存储块E8以及数据存储块F6为空白数据存储块,空白数据存储块指的是没有存储任何数据的数据存储块。可见总共有三个数据存储块为空白数据块,满足三副本的存储要求,因此,判定存在处于写入状态的数据存储块。
当判定存在处于可写入状态的数据存储块的时候,将上述的数据存储块D9、数据存储块E8以及数据存储块F6确定为数据存储块组,将需要存储的视频X复制为三个同样的视频X1、视频X2和视频X3,将视频X1、视频X2和视频X3对应的存储到数据存储块D9、数据存储块E8以及数据存储块F6中。
需要说明的是,这里视频X1、视频X2和视频X3与数据存储块D9、数据存储块E8以及数据存储块F6之间的对应关系可以是随机的;例如,视频X1对应存储到数据存储块E8中,视频X2存储到数据存储块D9中,视频X3存储到数据存储块F6中。因此,在按照多副本数据存储规则进行数据存储的时候,本申请不对存储数据与数据存储块的对应关系做明确的限定。
B:判断当前是否存在未写满的多副本形式的数据存储块,如果存在,判定存在处于可写入状态的数据存储块。
在同一个计算机系统中,多副本均设定为三副本,可以理解的,当存储视频X之前可能已有其他数据完成存储操作,因此,可能会存在还没写满的三副本形式的数据存储块,这里所说的三副本形式的数据存储块是指已经按照三副本数据存储规则存储有数据的数据存储块,通俗点说,三副本形式的数据存储块都是成组的,因为数据在存储的时候,一旦命中数据存储块组中的任意一个数据存储块,其他的两个将被一起作为三副本形式的数据存储块的其他两个。
示例性的,假设数据存储块D1、数据存储块E1和数据存储块F1为一个数据存储块组,命名为数据存储块组1,这三个数据存储块中所存储的数据是完全一样的,数据存储块D1中剩余的存储空间大小为1.8GB,这也表明数据存储块E1和数据存储块F1均剩余1.8GB的存储空间,因此,判定存在处于写入状态的数据存储块。
同样的,当判定存在处于写入状态的数据存储块的时候,将数据存储块D1、数据存储块E1以及数据存储块F1确定为数据存储块组,将需要存储的视频X复制为三个同样的视频X1、视频X2和视频X3,将视频X1、视频X2和视频X3对应的存储到数据存储块D1、数据存储块E1以及数据存储块F1中。
不仅如此,还可以存在多个没写满的数据存储块组,假设,数据存储块组1中各数据存储块处于写入状态,其中,数据存储块D2剩余的存储空间大小为1.8GB。除数据存储块组1处于写入状态外,数据存储块D2、数据存储块E2和数据存储块F2也均处于写入状态,数据存储块D2、数据存储块E2和数据存储块F2为数据存储块组2中的三个数据存储块,其中,数据存储块D2剩余的存储空间大小为1.5GB。
可以理解的,在存储数据时为了合理的分配存储空间,通常情况下,根据存储数据的大小选择稍大于数据大小的数据存储块。示例性的,假设需要存储的数据为大小为1.5GB的视频X,由于数据存储块组1中各数据存储块剩余的存储空间大小为1.8GB,而数据存储块组2中各数据存储块剩余的存储空间大小为1.5GB,因此,不难将数据存储块组2确定为待用的数据存储块组,将需要存储的视频X复制为三个同样的视频X1、视频X2和视频X3,将视频X1、视频X2和视频X3对应的存储到数据存储块D2、数据存储块E2以及数据存储块F2中。数据的存储过程与上述一致,这里就不再赘述。
若上述两种方法均不满足时,则判定为不存在处于可写入状态的数据存储块。为了将视频X按照多副本数据存储规则进行存储,需要创建数据存储块来实现对视频X的存储。具体的,在创建数据块的时候可以分为两种情况,第一种情况为:当前还存在空白数据存储块,但是空白存储块的数量小于三个,例如,当前仅存在数据存储块E24和数据存储块F22为空白数据存储块。第二种情况为:当前不存在空白数据存储块。
针对第一种情况,在建立数据存储块时仅需要建立一个数据存储块,例如,按照同样的划分单位从存储区A中划分出一个数据存储块A8,将空白数据存储块数据存储块E24和数据存储块F22与新创建的数据存储块A8作为数据存储块组3。将需要存储的视频X复制为三个同样的视频X1、视频X2和视频X3,将视频X1、视频X2和视频X3对应的存储到数据存储块E24、数据存储块F22以及数据存储块A8中。数据的存储过程与上述一致,这里就不再赘述。
针对第二种情况,在建立数据存储块时需要建立三个数据存储块,例如,按照同样的划分单位从存储区A中划分出一个数据存储块A9、数据存储块A10和数据存储块A11,新划分的数据存储块A9、数据存储块A10和数据存储块A11作为数据存储块组4。将需要存储的视频X复制为三个同样的视频X1、视频X2和视频X3,将视频X1、视频X2和视频X3对应的存储到数据存储块A9、数据存储块A10以及数据存储块A11中。数据的存储过程与上述一致,这里就不再赘述。
S103:判断所述第一数据存储块组是否写满。
视频X存储到数据存储块组中会占用相应大小的存储空间,那么,在存储完视频X后可能数据存储块被写满,对于按照三副本数据存储规则进行存储的数据存储块组来说,数据存储块组中的任意一个数据存储块写满就意味着整个数据存储块组写满。因此,在实际应用中,只需要判断数据存储块组中的任意一个数据存储块是不是写满,就可以判定对应的数据存储块组是否写满。
S104:在步骤S103判断结果为是的情况下,判断所述第一数据存储块组是否满足预设的存储方式转化条件。
通常情况下,存储的数据在经过一段时间的高频率访问后,其访问率将大幅降低。当访问频率降低后,系统对数据存储的可靠性要求将降低,由于按照按照多副本数据存储规则对数据进行存储,需要将多份同样的数据在多个不同的数据存储块中存储,占用的存储空间大;因此在访问频率降低的情况下,如果依然按照多副本数据存储规则进行数据存储,将带来较大的存储空间浪费。
为了节省存储空间,在判断出上述的数据存储块组写满之后,当数据存储块组满足预设的存储方式转化条件时,可以将数据存储块组中所存储的数据转化为按照纠删码(Erasure Coding,简称EC)数据存储规则进行存储。EC是一种数据保护方法,它将数据分割成一个个的数据片段,把冗余数据块扩展、编码,并将其存储在不同的位置。
与多副本数据存储规则不同的,EC数据存储规则是将一个大小为L的数据拆分为N个块,根据这N个数据块计算出M个用于校检的块,每一个块都称为是数据块,那么,最终需要存储的是这N+M个数据块。EC能够保证在这N+M个数据块中,只要丢失的数据块总数不超过M个,则大小为L的数据仍然是完整的。本申请并不对M和N的具体数值做明确限定,通常在实践中:N=8,M=4,这可以保证在丢失数据块总数不超过4个的情况下,大小为L的数据仍然是完整的。
假设数据存储块组2已经写满,即数据存储块组中的三个数据存储块均存储有4GB的数据,并且每个数据存储块所存储的数据是完全一样的,因此,存储4GB的数据实际占用的存储空间为3×4GB=12GB。而采用EC数据存储规则对这4GB数据进行存储时,4GB的数据可以被分割为8个大小0.5GB的数据块,同时根据这8个数据块计算出4个大小也为0.5GB的用于校验的块,最终需要存储的是(8+4)×0.5=6GB,因此,存储4GB的数据实际占用的存储空间为6GB。可见,采用EC数据存储规则对数据进行存储可以大大的节省存储空间,进一步的降低了设备的存储成本。
实际应用中,判断第一数据存储块组是否满足预设的存储方式转化条件,可以通过判断预设时间段内是否接收到针对所述第一数据存储块组的删除指令,若为否,则判定满足预设的存储方式转化条件;
和/或,判断预设时间段内针对所述第一数据存储块组的访问频率是否小于第一预设阈值,如果小于,则判定满足预设的存储方式转化条件。
示例性的,假设数据存储块组2在存储完视频X后恰好写满,预设时间段设定为30分钟,判断在数据存储块组2写满后的30分钟内,是否接收到针对数据存储块组2的删除指令,如果没有接收到,说明数据存储组2中所存储的数据为冷数据,不被经常使用,因此系统对该数据的存储要求相对较低,可以判定数据存储块组2满足预设的存储方式转化条件;在本发明实施例中,只要接收到数据存储块组2中存储的任何一个数据的删除指令就认为是接收到了针对数据存储块组2的删除指令。
或者判断在数据存储块组2写满后的30分钟内,针对数据存储块组2的访问频率是否小于第一预设阈值,如果小于,则判定满足预设转化条件。假设第一预设阈值取5,访问频率可以指1分钟内访问的次数,可以是5分钟内访问的次数,还可以是30分钟内访问的次数,这都是合理的。假设访问频率是指5分钟内访问的次数,如果在数据存储块组2写满后的30分钟内访问数据存储块组2中存储的数据的平均频率为4.5,小于预设的5,则判定数据存储块组2满足预设的存储方式转化条件。如果在数据存储块组2写满后的30分钟内访问数据存储块组2中存储的数据的最大的频率为4.5,小于预设的5,也可以则判定数据存储块组2满足预设的存储方式转化条件。
还或者,判断在数据存储块组2写满后的30分钟内,是否接收到针对数据存储块组2的删除指令,同时针对数据存储块组2的访问频率是否小于第一预设阈值,如果在数据存储块组2写满后的30分钟内没有接收到针对数据存储块组2的删除指令,并且访问频率小于5,则判定数据存储块组2满足预设的存储方式转化条件。
值得说明的是,本实施例中所设置的预设时间段为30分钟和第一预设阈值为5仅为一个具体示例,本申请并不对预设时间段以及第一预设阈值的取值做明确的限定。同时需要说明的是,对于EC数据存储规则中对数据的具体分割大小以及数量在本申请中不做明确的限定。
S105:在步骤S104判断结果为满足的情况下,确定纠删码EC数据存储块,并按照EC数据存储规则,将第一数据存储块中存储的数据存储至所述EC数据存储块中,其中,所述第一数据存储块为:所述第一数据存储块组的任意一个数据存储块。
当判定数据存储块组2满足预设转化条件时,可以将数据存储块组的任意一个数据存储块中存储的数据存储至EC数据存储块中,根据上述EC数据存储规则的存储特点,在按照EC数据存储规则对数据进行存储之前,需要为拆分后的每个数据块分配一个数据存储块,该数据存储块称为EC数据存储块。
示例性的,假设已判定出数据存储块组2满足预设转化条件,数据存储块组2中所存储的数据包括:大小为1.5GB的视频X、大小为1.25GB的视频Y和大小为1.25GB的视频Z,由于数据存储块组2中数据存储块D2、数据存储块E2和数据存储块F2中存储的数据完全一样的,因此,在进行数据转化时可以选择数据存储块组2中任意一个数据存储块;例如,可以但不限于选择数据存储块E2,针对数据存储块E2中的视频X,可以将大小为1.5GB的视频X拆分为8个数据块,再根据拆分的8个数据块计算出4校验块,一共得到12个数据块,每一个数据块得到大小可以是相同的也可以是不同的,因此,本申请并不对拆分后的数据块之间的大小关系做进一步限定。
示例性的,可以将大小为1.5GB的视频X拆分为8个大小均为0.1875GB的数据块X1-X8,根据这8个数据块计算出4个大小也为0.1875的校验块,命名为数据块X9-X12,将数据块X1-X12存储在EC数据存储块1-12中各自对应的EC数据存储块中。例如数据块X1存储在EC数据存储块1中,数据块X2存储在EC数据存储块2中,……。值得一提的是,数据块X1可以存储在EC数据存储块1-12中任意一个数据存储块中,同样的,数据块X2可以存储在EC数据存储块1-12中其他任意一个数据存储块中,只要能够保证数据块X1-X12与EC数据存储块1-12一一对应。
按照同样的步骤,可以将数据存储块E2中存储的剩余的视频Y和视频Z存储在EC数据存储块1-12中。
上述仅为本发明的一个具体实施例,本申请不对EC数据存储规则进行存储数据的过程做进一步的限定。
S106:删除所述第一数据存储块组的各个数据存储块中存储的所有数据。
当数据存储块E2中存储的所有数据都按照EC数据存储规则进行存储之后,数据存储块E2中存储所有数据便可以进行删除,由于数据存储块E2与数据存储块D2以及数据存储块F2中所存储的是完全一样的数据,因此,将数据存储块D2、数据存储块E2和及数据存储块F2中的所有数据进行删除,释放存储空间。
由此可见,应用图1提供的实施例,通过判断多副本存储规则存储的数据是否满足预设的存储方式转化条件,将满足存储方式转化条件的数据转存储至EC数据存储块中,并删除所有多副本存储规则存储的数据,节省了存储空间,进而降低了设备的存储成本。
为了保护EC数据存储块中存储的数据不被随意修改,如图2所示,为本发明实施例提供的数据存储方法的第二种流程示意图,在图1提供的实施例的基础上,方法还包括步骤:
S107:接收针对所述EC数据存储块中第二数据的修改请求,其中,所述第二数据为所述EC数据存储块中存储的任一数据;
S108:拒绝响应所述修改请求。
假设EC数据存储块1中存储的数据块包括数据块X1、数据块Y1和数据块Z1,当服务器接收到针对数据块X1、数据块Y1和数据块Z1中任意一个的修改请求时,修改形式可以但不限于增加、更新、移除,当服务器接收到上述任意一种形式的修改请求时,服务器都拒绝响应该修改请求,起到保护数据的功能。
由此可见,图2提供的实施例,通过拒绝响应修改请求来保护EC数据存储块中所存储的数据,提高了数据存储的可靠性。
如图3所示,为本发明实施例提供的一种数据存储方法的第三种流程示意图;在图1所提供的实施例的基础上,方法还包括步骤:
S109:接收针对所述EC数据存储块中第二数据的删除指令,其中,所述第二数据为所述EC数据存储块中存储的任一数据;
S110:更新所述第二数据的状态为删除状态。
本领域技术人员可以理解的是,数据在存储、下载、运行以及删除等状态时都会对应一个所处的状态,例如,数据块X1正在运行,那其所处的状态为运行状态。为了对EC数据存储块中所存储的数据进行保护,在本实具体施例中,EC数据存储块中所存储的数据不支持物理删除,即当接收到针对EC数据存储块中所存储的任意一个数据的删除指令时,只是将该数据所处的状态更新为删除状态,事实上并没有删除该数据,为逻辑删除。
由此可见,图3所提供的实施例,通过更新EC数据存储块中数据的状态为删除状态,来实现数据的逻辑删除,避免了频繁的对数据本身进行操作,进而提高了数据存储的可靠性。
图4为本发明实施例提供的一种数据存储方法的第四种流程示意图;在图3所提供的实施例的基础上,方法还包括步骤:
S111:接收针对所述第二数据的访问请求;
S112:判断所述第二数据是否处于删除状态;
S113:在步骤S112判断结果为是的情况下,拒绝响应所述访问请求。
举例而言,当EC数据存储块1中存储的数据块X1的状态为删除状态时,则认为数据块X1已经不存在了,因此,再有对数据块X1的访问请求时,服务器将拒绝响应该访问请求。
由此可见,图4所提供的实施例,通过拒绝响应处于删除状态的数据,避免了对数据的误操作操作,提高了数据存储的可靠性。
图5为本发明实施例提供的一种数据存储方法的第五种流程示意图;在图3所提供的实施例的基础上,方法还包括步骤:
S114:统计处于删除状态的数据的数据总量;
S115:判断所述数据总量是否大于第二预设阈值或所述数据总量占所述EC数据存储块容量的比例是否大于第三预设阈值;
S116:再步骤S115判断结果为是的情况下,确定第二数据存储块组,按照多副本数据存储规则,将所述EC数据存储块中处于非删除状态的数据存储至所述第二数据存储块组的各个数据存储块中。
示例性的,假设存储空间为4GB的EC数据存储块1中存储的数据块包括:大小为0.1875GB的数据块X1、大小为0.15625GB的数据块Y1、大小为0.15625GB的数据块Z1、大小为0.7GB的数据块G1、大小为0.8GB的数据块F1以及大小为2GB的数据块H1;其中,数据块X1、数据块Y1以及数据块Z1均处于删除状态。
不难统计出处于删除状态的数据块X1、数据块Y1以及数据块Z1的数据总量为0.1875GB+0.15625GB+0.15625GB,数据总量共为0.5GB。不难计算出该数据总量占EC数据存储块1的比例为0.5/4=1/8=0.125=12.5%。
为了防止因EC数据存储块1中处于删除状态的数据过多造成的存储空间浪费的现象。
通过判断数据总量是否大于第二预设阈值,假设设置第二预设阈值为0.3GB,EC数据存储块1中处于删除状态的数据总量为0.5GB,那么通过上述的两个判断条件可知,0.5GB大于0.3GB。
或者,通过数据总量占所述EC数据存储块容量的比例是否大于第三预设阈值,假设第三预设阈值为10%,EC数据存储块1中处于删除状态的数据总量为0.5GB,通过计算不难得到该数据总量占EC数据存储块1的比例为12.5%,大于10%。
上述两个判断只要满足其中的一个就可以认为EC数据存储块1中处于删除状态的数据过多,需要将EC数据存储块1中所存储的数据转化,将所存储的数据按照多副本数据存储规则进行存储。
根据多副本数据存储规则的特点,EC数据存储块1确定一个用于存储EC数据存储块1中数据的数据存储块组5,假设数据存储块组5包括:数据存储块D5、数据存储块E5和数据存储块F5;然后按照前述多副本数据存储规则,可以将所述EC数据存储块1中存储的所有数据存储到数据存储块D5、数据存储块E5和数据存储块F5中,然后将处于删除状态的数据块X1、数据块Y1以及数据块Z1从数据存储块D5、数据存储块E5和数据存储块F5中删除;或者,可以将所述EC数据存储块1中除了处于删除状态的数据块X1、数据块Y1以及数据块Z1外的所有数据存储到数据存储块D5、数据存储块E5和数据存储块F5中。
需要说明的是,上述中的第二预设阈值以及第三预设阈值的取值仅为本发明实施例的一个具体举例,并不构成对二者的限定。
由此可见,图5所提供的实施例,通过将满足一定条件的EC数据存储块中的数据按照多副本数据存储规则进行存储,删除了处于删除状态的数据,释放了存储空间。
图6为本发明实施例提供的一种数据存储方法的第六种流程示意图;在图5提供的实施例中步骤S115判断结果为是的情况下,方法还包括步骤:
S117:判断当前处于可写入状态的数据存储块总量是否小于第四预设阈值,如果是,执行步骤S116。
实际应用中,如果当前还存在有大量的处于可写入状态的数据存储块,即使判断出EC数据存储块1中处于删除状态的数据过多,也不将EC数据存储块1中所存储的数据转化出来,只有在当前处于可写入状态的数据存储块小于第四预设阈值时,才会将EC数据存储块1中的数据按照多副本数据存储规则进行存储。例如,第四预设阈值取为10,假设当前仅有8个处于可写入状态的数据存储块,小于10个,因此,执行步骤S116的过程,此过程不再赘述。
事实上,还可以判断当前处于可写入状态的数据存储块的剩余的存储空间总量是否小于第四预设阈值,当判断为小于时,执行步骤S116。具体的,假设第四预设阈值为50GB,当前处于可写入状态的数据存储块的剩余的存储空间总量为32GB,可判断32GB小于50GB,因此,执行步骤S116的过程,此处就不再赘述。
需要强调的是,本发明实施例并不对第四预设阈值的具体形式以及具体数值做明确限定。
由此可见,图6提供的实施例,通过进一步的判断当前处于可写入状态的数据存储块是不是小于某一阈值,只有小于该值时才将EC数据存储块中的数据转化,在保证资源存储需求的情况下,缓解了服务器的运行压力。
图7为本发明实施例提供的一种数据存储装置的第一种结构示意图;装置可以包括:第一接收模块201、第一存储模块202、第一判断模块203、第二判断模块204、第二存储模块205和删除模块206,其中,
第一接收模块201,用于接收针对第一数据的存储指令;
第一存储模块202,用于根据所述存储指令,分配用于按照多副本数据存储规则存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中;
实际应用中,第一存储模块202可以包括:第三判断子模块、第三存储子模块和第四存储子模块(图中未示出),其中,
第三判断子模块,用于根据所述存储指令,判断是否存在处于可写入状态的数据存储块;
实际应用中,第三判断子模块,具体用于:
判断空白数据存储块的数量是否小于所述多副本数据存储规则对应的数据存储块数量,若不小于,判定存在处于可写入状态的数据存储块;
或,判断当前是否存在未写满的多副本形式的数据存储块,如果存在,判定存在处于可写入状态的数据存储块。
第三存储子模块,用于在所述第三判断子模块判断结果为存在的情况下,按照多副本数据存储规则,根据处于可写入状态的数据存储块确定用于存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中;
第四存储子模块,用于在所述第三判断子模块判断结果为不存在的情况下,按照多副本数据存储规则,创建数据存储块,获得用于存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中。
第一判断模块203,用于判断所述第一数据存储块组是否写满;
第二判断模块204,用于在所述第一判断模块203判断结果为是的情况下,判断所述第一数据存储块组是否满足预设的存储方式转化条件;
实际应用中,第二判断模块204,具体用于:
在第一判断模块203判断结果为是的情况下,
判断预设时间段内是否接收到针对所述第一数据存储块组的删除指令,若为否,则判定满足预设的存储方式转化条件;
和/或,
判断预设时间段内针对所述第一数据存储块组的访问频率是否小于第一预设阈值,如果小于,则判定满足预设的存储方式转化条件。
第二存储模块205,用于在做所述第二判断模块204判断结果为满足的情况下,确定纠删码EC数据存储块,并按照EC数据存储规则,将第一数据存储块中存储的数据存储至所述EC数据存储块中,其中,所述第一数据存储块为:所述第一数据存储块组的任意一个数据存储块;
删除模块206,用于删除所述第一数据存储块组的各个数据存储块中存储的所有数据。
由此可见,图7提供的实施例,通过判断多副本存储规则存储的数据是否满足预设的存储方式转化条件,将满足存储方式转化条件的数据转存储至EC数据存储块中,并删除所有多副本存储规则存储的数据,节省了存储空间。
图8为本发明实施例提供的一种数据存储装置的第二种结构示意图;装置还可以包括:
第二接收模块207,用于接收针对所述EC数据存储块中第二数据的修改请求,其中,所述第二数据为所述EC数据存储块中存储的任一数据;
第一拒绝响应模块208,用于拒绝响应所述修改请求。
由此可见,图8提供的实施例,通过拒绝响应修改请求来保护EC数据存储块中所存储的数据,提高了数据存储的可靠性。
图9为本发明实施例提供的一种数据存储装置的第三种结构示意图;装置还可以包括:
第三接收模块209,用于接收针对所述EC数据存储块中第二数据的删除指令,其中,所述第二数据为所述EC数据存储块中存储的任一数据;
更新模块210,用于更新所述第二数据的状态为删除状态。
由此可见,图9所提供的实施例,通过更新EC数据存储块中数据的状态为删除状态,来实现数据的逻辑删除,避免了频繁的对数据本身进行操作,进而提高了数据存储的可靠性。
图10为本发明实施例提供的一种数据存储装置的第四种结构示意图;装置还可以包括:
第四接收模块211,用于接收针对所述第二数据的访问请求;
第四判断模块212,用于判断所述第二数据是否处于删除状态;
第二拒绝响应模块213,用于在所述第四判断模块212判断结果为是的情况下,拒绝响应所述访问请求。
由此可见,图10所提供的实施例,通过拒绝响应处于删除状态的数据,避免了对数据的误操作操作,提高了数据存储的可靠性。
图11为本发明实施例提供的一种数据存储装置的第五种结构示意图;装置还可以包括:
统计模块214,用于统计处于删除状态的数据的数据总量;
第五判断模块215,用于判断所述数据总量是否大于第二预设阈值或所述数据总量占所述EC数据存储块容量的比例是否大于第三预设阈值;
第五存储模块216,用于在所述第五判断模块215判断结果为是的情况下,确定第二数据存储块组,按照多副本数据存储规则,将所述EC数据存储块中处于非删除状态的数据存储至所述第二数据存储块组的各个数据存储块中。
由此可见,图11所提供的实施例,通过将满足一定条件的EC数据存储块中的数据按照多副本数据存储规则进行存储,删除了处于删除状态的数据,释放了存储空间。
图12为本发明实施例提供的一种数据存储装置的第六种结构示意图;装置还可以包括:
第六判断模块217,用于在所述第五判断模块215判断结果为是的情况下,判断当前处于可写入状态的数据存储块总量是否小于第四预设阈值,如果是,触发所述第五存储模块216。
由此可见,图12提供的实施例,通过进一步的判断当前处于可写入状态的数据存储块是不是小于某一阈值,只有小于该值时才将EC数据存储块中的数据转化,在保证资源存储需求的情况下,缓解了服务器的运行压力。
本发明实施例还提供了一种数据存储系统,参见图13,提供了一种数据存储系统的结构示意图,该系统包括:客户端301和应用图7-图12所示任意实施例提供的数据存储装置的存储服务器302。
其中,所述客户端301用于向所述存储服务器302发送针对第一数据的存储指令。
不难理解的是,数据在存储时,通常对应有一个针对该数据的存储指令,通常情况下这一存储指令通常为客户端301生成的,并且对于不同的数据,客户端301生成的存储指令也不同。在本发明实施例提供的数据存储系统中,客户端301与存储服务器302通过网络通信,客户端301将数据的存储指令发送给存储服务器302,存储服务器302接收到存储指令后,根据该存储指令,分配用于按照多副本数据存储规则存储上述存储指令对应的第一数据的第一数据存储块组,并将上述的第一数据存储至分配的第一数据存储块中。然后判断上述的第一数据存储块是否已经写满,在写满的情况下,确定纠删码EC数据存储块,并按照EC数据存储规则,将第一数据存储块中存储的数据存储至EC数据存储块中,删除第一数据存储块组的各个数据存储块中存储的所有数据。
举例而言,如图14所示,为本发明实施例提供的一种具体的数据存储的流程示意图,需要说明的是,图14所示的数据存储块中灰色的为已经占用的存储空间,空白的为剩余的存储空间,图14所示仅为一个存储区对应的数据存储块。以下对上述的数据存储的过程进行介绍。
客户端针对数据X生成一个存储指令,并将该存储指令发送至存储服务器,数据X对应的存储指令为:“视频X;1.5GB”,假设当前存储区中存在数据存储块D1、D2、D3和D4处于可写入状态,并且数据存储块D1剩余的存储空间为1.5GB、D2剩余的存储空间为1.0GB、D3剩余的存储空间为2.5GB、D4剩余的存储空间为2.5GB;那么,在存储服务器接收到上述的存储指令后,为视频X分配一个数据存储块,为了充分的利用存储区中的数据存储块的剩余存储空间,通常情况下,存储服务器将为数据分配一个与数据大小相匹配的数据存储块,不难理解的,视频X的大小为1.5GB,而数据存储块D1剩余的存储空间为1.5GB,可见,数据存储块D1刚好满足存储视频X的要求,那么存储服务器确定数据存储块D1为储视频X的数据存储块组中的一个,按照上述的方式不难在其他的几个存储区中确定出其他的数据存储块。本发明实施例中仅以存储区D作以介绍,确定出其他几个多副本形式数据存储块的方式与上述过程雷同,因此就不再赘述。
参见图14,当视频X存储至数据存储块D1中后,数据存储块D1刚好被写满,如图14中所示,数据存储块D1全部为灰色,说明没有剩余的存储空间,即已经写满。当存储在数据存储块D1中数据满足相应的存储方式转化条件时,存储服务器将为数据存储块D1中所存储的数据分配相应的EC数据存储块,然后将数据存储块D1中所存储的数据存储至EC数据存储块中,实现数据存储方式的转化。假设EC数据存储规则中选择N=8,M=4,将数据存储块D1中所述存储的4GB的数据分割为8个大小0.5GB的数据块,同时根据这8个数据块计算出4个大小也为0.5GB的用于校验的数据块。
如图14中所示,在当前状态下,存储区D中有数据存储块D10、D11、D12、D14处于可写入的状态,假设确定数据存储块D10、D11、D12、D14均为EC数据存储块,余下的8个数据存储块可以从其他的存储区中确定。对于上述的12个数据块,数据存储块D10、D11、D12、D14各存储其中的一个数据块,余下的8个数据块分别存储至确定出的其他8个EC数据存储块中。当数据存储块D1中所存储的数据全部存储至EC数据存储块中之后,便可以将数据存储块D1中所存储的所有数据以及数据存储块组中的其他几个数据存储块所存储的所述全部删除,释放存储空间。
按照上述的方式,将三副本数据存储规则进行存储的数据进行转化为EC数据存储规则进行存储,按照三副本数据存储规则存储4GB数据时,实际占用的存储空间为3×4GB=12GB,而转化为EC数据存储规则进行存储这4GB数据时,实际占用的存储空间为(8+4)×0.5=6GB;可见,采用EC数据存储规则对数据进行存储,大大的节省存储空间。
由此可见,应用图13提供的实施例,通过判断多副本存储规则存储的数据是否满足预设的存储方式转化条件,将满足存储方式转化条件的数据转存储至EC数据存储块中,并删除所有多副本存储规则存储的数据,节省了存储空间,进而降低了设备的存储成本。
对于上述的装置、系统实施例而言,由于其基本相似于方法实施例,所以描述的相对比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (19)

1.一种数据存储方法,其特征在于,所述方法包括:
接收针对第一数据的存储指令;
根据所述存储指令,分配用于按照多副本数据存储规则存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中,数据存储块包括计算机硬盘中按照一个设定的划分单位划分的存储空间;
判断所述第一数据存储块组是否写满;
如果是,判断所述第一数据存储块组是否满足预设的存储方式转化条件;
如果满足,确定纠删码EC数据存储块,并按照EC数据存储规则,将第一数据存储块中存储的数据存储至所述EC数据存储块中,其中,所述第一数据存储块为:所述第一数据存储块组的任意一个数据存储块;
删除所述第一数据存储块组的各个数据存储块中存储的所有数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述存储指令,分配用于按照多副本数据存储规则存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中,包括:
根据所述存储指令,判断是否存在处于可写入状态的数据存储块;
如果存在,按照多副本数据存储规则,根据处于可写入状态的数据存储块确定用于存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中;
如果不存在,按照多副本数据存储规则,创建数据存储块,获得用于存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中。
3.根据权利要求2所述的方法,其特征在于,所述判断是否存在处于可写入状态的数据存储块,包括:
判断空白数据存储块的数量是否小于所述多副本数据存储规则对应的数据存储块数量,若不小于,判定存在处于可写入状态的数据存储块;
或,判断当前是否存在未写满的多副本形式的数据存储块,如果存在,判定存在处于可写入状态的数据存储块。
4.根据权利要求1所述的方法,其特征在于,所述判断所述第一数据存储块组是否满足预设的存储方式转化条件,包括:
判断预设时间段内是否接收到针对所述第一数据存储块组的删除指令,若为否,则判定满足预设的存储方式转化条件;
和/或,
判断预设时间段内针对所述第一数据存储块组的访问频率是否小于第一预设阈值,如果小于,则判定满足预设的存储方式转化条件。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收针对所述EC数据存储块中第二数据的修改请求,其中,所述第二数据为所述EC数据存储块中存储的任一数据;
拒绝响应所述修改请求。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收针对所述EC数据存储块中第二数据的删除指令,其中,所述第二数据为所述EC数据存储块中存储的任一数据;
更新所述第二数据的状态为删除状态。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收针对所述第二数据的访问请求;
判断所述第二数据是否处于删除状态;
若为是,拒绝响应所述访问请求。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
统计处于删除状态的数据的数据总量;
判断所述数据总量是否大于第二预设阈值或所述数据总量占所述EC数据存储块容量的比例是否大于第三预设阈值;
如果大于,确定第二数据存储块组,按照多副本数据存储规则,将所述EC数据存储块中处于非删除状态的数据存储至所述第二数据存储块组的各个数据存储块中。
9.根据权利要求8所述的方法,其特征在于,在判断所述数据总量大于所述第二预设阈值或所述数据总量占所述EC数据存储块容量的比例大于所述第三预设阈值的情况下,所述方法还包括:
判断当前处于可写入状态的数据存储块总量是否小于第四预设阈值,如果是,执行所述确定第二数据存储块组,按照多副本数据存储规则,将所述EC数据存储块中存储的数据存储至所述第二数据存储块组的各个数据存储块中的步骤。
10.一种数据存储装置,其特征在于,所述装置包括:
第一接收模块,用于接收针对第一数据的存储指令;
第一存储模块,用于根据所述存储指令,分配用于按照多副本数据存储规则存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中,数据存储块包括计算机硬盘中按照一个设定的划分单位划分的存储空间;
第一判断模块,用于判断所述第一数据存储块组是否写满;
第二判断模块,用于在所述第一判断模块判断结果为是的情况下,判断所述第一数据存储块组是否满足预设的存储方式转化条件;
第二存储模块,用于在做所述第二判断模块判断结果为满足的情况下,确定纠删码EC数据存储块,并按照EC数据存储规则,将第一数据存储块中存储的数据存储至所述EC数据存储块中,其中,所述第一数据存储块为:所述第一数据存储块组的任意一个数据存储块;
删除模块,用于删除所述第一数据存储块组的各个数据存储块中存储的所有数据。
11.根据权利要求10所述的装置,其特征在于,所述第一存储模块,包括:
第三判断子模块,用于根据所述存储指令,判断是否存在处于可写入状态的数据存储块;
第三存储子模块,用于在所述第三判断子模块判断结果为存在的情况下,按照多副本数据存储规则,根据处于可写入状态的数据存储块确定用于存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中;
第四存储子模块,用于在所述第三判断子模块判断结果为不存在的情况下,按照多副本数据存储规则,创建数据存储块,获得用于存储所述第一数据的第一数据存储块组,将所述第一数据存储至所述第一数据存储块组的各个数据存储块中。
12.根据权利要求11所述的装置,其特征在于,所述第三判断子模块,具体用于:
判断空白数据存储块的数量是否小于所述多副本数据存储规则对应的数据存储块数量,若不小于,判定存在处于可写入状态的数据存储块;
或,判断当前是否存在未写满的多副本形式的数据存储块,如果存在,判定存在处于可写入状态的数据存储块。
13.根据权利要求10所述的装置,其特征在于,所述第二判断模块,具体用于:
在所述第一判断模块判断结果为是的情况下,
判断预设时间段内是否接收到针对所述第一数据存储块组的删除指令,若为否,则判定满足预设的存储方式转化条件;
和/或,
判断预设时间段内针对所述第一数据存储块组的访问频率是否小于第一预设阈值,如果小于,则判定满足预设的存储方式转化条件。
14.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收针对所述EC数据存储块中第二数据的修改请求,其中,所述第二数据为所述EC数据存储块中存储的任一数据;
第一拒绝响应模块,用于拒绝响应所述修改请求。
15.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第三接收模块,用于接收针对所述EC数据存储块中第二数据的删除指令,其中,所述第二数据为所述EC数据存储块中存储的任一数据;
更新模块,用于更新所述第二数据的状态为删除状态。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
第四接收模块,用于接收针对所述第二数据的访问请求;
第四判断模块,用于判断所述第二数据是否处于删除状态;
第二拒绝响应模块,用于在所述第四判断模块判断结果为是的情况下,拒绝响应所述访问请求。
17.根据权利要求15所述的装置,其特征在于,所述装置还包括:
统计模块,用于统计处于删除状态的数据的数据总量;
第五判断模块,用于判断所述数据总量是否大于第二预设阈值或所述数据总量占所述EC数据存储块容量的比例是否大于第三预设阈值;
第五存储模块,用于在所述第五判断模块判断结果为是的情况下,确定第二数据存储块组,按照多副本数据存储规则,将所述EC数据存储块中处于非删除状态的数据存储至所述第二数据存储块组的各个数据存储块中。
18.根据权利要求17所述的装置,其特征在于,所述装置还包括:
第六判断模块,用于在所述第五判断模块判断结果为是的情况下,判断当前处于可写入状态的数据存储块总量是否小于第四预设阈值,如果是,触发所述第五存储模块。
19.一种数据存储系统,其特征在于,所述系统包括:
客户端、应用权利要求10至18中任意一项所述的数据存储装置的存储服务器;
其中,所述客户端用于向所述存储服务器发送针对第一数据的存储指令。
CN201610825721.5A 2016-09-14 2016-09-14 一种数据存储方法、装置及系统 Active CN107817947B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610825721.5A CN107817947B (zh) 2016-09-14 2016-09-14 一种数据存储方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610825721.5A CN107817947B (zh) 2016-09-14 2016-09-14 一种数据存储方法、装置及系统

Publications (2)

Publication Number Publication Date
CN107817947A CN107817947A (zh) 2018-03-20
CN107817947B true CN107817947B (zh) 2021-03-26

Family

ID=61601031

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610825721.5A Active CN107817947B (zh) 2016-09-14 2016-09-14 一种数据存储方法、装置及系统

Country Status (1)

Country Link
CN (1) CN107817947B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110851416B (zh) * 2018-08-03 2023-10-27 阿里巴巴集团控股有限公司 数据存储性能分析方法和装置、宿主机确定方法和装置
CN109189337B (zh) * 2018-08-21 2021-12-17 浪潮电子信息产业股份有限公司 一种选择数据块的方法、装置、设备及可读存储介质
CN109491606B (zh) * 2018-11-01 2021-10-15 郑州云海信息技术有限公司 一种全闪存储空间管理方法、系统、设备及计算机介质
CN111381767B (zh) * 2018-12-28 2024-03-26 阿里巴巴集团控股有限公司 一种数据处理方法及装置
CN110083482B (zh) * 2019-04-30 2023-06-02 北京金山云网络技术有限公司 对文件存储系统进行纠删码处理的方法、装置及电子设备
CN112416254B (zh) * 2020-11-27 2022-08-12 天地伟业技术有限公司 一种磁盘空间使用效率优化方法
CN112487093A (zh) * 2020-12-07 2021-03-12 浪潮云信息技术股份公司 一种分布式数据库的去中心化副本控制方法
CN117420969B (zh) * 2023-12-19 2024-04-16 中电云计算技术有限公司 一种分布式数据存储方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102053796A (zh) * 2009-11-10 2011-05-11 群联电子股份有限公司 闪存储存系统、闪存控制器与数据处理方法
CN103118133A (zh) * 2013-02-28 2013-05-22 浙江大学 基于文件访问频次的混合云存储方法
CN103761053A (zh) * 2013-12-30 2014-04-30 华为技术有限公司 一种数据处理方法和装置
CN104281533A (zh) * 2014-09-18 2015-01-14 深圳市中博科创信息技术有限公司 一种存储数据的方法及装置
CN105677742A (zh) * 2015-12-30 2016-06-15 深圳市瑞驰信息技术有限公司 一种存储文件的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819452B2 (en) * 2009-11-25 2014-08-26 Cleversafe, Inc. Efficient storage of encrypted data in a dispersed storage network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102053796A (zh) * 2009-11-10 2011-05-11 群联电子股份有限公司 闪存储存系统、闪存控制器与数据处理方法
CN103118133A (zh) * 2013-02-28 2013-05-22 浙江大学 基于文件访问频次的混合云存储方法
CN103761053A (zh) * 2013-12-30 2014-04-30 华为技术有限公司 一种数据处理方法和装置
CN104281533A (zh) * 2014-09-18 2015-01-14 深圳市中博科创信息技术有限公司 一种存储数据的方法及装置
CN105677742A (zh) * 2015-12-30 2016-06-15 深圳市瑞驰信息技术有限公司 一种存储文件的方法及装置

Also Published As

Publication number Publication date
CN107817947A (zh) 2018-03-20

Similar Documents

Publication Publication Date Title
CN107817947B (zh) 一种数据存储方法、装置及系统
US9361034B2 (en) Transferring storage resources between snapshot storage pools and volume storage pools in a distributed network
US7418546B2 (en) Storage resource management method for storage system
CN109597567B (zh) 一种数据处理方法和装置
CN107092442B (zh) 存储系统资源分配方法及装置
CN106406759B (zh) 一种数据存储方法及装置
EP4321980A1 (en) Method and apparatus for eliminating cache memory block, and electronic device
US11029891B2 (en) Hybrid distributed storage system to dynamically modify storage overhead and improve access performance
CN110244901B (zh) 任务分配方法及装置、分布式存储系统
CN111857592A (zh) 基于对象存储系统的数据存储方法及装置、电子设备
CN109491606B (zh) 一种全闪存储空间管理方法、系统、设备及计算机介质
CN109074227A (zh) 一种数据校验的方法及存储系统
CN112799584A (zh) 一种数据存储方法及装置
US20100058015A1 (en) Backup apparatus, backup method and computer readable medium having a backup program
CN107341056A (zh) 一种基于网络文件系统的线程分配的方法及装置
CN109150686B (zh) Acl表项下发方法、装置及网络设备
CN112463058B (zh) 一种碎片数据整理方法、装置及存储节点
CN109819013A (zh) 一种基于云存储的区块链存储容量优化方法
US10846265B2 (en) Method and apparatus for accessing file, and storage system
CN103078926B (zh) 分布式存储系统的文件访问方法和装置以及系统
CN115993932A (zh) 数据处理方法、装置、存储介质以及电子设备
CN104881245A (zh) 存储系统的配置方法及配置装置
EP4044039A1 (en) Data access method and apparatus, and storage medium
CN104869138B (zh) 对云存储数据文件副本自动管理的方法与装置
CN109725841A (zh) 数据写入方法、装置、存储系统、存储介质与控制器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant