CN109976662B - 数据存储方法、装置及分布式存储*** - Google Patents
数据存储方法、装置及分布式存储*** Download PDFInfo
- Publication number
- CN109976662B CN109976662B CN201711450554.1A CN201711450554A CN109976662B CN 109976662 B CN109976662 B CN 109976662B CN 201711450554 A CN201711450554 A CN 201711450554A CN 109976662 B CN109976662 B CN 109976662B
- Authority
- CN
- China
- Prior art keywords
- storage
- stored
- volume
- file
- logic
- 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
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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
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
本申请提供一种数据存储方法、装置及分布式存储***,所述方法包括:当检测到存在逻辑存储卷的已存储数据量高于预设上限,且存在逻辑存储卷的已存储数据量低于预设下限时,将分布式存储***设置为第一存储模式;在接收到待存储文件时,为待存储文件确定存储地址;当为待存储文件确定的存储地址为多个逻辑存储卷中已存储数据量最高的逻辑存储卷时,将该逻辑存储卷作为第一逻辑存储卷,并选取第二逻辑存储卷;将待存储文件存入第二逻辑存储卷,并在第一逻辑存储卷上建立该待存储文件对应的链接文件。如此,在不改变原有数据调度策略的情况下,可以自动地实现待存储文件的重分配,避免了各个逻辑存储卷之间存储负载不均衡的问题。
Description
技术领域
本申请涉及数据存储技术领域,具体而言,涉及一种数据存储方法、装置及分布式存储***。
背景技术
分布式存储***是由多个物理上相对独立的存储节点设备共同组成存储集群***,通过网络,将多台存储节点上的物理资源形成一个统一的大存储池对外提供存储服务,可以有效提高数据存储的容灾率。在分布式存储***中,待存储数据或文件通过一些预设的调度策略被分配到不同的逻辑存储卷进行存储。其中,现有的分布式存储***的一种调度方式是根据文件名的哈希值确定为待存储文件确定逻辑存储卷,以此来实现存储负载均衡。但是在上述这种调度方式中,当有新加入的逻辑存储卷或者之前故障的逻辑存储卷恢复工作状态时,这部分逻辑存储卷的已存储数据量会明显少于其他逻辑存储卷,此时依然按照根据文件名哈希值调度待存储文件的方式,会导致各逻辑存储卷之间的存储负载量严重不均衡,影响***的存储效率,还可能到时数据丢失。
发明内容
为了克服现有技术中的上述不足,本申请的目的在于提供一种数据存储方法,应用于分布式存储***,所述分布式存储***包括多个逻辑存储卷;所述方法包括:
检测每个所述逻辑存储卷的已存储数据量;
当检测到存在至少一个所述逻辑存储卷的已存储数据量高于预设上限,且存在至少一个所述逻辑存储卷的已存储数据量低于预设下限时,将所述分布式存储***设置为第一存储模式;
在所述第一存储模式下接收到待存储文件时,为所述待存储文件确定存储地址;
当为所述待存储文件确定的存储地址为所述多个逻辑存储卷中已存储数据量最高的逻辑存储卷时,将该逻辑存储卷作为第一逻辑存储卷,并在其他所述逻辑存储卷中选取一个作为第二逻辑存储卷;
将所述待存储文件存入所述第二逻辑存储卷,并在所述第一逻辑存储卷上建立该待存储文件对应的链接文件,使所述链接文件指向存储于所述第二逻辑存储卷上的所述待存储文件。
进一步地,在上述方法中,所述方法还包括:
当检测到所有所述逻辑存储卷的已存储数据量均低于预设上限,或所有所述逻辑存储卷的已存储数据量均高于预设下限时,将所述分布式存储***设置为第二存储模式;
在所述第二存储模式下接收到待存储文件时,为所述待存储文件确定存储地址,将所述待存储文件存入所述确定的存储地址对应的逻辑存储卷。
进一步地,在上述方法中,选取的所述第二逻辑存储卷为所述逻辑存储卷中已存储数据量最小的一个逻辑存储卷。
进一步地,在上述方法中,所述为所述待存储文件确定存储地址的步骤,包括:
计算所述待存储文件的文件名哈希值,根据所述文件名哈希值确定该待存储文件的存储地址。
进一步地,在上述方法中,所述检测每个所述逻辑存储卷的已存储数据量的步骤,包括:
每间隔预设检测时长对每个所述逻辑存储卷的已存储数据量进行检测。
进一步地,在上述方法中,所述方法还包括:
检测被标识为故障的逻辑存储卷中已存储数据的存储时长,其中,逻辑存储卷在被标识为故障后不接收待存储文件;
当所述被标识为故障的逻辑存储卷中已存储数据的存储时长大于预设的留存期时长时,清除该逻辑存储卷上的数据,并将该逻辑存储卷标识为可用,使该逻辑存储卷可以重新接收并存储待存储文件。
进一步地,在上述方法中,所述分布式存储***包括多个物理存储节点,每个所述物理存储节点包括多个相对独立的物理存储空间,每个所述逻辑存储卷由多个位于不同物理存储节点上的物理存储空间组成;所述待存储文件通过纠删码存储方式被分为多个数据分片分别存储在相应逻辑存储卷的多个物理存储空间中。
进一步地,在上述方法中,所述逻辑存储卷的已存储数据量为该逻辑存储卷上已存文件占该逻辑存储卷可存储数据容量的百分比。
本申请的另一目的在于提供一种数据存储装置,应用于分布式存储***,所述分布式存储***包括多个逻辑存储卷;所述装置包括:
检测模块,用于所述分布式存储***检测每个所述逻辑存储卷的已存储数据量;
模式切换模块,用于当检测到存在至少一个所述逻辑存储卷的已存储数据量高于预设上限,且存在至少一个所述逻辑存储卷的已存储数据量低于预设下限时,将所述分布式存储***设置为第一存储模式;
存储地址确定模块,用于在所述第一存储模式下接收到待存储文件时,为所述待存储文件确定存储地址;
选取模块,用于当为所述待存储文件确定的存储地址为所述多个逻辑存储卷中已存储数据量最高的逻辑存储卷时,将该逻辑存储卷作为第一逻辑存储卷,并在其他所述逻辑存储卷中选取一个作为第二逻辑存储卷;
转存模块,用于将所述待存储文件存入所述第二逻辑存储卷,并在所述第一逻辑存储卷上建立该待存储文件对应的链接文件,使所述链接文件指向存储于所述第二逻辑存储卷上的所述待存储文件。
本申请的另一目的在于提供一种分布式存储***,所述分布式存储***包括多个物理存储节点,每个所述物理存储节点包括多个相对独立的物理存储空间;分别位于不同所述物理存储节点上的多个物理存储空间组成逻辑存储卷;每个所述物理存储节点包括存储器和处理器;
所述存储器用于存储可执行的计算机程序;
各所述处理器用于执行相应的所述计算机程序,以使所述分布式存储***实现本申请提供的所述数据存储方法。
相对于现有技术而言,本申请具有以下有益效果:
本申请提供的数据存储方法、装置及分布式存储***,根据各逻辑存储卷的已存储数据量判断启动第一存储模式,在第一存储模式下自动地使用已存储数据量较少的逻辑存储卷分担已存储数据量较多的逻辑存储卷的存储压力。如此,当有新的逻辑存储卷加入或者故障逻辑存储卷恢复时,在不改变原有数据调度策略的情况下,可以自动地实现待存储文件的重分配,避免了各个逻辑存储卷之间存储负载不均衡的问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的分布式存储***的示意图;
图2为本申请实施例提供的数据存储方法的步骤流程示意图之一;
图3为本申请实施例提供的数据存储方法的步骤流程示意图之二;
图4为本申请实施例提供的数据存储方法的步骤流程示意图之三;
图5为本申请实施例提供的数据存储装置的功能模块示意图。
图标:100-分布式存储***;110-逻辑存储卷;120-物理存储节点;121-物理存储空间;130-数据存储装置;131-检测模块;132-模式切换模块;133-存储地址确定模块;134-选取模块;135-转存模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
经发明人研究发现,应用在一些领域的分布式存储***中,常通过文件名哈希值的方式为待存储文件确定存储位置,例如,在视频监控领域常采用这种调度方式。
在上述视频监控领域的分布式存储***,分布式存储***会根据各个逻辑存储卷总体的已存储数据量计算一个数据的留存期,当已存储文件的存储时间超过所述留存期时,对数据进行删除。如此,根据所述留存期对已存储文件进行滚动删除,来保证分布式存储***始终存储近一段时间内的视频监控数据。
在上述场景中,如果某个逻辑存储卷出现故障,该故障的逻辑存储卷无法继续接收待存储文件。这时,分布式存储***会根据一些故障处理策略将需要存至该故障的逻辑存储卷的待存储文件存储至其他逻辑存储卷。
当故障的逻辑存储卷恢复或者被新的逻辑存储卷替代时,这个逻辑存储卷的已存储数据量可能会明显低于其他正常工作的逻辑存储卷,导致各逻辑存储卷的存储负载不均衡。
但是,此时分布式存储***在计算留存期时,不会考虑各逻辑存储卷存储负载不均衡的问题,依然根据所有逻辑存储卷的已存储数据量确定留存期,并继续按照文件名哈希值进行待存储文件的调度。这样计算出的留存期是不合理的,会导致之前正常工作的逻辑存储卷可能已近存满,但是已存储的数据还未达到留存期无法删除,可能造成待存储文件的丢失。
基于上述研究,发明人提出了一种解决上述问题的数据存储方案,下面在本实施例中对该方案进行详细阐述。
首先,请参照图1,本实施例提供一种分布式存储***100的示意图,所述分布式存储***100可以包括多个相对独立的逻辑存储卷110。
进一步地,在本实施例中,所述分布式存储***100包括多个物理存储节点120,每个所述物理存储节点120包括多个相对独立的物理存储空间121,(例如,相对独立工作的磁盘或者磁盘阵列)。其中,每个所述物理存储节点120包括各自的处理器及存储器,所述存储器中存储有可执行的计算机程序,所述处理器用于执行所述计算机程序。
每个所述逻辑存储卷110由多个位于不同所述物理存储节点120上的物理存储空间121组成,所述待存储文件通过纠删码存储方式被分为多个数据分片分别存储在逻辑存储卷110的多个物理存储空间121中。
例如,在本实施例中,在采用n+m纠删码算法对待存储文件进行处理,将所述待存储文件分割位n个原始数据分片及并计算获得m个冗余数据分片。当存储的不大于m个的数据分片出现故障时,可以通过其他数据分片计算恢复故障的数据分片的数据。
对应地,所述分布式存储***100包括至少n+m个物理存储节点120,每个所述逻辑存储卷110由多个位于n+m个不同所述物理存储节点120上的物理存储空间121组成,所述逻辑存储卷110的每个物理存储空间121用于存储一个待存储文件的原始数据分片或者冗余数据分片,如图1所示。
请参照图2,图2为应用于图1所示的分布式存储***100的一种数据方法的流程图,以下将对所述方法包括各个步骤进行详细阐述。
步骤S110,检测每个所述逻辑存储卷110的已存储数据量。
在本实施例中,所述分布式存储***100每间隔预设检测时长对每个所述逻辑存储卷110的已存储数据量进行检测,并将检测结果记录至一空间使用率表。其中,所述逻辑存储卷110的已存储数据量可以为该逻辑存储卷110上已存文件占该逻辑存储卷110可存储数据容量的百分比。
步骤S120,检测是否存在至少一个所述逻辑存储卷110的已存储数据量高于预设上限,且存在至少一个所述逻辑存储卷110的已存储数据量低于预设下限。
在本实施例中,若所述分布式存储***100检测到存在一个逻辑存储卷110的已存储数据量高于所述预设上限值,同时存在另一个逻辑存储卷110的已存储数据量低于所述预设下限值,则认为此时可能存在各逻辑存储卷110数据存储负载不均衡的问题,进入步骤S130。
若所述分布式存储***100检测到所述多个逻辑存储卷110中不存在已存储数据量高于所述预设上限的逻辑存储卷110,或不存在已存储数据量低于所述预设下限的逻辑存储卷110时,则认为此时不存在各逻辑存储卷110数据存储负载不均衡的问题,进入步骤S140。
值得说明的是,所述上限值或所述下限值可以为预先设定的阈值,也可以为根据所述分布式存储***100各逻辑存储卷110的存储情况动态确定的阈值。
步骤S130,将所述分布式存储***100设置为第一存储模式。
步骤S140,将所述分布式存储***100设置为第二存储模式。
请参照图3,在本实施例中,当所述分布式存储***100处于所述第一存储模式下时,通过步骤S210至步骤S230对接收到的待存储文件进行处理。
步骤S210,在所述第一存储模式下接收到待存储文件时,为所述待存储文件确定存储地址。
在本实施例中,所述分布式存储***100计算所述待存储文件的文件名哈希值,根据所述文件名哈希值确定该待存储文件的存储地址。
步骤S220,当为所述待存储文件确定的存储地址为所述多个逻辑存储卷110中已存储数据量最高的逻辑存储卷时,将该逻辑存储卷作为第一逻辑存储卷,并在其他所述逻辑存储卷110中选取一个作为第二逻辑存储卷。
在为所述待存储文件确定存储地址后,所述分布式存储***100判断该存储地址对应的逻辑存储卷110是否为所述多个逻辑存储卷110中已存储数据量最高的逻辑存储卷。
当所述存储地址对应的逻辑存储卷110为所述多个逻辑存储卷110中已存储数据量最高的逻辑存储卷时,将该逻辑存储卷110作为第一逻辑存储卷,并在其他所述逻辑存储卷110中选取一个作为第二逻辑存储卷。
进一步地,在本实施例中,选取的所述第二逻辑存储卷为所述逻辑存储卷110中已存储数据量最小的一个逻辑存储卷。
步骤S230,将所述待存储文件存入所述第二逻辑存储卷,并在所述第一逻辑存储卷上建立该待存储文件对应的链接文件,使所述链接文件指向存储于所述第二逻辑存储卷上的所述待存储文件。
在确定所述第二逻辑存储卷后,所述分布式存储***100将所述待存储文件存至所述第二逻辑存储卷。
由于在读取数据文件时,同样是按照文件名哈希值的方式寻找待读取文件的存储地址,若待读取文件为从所述第一逻辑存储卷转存至第二逻辑存储卷的数据,则需要转至第二逻辑存储卷进行数据读取。故在本实施例中,所述分布式存储***100在将待存储文件转存至所述第二逻辑存储卷时,还在所述第一逻辑存储卷上创建该待存储文件的链接文件,所述链接文件指向存储于所述第二逻辑存储卷上的所述待存储文件。使得在进行文件读取时,可以根据所述链接文件从所述第二逻辑存储卷读取数据。
请参照图4,在本实施例中,当所述分布式存储***100处于所述第二存储模式下时,通过步骤S310及步骤S320对接收到的待存储文件进行处理。
步骤S310,在所述第二存储模式下接收到待存储文件时,为所述待存储文件确定存储地址。
步骤S320,将所述待存储文件存入所述确定的存储地址对应的逻辑存储卷110。
在本实施例中,当所述分布式存储***100处于第二存储模式时,按照原有的调度策略进行待存储文件的处理。具体地,所述分布式存储***100计算所述待存储文件的文件名哈希值,根据所述文件名哈希值确定该待存储文件的存储地址,然后将所述待存储文件存入所述确定的存储地址对应的逻辑存储卷110。
基于上述设计,通过本实施例提供的数据存储方法,使所述分布式存储***100可以根据各逻辑存储卷110的已存储量判断各逻辑存储卷110的数据存储负载是否均衡,并在数据存储负载不均衡时,使用存储负载较轻的逻辑存储卷110分担存储负载较重的逻辑存储卷110的存储压力。
进一步地,针对类似视频监控文件的应用场景,当某个逻辑存储卷110被标识为故障后,将无法继续接受待存储文件,且不再执行根据留存期滚动删除数据的动作。但如果故障的逻辑存储卷中已存文件的存储时长均已超过一预设的留存期时长,即使该故障存储卷中的文件被恢复其意义可能也不大。
故在本实施例中,所述分布式存储***100还可以检测被标识为故障的逻辑存储1卷中已存储数据的存储时长。当所述分布式存储***100检测到所述被标识为故障的逻辑存储卷中已存储文件的存储时长均大于预设的留存期时长时,清除该逻辑存储卷110上的数据,并将该逻辑存储卷110标识为可用,使该逻辑存储卷110可以重新接收并存储待存储文件。
进一步地,在本实施例中,所述分布式存储***100还包括一纠删码失效可读的开关。当所述纠删码失效可读的开关打开时,若某个逻辑存储块中故障的数据分片大于M个时,仍然可以读剩余正常数据分片上的数据。当纠删码失效可读的开关关闭时,按纠删码原流程进行处理。如此,对于类似视频监控类对一致性要求不高的待存储文件,当同时故障的数据分片大于M个时,也可以读剩余正常的数据块上的数据,可以尽量回放。
请参照图5,本实施例还提供一种数据存储装置130,应用于图1所示的分布式存储***100,所述装置包括检测模块131、模式切换模块132、存储地址确定模块133、选取模块134及转存模块135。
所述检测模块131,用于所述分布式存储***100检测每个所述逻辑存储卷110的已存储数据量。
本实施例中,所述检测模块131可用于执行图2所示的步骤S110,关于所述检测模块131的具体描述可参对所述步骤S110的描述。
所述模式切换模块132,用于当检测到存在至少一个所述逻辑存储卷110的已存储数据量高于预设上限,且存在至少一个所述逻辑存储卷110的已存储数据量低于预设下限时,将所述分布式存储***110设置为第一存储模式。
本实施例中,所述模式切换模块132可用于执行图2所示的步骤S120及S130,关于所述模式切换模块132的具体描述可参对所述步骤S120及S130的描述。
所述存储地址确定模块133,用于在所述第一存储模式下接收到待存储文件时,为所述待存储文件确定存储地址。
本实施例中,所述存储地址确定模块133可用于执行图3所示的步骤S210,关于所述存储地址确定模块133的具体描述可参对所述步骤S210的描述。
所述选取模块134,用于当为所述待存储文件确定的存储地址为所述多个逻辑存储卷110中已存储数据量最高的逻辑存储卷时,将该逻辑存储卷作为第一逻辑存储卷,并在其他所述逻辑存储卷110中选取一个作为第二逻辑存储卷。
本实施例中,所述选取模块134可用于执行图3所示的步骤S220,关于所述选取模块134的具体描述可参对所述步骤S220的描述。
所述转存模块135,用于将所述待存储文件存入所述第二逻辑存储卷,并在所述第一逻辑存储卷上建立该待存储文件对应的链接文件,使所述链接文件指向存储于所述第二逻辑存储卷上的所述待存储文件。
本实施例中,所述转存模块135可用于执行图3所示的步骤S230,关于所述转存模块135的具体描述可参对所述步骤S230的描述。
综上所述,本申请提供的数据存储方法、装置及分布式存储***,根据各逻辑存储卷的已存储数据量判断启动第一存储模式,在第一存储模式下自动地使用已存储数据量较少的逻辑存储卷分担已存储数据量较多的逻辑存储卷的存储压力。如此,当有新的逻辑存储卷加入或者故障逻辑存储卷恢复时,在不改变原有数据调度策略的情况下,可以自动地实现待存储文件的重分配,避免了各个逻辑存储卷之间存储负载不均衡的问题。
在本申请所提供的实施例中,应该理解到,所揭露的***和方法,也可以通过其它的方式实现。以上所描述的***实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种数据存储方法,其特征在于,应用于分布式存储***,所述分布式存储***包括多个逻辑存储卷;所述方法包括:
检测每个所述逻辑存储卷的已存储数据量;
当检测到存在至少一个所述逻辑存储卷的已存储数据量高于预设上限,且存在至少一个所述逻辑存储卷的已存储数据量低于预设下限时,将所述分布式存储***设置为第一存储模式;
在所述第一存储模式下接收到待存储文件时,为所述待存储文件确定存储地址;
当为所述待存储文件确定的存储地址为所述多个逻辑存储卷中已存储数据量最高的逻辑存储卷时,将该逻辑存储卷作为第一逻辑存储卷,并在其他所述逻辑存储卷中选取已存储数据量最小的逻辑存储卷作为第二逻辑存储卷;
将所述待存储文件存入所述第二逻辑存储卷,并在所述第一逻辑存储卷上建立该待存储文件对应的链接文件,使所述链接文件指向存储于所述第二逻辑存储卷上的所述待存储文件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到所有所述逻辑存储卷的已存储数据量均低于预设上限,或所有所述逻辑存储卷的已存储数据量均高于预设下限时,将所述分布式存储***设置为第二存储模式;
在所述第二存储模式下接收到待存储文件时,为所述待存储文件确定存储地址,将所述待存储文件存入所述确定的存储地址对应的逻辑存储卷。
3.根据权利要求1或2所述的方法,其特征在于,所述为所述待存储文件确定存储地址的步骤,包括:
计算所述待存储文件的文件名哈希值,根据所述文件名哈希值确定该待存储文件的存储地址。
4.根据权利要求1所述的方法,其特征在于,所述检测每个所述逻辑存储卷的已存储数据量的步骤,包括:
每间隔预设检测时长对每个所述逻辑存储卷的已存储数据量进行检测。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测被标识为故障的逻辑存储卷中已存储数据的存储时长,其中,逻辑存储卷在被标识为故障后不接收待存储文件;
当所述被标识为故障的逻辑存储卷中已存储数据的存储时长均大于预设的留存期时长时,清除该逻辑存储卷上的数据,并将该逻辑存储卷标识为可用,使该逻辑存储卷可以重新接收并存储待存储文件。
6.根据权利要求1所述的方法,其特征在于,所述分布式存储***包括多个物理存储节点,每个所述物理存储节点包括多个相对独立的物理存储空间,每个所述逻辑存储卷由多个位于不同物理存储节点上的物理存储空间组成;所述待存储文件通过纠删码存储方式被分为多个数据分片分别存储在相应逻辑存储卷的多个物理存储空间中。
7.根据权利要求1所述的方法,其特征在于,所述逻辑存储卷的已存储数据量为该逻辑存储卷上已存文件占该逻辑存储卷可存储数据容量的百分比。
8.一种数据存储装置,其特征在于,应用于分布式存储***,所述分布式存储***包括多个逻辑存储卷;所述装置包括:
检测模块,用于所述分布式存储***检测每个所述逻辑存储卷的已存储数据量;
模式切换模块,用于当检测到存在至少一个所述逻辑存储卷的已存储数据量高于预设上限,且存在至少一个所述逻辑存储卷的已存储数据量低于预设下限时,将所述分布式存储***设置为第一存储模式;
存储地址确定模块,用于在所述第一存储模式下接收到待存储文件时,为所述待存储文件确定存储地址;
选取模块,用于当为所述待存储文件确定的存储地址为所述多个逻辑存储卷中已存储数据量最高的逻辑存储卷时,将该逻辑存储卷作为第一逻辑存储卷,并在其他所述逻辑存储卷中选取已存储数据量最小的逻辑存储卷作为第二逻辑存储卷;
转存模块,用于将所述待存储文件存入所述第二逻辑存储卷,并在所述第一逻辑存储卷上建立该待存储文件对应的链接文件,使所述链接文件指向存储于所述第二逻辑存储卷上的所述待存储文件。
9.一种分布式存储***,其特征在于,所述分布式存储***包括多个物理存储节点,每个所述物理存储节点包括多个相对独立的物理存储空间;分别位于不同所述物理存储节点上的多个物理存储空间组成逻辑存储卷;每个所述物理存储节点包括存储器和处理器;
所述存储器用于存储可执行的计算机程序;
各所述处理器用于执行相应的所述计算机程序,以使所述分布式存储***实现权利要求1至权利要求7中任意一项所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711450554.1A CN109976662B (zh) | 2017-12-27 | 2017-12-27 | 数据存储方法、装置及分布式存储*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711450554.1A CN109976662B (zh) | 2017-12-27 | 2017-12-27 | 数据存储方法、装置及分布式存储*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109976662A CN109976662A (zh) | 2019-07-05 |
CN109976662B true CN109976662B (zh) | 2022-06-14 |
Family
ID=67071903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711450554.1A Active CN109976662B (zh) | 2017-12-27 | 2017-12-27 | 数据存储方法、装置及分布式存储*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109976662B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256201B (zh) * | 2020-10-23 | 2023-10-31 | 南京鹏云网络科技有限公司 | 一种分布式块存储***及其卷信息管理方法 |
CN112711382B (zh) * | 2020-12-31 | 2024-04-26 | 百果园技术(新加坡)有限公司 | 基于分布式***的数据存储方法、装置和存储节点 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902724A (zh) * | 2012-09-05 | 2013-01-30 | 重庆市勘测院 | 海量栅格瓦块地图发布方法 |
CN103095843A (zh) * | 2013-01-28 | 2013-05-08 | 刘海峰 | 一种基于版本矢量的数据备份方法及客户端 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004090740A1 (en) * | 2003-04-03 | 2004-10-21 | Commvault Systems, Inc. | System and method for dynamically sharing media in a computer network |
JP4184373B2 (ja) * | 2004-10-29 | 2008-11-19 | シャープ株式会社 | 通信装置、通信方法、通信プログラム、通信プログラムを記録した記録媒体、および通信システム |
JP2007304794A (ja) * | 2006-05-10 | 2007-11-22 | Hitachi Ltd | ストレージシステム及びストレージシステムにおける記憶制御方法 |
NO326041B1 (no) * | 2007-02-08 | 2008-09-01 | Fast Search & Transfer As | Fremgangsmate til administrasjon av datalagring i et system for soking og gjenfinning av informasjon |
EP2211263A3 (en) * | 2009-01-23 | 2013-01-23 | Infortrend Technology, Inc. | Method for performing storage virtualization in a storage system architecture |
US8745354B2 (en) * | 2011-03-02 | 2014-06-03 | Hitachi, Ltd. | Computer system for resource allocation based on orders of proirity, and control method therefor |
US8650566B2 (en) * | 2011-08-29 | 2014-02-11 | Vmware, Inc. | Virtual machine provisioning in object storage system |
US8832372B2 (en) * | 2012-05-24 | 2014-09-09 | Netapp, Inc. | Network storage systems having clustered raids for improved redundancy and load balancing |
US9727437B2 (en) * | 2014-02-18 | 2017-08-08 | Quantum Corporation | Dynamically controlling erasure code distribution in an object store |
US10073774B2 (en) * | 2016-04-29 | 2018-09-11 | Netapp, Inc. | Managing input/output operations for shingled magnetic recording in a storage system |
-
2017
- 2017-12-27 CN CN201711450554.1A patent/CN109976662B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902724A (zh) * | 2012-09-05 | 2013-01-30 | 重庆市勘测院 | 海量栅格瓦块地图发布方法 |
CN103095843A (zh) * | 2013-01-28 | 2013-05-08 | 刘海峰 | 一种基于版本矢量的数据备份方法及客户端 |
Non-Patent Citations (1)
Title |
---|
《Load Balancing in Data Center Networks with》;Wile Sehery等;《Proceedings of the 2015 1st IEEE Conference on Network Softwarization (NetSoft)》;20150604;第1-6页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109976662A (zh) | 2019-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144414B (zh) | 区块链数据的多级存储方法和装置 | |
EP3518110B1 (en) | Designation of a standby node | |
CN1669001B (zh) | 用于在服务器整合环境中执行业务连续性策略的方法和装置 | |
CN103535014B (zh) | 一种网络存储***、数据处理方法和客户端 | |
CN109976662B (zh) | 数据存储方法、装置及分布式存储*** | |
US10827205B2 (en) | Video data storage system, operation method thereof, and retrieval server | |
CN105335250B (zh) | 一种基于分布式文件***的数据恢复方法及装置 | |
CN112272217B (zh) | 一种kafka集群负载均衡方法、***、设备以及介质 | |
WO2016180049A1 (zh) | 一种存储管理方法及分布式文件*** | |
CN108037894B (zh) | 一种磁盘空间管理方法及装置 | |
CN109582245A (zh) | 数据处理方法、装置及设备 | |
CN107463342A (zh) | 一种cdn边缘节点文件的存储方法及装置 | |
CN106909310A (zh) | 用于存储***的路径选择的方法和装置 | |
CN103761059A (zh) | 一种用于海量数据管理的多盘位存储方法及*** | |
CN103049354A (zh) | 数据修复方法、数据修复装置以及存储*** | |
CN110389715B (zh) | 数据存储方法、存储服务器及云存储*** | |
CN111176888A (zh) | 云存储的容灾方法、装置及*** | |
CN111385359A (zh) | 对象网关的负载处理方法及装置 | |
WO2018121407A1 (zh) | 防止Mongos集群中的均衡操作失效的方法和装置 | |
US10452486B2 (en) | Selecting a backup process for a file system | |
CN102970349B (zh) | 一种dht网络的存储负载均衡方法 | |
CN110708177B (zh) | 分布式***中的异常处理方法、***和装置 | |
CN106951338B (zh) | 一种基于GlusterFS的高容错分布式存储方法 | |
CN111352746B (zh) | 消息限流方法、存储介质 | |
CN106528582A (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 |