发明内容
为解决上述技术问题,本发明提供一种对视频云存储节点的管理更加便捷,达到精准管理的目的的基于节点扩容的视频云存储方法。
第一方面,本发明提供了基于节点扩容的视频云存储方法,所述方法包括:
监测存储节点的运行情况;
提取存储节点的运行参数;
将运行参数带入预先录入的转换模型中,获得节点的实时健康指数;
构建健康指数对照库;
根据存储节点总容量大小和实时健康指数,确定节点的处理方案并执行。
另一方面,本申请还提供了基于节点扩容的视频云存储装置,所述系统包括:
第三方面,本申请提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述收发器、所述存储器和所述处理器通过所述总线相连,所述计算机程序被所述处理器执行时实现上述任意一项所述方法中的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述方法中的步骤
进一步地,所述对照库中不同容量大小的节点均设置有多个健康指数范围,每个健康指数范围分别对应一种节点处理方案。
进一步地,所述运行参数包括节点读写入速度、总容量、剩余容量、运行温度和连续运行时间。
进一步地,构建健康指数对照库的方法包括:
采集各个节点的历史运行参数;
将历史运行参数按时间顺序转换成能够进行卷积运算的取样矩阵;
所述转换模型通过取样矩阵对卷积神经网络进行训练;
通过训练得到节点在不同状态下的健康指数。
进一步地,获得节点的实时健康指数的方法包括:
所述转换模型将实时提取到的运行参数按时间顺序转换成能够进行卷积运算的样本矩阵;
利用相同的卷积神经网络对样本矩阵进行运算;通过运算得到节点的实时健康指数。
进一步地,所述节点的读写入速度获取方法包括:
通过Shell命令自动识别服务器中所有的存储节点;
通过dd命令自动测试各个存储节点的读写入速度。
进一步地,构建节点处理方案库,所述节点处理方案库包括不同容量的节点在不同健康指数下的处理方案。
与现有技术相比本发明的有益效果为:
本申请通过对存储节点进行实时监测,并提取存储节点的运行参数;之后将运行参数带入预先录入的转换模型中,获得节点的实时健康指数;再将实时健康指数与健康指数对照库之间进行映射;根据存储节点总容量大小和实时健康指数,确定节点的处理方案并执行;通过上述方法对视频云存储的节点进行实时监控,并根据节点的运行情况分析出节点后续的运行状况,精准预测节点可持续使用时间并给出提示,使得对视频云存储节点的管理更加便捷,达到精准管理的目的。
具体实施方式
在本申请的描述中,所属技术领域的技术人员应当知道,本申请可以实现为方法、装置、电子设备及计算机可读存储介质。因此,本申请可以具体实现为以下形式:完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、硬件和软件结合的形式。此外,在一些实施例中,本申请还可以实现为在一个或多个计算机可读存储介质中的计算机程序产品的形式,该计算机可读存储介质中包含计算机程序代码。
上述计算机可读存储介质可以采用一个或多个计算机可读存储介质的任意组合。计算机可读存储介质包括:电、磁、光、电磁、红外或半导体的系统、装置或器件,或者以上任意的组合。计算机可读存储介质更具体的例子包括:便携式计算机磁盘、硬盘、随机存取存储器、只读存储器、可擦除可编程只读存储器、闪存、光纤、光盘只读存储器、光存储器件、磁存储器件或以上任意组合。在本申请中,计算机可读存储介质可以是任意包含或存储程序的有形介质,该程序可以被指令执行系统、装置、器件使用或与其结合使用。
本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律的相关规定。
本申请通过流程图和/或方框图描述所提供的方法、装置、电子设备。
应当理解,流程图和/或方框图的每个方框以及流程图和/或方框图中各方框的组合,都可以由计算机可读程序指令实现。这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机可读程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或方框图中的方框规定的功能/操作的装置。
也可以将这些计算机可读程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读存储介质中。这样,存储在计算机可读存储介质中的指令就产生出一个包括实现流程图和/或方框图中的方框规定的功能/操作的指令装置产品。
也可以将计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程数据处理装置上执行的指令能够提供实现流程图和/或方框图中的方框规定的功能/操作的过程。
下面结合本申请中的附图对本申请进行描述。
如图1至图2所示,本发明的基于节点扩容的视频云存储方法,包括以下步骤:
S1、监测存储节点的运行情况:
在网络拓扑学中,节点是网络任何支路的终端或网络中两个或更多支路的互连公共点;在程序语言中,节点是XML文件中有效而完整的结构的最小单元;在作图软件MAYA中,节点是最小的单位;每个节点都是一个属性组;节点可以输入,输出,保存属性;
一个存储节点相当于一台主机,或有所不同,这里视情况而定,存储节点里面可以创建多个OSD,OSD的英文全称是Object Storage Device,它的主要功能是存储数据、复制数据、平衡数据、恢复数据、与其它OSD间进行心跳检查、并将一些变化情况上报给CephMonitor;一般情况下一块硬盘对应一个OSD,由OSD来对硬盘存储进行管理,当然一个分区也可以成为一个OSD;因此存储节点是存在于存储过程中的。
在对视频云存储节点进行管理时,需要时刻掌握节点的运行状况,做到及时发现问题及时解决问题;为了提升用户体验,甚至需要预测问题的出现,并在问题出现之前进行解决,以避免节点发生故障导致宕机,影响用户使用的情况出现。
S2、提取存储节点的运行参数;
通过节点的运行参数对节点接下来的运行状况进行预测,作为优选地,其中的存储节点运行参数包括:节点读写入速度、总容量、剩余容量、运行温度和连续运行时间;当然,上述参数仅仅是较为典型的部分参数,其他能够被获取及利用的参数也均在本发明的保护范围内。
以存储硬盘为例,硬盘的读写入速度直接影响节点的存储速率,读写入速度越快,同等大小视频上传和下载的时间越短,用户体验越好;通过对硬盘读写入速度的定时监测,当硬盘读写入速度与硬盘出厂读写入速度相差较大时,则间接反应出硬盘有可能出现故障;通过检测节点硬盘的读写入速度,以便能够在节点硬盘性能下降时进行及时更换,避免影响节点的正常运行;具体的测试方式如下:
S21、识别服务器中所有的存储节点;
S22、自动测试各个存储节点的读写入速度;
利用Linux自带的dd命令来测试硬盘的读写入速度;
以写入速度的测试为例:对磁盘进行连续写入,不使用内存缓冲区,每次写入8k的数据,总共写入30万次,产生2.4G大小的文件;
测试指令如下:
dd if=/dev/zero of=/data01/test.dbf bs=8k count=300k conv=fdatasync;
具体的,其中dd用于复制,从if读出,写到of;其中if=/dev/zero,只产生字符,不产生IO,因此可以用来测试纯写入速度;其中bs是每次读或写的大小,即一个块的大小,count是读写块的数量;其中conv=fdatasync表示只把文件的“数据”写入磁盘;最终输出的结果类似:
300000+0 records in;
300000+0 records out;
real 0m36.669s;
user 0m0.185s;
sys 0m9.340s;
所以写入速度为:8*300000/1024/36.669=63.916M/s。
以读取速度的测试为例,测试指令如下:
time dd if=/dev/sda1 of=/dev/null bs=8k
因为/dev/sdb1是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读取速度;
输出的结果类似:
448494+0 records in;
448494+0 records out;
real 0m51.070s;
user 0m0.054s;
sys 0m10.028s;
所以读取速度为:8*448494/1024/51.070=68.61M/s。
同时,硬盘连续长时间保持高速的读写入速度也会降低硬盘的使用寿命,因此根据硬盘读写的运行时间,能够合理的在多个硬盘之间进行任务分配,避免单一硬盘多任务长时间运行的情况发生,提升硬盘的使用寿命。
另一方面,硬盘的正常工作温度在40-50度之间算是正常温度,它的工作温度极限应小于70度;当硬盘温度达到100度左右时,硬盘就会损坏引起丢失数据,严重就会损坏硬盘。在正常情况下;硬盘的工作温度比室内温度会高出10-20度,在夏天可能会达到60-70度,冬天就只有30-40度;而一般IDE硬盘的正常工作温度为30-50度左右;一般硬盘温度过高,容易导致数据读取数据不稳定,同时也会影响到硬盘的使用寿命,所以对硬盘温度的监测也是必不可少的。
其中,通过对硬盘剩余容量的监测,同时结合上述硬盘写入速度的监测,能够计算出硬盘距满载的剩余时间;更为具体的是,通过对最近7天内的硬盘写入速度进行求平均值,再利用剩余容量除以平均写入速度,即可大致得到硬盘距满载的剩余时间。
S3、将运行参数带入预先录入的转换模型中,获得节点的实时健康指数;
通过一种运行参数对存储节点的运行状况进行预测,显然是不够全面、准确的,因此需要多种运行参数相结合结合,模拟出一种能够对存储节点的运行状况进行评估的健康指数;
具体而言,获得节点的实时健康指数的步骤如下:
S31、所述转换模型将实时提取到的运行参数按时间顺序转换成能够进行卷积运算的样本矩阵;
S32、利用卷积神经网络对样本矩阵进行运算;通过运算得到节点的实时健康指数。
这里需要采用卷积神经网络进行深度学习,通过对节点一定时间内的运行参数进行统计,将统计后的读写入速度、总容量、剩余容量和运行温度按时间顺序转换成能够进行卷积运算的样本矩阵,通过对样本矩阵进行卷积运算得出二级矩阵,利用与二级矩阵格式大小相同的卷积核对二级矩阵进行卷积运算,得到节点的实时健康指数;
S4、构建健康指数对照库;
具体而言,通过以下步骤对转换模型进行建立:
S41、采集存储节点的历史运行参数;
S42、将历史运行参数按时间顺序转换成能够进行卷积运算的取样矩阵;
S43、所述转换模型通过取样矩阵对卷积神经网络进行训练;
S44、通过训练得到节点在不同状态下的健康指数;
S45、将不同总容量的节点在不同健康指数下的处理方案整理成库,如图2所示。
通过将节点过往运行参数作为训练样本,能够更好的贴合节点的使用情况,提高节点健康指数计算的容错率。
S5、根据存储节点总容量大小和实时健康指数,确定节点的处理方案并执行。
综上所述,本申请所提供的基于节点扩容的视频云存储方法具有如下技术效果:
通过对存储节点进行实时监测,并提取存储节点的运行参数;之后将运行参数带入预先录入的转换模型中,获得节点的实时健康指数;再将实时健康指数与健康指数对照库之间进行映射;根据存储节点总容量大小和实时健康指数,确定节点的处理方案并执行;通过上述方法对视频云存储的节点进行实时监控,并根据节点的运行情况分析出节点后续的运行状况,精准预测节点可持续使用时间并给出提示,使得对视频云存储节点的管理更加便捷,达到精准管理的目的。
基于与前述实施例中一种基于节点扩容的视频云存储方法同样的发明构思,本发明还提供了一种基于节点扩容的视频云存储系统,所述系统包括:
监测单元,用于对节点的运行状况进行监测,同时采集节点的实时运行参数,并将运行参数发送;
数据转换单元,用于接收监测单元发送的运行参数,并利用卷积神经网络将运行参数转换成节点的实时健康指数,并将实时健康指数发送;
健康指数对照库,用于录入、修改和存储不同容量节点在不同健康指数下的处理方案;
映射单元,用于读取节点的自身总容量,并接收数据转换单元发送的实时健康指数,并根据节点总容量与实时健康指数与健康指数对照库进行比对,确定节点的处理方案并发送;
提示单元,用于接收映射单元发送的处理方案,并向工作人员进行提示。
此外,本申请还提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该收发器、该存储器和处理器分别通过总线相连,计算机程序被处理器执行时实现上述控制输出数据的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
同时,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述控制输出数据的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。