CN112291292B - 数据存储方法、装置、设备和介质 - Google Patents
数据存储方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN112291292B CN112291292B CN201910683277.1A CN201910683277A CN112291292B CN 112291292 B CN112291292 B CN 112291292B CN 201910683277 A CN201910683277 A CN 201910683277A CN 112291292 B CN112291292 B CN 112291292B
- Authority
- CN
- China
- Prior art keywords
- storage
- current
- candidate
- storage node
- file
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据存储方法、装置、设备和介质。所述方法包括:分别确定至少两个候选存储节点的至少两个可用存储空间;从所述至少两个候选存储节点中选择本轮的当前存储节点;根据当前存储节点的可用存储空间,所述至少两个可用存储空间中的最大存储空间,以及本轮文件上限值,确定目标设备文件本轮在当前存储节点中的存储大小。本发明实施例通过从至少两个候选存储节点中选择本轮的当前存储节点,并根据当前存储节点的可用存储空间、至少两个可用存储空间中的最大存储空间,以及本轮文件上限值确定存储文件的大小,使得存储节点即使出现异常,也会承担一部分存储压力,保证各个存储节点的负载均衡。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种数据存储方法、装置、设备和介质。
背景技术
在视频监控云存储中,既要求录像文件均匀分布在所有的存储节点上,同时要求每个存储节点上的服务的相机数量保持均衡,并且尽可能保证录像文件的保存期限。
但是存储节点可能会出现阵列异常的情况,这就导致异常的存储节点被分配的可用存储空间变小。面对这种情况,通常是直接舍弃掉该异常存储节点,将待存储数据分配给剩余完好的存储节点,直到异常存储节点恢复正常为止。
然而这直接导致其他存储节点的存储压力瞬间增大,并且异常存储节点的可用存储空间没有被充分利用,导致录像文件的保存期限较短。
发明内容
本发明实施例提供一种数据存储方法、装置、设备和介质,以解决存储节点存在异常,导致其他存储节点的存储压力瞬间增大的问题。
第一方面,本发明实施例提供了一种数据存储方法,所述方法包括:
分别确定至少两个候选存储节点的至少两个可用存储空间;
从所述至少两个候选存储节点中选择本轮的当前存储节点;
根据当前存储节点的可用存储空间,所述至少两个可用存储空间中的最大存储空间,以及本轮文件上限值,确定目标设备文件本轮在当前存储节点中的存储大小。
第二方面,本发明实施例提供了一种数据存储装置,所述装置包括:
可用存储空间确定模块,用于分别确定至少两个候选存储节点的至少两个可用存储空间;
当前存储节点选择模块,用于从所述至少两个候选存储节点中选择本轮的当前存储节点;
存储大小确定模块,用于根据当前存储节点的可用存储空间,所述至少两个可用存储空间中的最大存储空间,以及本轮文件上限值,确定目标设备文件本轮在当前存储节点中的存储大小。
第三方面,本发明实施例提供了一种设备,所述设备还包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中任一所述的一种数据存储方法。
第四方面,本发明实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的一种数据存储方法。
本发明实施例通过从至少两个候选存储节点中选择本轮的当前存储节点,并根据当前存储节点的可用存储空间、至少两个可用存储空间中的最大存储空间,以及本轮文件上限值确定存储文件的大小,由于是根据当前存储节点可用存储空间与候选存储节点最大存储空间的对应关系,确定存储文件的大小,使得存储节点即使出现异常,导致可用存储空间变小,其也会利用变小后的可用存储空间承担一部分存储压力,从而保证各个存储节点的负载均衡。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本申请的一个实施例提供的一种数据存储方法的流程图;
图2为本申请的又一实施例提供的一种数据存储方法的流程图;
图3为本申请的又一实施例提供的一种数据存储装置的结构示意图;
图4为本申请的又一实施例提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种数据存储方法的流程图。本实施例适用于将目标设备中的待存储数据文件存储到存储节点的情况,该方法可以由本发明实施例提供的数据存储装置来执行,该装置可以采用软件和/或硬件的方式实现。如图1所示,该方法可以包括:
步骤101、分别确定至少两个候选存储节点的至少两个可用存储空间。
具体的,在执行数据文件存储任务之前,服务器将总存储资源分配给各个候选存储节点,每个候选存储节点通过虚拟化技术,将各自分配的存储资源虚拟化出一个资源池提供给存储业务使用,这个资源池的资源空间大小即为候选存储节点的可用存储空间。
当候选存储节点出现阵列异常时,异常候选存储节点只有部分分配的存储资源可用,资源管理模块可以获取这些可用分配资源,并相应重建资源池,这就导致异常候选存储节点的可用存储空间变小,为了保证分配的总资源不变,服务器根据预设比例重新给各个候选存储节点分配存储资源。
因此,为了保证后续确定的当前存储节点的存储大小足够准确,应实时获取各存储节点当前可用存储空间,可选的,在监测到任一候选存储节点出现异常时,触发确定至少两个候选存储节点的至少两个可用存储空间的操作。
通过确定至少两个候选存储节点的至少两个可用存储空间,获取了各个候选存储节点存储数据的能力,为后续确定目标设备文件在当前存储节点中的存储大小奠定了数据基础。
步骤102、从所述至少两个候选存储节点中选择本轮的当前存储节点。
具体的,目标设备轮流在各候选存储节点上进行文件数据存储,当目标设备文件已使用所有的候选存储节点时,即为一轮存储。
由于使用状态体现了候选存储节点存储数据文件的多少,设备性能体现了其关联设备数量,因此通过根据候选存储节点的使用状态和设备性能,从所述至少两个候选存储节点中选择本轮的当前存储节点。可以保证目标设备文件被均匀的分配给各个候选存储节点进行存储,并且各个候选存储节点关联的设备数量尽量相同。
步骤102可选的,包括:
A、剔除目标设备文件在本轮已使用的候选存储节点;
B、根据剩余的候选存储节点关联的设备数量,从剩余的候选存储节点中选择本轮的当前存储节点。
通过从至少两个候选存储节点中选择本轮的当前存储节点,为后续在当前存储节点进行存储奠定了基础。
步骤103、根据当前存储节点的可用存储空间,所述至少两个可用存储空间中的最大存储空间,以及本轮文件上限值,确定目标设备文件本轮在当前存储节点中的存储大小。
其中,最大存储空间指的是最大的可用存储空间。文件上限值指的是在候选存储节点的一次文件数据存储中,能够存储的最大文件数据大小。可选的,若目标设备为相机,则目标设备文件为录像文件,相应的本轮文件上限值是由录像时间与相机码率确定的。
具体的,将当前存储节点的可用存储空间,与所述至少两个可用存储空间中的最大存储空间相除,得到两者之间的比值结果,将比值结果乘以本轮文件上限值,最终得到目标设备文件本轮在当前存储节点中的存储大小。
通过根据当前存储节点的可用存储空间,至少两个可用存储空间中的最大存储空间,以及本轮文件上限值,确定目标设备文件本轮在当前存储节点中的存储大小,使得目标设备在每个存储节点的存储大小,与该存储节点可用存储空间成正比,保证了每一轮存储过后,各个存储节点的可用存储空间基本相同,实现了负载的均衡。
本发明实施例提供的技术方案,通过从至少两个候选存储节点中选择本轮的当前存储节点,并根据当前存储节点的可用存储空间、至少两个可用存储空间中的最大存储空间,以及本轮文件上限值确定存储文件的大小,使得存储节点即使出现异常,也会承担一部分存储压力,保证各个存储节点的负载均衡。
在上述实施例的基础上,所述数据存储方法还包括:
若检测到目标设备文件在本轮已使用所有的候选存储节点,则本轮文件存储结束,启动下一轮文件存储操作。
具体的,目标设备在所有候选存储节点完成了遍历存储,则代表本轮文件存储结束,若目标设备需要继续存储文件,则启动下一轮文件存储操作,并重置在新一轮存储中,目标设备文件在每个候选存储节点的使用次数。
若检测到目标设备文件在本轮已使用所有的候选存储节点,则启动下一轮文件存储操作,避免了目标设备在单个候选存储节点进行多次存储,保证了每个候选存储节点的负载均衡。
在上述实施例的基础上,所述数据存储方法还包括:
若所述当前存储节点的可用存储空间小于第一存储空间门限值,则将所述至少两个候选存储节点中最早一轮写入的文件数据均删除。
具体的,每个候选存储节点的可用存储空间,会随着每一轮存储任务的结束变得越来越小,为了保证每个候选存储节点可以持续的进行文件存储,当前存储节点的可用存储空间小于第一存储空间门限值时,则将所有候选存储节点中最早一轮写入的文件数据均删除,其中,第一存储空间门限值可选的包括2GB。
由于步骤103可以使得每一轮存储过后,各个存储节点的可用存储空间基本相同,因此所有存储节点的可用存储空间,会在同一轮存储任务中同时小于第一存储空间门限值,由于同一轮存储的文件数据在时间上是连续的,因此将所有存储节点中最早一轮写入的文件数据均删除,可以保证剩余文件数据在时间上也是连续的,避免了文件数据空洞的出现。
可选的,将至少两个候选存储节点中最早一轮写入的文件数据均删除后,还包括:将删除的文件数据的时间上报给服务器,服务器通过将本次删除文件数据的时间跟前一次上报删除文件数据的时间进行比较,取最新的时间进行记录,该记录的时间主要用于用户检索文件数据时,过滤该时间点之前的文件数据。
实施例二
图2为本发明实施例二提供的一种数据存储方法的流程图。本实施例为上述实施例提供了一种具体实现方式,如图2所示,该方法可以包括:
步骤201、分别确定至少两个候选存储节点的至少两个可用存储空间。
具体的,若每个候选存储节点都运行正常,则服务器分配给每个候选存储节点的存储资源相同,即每个候选存储节点的可用存储空间相同。
若某个候选存储节点出现异常,则异常候选存储节点只有部分分配资源可用,这就导致异常候选存储节点的可用存储空间变小,为了保证分配的总资源不变,服务器根据预设比例重新给各个候选存储节点分配存储资源,因此异常候选存储节点被分配的存储资源,少于正常候选存储节点被分配的存储资源,即异常候选存储节点的可用存储空间,小于正常候选存储节点的可用存储空间。
步骤202、剔除目标设备文件在本轮已使用的候选存储节点。
具体的,为了避免目标设备文件被集中存储在一个或几个候选存储节点中,而造成这一个或几个候选存储节点存储压力过大,因此需要将目标设备文件遍历存储于各个候选存储节点中。
步骤203、根据剩余的候选存储节点关联的设备数量,从剩余的候选存储节点中选择本轮的当前存储节点。
其中,候选存储节点关联的设备数量,表示在候选存储节点进行文件数据存储的设备数量。具体的,每个候选存储节点单次能够服务的设备数量有限,若某个候选存储节点关联的设备数量过多,则会造成该候选存储节点的某些关联的设备处于队列等待状态,进而降低了存储效率。
因此,为了提高存储效率,可选的,将剩余的候选存储节点中,关联的设备数量最少的候选存储节点,作为本轮的当前存储节点。
可选的,若剩余的候选存储节点中,关联的设备数量最少的候选存储节点为多个,则随机选择其中一个,作为本轮的当前存储节点。
步骤204、根据当前存储节点的可用存储空间,所述至少两个可用存储空间中的最大存储空间,以及本轮文件上限值,确定目标设备文件本轮在当前存储节点中的存储大小。
具体的,目标设备文件本轮在当前存储节点中的存储大小,可以通过以下公式来得到:
其中,S表示目标设备文件本轮在当前存储节点中的存储大小,Cn表示当前存储节点的可用存储空间,Cmax表示至少两个可用存储空间中的最大存储空间,Smax表示本轮文件上限值。
为了避免单次存储大小过小,影响系统效率,可选的,设置本轮文件下限值Smin,当S<Smin时,不在该当前存储节点进行存储,并将该当前存储节点记为已使用过。
示例性的,本实施例提供了两个场景来对步骤204进行说明:
场景一:
假设候选存储节点包括:候选存储节点A、候选存储节点B以及候选存储节点C,总存储资源为3TB,三个候选存储节点工作正常,因此服务器将3TB的总存储资源平均分配给三个候选存储节点,即候选存储节点A的可用存储空间为1TB,候选存储节点B的可用存储空间为1TB,候选存储节点C的可用存储空间为1TB。
若候选存储节点A为本轮的当前存储节点,本轮文件上限值设置为1800MB,则目标设备文件在候选存储节点A中的存储大小为:
若候选存储节点B为本轮的当前存储节点,本轮文件上限值设置为1800MB,则目标设备文件在候选存储节点B中的存储大小为:
若候选存储节点C为本轮的当前存储节点,本轮文件上限值设置为1800MB,则目标设备文件在候选存储节点C中的存储大小为:
可见,若候选存储节点工作正常,则每个候选存储节点的可用存储空间相同,相应的,目标设备文件在每个候选存储节点的存储大小也相同,保证了每个候选存储节点的负载均衡。
场景二:
假设候选存储节点包括:候选存储节点A、候选存储节点B以及候选存储节点C,总存储资源为3TB,候选存储节点A出现异常,资源管理模块检测到候选存储节点A中可用资源为0.5T,则服务器可选的按1:2:3的比例将3TB的总存储资源分配给三个候选存储节点,即候选存储节点A的可用存储空间为0.5TB,候选存储节点B的可用存储空间为1TB,候选存储节点C的可用存储空间为1.5TB。
若候选存储节点A为本轮的当前存储节点,本轮文件上限值设置为1800MB,则目标设备文件在候选存储节点A中的存储大小为:
若候选存储节点B为本轮的当前存储节点,本轮文件上限值设置为1800MB,则目标设备文件在候选存储节点B中的存储大小为:
若候选存储节点C为本轮的当前存储节点,本轮文件上限值设置为1800MB,则目标设备文件在候选存储节点C中的存储大小为:
可见,若某个候选存储节点异常,则每个候选存储节点的可用存储空间不相同,相应的,目标设备文件在每个候选存储节点的存储大小按可用存储空间比例来确定,保证了即使候选存储节点出现异常,每个候选存储节点也可以负载均衡。
本发明实施例提供的技术方案,通过剔除目标设备文件在本轮已使用的候选存储节点,避免目标设备文件被集中存储在一个或几个候选存储节点中;通过根据剩余的候选存储节点关联的设备数量,从剩余的候选存储节点中选择本轮的当前存储节点,避免目标设备处于队列等待状态,提高了文件数据存储效率。
在上述实施例的基础上,从所述至少两个候选存储节点中选择本轮的当前存储节点之后,还包括:
若当前存储节点的可用存储空间小于第二存储空间门限值,则在目标设备文件本轮在当前候选存储节点中的存储操作完成时,将当前存储节点关联的所有设备分摊给其他候选存储节点,供其他候选存储节点基于预留设备数量为其他设备提供服务。
具体的,第二存储空间门限值表示候选存储节点正常时的可用存储空间,若当前存储节点的可用存储空间小于第二存储空间门限值,即表示当前存储节点异常,则目标设备文件在当前存储节点存储较小,相应的存储时间短,目标设备文件在当前存储节点提前完成存储任务后,就会寻找下一个候选存储节点进行文件存储,因此为了保证其余的候选存储节点上服务的设备数量不超过设备数量阈值,需要在每个候选存储节点上预留设备数量为其他设备提供服务。
其中,将设备数量阈值与候选存储节点数量之间的比值,作为所述预留设备数量的下限值;将所述设备数量阈值作为所述预留设备数量的上限值。
示例性的,假设候选存储节点数量为N,设备数量阈值为M,预留设备数量为C,则每个候选存储节点实际服务的设备数量为M-C,当目标设备文件本轮在异常候选存储节点中的存储操作完成时,将异常候选存储节点关联的所有设备分摊给其他(N-1)个候选存储节点,那么此时其他(N-1)个候选存储节点上服务的设备数量为其值应该小于或等于M,则可以推导出预留设备数量C应满足:
通过设置预留设备数量,避免了当出现异常候选存储节点时,其余候选存储节点上服务的设备数量超过设备数量阈值,减缓了存储的效率。
实施例三
图3为本发明实施例三提供的一种数据存储装置的结构示意图,可执行本发明任一实施例所提供的一种数据存储方法,具备执行方法相应的功能模块和有益效果。如图3所示,该装置可以包括:
可用存储空间确定模块31,用于分别确定至少两个候选存储节点的至少两个可用存储空间;
当前存储节点选择模块32,用于从所述至少两个候选存储节点中选择本轮的当前存储节点;
存储大小确定模块33,用于根据当前存储节点的可用存储空间,所述至少两个可用存储空间中的最大存储空间,以及本轮文件上限值,确定目标设备文件本轮在当前存储节点中的存储大小。
在上述实施例的基础上,所述装置还包括异常监测模块,具体用于:
在监测到任一候选存储节点出现异常时,触发确定至少两个候选存储节点的至少两个可用存储空间的操作。
在上述实施例的基础上,所述当前存储节点选择模块32,具体用于:
剔除目标设备文件在本轮已使用的候选存储节点;
根据剩余的候选存储节点关联的设备数量,从剩余的候选存储节点中选择本轮的当前存储节点。
在上述实施例的基础上,所述装置还包括存储轮次转换模块,具体用于:
若检测到目标设备文件在本轮已使用所有的候选存储节点,则本轮文件存储结束,启动下一轮文件存储操作。
在上述实施例的基础上,所述装置还包括文件数据删除模块,具体用于:
若所述当前存储节点的可用存储空间小于第一存储空间门限值,则将所述至少两个候选存储节点中最早一轮写入的文件数据均删除。
在上述实施例的基础上,所述装置还包括服务设备转移模块,具体用于:
若当前存储节点的可用存储空间小于第二存储空间门限值,则在目标设备文件本轮在当前存储节点中的存储操作完成时,将当前存储节点关联的所有设备分摊给其他候选存储节点,供其他候选存储节点基于预留设备数量为其他设备提供服务。
在上述实施例的基础上,所述服务设备转移模块,具体还用于:
将设备数量阈值与候选存储节点数量之间的比值,作为所述预留设备数量的下限值;
将所述设备数量阈值作为所述预留设备数量的上限值。
本发明实施例所提供的一种数据存储装置,可执行本发明任一实施例所提供的一种数据存储方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任一实施例提供的一种数据存储方法。
实施例四
图4为本发明实施例四提供的一种设备的结构示意图。图4示出了适于用来实现本发明实施方式的示例性设备400的框图。图4显示的设备400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,设备400以通用计算设备的形式表现。设备400的组件可以包括但不限于:一个或者多个处理器或者处理单元401,系统存储器402,连接不同系统组件(包括系统存储器402和处理单元401)的总线403。
总线403表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
设备400典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备400访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器402可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)404和/或高速缓存存储器405。设备400可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统406可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线403相连。存储器402可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块407的程序/实用工具408,可以存储在例如存储器402中,这样的程序模块407包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块407通常执行本发明所描述的实施例中的功能和/或方法。
设备400也可以与一个或多个外部设备409(例如键盘、指向设备、显示器410等)通信,还可与一个或者多个使得用户能与该设备400交互的设备通信,和/或与使得该设备400能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口411进行。并且,设备400还可以通过网络适配器412与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器412通过总线403与设备400的其它模块通信。应当明白,尽管图中未示出,可以结合设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元401通过运行存储在系统存储器402中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的数据存储方法,包括:
分别确定至少两个候选存储节点的至少两个可用存储空间;
从所述至少两个候选存储节点中选择本轮的当前存储节点;
根据当前存储节点的可用存储空间,所述至少两个可用存储空间中的最大存储空间,以及本轮文件上限值,确定目标设备文件本轮在当前存储节点中的存储大小。
实施例五
本发明实施例五还提供了一种计算机可读存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据存储方法,该方法包括:
分别确定至少两个候选存储节点的至少两个可用存储空间;
从所述至少两个候选存储节点中选择本轮的当前存储节点;
根据当前存储节点的可用存储空间,所述至少两个可用存储空间中的最大存储空间,以及本轮文件上限值,确定目标设备文件本轮在当前存储节点中的存储大小。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的一种数据存储方法中的相关操作。本发明实施例的计算机可读存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (15)
1.一种数据存储方法,其特征在于,所述方法包括:
分别确定至少两个候选存储节点的至少两个可用存储空间;
从所述至少两个候选存储节点中选择本轮的当前存储节点;
根据当前存储节点的可用存储空间,所述至少两个可用存储空间中的最大存储空间,以及本轮文件上限值,确定目标设备文件本轮在当前存储节点中的存储大小;
在监测到任一候选存储节点出现异常时,触发确定至少两个候选存储节点的至少两个可用存储空间的操作;
所述至少两个候选存储节点包括异常候选存储节点。
2.根据权利要求1所述的方法,其特征在于,从所述至少两个候选存储节点中选择本轮的当前存储节点,包括:
剔除目标设备文件在本轮已使用的候选存储节点;
根据剩余的候选存储节点关联的设备数量,从剩余的候选存储节点中选择本轮的当前存储节点。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若检测到目标设备文件在本轮已使用所有的候选存储节点,则本轮文件存储结束,启动下一轮文件存储操作。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述当前存储节点的可用存储空间小于第一存储空间门限值,则将所述至少两个候选存储节点中最早一轮写入的文件数据均删除。
5.根据权利要求1所述的方法,其特征在于,从所述至少两个候选存储节点中选择本轮的当前存储节点之后,还包括:
若当前存储节点的可用存储空间小于第二存储空间门限值,则在目标设备文件本轮在当前存储节点中的存储操作完成时,将当前存储节点关联的所有设备分摊给其他候选存储节点,供其他候选存储节点基于预留设备数量为其他设备提供服务。
6.根据权利要求5所述的方法,其特征在于,所述预留设备数量通过如下方式确定:
将设备数量阈值与候选存储节点数量之间的比值,作为所述预留设备数量的下限值;
将所述设备数量阈值作为所述预留设备数量的上限值。
7.一种数据存储装置,其特征在于,所述装置包括:
可用存储空间确定模块,用于分别确定至少两个候选存储节点的至少两个可用存储空间;
当前存储节点选择模块,用于从所述至少两个候选存储节点中选择本轮的当前存储节点;
存储大小确定模块,用于根据当前存储节点的可用存储空间,所述至少两个可用存储空间中的最大存储空间,以及本轮文件上限值,确定目标设备文件本轮在当前存储节点中的存储大小;
所述装置还包括异常监测模块,具体用于:
在监测到任一候选存储节点出现异常时,触发确定至少两个候选存储节点的至少两个可用存储空间的操作;
所述至少两个候选存储节点包括异常候选存储节点。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括异常监测模块,具体用于:
在监测到任一候选存储节点出现异常时,触发确定至少两个候选存储节点的至少两个可用存储空间的操作。
9.根据权利要求7所述的装置,其特征在于,所述当前存储节点选择模块,具体用于:
剔除目标设备文件在本轮已使用的候选存储节点;
根据剩余的候选存储节点关联的设备数量,从剩余的候选存储节点中选择本轮的当前存储节点。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括存储轮次转换模块,具体用于:
若检测到目标设备文件在本轮已使用所有的候选存储节点,则本轮文件存储结束,启动下一轮文件存储操作。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括文件数据删除模块,具体用于:
若所述当前存储节点的可用存储空间小于第一存储空间门限值,则将所述至少两个候选存储节点中最早一轮写入的文件数据均删除。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括服务设备转移模块,具体用于:
若当前存储节点的可用存储空间小于第二存储空间门限值,则在目标设备文件本轮在当前存储节点中的存储操作完成时,将当前存储节点关联的所有设备分摊给其他候选存储节点,供其他候选存储节点基于预留设备数量为其他设备提供服务。
13.根据权利要求12所述的装置,其特征在于,所述服务设备转移模块,具体还用于:
将设备数量阈值与候选存储节点数量之间的比值,作为所述预留设备数量的下限值;
将所述设备数量阈值作为所述预留设备数量的上限值。
14.一种设备,其特征在于,所述设备还包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的数据存储方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910683277.1A CN112291292B (zh) | 2019-07-26 | 2019-07-26 | 数据存储方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910683277.1A CN112291292B (zh) | 2019-07-26 | 2019-07-26 | 数据存储方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112291292A CN112291292A (zh) | 2021-01-29 |
CN112291292B true CN112291292B (zh) | 2023-04-07 |
Family
ID=74419332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910683277.1A Active CN112291292B (zh) | 2019-07-26 | 2019-07-26 | 数据存储方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112291292B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473365A (zh) * | 2013-09-25 | 2013-12-25 | 北京奇虎科技有限公司 | 一种基于hdfs的文件存储方法、装置及分布式文件系统 |
CN104750858A (zh) * | 2015-04-16 | 2015-07-01 | 成都影泰科技有限公司 | 一种基于网络的数据存储方法 |
CN105224244A (zh) * | 2015-09-07 | 2016-01-06 | 浙江宇视科技有限公司 | 一种文件存储的方法和装置 |
CN107087031A (zh) * | 2017-05-10 | 2017-08-22 | 浙江宇视科技有限公司 | 一种存储资源负载均衡方法及装置 |
CN107154966A (zh) * | 2017-04-24 | 2017-09-12 | 浙江宇视科技有限公司 | 一种视频数据写入方法以及装置 |
WO2018045860A1 (zh) * | 2016-09-12 | 2018-03-15 | 华为技术有限公司 | 一种挂载文件系统的方法、装置及设备 |
CN108762924A (zh) * | 2018-05-28 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种负载均衡的方法、装置和计算机可读存储介质 |
CN108920272A (zh) * | 2018-06-08 | 2018-11-30 | 中国平安人寿保险股份有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
-
2019
- 2019-07-26 CN CN201910683277.1A patent/CN112291292B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473365A (zh) * | 2013-09-25 | 2013-12-25 | 北京奇虎科技有限公司 | 一种基于hdfs的文件存储方法、装置及分布式文件系统 |
CN104750858A (zh) * | 2015-04-16 | 2015-07-01 | 成都影泰科技有限公司 | 一种基于网络的数据存储方法 |
CN105224244A (zh) * | 2015-09-07 | 2016-01-06 | 浙江宇视科技有限公司 | 一种文件存储的方法和装置 |
WO2018045860A1 (zh) * | 2016-09-12 | 2018-03-15 | 华为技术有限公司 | 一种挂载文件系统的方法、装置及设备 |
CN107154966A (zh) * | 2017-04-24 | 2017-09-12 | 浙江宇视科技有限公司 | 一种视频数据写入方法以及装置 |
CN107087031A (zh) * | 2017-05-10 | 2017-08-22 | 浙江宇视科技有限公司 | 一种存储资源负载均衡方法及装置 |
CN108762924A (zh) * | 2018-05-28 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种负载均衡的方法、装置和计算机可读存储介质 |
CN108920272A (zh) * | 2018-06-08 | 2018-11-30 | 中国平安人寿保险股份有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112291292A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5117120B2 (ja) | ストレージ装置のボリュームを管理する計算機システム、方法及びプログラム | |
US9652271B2 (en) | Autonomously managed virtual machine anti-affinity rules in cloud computing environments | |
CN110196770B (zh) | 云系统内存数据处理方法、装置、设备及存储介质 | |
US9639390B2 (en) | Selecting a host for a virtual machine using a hardware multithreading parameter | |
US20130262250A1 (en) | Allocation of Application Licenses within Cloud or Infrastructure | |
JP2013509658A (ja) | 将来の使用推量に基づく記憶メモリの割り当て | |
WO2020134364A1 (zh) | 一种虚拟机迁移方法、云计算管理平台和存储介质 | |
US9785507B2 (en) | Restoration of consistent regions within a streaming environment | |
US8458719B2 (en) | Storage management in a data processing system | |
CN113326097A (zh) | 一种虚拟机限速方法、装置、设备和计算机存储介质 | |
CN110633046A (zh) | 一种分布式系统的存储方法、装置、存储设备及存储介质 | |
US8977752B2 (en) | Event-based dynamic resource provisioning | |
US9274854B2 (en) | Contamination based workload management | |
US20200142822A1 (en) | Multi-tenant cloud elastic garbage collector | |
US9135191B1 (en) | Techniques for storage network bandwidth management | |
CN110347546B (zh) | 监控任务动态调整方法、装置、介质及电子设备 | |
CN112291292B (zh) | 数据存储方法、装置、设备和介质 | |
US9619294B2 (en) | Placement of virtual CPUs using a hardware multithreading parameter | |
US8607245B2 (en) | Dynamic processor-set management | |
US10171378B2 (en) | System and method for allocating and reserving supervisors in a real-time distributed processing platform | |
US10721181B1 (en) | Network locality-based throttling for automated resource migration | |
CN115065685B (zh) | 云计算资源调度方法、装置、设备及介质 | |
US20180011789A1 (en) | Reducing idle resource usage | |
US9612748B2 (en) | Volume extent allocation | |
CN117792914A (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 |