掌桥专利:专业的专利平台
掌桥专利
首页

用于跟踪存储系统的性能的方法和设备

文献发布时间:2023-06-19 11:54:11


用于跟踪存储系统的性能的方法和设备

技术领域

本公开涉及云计算技术领域,进一步涉及分布式存储技术领域,更具体地,涉及一种用于跟踪存储系统的性能的方法和设备。

背景技术

当前的存储性能跟踪系统往往需要将探针继承到待测存储系统中。当存储系统探测到对应的性能数据时,将性能数据推送到可观测分析平台(Observability AnalysisPlatform,OAP)。随后,OAP平台对接收到的性能数据进行分析和展示。

由于需要将探针系统继承到存储系统,因此当前的存储性能跟踪系统往往无法与业务系统解耦,使得如果要更改待跟踪的性能数据,就必须更改系统。

因此,需要一种用于跟踪存储系统的性能的方法和设备,其能够根据需要方便且实时地跟踪存储系统的性能。

发明内容

本公开提供了一种用于跟踪存储系统的性能的方法、设备以及存储介质。

根据本公开的一方面,提供了一种用于跟踪存储系统的性能的方法,包括:

从所述存储系统获取所述存储系统的日志数据;

获取用于计算所述性能的程序代码;以及

由计算引擎基于所述日志数据和所述程序代码执行计算,以便获得针对所述性能的计算结果。

根据本公开的另一方面,提供了一种用于跟踪存储系统的性能的设备,所述设备包括:

日志数据获取模块,被配置为从所述存储系统获取所述存储系统的日志数据;

程序代码获取模块,被配置为获取用于计算所述性能的程序代码;以及

性能计算模块,被配置为基于所述日志数据和所述程序代码执行计算,以便获得针对所述性能的计算结果。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1是根据本公开示例实施例的方法和设备的应用场景;

图2是根据本公开示例实施例的用于跟踪存储系统的性能的方法的流程图;

图3是根据本公开示例实施例的用于从存储系统获取所述存储系统的日志数据的步骤的流程图;

图4是根据本公开示例实施例的用于由计算引擎基于日志数据和程序代码执行计算以便获得针对性能的计算结果的步骤的流程图;

图5是根据本公开示例实施例的用于跟踪存储系统的性能的方法的另一示例的流程图;

图6是根据本公开示例实施例的用于跟踪存储系统的性能的设备的一个示例;

图7是由图6所示的设备执行根据本公开示例实施例的性能跟踪方法的示意图;以及

图8是用来实现本公开实施例的用于跟踪存储设备的性能的方法的电子设备的另一示例的框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图1是根据本公开示例实施例的方法和设备的应用场景。如图1所示,在根据本公开示例实施例的应用场景下,可以具有存储系统10和性能跟踪系统100。存储系统10,又被称为业务系统,可以包括单个存储设备,例如存储设备10-1至10-6之一;或由诸如存储设备10-1至10-6中的两个或更多个构成的分布式块存储系统。性能跟踪系统100可以实现为与存储系统10分离的单独设备。

当应用于分布式块存储系统时,根据本公开示例实施例的方法和设备是尤其有利的,这是因为分布式块存储系统一般为公有云云服务器提供低时延、持久性、高可靠和高弹性的块存储服务,且通过部署单独的设备作为性能跟踪系统,即可实现在不改变分布式块存储系统的情况下或在不影响业务系统的用户业务的情况下针对不同性能指标实时分析该存储系统的性能现状。

应注意,尽管下面以分布式块存储系统为例描述根据本公开示例实施例的用于跟踪存储系统的性能的方法和设备,然而本公开不限于分布式块存储系统,而是可以应用于其他存储系统。

图2是根据本公开示例实施例的用于跟踪存储系统的性能的方法的流程图。

存储系统往往需要将性能数据按照一定的格式定期转存到磁盘上,以生成日志数据。每个存储系统的挂载点都会部署用于采集日志数据的代理节点,以定时采集存储系统的日志数据。

如图2所示,用于跟踪存储系统的性能的方法200可以包括以下步骤。

在步骤S210,从存储系统获取存储系统的日志数据。日志数据是存储系统操作的过程类数据。本公开旨在通过基于存储系统的日志数据来对存储系统进行性能分析,从而实现业务系统与性能跟踪系统的解耦。在本实施例中,存储系统可以是如上所述的包括多个存储设备的分布式块存储系统。

此外,在步骤S220,可以获取用于计算性能的程序代码。存储系统的性能指标包括但不限于磁盘的访问次数、吞吐、百分位时延、延时数据各个阶段的时延分布等。在一个示例中,研发人员可以根据不同的性能指标而将不同的程序代码写入性能跟踪系统,其中程序代码的格式或语言取决于所采用的计算引擎。

随后,在步骤S230,由计算引擎基于日志数据和程序代码执行计算,以便获得针对性能的计算结果。在本公开的示例实施例中,计算引擎可以包括以下项之一:Spark计算框架、Flink计算框架、Mapreduce计算框架和Storm计算框架,其均为分布式系统且允许在运行数据流代码时将任务分配到一系列计算机上并行运行。尽管上述计算框架均是能够实现实时计算且应用于本公开示例实施例的计算框架,然而,考虑到Mapreduce计算框架在运行时具有相对较多的初始化工作且Storm计算框架的实时性相对较弱,Spark计算框架和Flink计算框架被优选作为用于执行性能计算的计算引擎。换言之,由于Spark计算框架和Flink计算框架支持批处理和流处理二者且具有相对较快的计算速度,在本公开中将Spark计算框架和Flink计算框架优选作为用于执行性能计算的计算引擎。

在本公开的实施例中,例如Spark计算框架的计算引擎能够基于所获取的日志数据和程序代码执行计算,从而获得针对与程序代码相对应的性能的分析结果。

可见,本公开提供了一种用于基于日志数据对存储系统进行性能分析以跟踪该存储系统的性能的方法,其支持在不影响业务系统的用户业务的同时无感跟踪存储系统的各种不同性能。因此,根据本公开示例实施例的方法具有良好的可维护性,支持可扩展的性能分析任务,且满足个性化的需求。

图3是根据本公开示例实施例的用于从存储系统获取存储系统的日志数据的步骤的流程图。

如图3所示,用于从存储系统获取存储系统的日志数据的步骤可以包括步骤S311和步骤S312。

在步骤S311,通过周期性地扫描存储系统,来查找新生成的日志数据,其中周期性地扫描是指以30秒、15秒、10秒或更短的扫描周期来实时扫描存储系统以查找新生成的日志数据。

在步骤S312,响应于在步骤S311中查找到或扫描到新生成的性能日志,以数据流的形式将查找到的日志数据提供给计算引擎。也就是说,当代理节点对块存储系统进行扫描并确定生成了新的日志数据时,新生成的日志数据以数据流的形式从存储系统经由代理节点被发送至计算框架,以供计算框架基于用于计算不同性能的不同程序代码执行性能计算。此处,应注意,在根据本公开的用于跟踪存储系统的性能的方法中,以数据流的形式发送日志数据,而非将日志数据排到数据队列以等待发送。这样能够支持实时数据传输,进而有利于实现实时的性能分析。

如上所述,通过实时扫描存储系统以获取新生成的日志数据并以数据流形式提供所获取的日志数据,能够有利于对存储系统进行实时性能分析,得到实时性能分析结果。

图4是根据本公开示例实施例的用于由计算引擎基于日志数据和程序代码执行计算以便获得针对性能的计算结果的步骤的流程图。

在本公开的示例实施例中,计算引擎可以包括以下项之一:Spark计算框架、Flink计算框架、Mapreduce计算框架和Storm计算框架。总所周知,Spark计算框架是基于内存计算的大数据并行计算框架且其具有相对较快的运行速度,因此,在本公开的实施例中,以Spark计算框架为例描述计算引擎对日志数据的计算。在这种情况下,图2所述的由计算引擎基于日志数据和程序代码执行计算的步骤可以包括步骤S431至S433。

在步骤S431,从程序代码中提取计算任务。例如,通过在Spark计算框架上提交针对特定性能进行分析的程序代码,Spark计算框架能够从接收的程序代码中提取计算任务。

在步骤S432,对日志数据进行格式化,以生成文本流。例如,由Spark计算框架对日志数据进行格式化,以生成文本流。即,Spark计算框架可以将接收到的数据流形式的日志数据转换为文本流,以便从中提取数据执行性能计算。

此外,在步骤S433,根据计算任务从文本流中提取数据并执行计算。在获得了文本流并计算任务之后,Spark计算框架根据获取的计算任务从文本流中提取数据并执行计算。如上所述,由于Spark计算框架运行速度非常快,因此整个性能日志的分析基本是实时的。

在另一示例中,Spark计算框架还可以备选地将性能分析的计算结果推送至相关存储单元,以供后续展示和报警等功能使用。

图5是根据本公开示例实施例的用于跟踪存储系统的性能的方法的另一示例的流程图。

如图5所示的用于跟踪存储系统的性能的方法500中的步骤S510至步骤S530可以与参考图2所述的方法200中的步骤S210至S230相同,因此,将不再进行赘述。以下将详细描述步骤S540至S552。

在步骤S540,可以对计算结果执行可视化,并将计算结果展示给用户。性能数据的计算结果可以被直接馈送到可视化的仪表盘,或者可视化的仪表盘可以从相关存储单元读取已存储的计算结果,然后进行性能数据的展示,性能数据包括但不限于磁盘的访问次数、吞吐、百分位时延、延时数据各个阶段的时延分布等。

在一些实施例中,将计算结果展示给用户之后还可以进行异常报警,例如可以通过执行下述步骤S511和S522来实现异常报警。

在步骤S551,通过将计算结果与性能的参数阈值进行比较,确定存储系统是否存在异常。当确定存储系统存在异常时,执行步骤S552;否则方法500结束。

在步骤S552,可以向用户提示关于异常的信息,也就是说,根据监控结果判断存储系统是否异常。当出现异常指标之后,存储运维人员能第一时间感知并介入,或者根据时延的分布情况,后续进行针对性的优化。

此外,尽管以上描述均是基于对存储系统执行性能跟踪、分析、展示和报警,然而本领域技术人员应清楚本公开示例实施例不限于此。根据本公开示例实施例的性能跟踪方法还适用于请求接入存储系统的接入设备或请求存储系统提供服务的客户端设备。具体地,当对上述接入设备和/或客户端设备执行性能分析之后确定上述接入设备的性能参数指示其不适于接入存储系统和/或确定上述客户端设备的性能参数指示其不适于接受由该存储系统提供的服务时,能够拒绝相关请求。此外,还可以备选地向用户提示拒绝请求的原因。

以上描述了根据本公开示例实施例的用于跟踪存储系统的性能的方法,该方法能够在不影响业务系统的用户业务的同时实时跟踪存储系统的各种不同性能,其具有良好的可维护性,支持可扩展的性能分析任务,且满足个性化的需求。

图6是根据本公开示例实施例的用于跟踪存储系统的性能的设备的一个示例。

如图6所示,用于跟踪存储系统的性能的设备600可以包括:日志数据获取模块610、程序代码获取模块620和性能计算模块630。

日志数据获取模块610可以被配置为从存储系统获取存储系统的日志数据。在一个实施例中,日志数据获取模块610可以包括:日志扫描子模块和日志传送子模块,其中日志扫描子模块61可以被配置为周期性地扫描存储系统,以查找新生成的日志数据。具体地,日志扫描子模块可以被配置为以30秒、15秒或10秒的扫描周期来实时扫描存储系统。日志传送子模块可以被配置为以数据流的形式将查找到的日志数据提供给性能计算模块630。

通过实时扫描存储系统以获取新生成的日志数据并以数据流形式提供所获取的日志数据,能够有利于对存储系统进行实时性能分析,得到实时性能分析结果。

程序代码获取模块620可以被配置为获取用于计算性能的程序代码。即,程序代码获取模块620可以接收用于针对特定性能进行分析的程序代码。程序代码可以是由研发人员编译的。

性能计算模块630可以被配置为基于日志数据和程序代码执行计算,以便获得针对性能的计算结果。在一个示例中,性能计算模块630还可以被配置为:从程序代码中提取计算任务;对日志数据进行格式化,以生成文本流;以及根据计算任务从文本流中提取数据并执行计算。

性能计算模块630可以实现为以下项之一:Spark计算框架、Flink计算框架、Mapreduce计算框架和Storm计算框架。

可见,本公开提供了一种用于基于日志数据对存储系统进行实时性能分析以跟踪该存储系统的性能的设备,其支持在不影响业务系统的用户业务的同时无感跟踪存储系统的各种不同性能。因此,根据本公开示例实施例的方法具有良好的可维护性,支持可扩展的性能分析任务,且满足个性化的需求。

在一个实施例中,设备600还可以备选地包括可视化模块,被配置为对计算结果执行可视化并将计算结果展示给用户。

在另一实施例中,设备600还可以包括异常检测模块,被配置为通过将计算结果与性能的参数阈值进行比较,确定存储系统是否存在异常;以及异常提醒模块,被配置为当确定存储系统存在异常时,向用户提示关于异常的信息。

以上描述了根据本公开示例实施例的用于跟踪存储系统的性能的设备,设备能够在不影响业务系统的用户业务的同时实时跟踪存储系统的各种不同性能,其具有良好的可维护性,支持可扩展的性能分析任务,且满足个性化的需求。

图7是由图6所示的设备执行根据本公开示例实施例的性能跟踪方法的示意图。

如图7所示,根据本公开示例实施例的用于跟踪存储设备的性能的设备700可以应用于包括多个存储设备70-1至70-3的分布式块存储系统70。

日志数据获取模块710可以对从多个存储设备中的每个存储设备执行扫描,以获取新的日志数据。当获取到新的日志数据时,日志数据获取模块710可以以数据流的形式将获取的日志数据提供给例如Spark计算框架的性能计算模块730。

此外,研发人员可以通过程序代码获取模块720向跟踪存储系统的性能的电子设备700提交用于性能分析的程序代码。

Spark计算框架730可以对数据流形式的日志数据进行格式化,使之转换为文本流形式的日志数据;从获取的程序代码中提取计算任务;并且基于计算任务从文本流形式的日志数据中提取数据并执行计算,从而得到性能分析的计算结果。随后,可以将性能分析的计算结果用于向用户进行性能展示和/或异常报警的操作。

在这样的系统架构下,当需要改变待分析的性能指标时,仅需研发人员向设备700提交新的用于分析的程序代码,而无需改变业务系统,因此,这样的设备具有良好的可维护性,支持可扩展的性能分析任务,且满足个性化的需求。

综上,本公开提供了一种用于基于日志数据对存储系统进行实时性能分析以跟踪该存储系统的性能的方法和设备,其支持在不影响业务系统的用户业务的同时无感跟踪存储系统的各种不同性能。因此,根据本公开示例实施例的方法具有良好的可维护性,支持可扩展的性能分析任务,且满足个性化的需求。

本公开的技术方案中,所涉及的用户个人信息的获取、存储和应用等均符合相关法律法规的规定,且不违背公序良俗。

根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。

设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和步骤,例如,如图2至图5所示的方法和步骤。例如,在一些实施例中,图2至图5所示的方法和步骤可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的用于跟踪存储设备的性能的方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行如上所述的用于跟踪存储设备的性能的方法和步骤。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

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

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

相关技术
  • 用于跟踪存储系统的性能的方法和设备
  • 一种存储系统IO处理路径动态跟踪实现优化系统性能的方法
技术分类

06120113098797