CN113778973B - 数据存储方法和装置 - Google Patents
数据存储方法和装置 Download PDFInfo
- Publication number
- CN113778973B CN113778973B CN202110082120.0A CN202110082120A CN113778973B CN 113778973 B CN113778973 B CN 113778973B CN 202110082120 A CN202110082120 A CN 202110082120A CN 113778973 B CN113778973 B CN 113778973B
- Authority
- CN
- China
- Prior art keywords
- node
- host
- nodes
- data block
- performance
- 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 95
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000011156 evaluation Methods 0.000 claims abstract description 92
- 238000010187 selection method Methods 0.000 claims abstract description 34
- 238000012216 screening Methods 0.000 claims abstract description 9
- 230000015654 memory Effects 0.000 claims description 35
- 230000004044 response Effects 0.000 claims description 13
- 238000012549 training Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了数据存储方法和装置,具体实现方案为:响应于接收到客户端发送的数据存储请求,对数据存储请求进行解析,得到数据存储请求对应的各个数据块副本;基于各个数据块副本、集群***中各个节点的可用存储空间、节点性能、各个节点对应的宿主机的可用存储空间和主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,其中,节点选取方法用于表征基于各个节点的第一评估值和/或各个节点的第二评估值对所有节点进行筛选;存储各个目标节点标识和各个宿主机标识并发送至客户端。该方案通过综合考虑宿主机以及节点的性能,提升了数据存储的可靠性,提高了数据存储效率。
Description
技术领域
本申请的实施例涉及计算机技术领域,具体涉及数据处理技术领域,尤其涉及数据存储方法和装置。
背景技术
Hadoop分布式文件***(Hadoop Distributed File System,HDFS)是被设计成适合运行在通用硬件上的分布式文件***,HDFS集群包含两类节点,即管理者NameNode节点和工作者DataNode节点,并以管理者-工作者模式运行,一个HDFS集群由一个NameNode和多个DataNode组成,NameNode负责为用户服务以及管理文件***树,DataNode负责存储数据文件。在HDFS集群中数据文件被划分成多个数据块并被复制多份并行的存储于DataNode中。但HDFS集群存在单点故障的问题,一旦NameNode节点宕掉,将导致整个集群无法使用,数据存储的可靠性也得不到保证。
目前,应用容器引擎Docker技术使云环境容器化成为一个主流趋势,其具有一次封装、多次部署、随时迁移等优点。如何在基于Docker容器的环境下,避免HDFS集群存在单点故障的问题成为我们思考的问题。
发明内容
本申请提供了一种数据存储方法、装置、设备以及存储介质。
根据本申请的第一方面,提供了一种数据存储方法,该方法包括:响应于接收到客户端向集群***发送的数据存储请求,对数据存储请求进行解析,得到数据存储请求对应的各个数据块副本;基于各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,其中,节点选取方法用于表征基于各个节点的第一评估值和/或各个节点的第二评估值对所有节点进行筛选,第一评估值用于表征对节点的可用存储空间和该节点对应宿主机的可用存储空间进行整体评估,第二评估值用于表征对节点的节点性能和该节点对应宿主机的主机性能进行综合评估,可用存储空间用于表征节点除已经使用的存储空间以外剩余存储空间的数据量;存储各个目标节点标识和各个宿主机标识,并将各个目标节点标识的存储文件和各个宿主机标识的存储文件发送至客户端。
在一些实施例中,基于各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,包括:响应于每个数据块副本的数据量与集群***中各个节点的可用存储空间的差值全部大于预设值,基于所有节点的第一评估值的比对结果,对所有节点进行选取,得到与每个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,其中,预设值为以达到集群***中所有节点负载均衡为目标预先训练得到。
在一些实施例中,基于各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,包括:响应于每个数据块副本的数据量与集群***中各个节点的可用存储空间的差值不全部大于预设值,基于所有节点的第二评估值的比对结果,对所有节点进行选取,得到与每个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识。
在一些实施例中,响应于每个数据块副本的数据量与集群***中各个节点的可用存储空间的差值不全部大于预设值,基于所有节点的第二评估值的比对结果,对所有节点进行选取,得到与每个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,包括:响应于各个数据块副本中的首个数据块副本对应的数据量与集群***中各个节点的可用存储空间的差值不全部不大于预设值,判断客户端是否属于集群***中的节点;响应于客户端属于集群***中的节点,将客户端对应的节点确定为与首个数据块副本对应的第一个目标节点,得到第一个目标节点标识和与第一个目标节点对应的第一个宿主机标识。
在一些实施例中,在判断客户端是否属于集群***中的节点之后,还包括:响应于客户端不属于集群***中的节点,基于所有节点的第二评估值的比对结果,对所有节点进行选取,得到与首个数据块副本对应的第一个目标节点标识和第一个目标节点对应的第一个宿主机标识。
在一些实施例中,集群***中各个节点为基于Docker的分布式文件集群***的各个节点。
在一些实施例中,主机性能用于表征主机的各种资源性能,主机的各种资源包括:中央处理器资源、内存资源、磁盘资源以及服务所需的各种资源;节点性能用于表征节点的各种资源性能,节点的各种资源除了包括主机的各种资源以外,还包括节点访问数;基于各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,包括:基于各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,其中,第二评估值基于节点的节点性能指标值和相应宿主机的主机性能指标值计算得到,节点性能指标值基于节点各种资源性能指标计算得到,主机性能指标值基于主机各种资源性能指标计算得到。
在一些实施例中,方法还包括:基于预设的数据格式,对节点各种资源性能指标和主机各种资源性能指标进行转换,得到转换后的节点各种资源性能指标和转换后的主机各种资源性能指标。
在一些实施例中,存储各个目标节点标识和各个宿主机标识,包括:将各个目标节点标识存储于目标节点数组,并将各个宿主机标识存储于数据列表,其中,目标节点数组基于接收到数据存储请求而创建。
在一些实施例中,在将各个目标节点标识的存储文件和各个宿主机标识的存储文件发送至客户端之后,还包括:删除目标节点数组和数据列表。
根据本申请的第二方面,还提供了一种数据存储装置,包括:解析单元,被配置成响应于接收到客户端向集群***发送的数据存储请求,对数据存储请求进行解析,得到数据存储请求对应的各个数据块副本;选取单元,被配置成基于各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,其中,节点选取方法用于表征基于各个节点的第一评估值和/或各个节点的第二评估值对所有节点进行筛选,第一评估值用于表征对节点的可用存储空间和该节点对应宿主机的可用存储空间进行整体评估,第二评估值用于表征对节点的节点性能和该节点对应宿主机的主机性能进行综合评估,可用存储空间用于表征节点除已经使用的存储空间以外剩余存储空间的数据量;存储单元,被配置成存储各个目标节点标识和各个宿主机标识并将各个目标节点标识的存储文件和各个宿主机标识的存储文件发送至客户端。
在一些实施例中,选取单元进一步被配置成响应于每个数据块副本的数据量与集群***中各个节点的可用存储空间的差值全部大于预设值,基于所有节点的第一评估值的比对结果,对所有节点进行选取,得到与每个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,其中,预设值为以达到集群***中所有节点负载均衡为目标预先训练得到。
在一些实施例中,选取单元进一步被配置成响应于每个数据块副本的数据量与集群***中各个节点的可用存储空间的差值不全部大于预设值,基于所有节点的第二评估值的比对结果,对所有节点进行选取,得到与每个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识。
在一些实施例中,选取单元,包括:判断模块,被配置成响应于各个数据块副本中的首个数据块副本对应的数据量与集群***中各个节点的可用存储空间的差值不全部不大于预设值,判断客户端是否属于集群***中的节点;确定模块,被配置成响应于客户端属于集群***中的节点,将客户端对应的节点确定为与首个数据块副本对应的第一个目标节点,得到第一个目标节点标识和与第一个目标节点对应的第一个宿主机标识。
在一些实施例中,选取单元,还包括:选取模块,被配置成响应于客户端不属于集群***中的节点,基于所有节点的第二评估值的比对结果,对所有节点进行选取,得到与首个数据块副本对应的第一个目标节点标识和第一个目标节点对应的第一个宿主机标识。
在一些实施例中,装置中的集群***中各个节点为基于Docker的分布式文件集群***的各个节点。
在一些实施例中,选取单元中的主机性能用于表征主机的各种资源性能,主机的各种资源包括:中央处理器资源、内存资源、磁盘资源以及服务所需的各种资源;选取单元中的节点性能用于表征节点的各种资源性能,节点的各种资源除了包括主机的各种资源以外,还包括节点访问数;选取单元进一步被配置成基于各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,其中,第二评估值基于节点的节点性能指标值和相应宿主机的主机性能指标值计算得到,节点性能指标值基于节点各种资源性能指标计算得到,主机性能指标值基于主机各种资源性能指标计算得到。
在一些实施例中,装置还包括:转换单元,被配置成基于预设的数据格式,对节点的内存处理性能指标、主机的内存处理性能指标和主机的CPU处理性能指标进行转换,得到转换后的节点的内存处理性能指标、主机的内存处理性能指标和主机的CPU处理性能指标。
在一些实施例中,存储单元进一步被配置成将各个目标节点标识存储于目标节点数组,并将各个宿主机标识存储于数据列表,其中,目标节点数组基于接收到数据存储请求而创建。
在一些实施例中,装置还包括:删除单元,被配置成删除目标节点数组和数据列表。
根据本申请的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面中任一实现方式描述的方法。
根据本申请的第四方面,本申请提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,计算机指令用于使计算机执行如第一方面中任一实现方式描述的方法。
根据本申请的技术采用响应于接收到客户端向集群***发送的数据存储请求,对数据存储请求进行解析,得到数据存储请求对应的各个数据块副本,基于各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,其中,节点选取方法用于表征基于各个节点的第一评估值和/或各个节点的第二评估值对所有节点进行筛选,第一评估值用于表征对节点的可用存储空间和该节点对应宿主机的可用存储空间进行整体评估,第二评估值用于表征对节点的节点性能和该节点对应宿主机的主机性能进行综合评估,存储各个目标节点标识和各个宿主机标识,解决了现有技术中集群***在使用较长时间后,会导致各个节点的可用存储空间负载存在较大差异,容易造成个别节点可用存储空间不足以及集群***存在单点故障的问题。实现为数据块副本选取存储节点和宿主机的数据处理方法。通过计算第一评估值,能够有效的防止个别物理机或集群节点可用存储率较高但实际存储空间低,导致其在存储多个数据块副本后可用存储空间被消耗殆尽。通过综合考虑宿主机以及节点的性能,在减小节点之间可用存储空间差异性的同时,提升了集群数据存储的可靠性,能够有效的对集群数据进行迁移,提升集群的I/O性能,提高了数据存储效率。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。
图1是根据本申请的数据存储方法的第一实施例的示意图;
图2是可以实现本申请实施例的数据存储方法的场景图;
图3是根据本申请的数据存储方法的第二实施例的示意图;
图4是根据本申请的数据存储装置的一个实施例的结构示意图;
图5是用来实现本申请实施例的数据存储方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了根据本申请的数据存储方法的第一实施例的示意图100。该数据存储方法,包括以下步骤:
步骤101,响应于接收到客户端向集群***发送的数据存储请求,对数据存储请求进行解析,得到数据存储请求对应的各个数据块副本。
在本实施例中,当执行主体(例如服务平台)通过有线连接或无线连接的方式从本地或远端设备上接收到客户端向集群***发送的数据存储请求,可以利用数据解析方法对数据存储请求进行解析,得到数据存储请求对应的各个数据块副本。集群***可以包括分布式文件***HDFS等各种集群***。需要指出的是,上述无线连接方式可以包括但不限于3G、4G、5G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
步骤102,基于各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识。
在本实施例中,执行主体可以将各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能输入至节点选取方法的模型中,利用节点选取算法对所有节点进行计算,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识。节点选取方法用于表征基于各个节点的第一评估值和/或各个节点的第二评估值对所有节点进行筛选,第一评估值用于表征对节点的可用存储空间和该节点对应宿主机的可用存储空间进行整体评估,第二评估值用于表征对节点的节点性能和该节点对应宿主机的主机性能进行综合评估,可用存储空间用于表征节点除已经使用的存储空间以外剩余存储空间的数据量。需要指出的是,该节点选取方法的模型例如可以是数据表或计算公式等,本实施例不对此方面内容做任何限定。
这里举例说明第一评估值的计算过程,首先计算物理机的最小可用存储空间以及集群节点的最小可用存储空间,然后计算各个物理机、集群节点与最小可用存储空间的差值,接着基于各个差值计算各个物理机的可用存储空间评估值以及基于Docker容器的HDFS集群节点的可用存储空间评估值,最后根据物理机的可用存储空间评估值以及集群节点的可用存储空间评估值计算得到第一评估值。
这里举例说明第二评估值的计算过程,首先根据物理机的存储空间、内存以及CPU的处理性能的最大值和最小值综合计算各个物理机性能指标,再根据基于Docker容器的HDFS集群节点的存储空间、内存的最大值和最小值以及访问连接数综合计算各个集群节点的性能指标,最后根据物理机性能指标值以及集群节点的性能指标值计算得到第二评估值。
在本实施例的一些可选的实现方式中,集群***中各个节点为基于Docker的分布式文件集群***的各个节点。解决了现有技术中在基于Docker容器的环境下,HDFS集群在使用较长时间的默认数据副本放置策略以后,会导致各个节点的可用存储空间负载存在较大的差异,容易造成个别节点可用存储空间不足、后期某些物理机因可用存储空间不足而导致集群节点迁移失败以及HDFS集群存在单点故障的问题,避免了在存放数据块副本时,未充分考虑到物理机以及Docker容器节点的各方面性能,使数据在存储与读取方面的性能受到严重影响。
在本实施例的一些可选的实现方式中,主机性能用于表征主机的各种资源性能,主机的各种资源包括:中央处理器(Central Processing Unit,简称CPU)资源、内存资源、磁盘资源以及服务所需的各种资源;节点性能用于表征节点的各种资源性能,节点的各种资源除了包括主机的各种资源以外,还包括节点访问数;基于各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,包括:基于各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,其中,第二评估值基于节点的节点性能指标值和相应宿主机的主机性能指标值计算得到,节点性能指标值基于节点各种资源性能指标计算得到,主机性能指标值基于主机各种资源性能指标计算得到。节点访问数为节点被访问或被连接的次数,节点访问数通过节点中各类数据的存储数量的权重来表示。各类数据包括:热数据、冷数据和常规数据,热数据是指频繁访问的在线类数据,冷数据是指不经常访问的离线类数据,比如企业备份数据、业务与操作日志数据等,常规数据是指除热数据和冷数据以外的其他数据,节点访问数的统计可以基于时间周期来设置。通过对节点访问数的性能分析,可以将热数据存储在包含大量冷数据的节点,提升数据存储和读取的性能。
在本实施例的一些可选的实现方式中,方法还包括:基于预设的数据格式,对节点各种资源性能指标和主机各种资源性能指标进行转换,得到转换后的节点各种资源性能指标和转换后的主机各种资源性能指标。考虑到因各个性能取值的差异性而引起的倾向性问题,预先将各个性能取值按照统一的数据格式进行转换,提升了数据处理效率和精度。
步骤103,存储各个目标节点标识和各个宿主机标识,并将各个目标节点标识的存储文件和各个宿主机标识的存储文件发送至客户端。
在本实施例中,执行主体可以存储步骤102中得到的各个目标节点标识和各个宿主机标识,并将各个目标节点标识和各个宿主机标识的存储文件发送至客户端。
在本实施例的一些可选的实现方式中,存储各个目标节点标识和各个宿主机标识,包括:将各个目标节点标识存储于目标节点数组,并将各个宿主机标识存储于数据列表,其中,目标节点数组基于接收到数据存储请求而创建。为了防止由于物理机的故障所导致的大规模集群节点失效而引起数据丢失,将目标节点标识和物理机标识分开存储,并将物理机标识放置于不可选的数据列表中,以保证数据不可篡改,基于请求而创建目标节点数组,最大化地节省了存储空间。
在本实施例的一些可选的实现方式中,在将各个目标节点标识的存储文件和各个宿主机标识的存储文件发送至客户端之后,还包括:删除目标节点数组和数据列表。保证了数据的可靠性,最大化地节省了存储空间。
需要说明的是,技术人员可以根据实际需求,自行设定上述节点选取方法模型的模型结构,本公开的实施例对此不做限定。
继续参见图2,本实施例的数据存储方法200运行于电子设备201中。当电子设备201接收到客户端发送的数据存储请求后,对数据存储请求进行解析,得到数据存储请求对应的各个数据块副本202,然后电子设备201基于各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识203,最后电子设备201存储各个目标节点标识和各个宿主机标识,并将各个目标节点标识的存储文件和各个宿主机标识的存储文件发送至客户端204。其中,节点选取方法用于表征基于各个节点的第一评估值和/或各个节点的第二评估值对所有节点进行筛选,第一评估值用于表征对节点的可用存储空间和该节点对应宿主机的可用存储空间进行整体评估,第二评估值用于表征对节点的节点性能和该节点对应宿主机的主机性能进行综合评估。
本申请的上述实施例提供的数据存储方法采用响应于接收到客户端向集群***发送的数据存储请求,对数据存储请求进行解析,得到数据存储请求对应的各个数据块副本,基于各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,其中,节点选取方法用于表征基于各个节点的第一评估值和/或各个节点的第二评估值对所有节点进行筛选,第一评估值用于表征对节点的可用存储空间和该节点对应宿主机的可用存储空间进行整体评估,第二评估值用于表征对节点的节点性能和该节点对应宿主机的主机性能进行综合评估,存储各个目标节点标识和各个宿主机标识,解决了现有技术中集群***在使用较长时间后,会导致各个节点的可用存储空间负载存在较大差异,容易造成个别节点可用存储空间不足以及集群***存在单点故障的问题。实现为数据块副本选取存储节点和宿主机的数据处理方法。通过计算第一评估值,能够有效的防止个别物理机或集群节点可用存储率较高但实际存储空间低,导致其在存储多个数据块副本后可用存储空间被消耗殆尽。通过综合考虑宿主机以及节点的性能,在减小节点之间可用存储空间差异性的同时,提升了集群数据存储的可靠性,能够有效的对集群数据进行迁移,提升集群的I/O性能,提高了数据存储效率。
进一步参考图3,其示出了数据存储方法的第二实施例的示意图300。该方法的流程包括以下步骤:
步骤301,响应于接收到客户端向集群***发送的数据存储请求,对数据存储请求进行解析,得到数据存储请求对应的各个数据块副本。
步骤302,响应于每个数据块副本的数据量与集群***中各个节点的可用存储空间的差值不全部大于预设值,基于所有节点的第二评估值的比对结果,对所有节点进行选取,得到与每个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识。
在本实施例中,执行主体可以对每个数据块副本的数据量与集群***中各个节点的可用存储空间的差值是否全部大于预设值进行判断,当每个数据块副本的数据量与集群***中各个节点的可用存储空间的差值不全部大于预设值,即至少有一个差值不大于预设值,基于所有节点的第二评估值的比对结果,选取所有节点中第二评估值最优的节点,得到与每个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识。第二评估值用于表征对节点的节点性能和该节点对应宿主机的主机性能进行综合评估。预设值为以达到集群***中所有节点负载均衡为目标预先训练得到。
在本实施例中,当执行主体判定各个数据块副本中的首个数据块副本对应的数据量与集群***中各个节点的可用存储空间的差值不全部不大于预设值时,判断客户端是否属于集群***中的节点,若执行主体判定客户端属于集群***中的节点,将客户端对应的节点确定为与首个数据块副本对应的第一个目标节点,得到第一个目标节点标识和与第一个目标节点对应的第一个宿主机标识。当执行主体判定客户端不属于集群***中的节点,基于所有节点的第二评估值的比对结果,选取所有节点中第二评估值最优的节点,得到与首个数据块副本对应的第一个目标节点标识和第一个目标节点对应的第一个宿主机标识。
在本实施例的一些可选的实现方式中,基于各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,包括:响应于每个数据块副本的数据量与集群***中各个节点的可用存储空间的差值全部大于预设值,基于所有节点的第一评估值的比对结果,对所有节点进行选取,选取所有节点中第一评估值最大的节点,得到与每个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识。当可用存储空间都足够大时,选取可用空间最大的节点作为存储节点,以使集群***中所有节点的负载均衡。
步骤303,存储各个目标节点标识和各个宿主机标识,并将各个目标节点标识的存储文件和各个宿主机标识的存储文件发送至客户端。
需要说明的是,上述预设值的训练方法是目前广泛研究和应用的公知技术,在此不再赘述。
在本实施例中,步骤301和303的具体操作与图1所示的实施例中的步骤101和103的操作基本相同,在此不再赘述。
从图3中可以看出,与图1对应的实施例相比,本实施例中的数据存储方法的示意图300采用响应于每个数据块副本的数据量与集群***中各个节点的可用存储空间的差值不全部大于预设值,基于所有节点的第二评估值的比对结果,对所有节点进行选取,得到与每个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,在所有节点的可用存储空间并非足够大时,追求性能最大化,选取第二评估值最优的节点作为存储节点,提升了存储效率。通过判断客户端是否属于集群***中的节点,若执行主体判定客户端属于集群***中的节点,将客户端对应的节点确定为与首个数据块副本对应的第一个目标节点,得到第一个目标节点标识和与第一个目标节点对应的第一个宿主机标识,使最早的数据块副本存储于本地节点,提升了存储效率。在预设值的确定过程中,若预设值过大,将导致集群节点可用存储空间负载失衡,同时也会导致后期集群节点数据迁移失败,使得数据存储可靠性降低,若预设值过小,将导致数据存储过程复杂化,使得数据存储性能降低,通过设置合适的预设值,提高数据存储的可靠性,提升数据存储性能。
进一步参考图4,作为对上述图1~3所示方法的实现,本申请提供了一种数据存储装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例的数据存储装置400包括:解析单元401、选取单元402和存储单元403,其中,解析单元,被配置成响应于接收到客户端向集群***发送的数据存储请求,对数据存储请求进行解析,得到数据存储请求对应的各个数据块副本;选取单元,被配置成基于各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,其中,节点选取方法用于表征基于各个节点的第一评估值和/或各个节点的第二评估值对所有节点进行筛选,第一评估值用于表征对节点的可用存储空间和该节点对应宿主机的可用存储空间进行整体评估,第二评估值用于表征对节点的节点性能和该节点对应宿主机的主机性能进行综合评估,可用存储空间用于表征节点除已经使用的存储空间以外剩余存储空间的数据量;存储单元,被配置成存储各个目标节点标识和各个宿主机标识并将各个目标节点标识的存储文件和各个宿主机标识的存储文件发送至客户端。
在本实施例中,数据存储装置400的解析单元401、选取单元402和存储单元403的具体处理及其所带来的技术效果可分别参考图1对应的实施例中的步骤101到步骤103的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,选取单元进一步被配置成响应于每个数据块副本的数据量与集群***中各个节点的可用存储空间的差值全部大于预设值,基于所有节点的第一评估值的比对结果,对所有节点进行选取,得到与每个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,其中,预设值为以达到集群***中所有节点负载均衡为目标预先训练得到。
在本实施例的一些可选的实现方式中,选取单元进一步被配置成响应于每个数据块副本的数据量与集群***中各个节点的可用存储空间的差值不全部大于预设值,基于所有节点的第二评估值的比对结果,对所有节点进行选取,得到与每个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识。
在本实施例的一些可选的实现方式中,选取单元,包括:判断模块,被配置成响应于各个数据块副本中的首个数据块副本对应的数据量与集群***中各个节点的可用存储空间的差值不全部不大于预设值,判断客户端是否属于集群***中的节点;确定模块,被配置成响应于客户端属于集群***中的节点,将客户端对应的节点确定为与首个数据块副本对应的第一个目标节点,得到第一个目标节点标识和与第一个目标节点对应的第一个宿主机标识。
在本实施例的一些可选的实现方式中,选取单元,还包括:选取模块,被配置成响应于客户端不属于集群***中的节点,基于所有节点的第二评估值的比对结果,对所有节点进行选取,得到与首个数据块副本对应的第一个目标节点标识和第一个目标节点对应的第一个宿主机标识。
在本实施例的一些可选的实现方式中,装置中的集群***中各个节点为基于Docker的分布式文件集群***的各个节点。
在本实施例的一些可选的实现方式中,选取单元中的主机性能用于表征主机的各种资源性能,主机的各种资源包括:中央处理器资源、内存资源、磁盘资源以及服务所需的各种资源;选取单元中的节点性能用于表征节点的各种资源性能,节点的各种资源除了包括主机的各种资源以外,还包括节点访问数;选取单元进一步被配置成基于各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,其中,第二评估值基于节点的节点性能指标值和相应宿主机的主机性能指标值计算得到,节点性能指标值基于节点各种资源性能指标计算得到,主机性能指标值基于主机各种资源性能指标计算得到。
在本实施例的一些可选的实现方式中,装置还包括:转换单元,被配置成基于预设的数据格式,对节点的内存处理性能指标、主机的内存处理性能指标和主机的CPU处理性能指标进行转换,得到转换后的节点的内存处理性能指标、主机的内存处理性能指标和主机的CPU处理性能指标。
在本实施例的一些可选的实现方式中,存储单元进一步被配置成将各个目标节点标识存储于目标节点数组,并将各个宿主机标识存储于数据列表,其中,目标节点数组基于接收到数据存储请求而创建。
在本实施例的一些可选的实现方式中,装置还包括:删除单元,被配置成删除目标节点数组和数据列表。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图5所示,是根据本申请实施例的数据存储方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图5所示,该电子设备包括:一个或多个处理器501、存储器502,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图5中以一个处理器501为例。
存储器502即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的数据存储方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的数据存储方法。
存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的数据存储方法对应的程序指令/模块(例如,附图4所示的解析单元401、选取单元402和存储单元403)。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的数据存储方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据数据存储电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至数据存储电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
数据存储方法的电子设备还可以包括:输入装置503和输出装置504。处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图5中以通过总线连接为例。
输入装置503可接收输入的数字或字符信息,以及产生与数据存储电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置504可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案采用响应于接收到客户端向集群***发送的数据存储请求,对数据存储请求进行解析,得到数据存储请求对应的各个数据块副本,基于各个数据块副本、集群***中各个节点的可用存储空间、各个节点的节点性能、各个节点对应的宿主机的可用存储空间和宿主机的主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,其中,节点选取方法用于表征基于各个节点的第一评估值和/或各个节点的第二评估值对所有节点进行筛选,第一评估值用于表征对节点的可用存储空间和该节点对应宿主机的可用存储空间进行整体评估,第二评估值用于表征对节点的节点性能和该节点对应宿主机的主机性能进行综合评估,存储各个目标节点标识和各个宿主机标识,解决了现有技术中集群***在使用较长时间后,会导致各个节点的可用存储空间负载存在较大差异,容易造成个别节点可用存储空间不足以及集群***存在单点故障的问题。实现为数据块副本选取存储节点和宿主机的数据处理方法。通过计算第一评估值,能够有效的防止个别物理机或集群节点可用存储率较高但实际存储空间低,导致其在存储多个数据块副本后可用存储空间被消耗殆尽。通过综合考虑宿主机以及节点的性能,在减小节点之间可用存储空间差异性的同时,提升了集群数据存储的可靠性,能够有效的对集群数据进行迁移,提升集群的I/O性能,提高了数据存储效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (18)
1.一种数据存储方法,所述方法包括:
响应于接收到客户端向集群***发送的数据存储请求,对所述数据存储请求进行解析,得到所述数据存储请求对应的各个数据块副本;
基于各个所述数据块副本、所述集群***中各个节点的可用存储空间、各个所述节点的节点性能、各个所述节点对应的宿主机的可用存储空间和所述宿主机的主机性能,利用节点选取方法对所有所述节点进行选取,得到与各个所述数据块副本对应的目标节点标识和与各个所述目标节点对应的宿主机标识,其中,所述节点选取方法用于表征基于各个所述节点的第一评估值和/或各个所述节点的第二评估值对所有所述节点进行筛选,所述第一评估值用于表征对节点的可用存储空间和该节点对应宿主机的可用存储空间进行整体评估,所述第二评估值用于表征对节点的所述节点性能和该节点对应宿主机的所述主机性能进行综合评估,所述可用存储空间用于表征节点除已经使用的存储空间以外剩余存储空间的数据量;
存储各个所述目标节点标识和各个所述宿主机标识,并将各个所述目标节点标识的存储文件和各个所述宿主机标识的存储文件发送至所述客户端。
2.根据权利要求1所述方法,其中,所述基于各个所述数据块副本、所述集群***中各个节点的可用存储空间、各个所述节点的节点性能、各个所述节点对应的宿主机的可用存储空间和所述宿主机的主机性能,利用节点选取方法对所有所述节点进行选取,得到与各个所述数据块副本对应的目标节点标识和与各个所述目标节点对应的宿主机标识,包括:
响应于每个所述数据块副本的数据量与所述集群***中各个节点的可用存储空间的差值全部大于预设值,基于所有所述节点的所述第一评估值的比对结果,对所有所述节点进行选取,得到与每个所述数据块副本对应的目标节点标识和与各个所述目标节点对应的宿主机标识,其中,所述预设值为以达到所述集群***中所有节点负载均衡为目标预先训练得到。
3.根据权利要求1所述方法,其中,所述基于各个所述数据块副本、所述集群***中各个节点的可用存储空间、各个所述节点的节点性能、各个所述节点对应的宿主机的可用存储空间和所述宿主机的主机性能,利用节点选取方法对所有所述节点进行选取,得到与各个所述数据块副本对应的目标节点标识和与各个所述目标节点对应的宿主机标识,包括:
响应于每个所述数据块副本的数据量与所述集群***中各个节点的可用存储空间的差值不全部大于预设值,基于所有所述节点的所述第二评估值的比对结果,对所有所述节点进行选取,得到与每个所述数据块副本对应的目标节点标识和与各个所述目标节点对应的宿主机标识。
4.根据权利要求3所述方法,其中,所述响应于每个所述数据块副本的数据量与所述集群***中各个节点的可用存储空间的差值不全部大于预设值,基于所有所述节点的所述第二评估值的比对结果,对所有所述节点进行选取,得到与每个所述数据块副本对应的目标节点标识和与各个所述目标节点对应的宿主机标识,包括:
响应于各个所述数据块副本中的首个数据块副本对应的数据量与所述集群***中各个节点的可用存储空间的差值不全部不大于所述预设值,判断所述客户端是否属于所述集群***中的节点;
响应于所述客户端属于所述集群***中的节点,将所述客户端对应的节点确定为与所述首个数据块副本对应的第一个目标节点,得到所述第一个目标节点标识和与所述第一个目标节点对应的第一个宿主机标识。
5.根据权利要求4所述方法,在所述判断所述客户端是否属于所述集群***中的节点之后,还包括:
响应于所述客户端不属于所述集群***中的节点,基于所有所述节点的所述第二评估值的比对结果,对所有所述节点进行选取,得到与所述首个数据块副本对应的所述第一个目标节点标识和所述第一个目标节点对应的第一个宿主机标识。
6.根据权利要求1所述方法,其中,所述集群***中各个节点为基于Docker的分布式文件集群***的各个节点。
7.根据权利要求1所述方法,其中,所述主机性能用于表征主机的各种资源性能,所述主机的各种资源包括:中央处理器资源、内存资源、磁盘资源以及服务所需的各种资源;所述节点性能用于表征节点的各种资源性能,所述节点的各种资源除了包括所述主机的各种资源以外,还包括节点访问数;
所述基于各个所述数据块副本、所述集群***中各个节点的可用存储空间、各个所述节点的节点性能、各个所述节点对应的宿主机的可用存储空间和所述宿主机的主机性能,利用节点选取方法对所有所述节点进行选取,得到与各个所述数据块副本对应的目标节点标识和与各个所述目标节点对应的宿主机标识,包括:
基于各个所述数据块副本、所述集群***中各个节点的可用存储空间、各个所述节点的节点性能、各个所述节点对应的宿主机的可用存储空间和所述宿主机的主机性能,利用节点选取方法对所有所述节点进行选取,得到与各个所述数据块副本对应的目标节点标识和与各个所述目标节点对应的宿主机标识,其中,所述第二评估值基于节点的节点性能指标值和相应宿主机的主机性能指标值计算得到,所述节点性能指标值基于节点各种资源性能指标计算得到,所述主机性能指标值基于主机各种资源性能指标计算得到。
8.根据权利要求1所述方法,其中,所述存储各个所述目标节点标识和各个所述宿主机标识,包括:
将各个所述目标节点标识存储于目标节点数组,并将各个所述宿主机标识存储于数据列表,其中,所述目标节点数组基于接收到所述数据存储请求而创建。
9.一种数据存储装置,所述装置包括:
解析单元,被配置成响应于接收到客户端向集群***发送的数据存储请求,对所述数据存储请求进行解析,得到所述数据存储请求对应的各个数据块副本;
选取单元,被配置成基于各个所述数据块副本、所述集群***中各个节点的可用存储空间、各个所述节点的节点性能、各个所述节点对应的宿主机的可用存储空间和所述宿主机的主机性能,利用节点选取方法对所有所述节点进行选取,得到与各个所述数据块副本对应的目标节点标识和与各个所述目标节点对应的宿主机标识,其中,所述节点选取方法用于表征基于各个所述节点的第一评估值和/或各个所述节点的第二评估值对所有所述节点进行筛选,所述第一评估值用于表征对节点的可用存储空间和该节点对应宿主机的可用存储空间进行整体评估,所述第二评估值用于表征对节点的所述节点性能和该节点对应宿主机的所述主机性能进行综合评估,所述可用存储空间用于表征节点除已经使用的存储空间以外剩余存储空间的数据量;
存储单元,被配置成存储各个所述目标节点标识和各个所述宿主机标识并将各个所述目标节点标识的存储文件和各个所述宿主机标识的存储文件发送至所述客户端。
10.根据权利要求9所述装置,其中,所述选取单元进一步被配置成响应于每个所述数据块副本的数据量与所述集群***中各个节点的可用存储空间的差值全部大于预设值,基于所有所述节点的所述第一评估值的比对结果,对所有所述节点进行选取,得到与每个所述数据块副本对应的目标节点标识和与各个所述目标节点对应的宿主机标识,其中,所述预设值为以达到所述集群***中所有节点负载均衡为目标预先训练得到。
11.根据权利要求9所述装置,其中,所述选取单元进一步被配置成响应于每个所述数据块副本的数据量与所述集群***中各个节点的可用存储空间的差值不全部大于预设值,基于所有所述节点的所述第二评估值的比对结果,对所有所述节点进行选取,得到与每个所述数据块副本对应的目标节点标识和与各个所述目标节点对应的宿主机标识。
12.根据权利要求11所述装置,其中,所述选取单元,包括:
判断模块,被配置成响应于各个所述数据块副本中的首个数据块副本对应的数据量与所述集群***中各个节点的可用存储空间的差值不全部不大于所述预设值,判断所述客户端是否属于所述集群***中的节点;
确定模块,被配置成响应于所述客户端属于所述集群***中的节点,将所述客户端对应的节点确定为与所述首个数据块副本对应的第一个目标节点,得到所述第一个目标节点标识和与所述第一个目标节点对应的第一个宿主机标识。
13.根据权利要求12所述装置,其中,所述选取单元,还包括:
选取模块,被配置成响应于所述客户端不属于所述集群***中的节点,基于所有所述节点的所述第二评估值的比对结果,对所有所述节点进行选取,得到与所述首个数据块副本对应的所述第一个目标节点标识和所述第一个目标节点对应的第一个宿主机标识。
14.根据权利要求9所述装置,其中,所述集群***中各个节点为基于Docker的分布式文件集群***的各个节点。
15.根据权利要求9所述装置,其中,所述选取单元中的所述主机性能用于表征主机的各种资源性能,所述主机的各种资源包括:中央处理器资源、内存资源、磁盘资源以及服务所需的各种资源;所述选取单元中的所述节点性能用于表征节点的各种资源性能,所述节点的各种资源除了包括所述主机的各种资源以外,还包括节点访问数;
所述选取单元进一步被配置成基于各个所述数据块副本、所述集群***中各个节点的可用存储空间、各个所述节点的节点性能、各个所述节点对应的宿主机的可用存储空间和所述宿主机的主机性能,利用节点选取方法对所有所述节点进行选取,得到与各个所述数据块副本对应的目标节点标识和与各个所述目标节点对应的宿主机标识,其中,所述第二评估值基于节点的节点性能指标值和相应宿主机的主机性能指标值计算得到,所述节点性能指标值基于节点各种资源性能指标计算得到,所述主机性能指标值基于主机各种资源性能指标计算得到。
16.根据权利要求9所述装置,其中,所述存储单元进一步被配置成将各个所述目标节点标识存储于目标节点数组,并将各个所述宿主机标识存储于数据列表,其中,所述目标节点数组基于接收到所述数据存储请求而创建。
17.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110082120.0A CN113778973B (zh) | 2021-01-21 | 2021-01-21 | 数据存储方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110082120.0A CN113778973B (zh) | 2021-01-21 | 2021-01-21 | 数据存储方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113778973A CN113778973A (zh) | 2021-12-10 |
CN113778973B true CN113778973B (zh) | 2024-04-05 |
Family
ID=78835479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110082120.0A Active CN113778973B (zh) | 2021-01-21 | 2021-01-21 | 数据存储方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113778973B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114281260A (zh) * | 2021-12-23 | 2022-04-05 | 广州炒米信息科技有限公司 | 应用于分布式存储***的存储方法、装置、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103152395A (zh) * | 2013-02-05 | 2013-06-12 | 北京奇虎科技有限公司 | 一种分布式文件***的存储方法及装置 |
CN104978236A (zh) * | 2015-07-07 | 2015-10-14 | 四川大学 | 一种基于多衡量指标的hdfs负载源宿节点选取方法 |
US10298709B1 (en) * | 2014-12-31 | 2019-05-21 | EMC IP Holding Company LLC | Performance of Hadoop distributed file system operations in a non-native operating system |
CN110781156A (zh) * | 2019-09-20 | 2020-02-11 | 苏州浪潮智能科技有限公司 | 一种数据节点的分配方法、设备及介质 |
CN111290826A (zh) * | 2018-12-06 | 2020-06-16 | 北京京东尚科信息技术有限公司 | 分布式文件***、计算机***和介质 |
CN111708497A (zh) * | 2020-06-19 | 2020-09-25 | 汪礼君 | 一种基于hdfs的云环境数据存储优化方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793425B (zh) * | 2012-10-31 | 2017-07-14 | 国际商业机器公司 | 用于分布式***的数据处理方法及装置 |
-
2021
- 2021-01-21 CN CN202110082120.0A patent/CN113778973B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103152395A (zh) * | 2013-02-05 | 2013-06-12 | 北京奇虎科技有限公司 | 一种分布式文件***的存储方法及装置 |
US10298709B1 (en) * | 2014-12-31 | 2019-05-21 | EMC IP Holding Company LLC | Performance of Hadoop distributed file system operations in a non-native operating system |
CN104978236A (zh) * | 2015-07-07 | 2015-10-14 | 四川大学 | 一种基于多衡量指标的hdfs负载源宿节点选取方法 |
CN111290826A (zh) * | 2018-12-06 | 2020-06-16 | 北京京东尚科信息技术有限公司 | 分布式文件***、计算机***和介质 |
CN110781156A (zh) * | 2019-09-20 | 2020-02-11 | 苏州浪潮智能科技有限公司 | 一种数据节点的分配方法、设备及介质 |
CN111708497A (zh) * | 2020-06-19 | 2020-09-25 | 汪礼君 | 一种基于hdfs的云环境数据存储优化方法 |
Non-Patent Citations (2)
Title |
---|
云存储环境下副本选择策略研究;张翠苹;郭振洲;拱长青;;计算机科学;20151115(S2);全文 * |
云计算环境中HDFS数据块存储策略研究;袁爱平;陶志勇;邓河;陈为满;;电脑知识与技术;20200915(26);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113778973A (zh) | 2021-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111694646B (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
WO2022037039A1 (zh) | 神经网络架构搜索方法以及装置 | |
US9942353B2 (en) | Management of connections within a messaging environment based on the statistical analysis of server responsiveness | |
US9413818B2 (en) | Deploying applications in a networked computing environment | |
US9397953B2 (en) | Operation managing method for computer system, computer system and computer-readable storage medium having program thereon | |
CN111737127A (zh) | 用于测试地图服务的方法和装置 | |
CN111639027B (zh) | 一种测试方法、装置及电子设备 | |
US10158709B1 (en) | Identifying data store requests for asynchronous processing | |
CN111835592B (zh) | 用于确定健壮性的方法、装置、电子设备及可读存储介质 | |
US10135703B1 (en) | Generating creation performance metrics for a secondary index of a table | |
EP3218805B1 (en) | Method and system for model-driven, affinity-based, network functions | |
CN103488674A (zh) | 计算***和计算***的执行控制方法 | |
Li et al. | Adaptive QoS-aware service process reconfiguration | |
CN112559522A (zh) | 数据存储方法、装置、查询方法、电子设备及可读介质 | |
CN111782147A (zh) | 用于集群扩缩容的方法和装置 | |
CN113778973B (zh) | 数据存储方法和装置 | |
US20170206027A1 (en) | Management system and management method of computer system | |
CN111782341B (zh) | 用于管理集群的方法和装置 | |
CN114185734A (zh) | 一种监控集群的方法、装置及电子设备 | |
CN112118314A (zh) | 负载均衡方法和装置 | |
CN112084000A (zh) | 容器集群的测试方法和装置 | |
CN112052152A (zh) | 一种模拟测试的方法和装置 | |
CN114756301A (zh) | 日志处理方法、装置和*** | |
CN113360689B (zh) | 图像检索***、方法、相关装置及计算机程序产品 | |
CN114706893A (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 |