CN109947842B - 分布式存储系统中的数据存储方法、装置及系统 - Google Patents
分布式存储系统中的数据存储方法、装置及系统 Download PDFInfo
- Publication number
- CN109947842B CN109947842B CN201710626270.7A CN201710626270A CN109947842B CN 109947842 B CN109947842 B CN 109947842B CN 201710626270 A CN201710626270 A CN 201710626270A CN 109947842 B CN109947842 B CN 109947842B
- Authority
- CN
- China
- Prior art keywords
- data
- blocks
- stripe
- storage
- belongs
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种分布式存储系统中的数据存储方法、装置及系统,属于计算机应用技术领域。方法包括:接收数据存储请求,数据存储请求中携带第一数据的对象信息;根据第一数据的对象信息和已存储数据的对象信息,检测第一数据是否为对已存储数据进行修改的数据;在检测出第一数据是对已存储的第二数据进行修改的数据时,获取第二数据对应的条带信息;若确定出第二数据所属的数据块的数量为n,则确定第一数据被划分为n个目标数据块,并分配未使用的条带标识给n个目标数据块;为n个目标数据块分配存储节点;发送数据存储响应。本发明实施例避免了修改存储数据时对不必要数据的读取,减少了分布式存储中大量的读数据操作,节省了处理开销。
Description
技术领域
本发明实施例涉及计算机应用技术领域,特别涉及一种分布式存储系统中的数据存储方法、装置及系统。
背景技术
分布式存储,主要是将数据条带化,即将数据切分为一块块的数据块,将一定的数据块按照某种数学公式组织在一起,就形成了有一定冗余关系的条带数据,再将条带上的数据块分布存储到不同的存储服务器中,则形成了分布式存储系统。
在现有的基于纠删码(Erasure Code,EC)的分布式存储系统中,一个条带上的数据由实际需要存储的数据块和校验块组成,校验块是由实际需要存储的数据块根据特定的算法计算得到的。当一个条带上的任意数据块需要进行修改时,需要根据条带中修改后的数据块和未修改的数据块重新计算新的校验块。因此,如果要修改已经存储的数据块,由于需要重新计算校验块,则需要将整个条带中的所有数据块(包括需要修改的数据块和不需要修改的数据块)读取出来。在重新计算校验块之后,再将修改后的数据块和新的校验块存储到存储设备中。
在相关技术中对任一条带中已存储的数据块进行修改时,需要读取该条带中的所有数据块,这样会导致大量的读数据操作。
发明内容
为了解决在相关技术中对任一条带中已存储的数据块进行修改时,需要读取该条带中的所有数据块,这样会导致大量的读数据操作的问题,本发明实施例提供了一种分布式存储系统中的数据存储方法、装置及系统。所述技术方案如下:
第一方面,提供了一种分布式存储系统中的数据存储方法,所述方法包括:
接收第一设备发送的数据存储请求,所述数据存储请求中携带待存储的第一数据的对象信息,所述第一数据的对象信息用于指示所述第一数据的所属对象以及所述第一数据在所述第一数据的所属对象中的位置;
根据所述第一数据的对象信息和已存储数据的对象信息,检测所述第一数据是否为对已存储数据进行修改的数据;
在检测出所述第一数据是对已存储的第二数据进行修改的数据时,获取所述第二数据对应的条带信息,所述第二数据对应的条带信息用于指示所述第二数据所属的至少一个条带以及所述第二数据在所述条带内所属的数据块;
若根据所述第二数据对应的条带信息确定出所述第二数据所属的数据块的数量为n,则确定所述第一数据被划分为n个目标数据块,并分配至少一个未使用的条带标识给所述n个目标数据块,n为正整数;
为所述n个目标数据块分配存储节点;
向所述第一设备发送数据存储响应,所述数据存储响应用于指示所述第一设备在根据所述第一数据和所述第二数据所属的n个数据块生成所述n个目标数据块之后,将所述n个目标数据块写入所述存储节点。
可选地,所述方法还包括:
将所述第二数据所属的n个数据块设置为删除状态。
可选地,所述方法还包括:
在检测到任一条带包括的全部数据块被设置为所述删除状态时,向所述第一设备发送数据删除指示,所述数据删除指示用于指示所述第一设备将所述条带包括的全部块删除;
其中,所述条带包括m+k个块,其中m个块为数据块,k个块为校验块,m为大于1的整数,k为正整数。
可选地,所述为所述n个目标数据块分配存储节点之后,还包括:
记录每一个目标数据块的对象信息、条带信息和存储信息之间的映射关系;
其中,第i个目标数据块的对象信息用于指示所述第i个目标数据块的所属对象以及所述第i个目标数据块在所述第i个目标数据块的所属对象中的位置,所述第i个目标数据块的条带信息用于指示所述第i个目标数据块的所属条带以及所述第i个目标数据块在所述第i个目标数据块的所属条带中的位置,所述第i个目标数据块的存储信息用于指示所述第i个目标数据块对应的存储节点,1≤i≤n且i为整数。
第二方面,提供了一种分布式存储系统中的数据存储方法,所述方法包括:
向第二设备发送数据存储请求,所述数据存储请求中携带待存储的第一数据的对象信息,所述第一数据的对象信息用于指示所述第一数据的所属对象以及所述第一数据在所述第一数据的所属对象中的位置;
接收所述第二设备发送的数据存储响应,所述数据存储响应由所述第二设备在检测出所述第一数据是对已存储的第二数据进行修改的数据后发送;
根据所述数据存储响应,读取所述第二数据所属的n个数据块,n为正整数;
采用所述第一数据替换所述n个数据块中包含的所述第二数据,得到n个目标数据块;
将所述n个目标数据块写入所述第二设备为所述n个目标数据块分配的存储节点。
可选地,所述方法还包括:
接收所述第二设备发送的数据删除指示,所述数据删除指示由所述第二设备在检测到任一条带包括的全部数据块被设置为删除状态时发送;
根据所述数据删除指示,将所述条带包括的全部块删除;
其中,所述条带包括m+k个块,其中m个块为数据块,k个块为校验块,m为大于1的整数,k为正整数。
可选地,所述将所述n个目标数据块写入所述第二设备为所述n个目标数据块分配的存储节点,包括:
对于每一个目标数据块,在所述第二设备为所述目标数据块分配的存储节点中已写入的数据之后,写入所述目标数据块。
第三方面,提供了一种分布式存储系统中的数据存储装置,所述装置包括:
请求接收模块,用于接收第一设备发送的数据存储请求,所述数据存储请求中携带待存储的第一数据的对象信息,所述第一数据的对象信息用于指示所述第一数据的所属对象以及所述第一数据在所述第一数据的所属对象中的位置;
对象检测模块,用于根据所述第一数据的对象信息和已存储数据的对象信息,检测所述第一数据是否为对已存储数据进行修改的数据;
信息获取模块,用于在检测出所述第一数据是对已存储的第二数据进行的修改的数据时,获取所述第二数据对应的条带信息,所述第二数据对应的条带信息用于指示所述第二数据所属的至少一个条带以及所述第二数据在所述条带内所属的数据块;
条带分配模块,用于若根据所述第二数据对应的条带信息确定出所述第二数据所属的数据块的数量为n,则确定所述第一数据被划分为n个目标数据块,并分配至少一个未使用的条带标识给所述n个目标数据块,n为正整数;
节点分配模块,用于为所述n个目标数据块分配存储节点;
响应发送模块,用于向所述第一设备发送数据存储响应,所述数据存储响应用于指示所述第一设备在根据所述第一数据和所述第二数据所属的n个数据块,生成所述n个目标数据块之后,将所述n个目标数据块写入所述存储节点。
可选地,所述装置还包括:
状态设置模块,用于将所述第二数据所属的n个数据块设置为删除状态。
可选地,所述装置还包括:
指示发送模块,用于在检测到任一条带包括的全部数据块被设置为所述删除状态时,向所述第一设备发送数据删除指示,所述数据删除指示用于指示所述第一设备将所述条带包括的全部块删除;
其中,所述条带包括m+k个块,其中m个块为数据块,k个块为校验块,m为大于1的整数,k为正整数。
可选地,所述装置还包括:
信息记录模块,用于记录每一个目标数据块的对象信息、条带信息和存储信息之间的映射关系;
其中,第i个目标数据块的对象信息用于指示所述第i个目标数据块的所属对象以及所述第i个目标数据块在所述第i个目标数据块的所属对象中的位置,所述第i个目标数据块的条带信息用于指示所述第i个目标数据块的所属条带以及所述第i个目标数据块在所述第i个目标数据块的所属条带中的位置,所述第i个目标数据块的存储信息用于指示所述第i个目标数据块对应的存储节点,1≤i≤n且i为整数。
第四方面,提供了一种分布式存储系统中的数据存储装置,所述装置包括:
请求发送模块,用于向第二设备发送数据存储请求,所述数据存储请求中携带待存储的第一数据的对象信息,所述第一数据的对象信息用于指示所述第一数据的所属对象以及所述第一数据在所述第一数据的所属对象中的位置;
响应接收模块,用于接收所述第二设备发送的数据存储响应,所述数据存储响应由所述第二设备在检测出所述第一数据是对已存储的第二数据进行修改的数据后发送;
数据读取模块,用于根据所述数据存储响应,读取所述第二数据所属的n个数据块,n为正整数;
数据替换模块,用于采用所述第一数据替换所述n个数据块中包含的所述第二数据,得到n个目标数据块;
数据写入模块,用于将所述n个目标数据块写入所述第二设备为所述n个目标数据块分配的存储节点。
可选地,所述装置还包括:
指示接收模块,用于接收所述第二设备发送的数据删除指示,所述数据删除指示由所述第二设备在检测到任一条带包括的全部数据块被设置为删除状态时发送;
数据删除模块,用于根据所述数据删除指示,将所述条带包括的全部块删除;
其中,所述条带包括m+k个块,其中m个块为数据块,k个块为校验块,m为大于1的整数,k为正整数。
可选地,所述数据写入模块,用于对于每一个目标数据块,在所述第二设备为所述目标数据块分配的存储节点中已写入的数据之后,写入所述目标数据块。
第五方面,提供了一种分布式存储系统中数据存储系统,所述系统包括:第一设备和第二设备;
所述第二设备包括如第三方面所述的装置;
所述第一设备包括如第四方面所述的装置。
第六方面,提供了一种第二设备,所述第二设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被所述处理器执行时实现如第一方面所述的方法。
第七方面,提供了一种第一设备,所述第一设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被所述处理器执行时实现如第二方面所述的方法。
第八方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被执行时实现如第一方面所述的方法。
第九方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被执行时实现如第二方面所述的方法。
本发明实施例提供的技术方案可以带来如下有益效果:
通过将目标数据块分配到未使用的条带中,从而仅需读取需要修改的数据块即可,不需要对进行修改的数据块所属的条带中的其它数据块进行读取,避免了修改存储数据时对不必要数据的读取,减少了读数据操作,节省了设备处理开销。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的实施环境的示意图;
图2A是本发明一个实施例提供的数据存储方法的流程图;
图2B示例性示出了一种数据存储过程的示意图;
图3是本发明另一个实施例提供的数据存储方法的流程图;
图4示例性示出了另一种数据存储过程的示意图;
图5是本发明一个实施例提供的数据存储装置的框图;
图6是本发明另一个实施例提供的数据存储装置的框图;
图7是本发明一个实施例提供的服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参考图1,其示出了本发明一个实施例提供的实施环境的示意图。该实施环境包括:至少一个第一设备101和第二设备102。
第一设备101是用于存储数据的服务器。例如,第一设备101为对象存储设备(Object Storage Device,OSD)。第一设备101包括至少一个磁盘(Disk)103。磁盘是用于存储数据的装置。
第二设备102是用于存储数据的元数据信息的服务器。例如,第二设备102为元数据管理服务器(Metadata Service,MDS)。元数据信息是用于描述数据的信息,主要是描述数据属性的信息,用于支持如指示存储位置、历史数据、资源查找、文件记录等功能。在本发明实施例中,元数据信息包括数据的对象信息、条带信息和存储信息。
第二设备102与各个第一设备101之间分别具有通信连接,例如基于传输控制协议(Transmission Control Protocol,TCP)的通信连接。
请参考图2A,其示出了本发明一个实施例提供的分布式存储系统中的数据存储方法的流程图。该方法可应用于图1所示的实施环境中。该方法可以包括如下几个步骤:
步骤201,第一设备向第二设备发送数据存储请求。
第一设备向第二设备发送的数据存储请求中携带待存储的第一数据的对象信息,第一数据的对象信息用于指示第一数据的所属对象以及第一数据在第一数据的所属对象中的位置。
可选地,对象信息包括:对象(Object)ID、位置(Offset)和长度(Len),其中,Object ID表示数据的所属对象,Offset表示该数据在所属对象中的起始位置,Len表示该数据的长度。在本发明实施例中,对象是指一组数据的集合,例如对象可以是一个文件。
请参考图2B,其示例性示出了一种数据存储过程的示意图。如图2B所示,假设第一数据为0011,第一数据的对象信息是Object1,7,4,表示第一数据的所属对象是对象1,第一数据是对象1中第7位至第10位、长度为4的数据。
步骤202,第二设备根据第一数据的对象信息和已存储数据的对象信息,检测第一数据是否为对已存储数据进行修改的数据。
第二设备检测已存储数据的对象信息中是否有与第一数据的对象信息相匹配的对象信息;若是,则第一数据为对已存储数据进行修改的数据;若否,则第一数据为第一次进行存储的数据。
如图2B所示,第二设备接收到的第一数据的对象信息是Object1,7,4,查找到存储着对象信息Object1,5,4和Object1,9,4。因此,第二设备确定第一数据是对已存储的对象1中起始位置为7、长度为4的数据进行修改的数据。
步骤203,第二设备在检测出第一数据是对已存储的第二数据进行修改的数据时,获取第二数据对应的条带信息。
第二设备根据第二数据的对象信息获取第二数据的条带信息。第二数据在被存储时,第二设备记录了第二数据的对象信息与第二数据的条带信息之间的对应关系。第二设备根据上述对应关系,获取第二数据的条带信息。第二数据的条带信息用于指示第二数据所属的至少一个条带以及第二数据在上述条带内所属的数据块。条带信息包括条带(Stripe)ID和数据块(Block)ID。Stripe ID为条带标识,表示数据所属的条带的标识。Block ID为数据块标识,表示数据在条带内所属的数据块的标识。
如图2B所示,第二设备获取已存储的对象1中起始位置为7、长度为4的数据(也即第二数据):1100。之后,第二设备查找到上述第二数据1100对应着两个数据块,这两个数据块分别为1011和0011。其中一个数据块1011的对象信息是Object1,5,4、条带信息是Stripe1,Block2,另一个数据块0011的对象信息是Object1,9,4、条带信息是Stripe1,Block3。
步骤204,第二设备根据第二数据对应的条带信息确定出第二数据所属的数据块的数量,该数量记为n,n为正整数。
第二设备根据第二数据对应的条带信息中的条带标识,确定第二数据所属的条带,再根据上述条带信息中的数据块标识,确定第二数据在上述条带中所属的数据块,最后根据第二数据所属的数据块,确定第二数据所属的数据块的数量。
如图2B所示,第二数据对应的条带信息为Stripe 1,Block2和Stripe1,Block3,第二数据所属的数据块为条带1中的数据块2和条带1中的数据块3,则第二数据所属的数据块的数量为2。
步骤205,第二设备确定第一数据被划分为n个目标数据块。
第二设备在确定第二数据所属的数据块的数量n后,确定第一数据被划分为相同数量(也即n个)的目标数据块。其中,第二数据所属的n个数据块中包含上述第二数据,可选地还包含所属对象的其它数据。如图2B所示,第二数据所属的一个数据块中除了包括部分第二数据“11”之外,还包括对象1中第5位和第6位的数据,也即“10”;第二数据所属的另一个数据块中除了包括部分第二数据“00”之外,还包括对象1中第11位和第12位的数据,也即“11”。
步骤206,第二设备分配至少一个未使用的条带标识给n个目标数据块。
第二设备分配至少一个未使用的条带标识给n个目标数据块,即将n个目标数据块分配到至少一个未使用的条带中。
在一种可能的实施方式中,假设每一个条带包括m+k个块,其中m个块为数据块,k个块为校验块,m为大于1的整数,k为正整数,则当n/m为整数时,第二设备分配n/m个未使用的条带标识给n个目标数据块;当n/m不为整数时,第二设备分配[n/m]+1个未使用的条带标识给n个目标数据块,[]为取整符号。例如,n=8,m=4,则第二设备分配2个未使用的条带标识给上述8个目标数据块;又例如,n=10,m=4,则第二设备分配3个未使用的条带标识给上述10个目标数据块。采用上述分配方式,能够尽可能地分配较少数量的新条带,以尽可能地减少后续校验块的计算量,节约第一设备的处理资源。
如图2B所示,第二设备确定将第一数据划分为2个目标数据块后,将一个未使用的条带标识Stripe4分配给上述2个目标数据块。当然,在其它可能的实现方式中,也可以分配2个未使用的条带标识给上述2个目标数据块。
步骤207,第二设备为n个目标数据块分配存储节点。
在分布式存储中,条带中的每一个数据块都对应着第一设备中的一个存储节点。一个条带信息对应着一个存储信息,表示一个条带中的一个数据块与一个存储节点之间的对应关系。存储信息包括设备标识(也即设备ID)和磁盘标识(也即Disk ID)。
第二设备为目标数据块分配存储节点即是将存储节点相应的存储信息与目标数据块相应的条带信息进行关联。
如图2B所示,第二设备为两个目标数据块分配存储节点,上述两个目标数据块对应的存储信息分别是设备1,Disk1和设备2,Disk2。
可选地,第二设备记录每一个目标数据块的对象信息、条带信息和存储信息之间的映射关系。其中,第i个目标数据块的对象信息用于指示第i个目标数据块的中包含的数据的所属对象以及第i个目标数据块在第i个目标数据块的所属对象中的位置,第i个目标数据块的条带信息用于指示第i个目标数据块的所属条带以及第i个目标数据块在第i个目标数据块的在所属条带中的位置,第i个目标数据块的存储信息用于指示第i个目标数据块对应的存储节点,1≤i≤n且i为整数。对于已存储的每一个数据块,第二设备记录已存储的每一个数据块的对象信息、条带信息和存储信息之间的映射关系。示例性地,第二设备记录的一个数据块的信息如下:Object2,1,4,Stripe3,Block3,设备3,Disk2,该信息用于指示对象2上起始位置为1长度为4的数据包含在条带3的数据块3中,且对应地存储在设备3中的磁盘2上。
步骤208,第二设备向第一设备发送数据存储响应。
数据存储响应用于指示第一设备在根据第一数据和第二数据所属的n个数据块,生成n个目标数据块之后,将n个目标数据块写入存储节点。
可选地,数据存储响应中包括:第一数据的对象信息、第二数据所属的n个数据块的对象信息和存储信息、n个目标数据块的存储信息。可选地,数据存储响应中还包括校验块的存储信息。
步骤209,第一设备根据数据存储响应,读取第二数据所属的n个数据块。
第一设备根据数据存储响应中的第二数据所属的n个数据块的存储信息,读取相应存储节点中的数据。如图2B所示,第一设备读取的第二数据所属的2个数据块分别为1011和0011。
步骤210,第一设备采用第一数据替换n个数据块中包含的第二数据,得到n个目标数据块。
第一设备根据读取的第二数据所属的n个数据块、n个数据块的对象信息、第一数据的对象信息,确定n个数据块中包含的第二数据,并用第一数据替换第二数据,得到n个目标数据块。如图2B所示,第一数据的对象信息是Object1,7,4,第二数据所属的2个数据块的对象信息是Object1,5,4和Object1,9,4,第一数据为0011是对象1中7位到10位的数据进行修改的数据,第二数据对应的两个数据块为1011和0011,分别表示对象1上5到8位的数据和9到12位的数据,则第二数据为1100是对象1上7位到10位的数据。将第二数据1100替换为第一数据0011,得到两个目标数据块1000和1111。因为第一数据是对第二数据进行修改的数据,因此第一数据所属的n个目标数据块中,可选地还包含上述所属对象的其它数据。仍然以上述示例为例,因为第一数据是对第二数据进行修改的数据,并且目标数据块是根据第二数据所属的数据块的数量分配的,所以其中一个目标数据块中还包括对象1中第5位和第6位的数据,也即“10”,另一个目标数据块中还包括对象1中第11位和第12位的数据,也即“11”。
步骤211,第一设备计算目标数据块所属条带的校验块。
第一设备根据目标数据块,计算目标数据块所属条带的校验块。若目标数据块所属条带的数据块数量等于预设数量,则根据目标数据块所属条带的所有数据块计算校验块;若目标数据块所属条带的数据块数量小于预设数量,则添加预设的默认数据块使得条带的数据块数量等于预设数量,再根据目标数据块所属条带的所有数据块计算校验块。预设数量是指一个条带所能包含的最多的数据块的数量,其可以预先设定。在通常情况下,各个条带所对应的预设数量相同,例如该预设数量为4,当然,各个条带所对应的预设数量也可以不同,本发明实施例对此不作限定。默认数据块中的每一位数据可以预先设定,示例性地,默认数据块中的每一位数据均为0。
步骤212,第一设备将n个目标数据块写入第二设备为n个目标数据块分配的存储节点。
第一设备根据目标数据块的存储信息,将n个目标数据块写入目标数据块的存储信息对应的存储节点,同时,将上述目标数据块所属条带的校验块写入相应的存储节点。如图2B所示,一个目标数据块1000的存储信息是设备1,Disk1,另一个目标数据块1111的存储信息是设备2,Disk2,则第一设备将目标数据块1000写入设备1中的磁盘1上,并将目标数据块1111写入设备2中的磁盘2上。校验块的存储信息是设备8,Disk8,则第一设备将校验块写入设备8中的磁盘8上。上述校验块的存储位置可以由第二设备指示,也可以由第一设备自行确定。
可选地,若目标数据块所属条带的数据块数量小于预设数量,则第一设备不写入目标数据块。当目标数据块所属条带的数据块数量等于预设数量后,第一设备再将目标数据块所属条带的数据块写入对应的存储节点。第一设备在目标数据块所属条带的数据块数量小于预设数量的情况下,既不计算目标数据块所属条带的校验块,也不写入目标数据块,等待其它数据块被分配到目标数据块所属条带中,使得目标数据块所属条带的数据块数量等于预设数量时,再计算目标数据块所属条带的校验块,并将目标数据块所属条带的所有数据块写入对应的存储节点。通过上述方式,能够减少校验块的计算次数,节约第一设备的处理资源。在本发明实施例中,数据最终是存储在磁盘中的,而磁盘是依靠由一个个同心圆组成的磁道上的具有不同磁化方向的磁化元来存储0、1信息的。对这些磁化元的读写是通过一个磁头来进行的。磁头是由磁性材料制作而成,形状如同一个矩形环,靠近磁道方向上开有一个小间隙,在磁头上还分别绕有一组写线圈和读线圈。磁头在对一个磁道进行读写操作时,磁头固定不动,而磁道运动。进行写操作时,在写线圈中通过一定方向的脉冲电流时,磁铁芯内就产生一定方向的磁通,并在磁头间隙处产生很强的磁场。在这个磁场作用下,位于磁头下的磁道上的某个固定单元就被磁化成相应极性的磁化元。每个磁化元记录一位二进制数,当磁盘相对于磁头运动时,就可以连续写入一连串的二进制信息。进行读操作时,经过磁头的磁化元会使磁铁芯内产生磁通的变化,从而使读线圈中产生一定的感应电势,经转换变成一定方向的脉冲电流,由此脉冲电流即可判定所读出的是0还是1。另外,在本发明实施例中,因为对数据修改时避免了对原数据的读写,原数据是指已存储的且不需要进行修改的数据,从而使得磁头不用对存储的原数据对应的磁道上的固定单元重新进行读写操作,只要继续在新的磁道上写入新数据。因此,对于每一个目标数据块,在第二设备为目标数据块分配的存储节点中已写入的数据之后,写入目标数据块中包含的数据。通过上述方式,将原来杂乱的随机写改成了顺序写,有助于提高磁盘的使用寿命。
在本发明实施例提供的方案中,通过将目标数据块分配到未使用的条带中,从而仅需读取需要修改的数据块即可,不需要对进行修改的数据块所属的条带中的其它数据块进行读取,避免了修改存储数据时对不必要数据的读取,减少了读数据操作,节省了设备处理开销。
可选地,在上述步骤208之后,还包括如下步骤:第二设备将第二数据所属的n个数据块设置为删除状态。
第二设备将第二数据所属的n个数据块设置为删除状态,但不向第一设备发送对上述n个数据块进行删除的指示。
可选地,第二设备在检测到任一条带包括的全部数据块被设置为删除状态时,向第一设备发送数据删除指示,数据删除指示用于指示第一设备将该条带包括的全部块删除。相应地,第一设备在接收到第二设备发送的数据删除指示之后,根据数据删除指示,将上述条带包括的全部块删除。其中,该条带包括m+k个块,其中m个块为数据块,k个块为校验块,m为大于1的整数,k为正整数。
可选地,第二设备向第一设备发送的删除指示包含第二设备检测到的全部数据块都被设置为删除状态的条带对应的存储信息。第一设备根据接收到的上述条带的存储信息,删除相应存储节点上的数据。
示例性地,第二设备检测到条带4中的所有数据块都被设置为删除状态,则向第一设备发送删除指示,如删除指示包含条带4中所有数据块的存储信息:设备1,Disk1、设备1,Disk2、设备2,Disk1和设备2,Disk1,第一设备根据删除指示删除上述存储信息对应的存储节点上的数据。
在基于图2A实施例提供的一个可选实施例中,如图3所示,上述步骤202之后还包括如下步骤:
步骤301,若第二设备检测出第一数据不是对已存储数据进行修改的数据,则确定第一数据被划分为z个目标数据块,z为正整数。
第二设备根据第一数据的对象信息,确定第一数据被划分为z个目标数据块。请参考图4,假设第一数据为1111,第一数据的对象信息是Object2,1,4。第二设备检测除上述第一数据不是对已存储数据进行修改的数据,则确定第一数据被划分为1个目标数据块。
步骤302,第二设备分配至少一个条带标识给z个目标数据块。
第二设备分配至少一个条带标识给z个目标数据块,即将z个目标数据块分配到至少一个条带中。如图4所示,第二设备将Stripe6分配给目标数据块1。
第二设备可以分配至少一个已使用的条带标识和/或至少一个未使用的条带标识给z个目标数据块。例如,当存在已使用的条带标识且该已使用的条带标识对应的条带中的数据库不足预设数量时,第二设备优先将该已使用的条带标识分配给z个目标数据块中的部分或全部数据块,之后,若z个目标数据块中还存在未被分配条带标识的目标数据块,则第二设备为这部分目标数据块分配至少一个未使用的条带标识。
步骤303,第二设备为z个目标数据块分配存储节点。
示例性地,参考图4,第二设备为目标数据块1分配存储节点,假设目标数据块1对应的存储信息是设备6,Disk1。
步骤304,第二设备向第一设备发送数据存储响应。
数据存储响应用于指示第一设备根据z个目标数据块的存储信息,将z个目标数据块写入存储节点。
若z个目标数据块所属的条带中没有包含其它数据块,则第二设备发送的存储响应中包含第一数据的对象信息、z个目标数据块的对象信息、存储信息;若z个目标数据块所属的条带中包含其它数据块,则第二设备发送的存储响应中包含第一数据的对象信息、z个目标数据块的对象信息、存储信息、上述其它数据块的存储信息。可选地,数据存储响应中还包括校验块的存储信息。
因为在分布式存储中存储数据需要计算校验块,而计算校验块要使用条带中的所有数据,所以需要查找条带中的其它数据块是否包含数据。
步骤305,第一设备计算目标数据块所属条带的校验块。
若存储响应中只包含第一数据的对象信息、z个目标数据块的对象信息、存储信息,则第一设备根据目标数据块,计算目标数据块所属条带的校验块,在上文介绍中,若目标数据块所属条带的数据块数量小于预设数量,则添加预设的默认数据块使得条带的数据块数量等于预设数量,再根据目标数据块所属条带的所有数据块计算校验块;若存储响应中包含第一数据的对象信息、z个目标数据块的对象信息、存储信息、上述其它数据块的存储信息,则第一设备根据其它数据块的存储信息,读取对应存储节点中的数据,再结合与上述其它数据块属于同一条带的目标数据块,计算校验块。
步骤306,第一设备将z个目标数据块写入第二设备为z个目标数据块分配的存储节点。
第一设备根据目标数据块的存储信息,将z个目标数据块写入目标数据块的存储信息对应的存储节点,同时,第一设备将上述目标数据块所属条带的校验块写入相应的存储节点。示例性地,请参考图4,第一设备确定目标数据块所属条带的校验块后,将目标数据块1存储到设备6的磁盘1中。上述校验块的存储位置可以由第二设备指示,也可以由第一设备自行确定。
在上述图3所示实施例中,在第一数据不是对已存储的第二数据的修改的情况下,对第一数据的存储方法进行了介绍说明。
需要说明的一点是,在上述方法实施例中,为了便于对本发明技术方案进行介绍,仅以数据块的长度为4为例。在实际应用中,数据块的长度可以是1M、512k等,本发明实施例对此不作限定。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
请参考图5,其示出了本发明一个实施例提供的分布式存储系统中的数据存储装置的框图。该装置具有实现上述实施例中第二设备侧方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:请求接收模块501、对象检测模块502、信息获取模块503、条带分配模块504、节点分配模块505和响应发送模块506。
请求接收模块501,用于接收第一设备发送的数据存储请求,所述数据存储请求中携带待存储的第一数据的对象信息,所述第一数据的对象信息用于指示所述第一数据的所属对象以及所述第一数据在所述第一数据的所属对象中的位置。
对象检测模块502,用于根据请求接收模块501接收的所述第一数据的对象信息和已存储数据的对象信息,检测所述第一数据是否为对已存储数据进行修改的数据。
信息获取模块503,用于在对象检测模块502检测出所述第一数据是对已存储的第二数据进行的修改的数据时,获取所述第二数据对应的条带信息,所述第二数据对应的条带信息用于指示所述第二数据所属的至少一个条带以及所述第二数据在所述条带内所属的数据块。
条带分配模块504,用于若根据信息获取模块503获取的所述第二数据对应的条带信息确定出所述第二数据所属的数据块的数量为n,则确定所述第一数据被划分为n个目标数据块,并分配至少一个未使用的条带标识给所述n个目标数据块,n为正整数。
节点分配模块505,用于为所述n个目标数据块分配存储节点。
响应发送模块506,用于向所述第一设备发送数据存储响应,所述数据存储响应用于指示所述第一设备在根据所述第一数据和所述第二数据所属的n个数据块,生成所述n个目标数据块之后,将所述n个目标数据块写入所述存储节点。
在本发明实施例提供的方案中,通过将目标数据块分配到未使用的条带中,从而仅需读取需要修改的数据块即可,不需要对进行修改的数据块所属的条带中的其它数据块进行读取,避免了修改存储数据时对不必要数据的读取,减少了读数据操作,节省了设备处理开销。
可选地,所述装置还包括:信息记录模块。
信息记录模块,用于记录每一个目标数据块的对象信息、条带信息和存储信息之间的映射关系;其中,第i个目标数据块的对象信息用于指示所述第i个目标数据块的所属对象以及所述第i个目标数据块在所述第i个目标数据块的所属对象中的位置,所述第i个目标数据块的条带信息用于指示所述第i个目标数据块的所属条带以及所述第i个目标数据块在所述第i个目标数据块的所属条带中的位置,所述第i个目标数据块的存储信息用于指示所述第i个目标数据块对应的存储节点,1≤i≤n且i为整数。
可选地,所述装置还包括:状态设置模块和指示发送模块。
状态设置模块,用于将所述第二数据所属的n个数据块设置为删除状态。
指示发送模块,用于在检测到任一条带包括的全部数据块被设置为所述删除状态时,向所述第一设备发送数据删除指示,所述数据删除指示用于指示所述第一设备将所述条带包括的全部块删除。
其中,所述条带包括m+k个块,其中m个块为数据块,k个块为校验块,m为大于1的整数,k为正整数。
请参考图6,其示出了本发明另一个实施例提供的分布式存储系统中的数据存储装置的框图。该装置具有实现上述实施例中第一设备侧方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:请求发送模块601、响应接收模块602、数据读取模块603、数据读取模块603、数据替换模块604和数据写入模块605。
请求发送模块601,用于向第二设备发送数据存储请求,所述数据存储请求中携带待存储的第一数据的对象信息,所述第一数据的对象信息用于指示所述第一数据的所属对象以及所述第一数据在所述第一数据的所属对象中的位置。
响应接收模块602,用于接收所述第二设备发送的数据存储响应,所述数据存储响应由所述第二设备在检测出所述第一数据是对已存储的第二数据进行修改的数据后发送。
数据读取模块603,用于根据响应接收模块602接收的所述数据存储响应,读取所述第二数据所属的n个数据块,n为正整数。
数据替换模块604,用于采用所述第一数据替换数据读取模块603读取的所述n个数据块中包含的所述第二数据,得到n个目标数据块。
数据写入模块605,用于将数据替换模块604确认的所述n个目标数据块写入所述第二设备为所述n个目标数据块分配的存储节点。
在本发明实施例提供的方案中,通过将目标数据块分配到未使用的条带中,从而仅需读取需要修改的数据块即可,不需要对进行修改的数据块所属的条带中的其它数据块进行读取,避免了修改存储数据时对不必要数据的读取,减少了读数据操作,节省了设备处理开销。
可选地,所述装置还包括:指示接收模块和数据删除模块。
指示接收模块,用于将所述n个目标数据块写入所述第二设备为所述n个目标数据块分配的存储节点。
数据删除模块,用于根据所述数据删除指示,将所述条带包括的全部块删除。
其中,所述条带包括m+k个块,其中m个块为数据块,k个块为校验块,m为大于1的整数,k为正整数。
可选地,所述数据写入模块,用于对于每一个目标数据块,在所述第二设备为所述目标数据块分配的存储节点中已写入的数据之后,写入所述目标数据块。
本发明一示例性实施例还提供了一种分布式存储系统,该系统包括:第二设备和第一设备。第二设备包括如图5所示实施例提供的数据存储装置。第一设备包括如图6所示实施例提供的数据存储装置。
需要说明的是,上述实施例提供装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图7,其示出了本发明一个实施例提供的服务器的结构示意图。例如,该服务器可以是上述实施例中的第二设备,用于实施上述实施例中第二设备侧的数据存储方法;或者,该服务器也可以是第一设备,用于实施上述实施例中第一设备侧的数据存储方法。具体来讲:
所述服务器700包括中央处理单元(CPU)701、包括随机存取存储器(RAM)702和只读存储器(ROM)703的系统存储器704,以及连接系统存储器504和中央处理单元701的系统总线705。所述服务器700还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)706,和用于存储操作系统713、应用程序714和其他程序模块715的大容量存储设备707。
所述基本输入/输出系统706包括有用于显示信息的显示器708和用于用户输入信息的诸如鼠标、键盘之类的输入设备709。其中所述显示器708和输入设备709都通过连接到系统总线705的输入输出控制器710连接到中央处理单元701。所述基本输入/输出系统706还可以包括输入输出控制器710以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制710还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备707通过连接到系统总线705的大容量存储控制器(未示出)连接到中央处理单元701。所述大容量存储设备707及其相关联的计算机可读介质为服务器700提供非易失性存储。也就是说,所述大容量存储设备707可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器704和大容量存储设备707可以统称为存储器。
根据本发明的各种实施例,所述服务器700还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器700可以通过连接在所述系统总线705上的网络接口单元711连接到网络712,或者说,也可以使用网络接口单元711来连接到其他类型的网络或远程计算机系统。
具体在本实施例中,服务器700还包括有存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被执行时实现上述方法示例中第二设备侧的数据存储方法,或者实现上述方法示例中第一设备侧的数据存储方法。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被执行时实现上述方法示例中第二设备侧的数据存储方法,或者实现上述方法示例中第一设备侧的数据存储方法。
可选地,上述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本发明的示例性实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种分布式存储系统中的数据存储方法,其特征在于,所述方法包括:
接收第一设备发送的数据存储请求,所述数据存储请求中携带待存储的第一数据的对象信息,所述第一数据的对象信息用于指示所述第一数据的所属对象以及所述第一数据在所述第一数据的所属对象中的位置;
根据所述第一数据的对象信息和已存储数据的对象信息,检测所述第一数据是否为对已存储数据进行修改的数据;
在检测出所述第一数据是对已存储的第二数据进行修改的数据时,获取所述第二数据对应的条带信息,所述第二数据对应的条带信息用于指示所述第二数据所属的至少一个条带以及所述第二数据在所述条带内所属的数据块;
根据所述第二数据对应的条带信息中的条带标识和数据块标识,分别确定所述第二数据所属的条带和在所述条带中所属的数据块,根据所述第二数据在所述条带中所属的数据块,确定所述第二数据所属的数据块的数量,若所述第二数据所属的数据块的数量为n,则确定所述第一数据被划分为n个目标数据块,并分配至少一个未使用的条带标识给所述n个目标数据块,n为正整数;
为所述n个目标数据块分配存储节点;
向所述第一设备发送数据存储响应,所述数据存储响应用于指示所述第一设备在根据所述第一数据和所述第二数据所属的n个数据块生成所述n个目标数据块之后,将所述n个目标数据块写入所述存储节点。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述第二数据所属的n个数据块设置为删除状态。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在检测到任一条带包括的全部数据块被设置为所述删除状态时,向所述第一设备发送数据删除指示,所述数据删除指示用于指示所述第一设备将所述条带包括的全部块删除;
其中,所述条带包括m+k个块,其中m个块为数据块,k个块为校验块,m为大于1的整数,k为正整数。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述为所述n个目标数据块分配存储节点之后,还包括:
记录每一个目标数据块的对象信息、条带信息和存储信息之间的映射关系;
其中,第i个目标数据块的对象信息用于指示所述第i个目标数据块的所属对象以及所述第i个目标数据块在所述第i个目标数据块的所属对象中的位置,所述第i个目标数据块的条带信息用于指示所述第i个目标数据块的所属条带以及所述第i个目标数据块在所述第i个目标数据块的所属条带中的位置,所述第i个目标数据块的存储信息用于指示所述第i个目标数据块对应的存储节点,1≤i≤n且i为整数。
5.一种分布式存储系统中的数据存储方法,其特征在于,所述方法包括:
向第二设备发送数据存储请求,所述数据存储请求中携带待存储的第一数据的对象信息,所述第一数据的对象信息用于指示所述第一数据的所属对象以及所述第一数据在所述第一数据的所属对象中的位置;
接收所述第二设备发送的数据存储响应,所述数据存储响应由所述第二设备在检测出所述第一数据是对已存储的第二数据进行修改的数据后发送;
根据所述数据存储响应,读取所述第二数据所属的n个数据块,n为正整数;其中,所述第二数据所属的数据块的数量由所述第二设备先根据所述第二数据对应的条带信息中的条带标识和数据块标识,分别确定所述第二数据所属的条带和在所述条带中所属的数据块,再根据所述第二数据在所述条带中所属的数据块确定;
采用所述第一数据替换所述n个数据块中包含的所述第二数据,得到n个目标数据块;
将所述n个目标数据块写入所述第二设备为所述n个目标数据块分配的存储节点。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收所述第二设备发送的数据删除指示,所述数据删除指示由所述第二设备在检测到任一条带包括的全部数据块被设置为删除状态时发送;
根据所述数据删除指示,将所述条带包括的全部块删除;
其中,所述条带包括m+k个块,其中m个块为数据块,k个块为校验块,m为大于1的整数,k为正整数。
7.根据权利要求5或6所述的方法,其特征在于,所述将所述n个目标数据块写入所述第二设备为所述n个目标数据块分配的存储节点,包括:
对于每一个目标数据块,在所述第二设备为所述目标数据块分配的存储节点中已写入的数据之后,写入所述目标数据块。
8.一种分布式存储系统中的数据存储装置,其特征在于,所述装置包括:
请求接收模块,用于接收第一设备发送的数据存储请求,所述数据存储请求中携带待存储的第一数据的对象信息,所述第一数据的对象信息用于指示所述第一数据的所属对象以及所述第一数据在所述第一数据的所属对象中的位置;
对象检测模块,用于根据所述第一数据的对象信息和已存储数据的对象信息,检测所述第一数据是否为对已存储数据进行修改的数据;
信息获取模块,用于在检测出所述第一数据是对已存储的第二数据进行的修改的数据时,获取所述第二数据对应的条带信息,所述第二数据对应的条带信息用于指示所述第二数据所属的至少一个条带以及所述第二数据在所述条带内所属的数据块;
条带分配模块,用于根据所述第二数据对应的条带信息中的条带标识和数据块标识,分别确定所述第二数据所属的条带和在所述条带中所属的数据块,根据所述第二数据在所述条带中所属的数据块,确定所述第二数据所属的数据块的数量,若所述第二数据所属的数据块的数量为n,则确定所述第一数据被划分为n个目标数据块,并分配至少一个未使用的条带标识给所述n个目标数据块,n为正整数;
节点分配模块,用于为所述n个目标数据块分配存储节点;
响应发送模块,用于向所述第一设备发送数据存储响应,所述数据存储响应用于指示所述第一设备在根据所述第一数据和所述第二数据所属的n个数据块生成所述n个目标数据块之后,将所述n个目标数据块写入所述存储节点。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
状态设置模块,用于将所述第二数据所属的n个数据块设置为删除状态。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
指示发送模块,用于在检测到任一条带包括的全部数据块被设置为所述删除状态时,向所述第一设备发送数据删除指示,所述数据删除指示用于指示所述第一设备将所述条带包括的全部块删除;
其中,所述条带包括m+k个块,其中m个块为数据块,k个块为校验块,m为大于1的整数,k为正整数。
11.根据权利要求8至10任一项所述的装置,其特征在于,所述装置还包括:
信息记录模块,用于记录每一个目标数据块的对象信息、条带信息和存储信息之间的映射关系;
其中,第i个目标数据块的对象信息用于指示所述第i个目标数据块的所属对象以及所述第i个目标数据块在所述第i个目标数据块的所属对象中的位置,所述第i个目标数据块的条带信息用于指示所述第i个目标数据块的所属条带以及所述第i个目标数据块在所述第i个目标数据块的所属条带中的位置,所述第i个目标数据块的存储信息用于指示所述第i个目标数据块对应的存储节点,1≤i≤n且i为整数。
12.一种分布式存储系统中的数据存储装置,其特征在于,所述装置包括:
请求发送模块,用于向第二设备发送数据存储请求,所述数据存储请求中携带待存储的第一数据的对象信息,所述第一数据的对象信息用于指示所述第一数据的所属对象以及所述第一数据在所述第一数据的所属对象中的位置;
响应接收模块,用于接收所述第二设备发送的数据存储响应,所述数据存储响应由所述第二设备在检测出所述第一数据是对已存储的第二数据进行修改的数据后发送;
数据读取模块,用于根据所述数据存储响应,读取所述第二数据所属的n个数据块,n为正整数;其中,所述第二数据所属的数据块的数量由所述第二设备先根据所述第二数据对应的条带信息中的条带标识和数据块标识,分别确定所述第二数据所属的条带和在所述条带中所属的数据块,再根据所述第二数据在所述条带中所属的数据块确定;
数据替换模块,用于采用所述第一数据替换所述n个数据块中包含的所述第二数据,得到n个目标数据块;
数据写入模块,用于将所述n个目标数据块写入所述第二设备为所述n个目标数据块分配的存储节点。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
指示接收模块,用于接收所述第二设备发送的数据删除指示,所述数据删除指示由所述第二设备在检测到任一条带包括的全部数据块被设置为删除状态时发送;
数据删除模块,用于根据所述数据删除指示,将所述条带包括的全部块删除;
其中,所述条带包括m+k个块,其中m个块为数据块,k个块为校验块,m为大于1的整数,k为正整数。
14.根据权利要求12或13所述的装置,其特征在于,
所述数据写入模块,用于对于每一个目标数据块,在所述第二设备为所述目标数据块分配的存储节点中已写入的数据之后,写入所述目标数据块。
15.一种分布式存储系统,其特征在于,所述系统包括:第二设备和第一设备;
所述第二设备包括如权利要求8至11任一项所述的装置;
所述第一设备包括如权利要求12至14任一项所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710626270.7A CN109947842B (zh) | 2017-07-27 | 2017-07-27 | 分布式存储系统中的数据存储方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710626270.7A CN109947842B (zh) | 2017-07-27 | 2017-07-27 | 分布式存储系统中的数据存储方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109947842A CN109947842A (zh) | 2019-06-28 |
CN109947842B true CN109947842B (zh) | 2021-06-18 |
Family
ID=67003995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710626270.7A Active CN109947842B (zh) | 2017-07-27 | 2017-07-27 | 分布式存储系统中的数据存储方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109947842B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113515531B (zh) * | 2021-05-08 | 2022-12-02 | 重庆紫光华山智安科技有限公司 | 数据访问方法、装置、客户端及存储介质 |
CN113468008B (zh) * | 2021-07-13 | 2024-06-18 | 深圳市越疆科技有限公司 | 安全控制器的检测方法、装置、设备及存储介质 |
CN115904795A (zh) * | 2021-08-20 | 2023-04-04 | 华为技术有限公司 | 存储系统中的数据存储方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620517A (zh) * | 2009-08-04 | 2010-01-06 | 成都市华为赛门铁克科技有限公司 | 数据写入方法和装置 |
CN101650692A (zh) * | 2009-07-02 | 2010-02-17 | 北京飞天诚信科技有限公司 | 一种在存储设备中修改数据的方法和装置 |
CN102520883A (zh) * | 2011-12-12 | 2012-06-27 | 杭州华三通信技术有限公司 | 一种数据存取方法及其装置 |
CN102549554A (zh) * | 2009-09-29 | 2012-07-04 | 美光科技公司 | 基于条带的存储器操作 |
CN104272274A (zh) * | 2013-12-31 | 2015-01-07 | 华为技术有限公司 | 一种分布式文件存储系统中的数据处理方法及设备 |
CN106527958A (zh) * | 2015-09-09 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 用于分布式存储系统的写入数据、获取数据的方法和设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9009490B2 (en) * | 2012-10-08 | 2015-04-14 | International Business Machines Corporation | Implementing dynamic banding of self encrypting drive |
US9772781B2 (en) * | 2013-11-27 | 2017-09-26 | Ngd Systems, Inc. | System and method for supporting atomic writes in a flash translation layer |
-
2017
- 2017-07-27 CN CN201710626270.7A patent/CN109947842B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650692A (zh) * | 2009-07-02 | 2010-02-17 | 北京飞天诚信科技有限公司 | 一种在存储设备中修改数据的方法和装置 |
CN101620517A (zh) * | 2009-08-04 | 2010-01-06 | 成都市华为赛门铁克科技有限公司 | 数据写入方法和装置 |
CN102549554A (zh) * | 2009-09-29 | 2012-07-04 | 美光科技公司 | 基于条带的存储器操作 |
CN102520883A (zh) * | 2011-12-12 | 2012-06-27 | 杭州华三通信技术有限公司 | 一种数据存取方法及其装置 |
CN104272274A (zh) * | 2013-12-31 | 2015-01-07 | 华为技术有限公司 | 一种分布式文件存储系统中的数据处理方法及设备 |
CN106527958A (zh) * | 2015-09-09 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 用于分布式存储系统的写入数据、获取数据的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109947842A (zh) | 2019-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11579777B2 (en) | Data writing method, client server, and system | |
CN107229420B (zh) | 数据存储方法、读取方法、删除方法和数据操作系统 | |
CN108287669A (zh) | 数据存储方法、装置及存储介质 | |
CN106126374B (zh) | 数据写入方法、数据读取方法及装置 | |
CN109947842B (zh) | 分布式存储系统中的数据存储方法、装置及系统 | |
CN102413156B (zh) | 一种分布式数据存储系统和方法 | |
KR20120102664A (ko) | 미래 사용 추정에 기반한 저장 메모리 할당 | |
CN109582213B (zh) | 数据重构方法及装置、数据存储系统 | |
CN109074227B (zh) | 一种数据校验的方法及存储系统 | |
CN110134338B (zh) | 一种分布式存储系统及其数据冗余保护方法和相关设备 | |
JP6455900B2 (ja) | ストレージシステムおよびシステムガベージコレクション方法 | |
US10572335B2 (en) | Metadata recovery method and apparatus | |
CN109144406B (zh) | 分布式存储系统中元数据存储方法、系统及存储介质 | |
CN108829342B (zh) | 一种日志存储方法、系统及存储装置 | |
US20100235599A1 (en) | Access control device, storage system, and access control method | |
CN112269661B (zh) | 基于Kafka集群的分区迁移方法和装置 | |
US20210326207A1 (en) | Stripe reassembling method in storage system and stripe server | |
CN110442298B (zh) | 存储设备异常检测方法及装置、分布式存储系统 | |
CN110147203A (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
CN114465956B (zh) | 虚拟机流量限速的方法、装置、电子设备及存储介质 | |
CN111399761B (zh) | 存储资源分配方法、装置及设备、存储介质 | |
CN104035728A (zh) | 一种硬盘热插拔处理方法、装置及节点 | |
EP2811410A1 (en) | Monitoring record management method and device | |
US11429313B2 (en) | Data processing method, device and distributed storage system | |
CN108132759B (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 |