CN111435286B - 一种数据存储方法、装置和系统 - Google Patents
一种数据存储方法、装置和系统 Download PDFInfo
- Publication number
- CN111435286B CN111435286B CN201910031171.3A CN201910031171A CN111435286B CN 111435286 B CN111435286 B CN 111435286B CN 201910031171 A CN201910031171 A CN 201910031171A CN 111435286 B CN111435286 B CN 111435286B
- Authority
- CN
- China
- Prior art keywords
- data
- disk
- target
- stripe
- data block
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 80
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000007726 management method Methods 0.000 claims description 61
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明提供一种数据存储方法、装置和系统。方法包括:获取待存储的目标数据,并将目标数据存储至内存数据块中;获取一条目标条带,并获取目标条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址;依据各个磁盘数据块对应的磁盘地址,确定并连接各个目标磁盘;依据目标条带中各个磁盘数据块的标识,将目标数据并行传输至各个目标磁盘上的目标磁盘数据块,以使得各个目标磁盘上的目标磁盘数据块完成对目标数据的存储;确定目标条带中,数据存储成功的目标磁盘数据块的个数;当数据存储成功的目标磁盘数据块的个数大于或等于预设阈值时,确定目标条带存储数据成功。本发明提高了数据存储效率、缩短了数据存储时间,保证了数据的安全性。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据存储方法、装置和系统。
背景技术
现有的数据(通常指文件数据块)存储方法主要包括以下两种:
方法一:确定多个目标磁盘块,并与各个目标磁盘块对应的磁盘分别连接;将数据存储到第一个目标磁盘块,等待第一个目标磁盘块返回的存储结果,并基于返回的存储结果继续将数据存储到第二个目标磁盘块;在接收到第二个目标磁盘块返回的存储结果后,继续将数据存储到第三个目标磁盘块,以此类推,直至所有数据依次在各个目标磁盘块中完成存储。
方法二:确定多个目标磁盘块,并与各个目标磁盘块对应的磁盘分别连接;将数据存储到第一个目标磁盘块后,将该第一个目标磁盘块作为主块,等待该第一个目标磁盘块返回的存储结果。当存储结果表示数据存储成功时,文件系统在后台读取第一个目标磁盘块中的数据,并将读取到的数据拷贝到其他目标磁盘块中,从而实现数据在其他目标磁盘块中建立副本;当存储结果表示数据存储失败时,文件系统会重新选择一个新的目标磁盘块对数据进行存储,直到数据存储成功后,文件系统读取该新的目标磁盘块中的数据,并拷贝到其他目标磁盘块中,实现数据在其他目标磁盘块中建立副本。
针对现有的数据存储方法,本发明的申请人发现:
方法一的实现过程中,待数据存储到一个目标磁盘块后,基于返回的存储结果,才会继续将数据存储到下一个目标磁盘块,即每一个磁盘块(即磁盘)在存储数据时都需要等待前一个磁盘块完成数据存储,而一般欲存储的文件数据块都需要连接很多个磁盘,每个磁盘存储数据都需要耗费几十毫秒甚至几百毫秒,如此所有磁盘串行操作,针对一次数据存储过程则需要至少几百毫秒甚至几秒的等待时间,这无疑大大增加用户存储数据的等待时间,严重的影响了用户保存文件的友好性。
方法二的实现过程中,用户欲存储的数据成功存储到某一个磁盘块后,文件系统能够自动从该某个磁盘块中读取数据,并将读取到的数据拷贝到其他磁盘块中,以实现数据在其他目标磁盘块中建立副本,方法二相比于方法一提高了数据的存储效率,但却降低了数据的安全性。例如,假设第一目标磁盘块成功存储数据后,恰好此时第一目标磁盘块或第一目标磁盘块所在的磁盘坏掉了,那么此时存储到第一目标磁盘块中的数据就会永久丢失。
发明内容
有鉴于此,本发明提供一种数据存储方法、装置和系统。用于解决现有数据存储方法存在的等待时间长、存储效率低、安全性低等问题。技术方案如下:
基于本发明的一方面,本发明提供一种数据存储方法,包括:
获取待存储的目标数据,并将所述目标数据存储至内存数据块中;
获取一条目标条带,并获取所述目标条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址;其中所述目标条带中各个磁盘数据块的大小相等,且各个磁盘数据块的大小与所述内存数据块的大小相等,一个磁盘数据块对应一个磁盘地址;
依据各个磁盘数据块对应的磁盘地址,确定并连接各个目标磁盘;
依据所述目标条带中各个磁盘数据块的标识,将所述目标数据并行传输至各个目标磁盘上的目标磁盘数据块,以使得各个目标磁盘上的目标磁盘数据块完成对所述目标数据的存储;
确定所述目标条带中,数据存储成功的目标磁盘数据块的个数;
当所述数据存储成功的目标磁盘数据块的个数大于或等于预设阈值时,确定所述目标条带存储数据成功。
可选地,将所述目标数据存储至内存数据块中包括:
获取所述内存数据块的剩余空间容量,以及所述目标数据的数据量;
当所述目标数据的数据量小于或等于所述内存数据块的剩余空间容量时,将所述目标数据存储至所述内存数据块中;
当所述目标数据的数据量大于所述内存数据块的剩余空间容量时,将所述目标数据中的部分数据存储至所述内存数据块中,所述部分数据的数据量等于所述内存数据块的剩余空间容量;其中,当在确定所述目标条带存储数据成功之后,清除所述内存数据块中已成功存储的数据,并将所述目标数据的剩余数据作为当前待存储的目标数据,返回执行所述获取所述内存数据块的剩余空间容量,以及所述目标数据的数据量的步骤。
可选地,所述获取一条目标条带,并获取所述目标条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址包括:
依据预设标识,判断当前是否存在已申请过的条带;
如果存在,则将所述已申请过的条带作为所述目标条带,获取所述已申请过的条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址;
如果不存在,申请一条新条带,并将所述新条带作为所述目标条带,获取所述新条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址。
可选地,当申请一条新条带,并将所述新条带作为所述目标条带时,所述方法还包括:
为所述新条带中各个磁盘数据块进行编号,并分别设置对应各个磁盘数据块的磁盘有效标识;一个磁盘有效标识对应一个磁盘数据块,当所述磁盘有效标识等于预设的第一设定值时,表示与所述磁盘有效标识对应的磁盘数据块有效,当所述磁盘有效标识等于预设的第二设定值时,表示与所述磁盘有效标识对应的磁盘数据块无效。
可选地,对应各个磁盘数据块的磁盘有效标识的初始值均等于预设的第一设定值,所述确定所述目标条带中,数据存储成功的目标磁盘数据块的个数包括:
获取在预设时间段内接收到的各个目标磁盘返回的存储结果;其中对于未在所述预设时间段内返回所述存储结果的目标磁盘,直接将其对应的磁盘有效标识设置为预设的第二设定值;
当所述存储结果表示数据存储失败时,将返回所述存储结果的目标磁盘对应的磁盘有效标识设置为预设的第二设定值;
统计所述目标条带中,磁盘有效标识等于预设的第一设定值的个数;
将所述磁盘有效标识等于预设的第一设定值的个数确定为所述目标条带中,数据存储成功的目标磁盘数据块的个数。
可选地,所述方法还包括:
当所述数据存储成功的目标磁盘数据块的个数小于预设阈值时,确定所述目标条带异常;
放弃所述目标条带,并返回执行所述重新申请一条新条带,并将所述新条带作为所述目标条带,获取所述新条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址的步骤。
可选地,每一条目标条带包括3个磁盘数据块;所述预设阈值等于2。
可选地,所述方法还包括:
接收用户发送的创建文件的请求,所述请求包含所述文件的文件名;
将所述请求转发至信息管理模块,以使得所述信息管理模块依据所述文件名判断所述文件是否存在;其中当所述信息管理模块判断所述文件不存在时,返回文件标识符描述符fid;
接收所述fid,并生成一个对象标识符oid,且将所述fid与所述oid关联;
向所述用户返回创建成功消息,所述创建成功消息包含所述oid。
基于本发明的另一方面,本发明提供一种数据存储装置,包括:
第一获取单元,用于获取待存储的目标数据;
存储单元,用于将所述目标数据存储至内存数据块中;
第二获取单元,用于获取一条目标条带,并获取所述目标条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址;其中所述目标条带中各个磁盘数据块的大小相等,且各个磁盘数据块的大小与所述内存数据块的大小相等,一个磁盘数据块对应一个磁盘地址;
连接单元,用于依据各个磁盘数据块对应的磁盘地址,确定并连接各个目标磁盘;
传输单元,用于依据所述目标条带中各个磁盘数据块的标识,将所述目标数据并行传输至各个目标磁盘上的目标磁盘数据块,以使得各个目标磁盘上的目标磁盘数据块完成对所述目标数据的存储;
第一确定单元,用于确定所述目标条带中,数据存储成功的目标磁盘数据块的个数;
第二确定单元,用于当所述数据存储成功的目标磁盘数据块的个数大于或等于预设阈值时,确定所述目标条带存储数据成功。
基于本发明的再一方面,本发明提供一种数据存储系统,包括:用户模块、数据接入模块、磁盘模块和信息管理模块;其中,所述数据接入模块为前文所述的数据存储装置;
所述用户模块,用于提供用户操作接口,将用户输入的目标数据传递给所述数据接入模块;
所述磁盘模块,用于提供多个磁盘,所述多个磁盘中每个磁盘均具有对外的数据读写接口;
所述信息管理模块,用于提供磁盘管理、磁盘组管理、条带管理与文件管理。
本发明提供的数据存储方法、装置和系统中,首先获取待存储的目标数据,并将所述目标数据存储至内存数据块中,进而获取一条目标条带,并获取所述目标条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址,然后依据各个磁盘数据块对应的磁盘地址,确定并连接各个目标磁盘,并依据所述目标条带中各个磁盘数据块的标识,将所述目标数据并行传输至各个目标磁盘上的目标磁盘数据块,以使得各个目标磁盘上的目标磁盘数据块完成对所述目标数据的存储。当确定所述目标条带中,数据存储成功的目标磁盘数据块的个数大于或等于预设阈值时,确定所述目标条带存储数据成功。本发明的数据存储过程中,是将内存数据块中存储的目标数据并行传输至各个目标磁盘上的目标磁盘数据块,该并行传输数据的方式极大地提高了数据存储的效率,缩短了数据存储的等待时间。同时,每一条条带上都保证有多个目标磁盘数据块成功完成了数据存储,同一条条带上的多个目标磁盘数据块之间均存储有相同的数据实现了数据备份,保证了数据存储的安全性与可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的一种数据存储系统的结构示意图;
图2为本发明提供的一种创建文件的方法流程图;
图3为本发明提供的一种数据存储方法的流程图;
图4为本发明提供的一种数据存储装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在具体介绍本发明前,申请人首先对本发明涉及的相关技术术语进行简单说明。
文件系统:指的是操作系统用于明确存储设备(常见的包括磁盘,也有基于NANDFlash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
分布式文件系统(Distributed File System):是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包括多个供多用户访问的服务器。另外,对等特性允许一些系统扮演客户机和服务器的双重角色。例如,用户可以“发表”一个允许其他客户机访问的目录,一旦被访问,这个目录对客户机来说就像使用本地驱动器一样,下面是三个基本的分布式文件系统。
磁盘:计算机的外部存储器中采用了类似磁带的装置,比较常用的一种叫磁盘,将圆形的磁性盘片装在一个方的密封盒子里,这样做的目的是为了防止磁盘表面划伤,导致数据丢失。
磁盘组:将分布式磁盘系统中多个磁盘组合成一个组,称为磁盘组。
本发明中的磁盘组可以为:分布式磁盘系统中,将系统中的所有磁盘都进行统一管理,然后将磁盘按照3个磁盘作为一组。当任意3个磁盘绑定成一组后,那么这个磁盘组便当做一个整体来操作和管理。
需要说明的是,为了便于方案的理解,本发明只是示例性地选择将3个磁盘作为一组,可选地,本发明还可以选择将4个磁盘作为一组、将5个磁盘作为一组,将n个磁盘作为一组等,n为大于1的正整数,本发明对此不做限定。
本发明中的磁盘分组是基本存储单位;将磁盘分组作为文件存储的一组关联数据。磁盘分组后,关联的数据若发生了数据丢失,可以通过这一组中的相关联的数据进行数据恢复。
该分组的方法是将数据复制多份进行创建副本,若存在一个磁盘对应的数据块的数据丢失,可以通过其他磁盘中的副本数据进行恢复。
数据恢复:通过磁盘组的关联数据进行数据恢复。本发明中磁盘组中每个磁盘保存的数据都是完全一致的,在实际应用过程中,本发明最多允许同时损坏2个磁盘或磁盘对应的数据块,那么已经损坏的数据块可以通过至另外的没有损坏的磁盘和对应的数据块进行恢复。
条带化:条带化技术是一种自动的将I/O的负载均衡到多个物理磁盘上的技术,条带化技术就是将一块连续的数据分成很多小部分并把他们分别存储到不同磁盘上去。这就能使多个进程同时访问数据的多个不同部分而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的I/O并行能力,从而获得非常好的性能。很多操作系统、磁盘设备供应商、各种第三方软件都能做到条带化。
磁盘冲突:当多个进程同时访问磁盘时,会出现磁盘冲突。大多数磁盘系统都对访问次数(每秒的I/O操作)和数据传输率(每秒传输的数据量)有限制。当达到这些限制时,后面需要访问磁盘的进程就需要等待,这就是磁盘冲突。
磁盘条带化:磁盘条带化是指利用条带化技术将一块连续的数据分成很多小部分并把它们分别存储到不同磁盘上去。
条带:示例性地本发明将3个磁盘作为一组,得到一个磁盘组,那么在磁盘组中的每个磁盘上分别划分成的数据块(也叫磁盘块、磁盘数据块)大小完全相同,在每一个磁盘上获取一个数据块,然后将这些数据块进行组合,得到一个数据块组,这个数据块组就是一个条带。一个磁盘组上的所有数据块进行唯一的组合成若干个条带。一个条带包括了对应的数据块的逻辑块编号,数据块在条带中的索引编号,以及磁盘的连接地址等。
数据块:指的是一组按顺序连续排列在一起的几组记录,是主存储器与输入输出设备或外存储器之间进行传输的一个数据单位。数据的物理记录与数据的逻辑记录(逻辑上有联系,在存储器上占有一组邻接单元的数据单位)之间的对应关系有3种方式:①一个块即为一个记录;②一个块包含若干个逻辑记录;③一个逻辑记录占有几个块。数据块的大小可以是固定的或是可变的,块与块之间有间隙。设计数据块大小,受到多方面因素的影响,包括输入、输出效率,存储空间代价以及计算机应用特点等。
每一个数据块都有对应的一个索引节点,索引节点中保存有数据块的索引号,文件系统根据索引号来读取该数据块的数据。
本发明中的数据块按照4M、8M、16M、32M或64M进行分块得到,在整个分布式存储系统中,块的大小在系统初始化的时候就确定了下来。为了便于说明,本发明下述实施例中将磁盘上的数据块统一称之为磁盘数据块,且默认磁盘数据块的大小为32M进行描述。
本发明提供的数据存储方法应用于数据存储系统,该数据存储方法的执行主体可以具体为数据存储系统中的数据存储装置。如图1所示,本发明提供的数据存储系统可以包括:用户模块100、数据接入模块200、磁盘模块300和信息管理模块400。其中:
用户模块100,用于提供用户操作接口,将用户输入的目标数据传递给数据接入模块200。本发明中,用户模块100是用户打开文件(创建文件)、写文件内容(写入数据)、关闭文件等的入口。
数据接入模块200,用于接收并响应用户模块100发送的用户操作,如打开文件、文件管理、文件数据分块、数据标记、向信息管理模块400分配条带、条带中的磁盘和磁盘块的标记、写数据到磁盘模块300中对应磁盘的数据块上、向信息管理模块400汇报结果,返回用户模块100写入状态等操作。
本发明下述实施例提供的数据存储方法则立足于数据接入模块200进行描述。
磁盘模块300,用于提供多个磁盘,且所述多个磁盘中的每个磁盘均具有对外的数据读写接口。由此,信息管理模块400和数据接入模块300都可以通过各个磁盘提供的数据读写接口对磁盘进行管理和操作。
信息管理模块400,用于提供磁盘管理、磁盘组管理、条带管理与文件管理。
下面,申请人将从每个模块的角度,对本发明提供的数据存储方法进行描述。
1、用户模块100
本发明中的用户模块100主要是提供用户操作接口。用户在创建文件时,通过用户模块100输入创建文件的操作请求,进而用户模块100将该操作请求转发至数据接入模块200。数据接入模块200创建好文件后,向用户模块100返回文件的实例id,即oid(ObjectIdentifier,对象标识符)。
在创建好文件后,用户欲在文件中写入数据时,用户通过用户模块100向该创建好的文件中写入数据,用户模块100将用户写入的数据传递给数据接入模块200,进而数据接入模块200将数据写入到相应的磁盘后,给用户模块100返回一个写入状态。
用户模块100根据数据接入模块200返回的写入状态确认数据是否写入成功。若用户模块100确认数据写入成功,则可以继续写入数据,也可关闭文件操作;而若用户模块100确认数据写入失败,则直接关闭文件。
2、数据接入模块200
对于数据接入模块200实现创建文件的过程,如图2所示,方法包括:
步骤101,接收用户发送的创建文件的请求,所述请求包含所述文件的文件名。
在实际应用中,用户通过用户模块100发送创建文件的请求,用户模块100将该请求转发至数据接入模块200,此时数据接入模块200接收到用户发送的创建文件的请求。具体地,该请求中包含用户欲创建的文件的文件名。
步骤102,将所述请求转发至信息管理模块,以使得所述信息管理模块依据所述文件名判断所述文件是否存在;其中当所述信息管理模块判断所述文件不存在时,返回文件标识符描述符fid。
数据接入模块200接收到用户模块100发送的创建文件的请求后,将该请求继续转发至信息管理模块400,从而使得信息管理模块400依据所述文件名判断所述文件是否存在。
若文件存在,信息管理模块400会向数据接入模块200返回创建文件失败的消息。优选地该消息中可以包含创建文件失败的原因,比如文件已存在等。
若文件不存在,信息管理模块400会直接创建文件,并生成文件的fid(文件标识符描述符),进而将该fid返回给数据接入模块200。
步骤103,接收所述fid,并生成一个oid,且将所述fid与所述oid关联。
数据接入模块200接收到所述fid后,同时生成一个唯一的oid,且将所述fid与生成的oid关联。
步骤104,向所述用户返回创建成功消息,所述创建成功消息包含所述oid。
数据接入模块200在实现将fid与oid关联后,向用户模块100返回创建成功消息,该创建成功消息中包含所述oid。
用户通过用户模块100写入数据时,会将oid、待写入的数据(即目标数据)、数据长度同时传输到数据接入模块200,此时数据接入模块200实现的数据存储方法如图3所示,方法包括:
步骤201,获取待存储的目标数据,并将所述目标数据存储至内存数据块中。
本发明中,数据接入模块200接收到目标数据后,首先将目标数据存储到数据接入模块200的内存数据块中。
本发明中,所有磁盘上的磁盘数据块都是按照一定大小进行设置的,所有的磁盘数据块的大小相等,且磁盘数据块的大小与数据接入模块200的内存数据块的大小相等。磁盘数据块的大小决定了磁盘中存储的数据量的大小,为了便于描述,本发明假设磁盘数据块的大小是32M,数据接入模块200的内存数据块大小也是32M。
进一步,假设设置一个变量m表示当前已经写入到磁盘(也即磁盘数据块)中的数据量,初始化位0字节,最大值为n字节,n=32*1024*1024字节=33554432字节;s表示已经存储在内存数据块中的数据大小,初始值为0字节,最大值为n字节,n=32*1024*1024字节=33554432字节。
具体在本发明实现过程中,数据接入模块200首先获取内存数据块当前的剩余空间容量sz,以及所述目标数据的数据量length。其中,内存数据块当前的剩余空间容量sz=n-s。
进一步,数据接入模块200将内存数据块当前的剩余空间容量sz与目标数据的数据量length进行比较。若length小于或等于sz,说明当前内存数据块有足够存储空间存储目标数据,因此直接将目标数据存储至内存数据块中,此时已经存储在内存数据块中的数据大小s变更为s+length,同时length设置为0;若length大于sz,则说明当前内存数据块没有足够存储空间存储目标数据,此时将目标数据中的部分数据存储至内存数据块中,所述部分数据的数据量等于所述内存数据块的剩余空间容量,此时已经存储在内存数据块中的数据大小s变更为s+sz,目标数据的数据量length变更为length-sz。
对于目标数据的剩余数据length-sz而言,则继续作为下一次待存储的目标数据,在等待当前内存数据块中的数据成功存储到对应的磁盘数据块之后,清除所述内存数据块中已成功存储的数据,并将该目标数据的剩余数据作为当前待存储的目标数据,返回执行步骤201,将该目标数据的剩余数据存储到内存数据块中,进入到下一个存储管理周期。
步骤202,获取一条目标条带,并获取所述目标条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址。
其中所述目标条带中各个磁盘数据块的大小相等,且各个磁盘数据块的大小与所述内存数据块的大小相等,一个磁盘数据块对应一个磁盘地址。具体地,磁盘数据块的标识可以为磁盘数据块的逻辑块id,磁盘地址可以为磁盘的连接地址。
当内存数据块成功完成了所有目标数据的存储,或内存数据块中已存储满数据之后,数据接入模块200需要将该内存数据块中存储的数据存储至磁盘模块300中对应的目标磁盘的目标磁盘数据块上。此时,数据接入模块200需要向信息管理模块400申请获取一条目标条带,并获取该目标条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址。
在本发明实际应用过程中,目标条带可以是一条已经申请过的且存储有部分数据,但仍有部分空闲存储空间的条带,也可以是一条新条带。本发明为了实现存储空间的充分利用,充分利用每一条条带,因此优选地,本发明将目标数据优先保存至已经申请过的但仍有部分空闲存储空间的条带中。示例性地,本发明以一条条带包括3个磁盘数据块为例。
本发明中,对于每一条条带,当其被调用时,可以为其设置预设标识m,因为m表示当前已经写入到磁盘中的数据量,因此通过判断预设标识m的大小,即可确定当前是否存在已申请过的条带,以及如果存在,该条带的剩余存储空间大小。
具体地,当m大于0时,表示当前存在已申请过的条带,该条带的磁盘数据块中已经写入了部分数据,但仍有部分存储空间,此时数据接入模块200向信息管理模块400请求获取该条带,将该条带作为目标条带,并获取该条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址。当m等于0时,表示当前不存在已申请过的条带,此时直接向信息管理模块400申请获取一条新的条带,将该新条带作为目标条带,并获取该新条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址。
以一条条带包括3个磁盘数据块为例,信息管理模块400向数据接入模块200返回的条带(已申请过的条带或新条带)中包括有3个磁盘以及3个磁盘对应的磁盘数据块的逻辑块id,同时,信息管理模块400会将已经申请过的条带记录在当前文件对应的管理中,以便下次使用。
进一步可选地,本发明中,当数据接入模块200向信息管理模块400申请获取到一条新条带之后,数据接入模块200可以将该新条带中的3个磁盘数据块进行编号,例如分别为0号磁盘数据块、1号磁盘数据块和2号磁盘数据块,与此同时,0号磁盘数据块对应的磁盘为0号磁盘,1号磁盘数据块对应的磁盘为1号磁盘,2号磁盘数据块对应的磁盘为2号磁盘。因此可以理解为序号0代表0号磁盘数据块和0号磁盘,序号1代表1号磁盘数据块和1号磁盘,序号2代表2号磁盘数据块和2号磁盘。
进一步,分别设置对应各个磁盘数据块的磁盘有效标识,例如设置一个二进制位111,其中一个磁盘有效标识对应一个磁盘数据块,比如左边的1对应2号磁盘数据块,中间的1对应1号磁盘数据块,右边的1对应0号磁盘数据块,在初始设置时,可以将对应各个磁盘数据块的磁盘有效标识的初始值均设置为等于预设的第一设定值,如1。其中,当磁盘有效标识等于预设的第一设定值,如1时,表示与所述磁盘有效标识对应的磁盘数据块有效,当所述磁盘有效标识等于预设的第二设定值,如0时,表示与所述磁盘有效标识对应的磁盘数据块无效。比如二进制位为110时,表示2号磁盘数据块、2号磁盘以及1号磁盘数据块、1号磁盘均有效,而0号磁盘数据块以及0号磁盘无效。本发明中当磁盘有效标识等于预设的第二设定值时,说明这个磁盘出现了坏块或磁盘损坏,或磁盘连接不通等异常问题。
在本发明实际应用过程中,如果在数据存储过程中,某个磁盘保存数据失败,则将其对应的磁盘有效标识的值设置为0。
步骤203,依据各个磁盘数据块对应的磁盘地址,确定并连接各个目标磁盘。
数据接入模块200依据获取到的各个磁盘数据块对应的磁盘地址,确定并连接各个目标磁盘。优选地,数据接入模块200可以首先依据各个磁盘数据块的磁盘有效标识,确定出各个有效的磁盘数据块,进而依据确定出的各个有效的磁盘数据块对应的磁盘地址,连接各个有效的目标磁盘。
具体地,数据接入模块200根据磁盘有效位判断目标条带中3个磁盘的有效性。如果磁盘有效位的值为1,则连接该磁盘,而如果磁盘有效位的值为0,则不连接该磁盘。当然,如果数据接入模块200根据磁盘有效位判断目标条带的3个磁盘中有2个甚至3个都是无效的,则数据接入模块200确定该目标条带异常,并向信息管理模块400重新申请一条新的条带,并将该新条带作为目标条带。
步骤204,依据所述目标条带中各个磁盘数据块的标识,将所述目标数据并行传输至各个目标磁盘上的目标磁盘数据块,以使得各个目标磁盘上的目标磁盘数据块完成对所述目标数据的存储。
数据接入模块200连接各个目标磁盘后,依据磁盘数据块的逻辑块id确定出各个目标磁盘上的目标磁盘数据块,进而将目标数据并行传输至各个目标磁盘上的目标磁盘数据块,从而使得各个目标磁盘上的目标磁盘数据块完成对所述目标数据的存储。
各个目标磁盘数据块在存储目标数据时,将m作为数据保存的偏移量。如果m等于0,说明目标磁盘数据块中未存储有数据,此时从目标磁盘数据块的初始位开始存储数据,如果m大于0,说明目标磁盘数据块中已存储有数据,此时从目标磁盘数据块的初始位加m个字节之后存储数据。其中目标磁盘数据块中存储的数据大小为s-m,s-m一定小于等于32M。
步骤205,确定所述目标条带中,数据存储成功的目标磁盘数据块的个数。
各个目标磁盘数据块完成对目标数据的存储之后,数据接入模块需要确定出在所述目标条带中,数据存储成功的目标磁盘数据块的个数。
具体在本发明中,当目标磁盘数据块完成对目标数据的存储之后,该目标磁盘数据块所在的目标磁盘会主动向数据接入模块200发送存储结果,该存储结果包括数据存储成功的结果或者数据存储失败的结果。
鉴于数据接入模块200向磁盘发送目标数据以及磁盘返回存储结果的过程需要一定的时间,以及考虑到数据写入磁盘时,不同磁盘设备之间的延迟、繁忙程度等因素的影响,虽然数据接入模块200是同时并行传输至各个目标磁盘,但不同目标磁盘返回存储结果的时间可能不同。因此,本发明可以预设一个时间段(即等待时间),通常为从数据接入模块200发送目标数据的起始时间开始的30秒时间内,接收各个目标磁盘返回的存储结果。如果在该30秒时间内没有接收到目标磁盘返回的存储结果,则直接确认该目标磁盘对应的磁盘数据块写数据失败,并将该目标磁盘对应的磁盘数据块的磁盘有效位的值设置为0。
数据接入模块200在预设时间段内接收到目标磁盘返回的存储结果后,依据存储结果判断目标磁盘的数据存储是否成功。其中当存储结果表示数据存储失败时,本发明直接将返回所述存储结果的目标磁盘对应的磁盘有效标识设置为0。
在30秒之后,数据接入模块200统计所述目标条带中,磁盘有效标识等于1的个数,此时统计得到的磁盘有效标识等于1的个数便是目标条带中数据存储成功的目标磁盘数据块的个数。
步骤206,当所述数据存储成功的目标磁盘数据块的个数大于或等于预设阈值时,确定所述目标条带存储数据成功。
以一条条带包括3个磁盘数据块为例,本发明中的预设阈值优选等于2。当数据存储成功的目标磁盘数据块的个数大于或等于2时,确定所述目标条带存储数据成功。
本发明中,数据接入模块200将各个磁盘的写成功结果、二进制位、相关的条带信息、文件fid、已经写入磁盘的数据大小(s-m)等汇报给信息管理模块400。信息管理模块400会将条带保存到当前文件的记录中,并标记条带的使用状态,将二进制位写入到条带中,更新文件的大小等。
此外,数据接入模块200将数据成功写入磁盘中后,将文件的写变量m设置为s,若s等于m,可以确定待写入的目标数据已经完全写入到对应的磁盘中了,此时将s、m均设置为0,并将当前文件记录的条带信息删除。
可选地,当数据存储成功的目标磁盘数据块的个数小于2时,确定所述目标条带异常,此时放弃所述目标条带,并返回执行重新申请一条新条带,并将所述新条带作为所述目标条带,获取所述新条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址的步骤。
本发明提供的数据存储方法采用的是备份制方法,即一个条带中最多允许一个磁盘损坏,需要保证至少有两个磁盘能够成功存储数据。如果一个条带中存在超过2个磁盘无效,数据接入模块200会向信息管理模块400重新申请一个新的条带。如果数据接入模块200已经在该条带中存储了至少部分数据,即该条带的m大于0,此时将m设置为0,并将该条带标记为条带替换,并重新将内存数据块中的目标数据写入申请的新条带对应磁盘的磁盘数据块中,进而重新统计写磁盘成功的个数。
如果新条带数据写入成功,信息管理模块400的文件管理中会将新条带替换旧条带。如果内存数据块中的内容是第一次刷新到磁盘,则汇报给信息管理模块400时将新条带添加到文件管理中。
如果尝试多次仍旧存在写磁盘失败的个数大于等于2个,此时可以初步确定文件系统可能存在问题了,由此可以向用户模块100返回数据写入失败的消息。
其中,在步骤206确定目标条带存储数据成功之后,本发明还包括:
数据接入模块200检查用户传入的目标数据的剩余数据length是否大于0,若length等于0,说明所有目标数据已成功写入对应的磁盘中,此时直接返回用户写数据大小和成功状态。若length大于0,说明还有部分目标数据并未成功写入对应的磁盘中,此时返回步骤201,继续数据的写入流程。
此外在本发明中,当文件关闭时,系统直接将数据接入模块200中对应文件的内存数据块释放,对应的文件管理进行释放。
本发明提供的数据存储方法中,首先获取待存储的目标数据,并将所述目标数据存储至内存数据块中,进而获取一条目标条带,并获取所述目标条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址,然后依据各个磁盘数据块对应的磁盘地址,确定并连接各个目标磁盘,并依据所述目标条带中各个磁盘数据块的标识,将所述目标数据并行传输至各个目标磁盘上的目标磁盘数据块,以使得各个目标磁盘上的目标磁盘数据块完成对所述目标数据的存储。当确定所述目标条带中,数据存储成功的目标磁盘数据块的个数大于或等于预设阈值时,确定所述目标条带存储数据成功。本发明的数据存储过程中,是将内存数据块中存储的目标数据并行传输至各个目标磁盘上的目标磁盘数据块,该并行传输数据的方式极大地提高了数据存储的效率,缩短了数据存储的等待时间。同时,每一条条带上都保证有多个目标磁盘数据块成功完成了数据存储,同一条条带上的多个目标磁盘数据块间均存储有相同的数据实现了数据备份,保证了数据存储的安全性与可靠性。
3、磁盘模块300
磁盘模块300是所有磁盘的集合。每一个磁盘对外提供了一个接口,该接口一般是给数据接入模,200进行读写数据使用的。
数据接入模块200通过磁盘的接口、数据块的逻辑块id确定唯一的一个磁盘的唯一的一个磁盘数据块。
4、信息管理模块400
信息管理模块400主要是管理磁盘、磁盘组、磁盘组的条带、文件管理等。
其中条带管理:在数据接入模块200申请条带时,将对应的条带标记为正在使用。若保存目标数据失败,将条带恢复成初始状态;若保存目标数据成功,将该条带标记为已经使用,且将该条带的二进制位存放到该条带中,表示这个条带中对应的磁盘对应的磁盘数据块是有效的,并同时将条带的信息保存到文件管理对应的文件中。
其中文件管理,包括文件名称、文件的大小、条带列表。
其中条带列表中保存的是文件的存储的数据相关联的条带信息。文件大小是保存的实际文件内容的大小。
本发明中涉及的条带替换,指的是当第一次存储的条带对应的磁盘的磁盘数据块是数据存储成功的,那么数据接入模块200将已经写入的数据和条带信息保存在文件管理中,假设这个是条带1。由于条带1在前面存储的时候并没有完全使用到条带中对应磁盘的磁盘数据块,在后续存储新的文件数据的时候,继续在这个条带对应的磁盘的磁盘数据块后面继续存储,若这个时候磁盘发生了坏块、或网络问题、或其他的不可预知的问题导致数据存储失败,比如3个磁盘对应的磁盘数据块只存储成功了一个磁盘对应的磁盘数据块,或全部数据存储失败,都是不安全的,这个时候需要重新选择一个新的条带,如条带2进行数据存储,并将该新的条带2替换掉之前的条带1。使用新条带2存储数据时如果失败,则继续选择一条新的条带3,并替换掉之前的条带2,如此反复。如果替换条带的次数超过预设值,如3,说明分布式存储系统可能存在问题,此时确认所有文件操作失败.
若替换的条带2能够成功完成数据存储,那么在文件管理中将新的条带的信息替换掉条带1。同时信息管理模块400将条带1对应的条带标记为未使用状态,清理二进制位信息;将新的条带2标记为已经使用,设置新的条带2对应的二进制位信息。
基于前文本发明提供的一种数据存储方法,本发明还提供一种数据存储装置,如图4所示,数据存储装置可以包括:
第一获取单元10,用于获取待存储的目标数据;
存储单元20,用于将所述目标数据存储至内存数据块中;
第二获取单元30,用于获取一条目标条带,并获取所述目标条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址;其中所述目标条带中各个磁盘数据块的大小相等,且各个磁盘数据块的大小与所述内存数据块的大小相等,一个磁盘数据块对应一个磁盘地址;
连接单元40,用于依据各个磁盘数据块对应的磁盘地址,确定并连接各个目标磁盘;
传输单元50,用于依据所述目标条带中各个磁盘数据块的标识,将所述目标数据并行传输至各个目标磁盘上的目标磁盘数据块,以使得各个目标磁盘上的目标磁盘数据块完成对所述目标数据的存储;
第一确定单元60,用于确定所述目标条带中,数据存储成功的目标磁盘数据块的个数;
第二确定单元70,用于当所述数据存储成功的目标磁盘数据块的个数大于或等于预设阈值时,确定所述目标条带存储数据成功。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种数据存储方法、装置及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
获取待存储的目标数据,并将所述目标数据存储至内存数据块中;
获取一条目标条带,并获取所述目标条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址;其中所述目标条带中各个磁盘数据块的大小相等,且各个磁盘数据块的大小与所述内存数据块的大小相等,一个磁盘数据块对应一个磁盘地址;
依据各个磁盘数据块对应的磁盘地址,确定并连接各个目标磁盘;
依据所述目标条带中各个磁盘数据块的标识,将所述目标数据并行传输至各个目标磁盘上的目标磁盘数据块,以使得各个目标磁盘上的目标磁盘数据块完成对所述目标数据的存储;
确定所述目标条带中,数据存储成功的目标磁盘数据块的个数;
当所述数据存储成功的目标磁盘数据块的个数大于或等于预设阈值时,确定所述目标条带存储数据成功,以实现对所述目标数据的数据备份,所述数据存储成功的目标磁盘数据块均存储有所述目标数据。
2.根据权利要求1所述的方法,其特征在于,将所述目标数据存储至内存数据块中包括:
获取所述内存数据块的剩余空间容量,以及所述目标数据的数据量;
当所述目标数据的数据量小于或等于所述内存数据块的剩余空间容量时,将所述目标数据存储至所述内存数据块中;
当所述目标数据的数据量大于所述内存数据块的剩余空间容量时,将所述目标数据中的部分数据存储至所述内存数据块中,所述部分数据的数据量等于所述内存数据块的剩余空间容量;其中,当在确定所述目标条带存储数据成功之后,清除所述内存数据块中已成功存储的数据,并将所述目标数据的剩余数据作为当前待存储的目标数据,返回执行所述获取所述内存数据块的剩余空间容量,以及所述目标数据的数据量的步骤。
3.根据权利要求1所述的方法,其特征在于,所述获取一条目标条带,并获取所述目标条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址包括:
依据预设标识,判断当前是否存在已申请过的条带;
如果存在,则将所述已申请过的条带作为所述目标条带,获取所述已申请过的条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址;
如果不存在,申请一条新条带,并将所述新条带作为所述目标条带,获取所述新条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址。
4.根据权利要求3所述的方法,其特征在于,当申请一条新条带,并将所述新条带作为所述目标条带时,所述方法还包括:
为所述新条带中各个磁盘数据块进行编号,并分别设置对应各个磁盘数据块的磁盘有效标识;一个磁盘有效标识对应一个磁盘数据块,当所述磁盘有效标识等于预设的第一设定值时,表示与所述磁盘有效标识对应的磁盘数据块有效,当所述磁盘有效标识等于预设的第二设定值时,表示与所述磁盘有效标识对应的磁盘数据块无效。
5.根据权利要求4所述的方法,其特征在于,对应各个磁盘数据块的磁盘有效标识的初始值均等于预设的第一设定值,所述确定所述目标条带中,数据存储成功的目标磁盘数据块的个数包括:
获取在预设时间段内接收到的各个目标磁盘返回的存储结果;其中对于未在所述预设时间段内返回所述存储结果的目标磁盘,直接将其对应的磁盘有效标识设置为预设的第二设定值;
当所述存储结果表示数据存储失败时,将返回所述存储结果的目标磁盘对应的磁盘有效标识设置为预设的第二设定值;
统计所述目标条带中,磁盘有效标识等于预设的第一设定值的个数;
将所述磁盘有效标识等于预设的第一设定值的个数确定为所述目标条带中,数据存储成功的目标磁盘数据块的个数。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当所述数据存储成功的目标磁盘数据块的个数小于预设阈值时,确定所述目标条带异常;
放弃所述目标条带,并返回执行重新申请一条新条带,并将所述新条带作为所述目标条带,获取所述新条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址的步骤。
7.根据权利要求1所述的方法,其特征在于,每一条目标条带包括3个磁盘数据块;所述预设阈值等于2。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
接收用户发送的创建文件的请求,所述请求包含所述文件的文件名;
将所述请求转发至信息管理模块,以使得所述信息管理模块依据所述文件名判断所述文件是否存在;其中当所述信息管理模块判断所述文件不存在时,返回文件标识符描述符fid;
接收所述fid,并生成一个对象标识符oid,且将所述fid与所述oid关联;
向所述用户返回创建成功消息,所述创建成功消息包含所述oid。
9.一种数据存储装置,其特征在于,包括:
第一获取单元,用于获取待存储的目标数据;
存储单元,用于将所述目标数据存储至内存数据块中;
第二获取单元,用于获取一条目标条带,并获取所述目标条带中各个磁盘数据块的标识以及各个磁盘数据块对应的磁盘地址;其中所述目标条带中各个磁盘数据块的大小相等,且各个磁盘数据块的大小与所述内存数据块的大小相等,一个磁盘数据块对应一个磁盘地址;
连接单元,用于依据各个磁盘数据块对应的磁盘地址,确定并连接各个目标磁盘;
传输单元,用于依据所述目标条带中各个磁盘数据块的标识,将所述目标数据并行传输至各个目标磁盘上的目标磁盘数据块,以使得各个目标磁盘上的目标磁盘数据块完成对所述目标数据的存储;
第一确定单元,用于确定所述目标条带中,数据存储成功的目标磁盘数据块的个数;
第二确定单元,用于当所述数据存储成功的目标磁盘数据块的个数大于或等于预设阈值时,确定所述目标条带存储数据成功,以实现对所述目标数据的数据备份,所述数据存储成功的目标磁盘数据块均存储有所述目标数据。
10.一种数据存储系统,其特征在于,包括:用户模块、数据接入模块、磁盘模块和信息管理模块;其中,所述数据接入模块为权利要求9所述的数据存储装置;
所述用户模块,用于提供用户操作接口,将用户输入的目标数据传递给所述数据接入模块;
所述磁盘模块,用于提供多个磁盘,所述多个磁盘中每个磁盘均具有对外的数据读写接口;
所述信息管理模块,用于提供磁盘管理、磁盘组管理、条带管理与文件管理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910031171.3A CN111435286B (zh) | 2019-01-14 | 2019-01-14 | 一种数据存储方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910031171.3A CN111435286B (zh) | 2019-01-14 | 2019-01-14 | 一种数据存储方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111435286A CN111435286A (zh) | 2020-07-21 |
CN111435286B true CN111435286B (zh) | 2023-12-05 |
Family
ID=71580547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910031171.3A Active CN111435286B (zh) | 2019-01-14 | 2019-01-14 | 一种数据存储方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111435286B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113867644B (zh) * | 2021-09-30 | 2023-08-04 | 苏州浪潮智能科技有限公司 | 磁盘阵列优化方法、装置、计算机设备及存储介质 |
CN113821373B (zh) * | 2021-11-19 | 2022-02-22 | 苏州浪潮智能科技有限公司 | 提高磁盘地址转换速度的方法、系统、设备和存储介质 |
CN116737619B (zh) * | 2023-08-15 | 2023-11-03 | 苏州浪潮智能科技有限公司 | 数据请求系统、方法、装置、计算机设备和存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101118508A (zh) * | 2007-08-24 | 2008-02-06 | 成都索贝数码科技股份有限公司 | 一种数据的安全存储方法 |
CN101625627A (zh) * | 2009-08-05 | 2010-01-13 | 成都市华为赛门铁克科技有限公司 | 写入数据的方法、磁盘冗余阵列的控制器及磁盘冗余阵列 |
CN101916173A (zh) * | 2010-08-27 | 2010-12-15 | 杭州华三通信技术有限公司 | 一种基于raid的数据读写方法及其系统 |
CN102508733A (zh) * | 2011-09-22 | 2012-06-20 | 杭州华三通信技术有限公司 | 一种基于磁盘阵列的数据处理方法及磁盘阵列管理器 |
CN102779180A (zh) * | 2012-06-29 | 2012-11-14 | 华为技术有限公司 | 数据存储系统的操作处理方法,数据存储系统 |
CN104007936A (zh) * | 2014-01-07 | 2014-08-27 | 华为技术有限公司 | 访问数据的方法及装置 |
CN104125285A (zh) * | 2014-08-02 | 2014-10-29 | 成都致云科技有限公司 | 一种高io吞吐量的云存储读写方法 |
US9047306B1 (en) * | 2005-10-17 | 2015-06-02 | Hewlett-Packard Development Company, L.P. | Method of writing data |
CN104881370A (zh) * | 2015-05-11 | 2015-09-02 | 中国人民解放军国防科学技术大学 | 协同使用纠删码和纠错码的可靠闪存存储系统构建方法 |
CN105511802A (zh) * | 2015-11-24 | 2016-04-20 | 北京达沃时代科技有限公司 | 写缓存的方法和装置以及磁盘缓存区的同步方法和装置 |
CN107346209A (zh) * | 2016-05-08 | 2017-11-14 | 上海霄云信息科技有限公司 | 一种多磁盘聚合式数据存储系统及其实现方法与应用方法 |
CN107807794A (zh) * | 2017-10-31 | 2018-03-16 | 新华三技术有限公司 | 一种数据存储方法和装置 |
CN108958660A (zh) * | 2018-07-02 | 2018-12-07 | 深圳市茁壮网络股份有限公司 | 分布式存储系统及其数据处理方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3592640B2 (ja) * | 2001-01-09 | 2004-11-24 | 株式会社東芝 | ディスク制御システムおよびディスク制御方法 |
JP3579389B2 (ja) * | 2001-11-30 | 2004-10-20 | 株式会社東芝 | ディスクアレイ装置及び同装置におけるデータ復旧方法 |
KR100490723B1 (ko) * | 2002-11-29 | 2005-05-24 | 한국전자통신연구원 | 파일 레벨 스트라이핑 장치 및 방법 |
JP2005182683A (ja) * | 2003-12-24 | 2005-07-07 | Hitachi Ltd | データ転送方法及びシステム並びにプログラム |
US7873782B2 (en) * | 2004-11-05 | 2011-01-18 | Data Robotics, Inc. | Filesystem-aware block storage system, apparatus, and method |
US8719594B2 (en) * | 2012-02-15 | 2014-05-06 | Unisys Corporation | Storage availability using cryptographic splitting |
US9563509B2 (en) * | 2014-07-15 | 2017-02-07 | Nimble Storage, Inc. | Methods and systems for storing data in a redundant manner on a plurality of storage units of a storage system |
-
2019
- 2019-01-14 CN CN201910031171.3A patent/CN111435286B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9047306B1 (en) * | 2005-10-17 | 2015-06-02 | Hewlett-Packard Development Company, L.P. | Method of writing data |
CN101118508A (zh) * | 2007-08-24 | 2008-02-06 | 成都索贝数码科技股份有限公司 | 一种数据的安全存储方法 |
CN101625627A (zh) * | 2009-08-05 | 2010-01-13 | 成都市华为赛门铁克科技有限公司 | 写入数据的方法、磁盘冗余阵列的控制器及磁盘冗余阵列 |
CN101916173A (zh) * | 2010-08-27 | 2010-12-15 | 杭州华三通信技术有限公司 | 一种基于raid的数据读写方法及其系统 |
CN102508733A (zh) * | 2011-09-22 | 2012-06-20 | 杭州华三通信技术有限公司 | 一种基于磁盘阵列的数据处理方法及磁盘阵列管理器 |
CN102779180A (zh) * | 2012-06-29 | 2012-11-14 | 华为技术有限公司 | 数据存储系统的操作处理方法,数据存储系统 |
CN104007936A (zh) * | 2014-01-07 | 2014-08-27 | 华为技术有限公司 | 访问数据的方法及装置 |
CN104125285A (zh) * | 2014-08-02 | 2014-10-29 | 成都致云科技有限公司 | 一种高io吞吐量的云存储读写方法 |
CN104881370A (zh) * | 2015-05-11 | 2015-09-02 | 中国人民解放军国防科学技术大学 | 协同使用纠删码和纠错码的可靠闪存存储系统构建方法 |
CN105511802A (zh) * | 2015-11-24 | 2016-04-20 | 北京达沃时代科技有限公司 | 写缓存的方法和装置以及磁盘缓存区的同步方法和装置 |
CN107346209A (zh) * | 2016-05-08 | 2017-11-14 | 上海霄云信息科技有限公司 | 一种多磁盘聚合式数据存储系统及其实现方法与应用方法 |
CN107807794A (zh) * | 2017-10-31 | 2018-03-16 | 新华三技术有限公司 | 一种数据存储方法和装置 |
CN108958660A (zh) * | 2018-07-02 | 2018-12-07 | 深圳市茁壮网络股份有限公司 | 分布式存储系统及其数据处理方法和装置 |
Non-Patent Citations (3)
Title |
---|
Synchronous I/O Scheduling of Independent Write Caches for an Array of SSDs;Junghee Lee;IEEE Computer Architecture Letters ( Volume: 14, Issue: 1, 01 Jan.-June 2015);79-82 * |
基于备份的RAID6在线重构框架;徐伟;计算机应用与软件;48-54+101 * |
基于轮转部署的RAID6分布式存储系统扩容方案;高帅;梁杰;吴思;许胤龙;;计算机应用与软件(第08期);127-131+195 * |
Also Published As
Publication number | Publication date |
---|---|
CN111435286A (zh) | 2020-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11153380B2 (en) | Continuous backup of data in a distributed data store | |
US10649827B2 (en) | Two level addressing in storage clusters | |
CN106407040B (zh) | 一种远程数据复制方法及系统 | |
US10534768B2 (en) | Optimized log storage for asynchronous log updates | |
JP4568115B2 (ja) | ハードウェアベースのファイルシステムのための装置および方法 | |
US9880933B1 (en) | Distributed in-memory buffer cache system using buffer cache nodes | |
US7882304B2 (en) | System and method for efficient updates of sequential block storage | |
US7293145B1 (en) | System and method for data transfer using a recoverable data pipe | |
US9582213B2 (en) | Object store architecture for distributed data processing system | |
US20110029487A1 (en) | Simultaneously accessing file objects through Web services and file services | |
US8219749B2 (en) | System and method for efficient updates of sequential block storage | |
US20100262802A1 (en) | Reclamation of Thin Provisioned Disk Storage | |
CN111435286B (zh) | 一种数据存储方法、装置和系统 | |
US9307024B2 (en) | Efficient storage of small random changes to data on disk | |
CN110603518A (zh) | 复合聚合架构 | |
US20210165573A1 (en) | Managing Replication State for Deleted Objects | |
CN110134338B (zh) | 一种分布式存储系统及其数据冗余保护方法和相关设备 | |
US9201609B2 (en) | Efficient replication of changes to a byte-addressable persistent memory over a network | |
CN110147203A (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
CN111352579B (zh) | 数据存储方法及装置 | |
US5802557A (en) | System and method for caching information in a digital data storage subsystem | |
CN114281267B (zh) | 分布式存储系统间的数据迁移方法和装置 | |
CN114428764B (zh) | 文件写入方法、系统、电子设备及可读存储介质 | |
CN117235027A (zh) | 数据库系统、数据库日志归档方法及装置 | |
CN117591475A (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 |