数据存储方法和装置

文档序号:1952575 发布日期:2021-12-10 浏览:11次 >En<

阅读说明:本技术 数据存储方法和装置 (Data storage method and device ) 是由 吴昊 冯春宇 陈鹏 徐峰 于 2021-01-21 设计创作,主要内容包括:本申请公开了数据存储方法和装置,具体实现方案为:响应于接收到客户端发送的数据存储请求,对数据存储请求进行解析,得到数据存储请求对应的各个数据块副本;基于各个数据块副本、集群系统中各个节点的可用存储空间、节点性能、各个节点对应的宿主机的可用存储空间和主机性能,利用节点选取方法对所有节点进行选取,得到与各个数据块副本对应的目标节点标识和与各个目标节点对应的宿主机标识,其中,节点选取方法用于表征基于各个节点的第一评估值和/或各个节点的第二评估值对所有节点进行筛选;存储各个目标节点标识和各个宿主机标识并发送至客户端。该方案通过综合考虑宿主机以及节点的性能,提升了数据存储的可靠性,提高了数据存储效率。(The application discloses a data storage method and a data storage device, and the specific implementation scheme is as follows: responding to a received data storage request sent by a client, analyzing the data storage request to obtain each data block copy corresponding to the data storage request; selecting all nodes by using a node selection method based on the data block copies, the available storage space and the node performance of each node in the cluster system, and the available storage space and the host performance of a host corresponding to each node to obtain a target node identifier corresponding to each data block copy and a host identifier corresponding to each target node, wherein the node selection method is used for representing and screening all nodes based on a first evaluation value of each node and/or a second evaluation value of each node; and storing each target node identification and each host machine identification and sending the target node identification and each host machine identification to the client. According to the scheme, the performance of the host and the performance of the nodes are comprehensively considered, the reliability of data storage is improved, and the data storage efficiency is improved.)

数据存储方法和装置

技术领域

本申请的实施例涉及计算机技术领域,具体涉及数据处理技术领域,尤其涉及数据存储方法和装置。

背景技术

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性能,提高了数据存储效率。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:日志数据处理方法、装置、存储介质与电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!