CN115981956A - Spdk服务进程监控方法、装置、设备、存储介质和程序产品 - Google Patents
Spdk服务进程监控方法、装置、设备、存储介质和程序产品 Download PDFInfo
- Publication number
- CN115981956A CN115981956A CN202211692511.5A CN202211692511A CN115981956A CN 115981956 A CN115981956 A CN 115981956A CN 202211692511 A CN202211692511 A CN 202211692511A CN 115981956 A CN115981956 A CN 115981956A
- Authority
- CN
- China
- Prior art keywords
- target
- data
- monitoring
- monitoring data
- data acquisition
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请涉及一种SPDK服务进程监控方法、装置、设备、存储介质和程序产品,用于BMC中,所述方法包括:通过目标串口向目标芯片发送监控数据获取命令,其中,所述目标芯片部署有SPDK服务进程;接收所述目标芯片通过所述目标串口发送的响应于所述监控数据获取命令的监控数据;对所述监控数据进行解析处理,得到所述SPDK服务进程所管制的目标设备的运行状态数据。本申请通过目标串口向目标芯片发送监控数据获取命令,得到SPDK服务进程所管制的目标设备的运行状态数据,基于这样的方式,可以实现实时监控SPDK服务进程所管制的目标设备的运行状态的目的,也即是实现了实时监控SPDK服务进程的运行状态的目的。
Description
技术领域
本申请涉及服务器监控技术领域,特别是涉及一种SPDK服务进程监控方法、装置、设备、存储介质和程序产品。
背景技术
SPDK(The Storage Performance Development Kit)服务进程是一个封装的存储框架,它的存在形式是加速卡中SOC(System on Chip)操作系统上的一个服务进程,其中存储有设备的驱动代码,且采用用户态驱动,导致无法直接查看SPDK服务进程管制下的设备的运行状态信息。
传统技术中,开发人员通过iostat、nvme-cli、rpc等工具向SOC操作系统手动键入相应命令,进而从SPDK服务进程中获取设备的运行状态信息。
然而,传统技术中获取SPDK服务进程管制下的设备的运行状态信息需要开发人员输入命令才能得到,缺少对SPDK服务进程的运行状态实时监控等相关运维手段。
发明内容
基于此,有必要针对上述技术问题,提供一种能够实时监控SPDK服务进程运行状态的SPDK服务进程监控方法、装置、设备、存储介质和程序产品。
第一方面,本申请提供了一种SPDK服务进程监控方法。用于BMC中,所述方法包括:通过目标串口向目标芯片发送监控数据获取命令,其中,目标芯片部署有SPDK服务进程;接收目标芯片通过目标串口发送的响应于监控数据获取命令的监控数据;对监控数据进行解析处理,得到SPDK服务进程所管制的目标设备的运行状态数据。
在其中一个实施例中,通过目标串口向目标芯片发送监控数据获取命令之前,方法还包括:获取原始监控数据获取命令,原始监控数据获取命令是SPDK服务进程监测工具所支持的命令;对原始监控数据获取命令进行拆分处理,获取原始命令数据;根据目标串口对应的协议类型对原始命令数据进行封装处理,得到监控数据获取命令。
通过对原始监控数据获取命令拆分获取原始命令数据,再对原始命令数据根据目标串口对应的协议类型进行封装处理得到监控数据获取命令,使得监控数据获取命令能够通过目标串口将命令输入给目标芯片,进而使目标芯片上部署的SPDK服务进程做出响应,避免了传统技术中开发人员向目标芯片输入命令的缺陷。
在其中一个实施例中,对监控数据进行解析处理,得到SPDK服务进程所管制的目标设备的运行状态数据之后,方法还包括:若运行状态数据的类型为线性数据类型,则将运行状态数据以键值对的形式写入目标文件中;通过数据获取线程读取目标文件,以根据监控数据更新线性传感器读值;在对线性传感器读值进行更新后,确定更新后的线性传感器读值是否超过目标预设范围,若是,则生成第一故障日志并输出第一故障告警。
对于线性数据类型的运行状态数据,通过数据获取线程读取JSON文件来更新线性传感器读值,并判断更新后的线性传感器读值是否超过目标预设范围的方式,可以实现实时监控SPDK服务进程所管制的目标设备的运行状态的目的。另外,当更新后的线性传感器读值超过了目标预设范围时,生成第一故障日志、第一故障告警,实现了事件上报的运维手段。
在其中一个实施例中,对监控数据进行解析处理,得到SPDK服务进程所管制的目标设备的运行状态数据之后,方法还包括:若运行状态数据的类型为离散数据类型,则根据运行状态数据确定目标设备的目标状态;根据目标状态执行目标监控操作。
在其中一个实施例中,根据目标状态执行目标监控操作,包括:若目标状态为正常状态,则根据目标状态更新目标设备对应的离散传感器的读值;若目标状态为异常状态,则生成第二故障日志并输出第二故障告警。
在其中一个实施例中,生成第二故障日志,包括:通过目标串口向目标芯片发送运行数据获取命令以及日志数据获取命令;接收目标芯片通过目标串口发送的响应于运行数据获取命令发送的目标设备的设备运行数据,并接收目标芯片通过目标串口发送的响应于日志数据获取命令发送的日志数据;根据设备运行数据和日志数据生成第二故障日志。
对于离散数据类型的运行状态数据,通过根据运行状态数据确定目标设备的目标状态,再根据目标状态执行对应的目标监控的方式,可以实现实时监控SPDK服务进程所管制的目标设备的运行状态的目的。另外,当目标设备的目标状态为异常状态时,生成第二故障日志、第二故障告警,实现了事件上报的运维手段。
在其中一个实施例中,方法还包括:若目标状态为异常状态,则重启目标设备。
重启目标设备,实现了目标设备自动恢复,缩短了目标设备异常时间,进而提升了目标设备的高可用性。
在其中一个实施例中,通过目标串口向目标芯片发送监控数据获取命令之后,方法还包括:检测在预设时长内是否接收到目标芯片发送的监控数据;若未在预设时长内接收到目标芯片发送的监控数据,则检测监控数据获取命令的重发次数是否达到预设次数阈值;若未达到预设次数阈值,则向目标芯片重发监控数据获取命令;若达到预设次数阈值,则生成第三故障日志并输出第三故障告警。
BMC向目标芯片发送监控数据获取命令之后,通过检测是否接收到监控数据,并判断向目标芯片发送监控数据获取命令是否超过预设次数阈值的方式,可以实现实时监控SPDK服务进程所管制的目标设备的运行状态的目的。
第二方面,本申请还提供了一种SPDK服务进程监控装置。用于BMC中,所述装置包括:发送模块,用于通过目标串口向目标芯片发送监控数据获取命令,其中,目标芯片部署有SPDK服务进程;接收模块,用于接收目标芯片通过目标串口发送的响应于监控数据获取命令的监控数据;处理模块,用于对监控数据进行解析处理,得到SPDK服务进程所管制的目标设备的运行状态数据。
在其中一个实施例中,发送模块通过目标串口向目标芯片发送监控数据获取命令之前,还用于获取原始监控数据获取命令,原始监控数据获取命令是SPDK服务进程监测工具所支持的命令;对原始监控数据获取命令进行拆分处理,获取原始命令数据;根据目标串口对应的协议类型对原始命令数据进行封装处理,得到监控数据获取命令。
在其中一个实施例中,所述装置还包括数据更新处理模块;处理模块还用于若运行状态数据的类型为线性数据类型,则将运行状态数据发送给数据更新处理模块,数据更新处理模块用于将运行状态数据以键值对的形式写入目标文件中;通过数据获取线程读取目标文件,以根据监控数据更新线性传感器读值;在对线性传感器读值进行更新后,确定更新后的线性传感器读值是否超过目标预设范围,若是,则生成第一故障日志并输出第一故障告警。
在其中一个实施例中,所述装置还包括进程检测处理模块;处理模块还用于若运行状态数据的类型为离散数据类型,则将运行状态数据发送给进程检测处理模块,进程检测处理模块用于根据运行状态数据确定目标设备的目标状态;根据目标状态执行目标监控操作。
在其中一个实施例中,进程检测处理模块,具体用于若目标状态为正常状态,则根据目标状态更新目标设备对应的离散传感器的读值;若目标状态为异常状态,则生成第二故障日志并输出第二故障告警。
在其中一个实施例中,进程检测处理模块,还用于通过目标串口向目标芯片发送运行数据获取命令以及日志数据获取命令;接收目标芯片通过目标串口发送的响应于运行数据获取命令发送的目标设备的设备运行数据,并接收目标芯片通过目标串口发送的响应于日志数据获取命令发送的日志数据;根据设备运行数据和日志数据生成第二故障日志。
在其中一个实施例中,进程检测处理模块,还用于若目标状态为异常状态,则重启目标设备。
在其中一个实施例中,发送模块,还用于通过目标串口向目标芯片发送监控数据获取命令之后,检测在预设时长内是否接收到目标芯片发送的监控数据;若未在预设时长内接收到目标芯片发送的监控数据,则检测监控数据获取命令的重发次数是否达到预设次数阈值;若未达到预设次数阈值,则向目标芯片重发监控数据获取命令;若达到预设次数阈值,则发送异常信息给进程检测处理模块,进程检测处理模块生成第三故障日志并输出第三故障告警。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一项所述的方法的步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面任一项所述的方法的步骤。
上述SPDK服务进程监控方法、装置、设备、存储介质和程序产品,用于BMC中,通过目标串口向目标芯片发送监控数据获取命令,其中,目标芯片部署有SPDK服务进程,然后接收目标芯片通过目标串口发送的响应于监控数据获取命令的监控数据,再对监控数据进行解析处理,得到SPDK服务进程所管制的目标设备的运行状态数据。本申请通过目标串口向目标芯片发送监控数据获取命令,得到SPDK服务进程所管制的目标设备的运行状态数据,基于这样的方式,可以实现实时监控SPDK服务进程所管制的目标设备的运行状态的目的,也即是实现了实时监控SPDK服务进程的运行状态的目的。
附图说明
图1为一个实施例中一种SPDK服务进程监控方法的流程示意图;
图2为一个实施例中一种加速卡的结构框图;
图3为一个实施例中另一种SPDK服务进程监控方法的流程示意图;
图4为一个实施例中另一种SPDK服务进程监控方法的流程示意图;
图5为一个实施例中又一种SPDK服务进程监控方法的流程示意图;
图6为一个实施例中一种SPDK服务进程监控装置的结构框图;
图7为一个实施例中另一种SPDK服务进程监控装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
SPDK服务进程是一个高度抽象和封装的存储框架,而不是一个分布式系统,它的存储性能开发套件针对于支持NVMe(Non-Volatile Memory express)协议的SSD(SolidState Dis,固态硬盘)设备,其基石(bedrock)是用户态(user space)、轮询(polled-mode)、异步(asynchronous)、无锁(lockless)的NVMe驱动,提供了零拷贝、高并发和直接从用户态访问SSD的特性。SPDK服务进程最初的目的是为了优化块存储落盘,但随着SPDK服务进程的持续演进,SPDK服务进程可以优化存储软件栈的各个方面,是一种高性能的解决方案。SPDK服务进程主要目的是将存储业务数据转发为TCP(Transmission ControlProtocol,传输控制协议)流量,从而为用户提供存储服务。而SPDK服务进程由于采用的是用户态驱动,一般的,查看SPDK服务进程的运行状态,需要开发人员采用iostat、nvme-cli、rpc、fio等工具,用具有操作权限的用户名SSH(Secure Shell,安全外壳协议)远程登录SOC中的操作系统来完成下发命令操作,从而获得SPDK服务进程的运行状态数据,但是这种方式无法实时监控SPDK服务进程的运行状态,因此,需要提出对SPDK服务进程的运行状态实时监控的技术。
在一个实施例中,如图1所示,提供了一种SPDK服务进程监控方法的流程示意图,本实施例以该方法应用于基于BMC(Baseboard Management Controller,基板管理控制器)的加速卡进行举例说明,该加速卡的结构框图如图2所示,包括:Host(主机端)、SOC芯片、FPGA(Field Programmable Gata Array,现场可编程门阵列)芯片、Ceph存储集群;其中,Host上包括BMC和Virtio blk驱动;SOC芯片上包括SPDK服务进程、UART(UniversalAsynchronous Receiver/Transmitter,异步收发传输器)串口和Virtio net驱动;FPGA芯片上包括bond接口;BMC和SPDK服务进程通过UART串口进行数据传递,FPGA芯片和SPDK服务进程通过Virtio net驱动进行数据传递,Host通过Virtio blk驱动向FPGA芯片传递数据,FPGA芯片通过bond接口向Ceph存储集群传递数据。其中,BMC是基板管理控制器与智能型平台管理接口,是服务器的基本核心功能子系统,负责服务器的硬件状态管理、操作系统管理、健康状态管理、功耗管理等核心功能。在本申请实施例中,该方法用于BMC中,包括以下步骤:
步骤101,通过目标串口向目标芯片发送监控数据获取命令,其中,目标芯片部署有SPDK服务进程。
其中,目标串口可以是UART串口,UART是一种异步收发传输器,是一种硬件通信接口,它可以将要传输的数据在串行通信与并行通信之间加以转换。目标芯片可以是SOC芯片,SOC芯片上部署有SPDK服务进程。监控数据获取命令是SPDK服务进程监测工具所支持的命令,该监测工具可以是iostat工具、nvme-cli工具、rpc工具等,它们均是可以用来查看各种设备活动情况和负载信息的命令行工具。
可选的,BMC通过UART串口周期性的向SOC芯片发送iostat、和/或nvme-cli、和/或rpc等工具支持的相应的iostat、和/或nvme-cli、和/或rpc等监控数据获取命令。
步骤102,接收目标芯片通过目标串口发送的响应于监控数据获取命令的监控数据。
可选的,SOC芯片上部署的SPDK服务进程接收到iostat、和/或nvme-cli、和/或rpc等监控数据获取命令后,SPDK服务进程根据监控数据获取命令,向SPDK服务进程所管制的至少一个目标设备发送运行状态获取命令,获取至少一个目标设备的运行状态数据,并将至少一个目标设备的运行状态数据根据UART串口对应的协议类型进行封装处理,得到监控数据,然后将监控数据通过UART串口发送至BMC,此时,BMC接收到的就是SOC芯片通过UART串口发送的响应于监控数据获取命令的监控数据。另外,该监控数据也可称为回显数据。
上述目标串口作为数据交互的通道,实现了BMC与SOC芯片物理上的连接,节省了硬件资源。
步骤103,对监控数据进行解析处理,得到SPDK服务进程所管制的目标设备的运行状态数据。
其中,由于监控数据是一个封装好的数据包,里面包括SPDK服务进程所管制的目标设备的运行状态数据,因此,BMC接收到监控数据后,需要对监控数据进行解析处理,才能得到SPDK服务进程所管制的目标设备的运行状态数据。另外,需要说明的是,SPDK服务进程所管制的目标设备的数量是多个,BMC对监控数据解析处理,具体是利用BMC上的解析程序对监控数据进行解析处理。
综上所述,BMC通过目标串口向目标芯片发送监控数据获取命令,其中,目标芯片部署有SPDK服务进程,然后接收目标芯片通过目标串口发送的响应于监控数据获取命令的监控数据,再对监控数据进行解析处理,得到SPDK服务进程所管制的目标设备的运行状态数据。本申请通过目标串口向目标芯片发送监控数据获取命令,得到SPDK服务进程所管制的目标设备的运行状态数据,基于这样的方式,可以实现实时监控SPDK服务进程所管制的目标设备的运行状态的目的,也即是实现了实时监控SPDK服务进程的运行状态的目的。
在其中一个实施例中,通过目标串口向目标芯片发送监控数据获取命令之前,方法还包括:获取原始监控数据获取命令,原始监控数据获取命令是SPDK服务进程监测工具所支持的命令;对原始监控数据获取命令进行拆分处理,获取原始命令数据;根据目标串口对应的协议类型对原始命令数据进行封装处理,得到监控数据获取命令。
其中,监测工具可以是iostat工具、nvme-cli工具、rpc工具等,该监测工具可以打开SPDK服务进程,使用该监测工具输入相应命令可以使SPDK服务进程做出响应。原始监控数据获取命令是一个封装好的数据包,该数据包中包括iostat工具支持的至少一个iostat监控数据获取命令、和/或nvme-cli工具支持的至少一个nvme-cli监控数据获取命令、和/或rpc工具支持的至少一个rpc监控数据获取命令等。目标串口对应的协议类型可以是UART串口对应的UART协议类型。
可选的,BMC周期性获取原始监控数据获取命令,其中原始监控数据获取命令包括至少一个iostat监控数据获取命令、和/或至少一个nvme-cli监控数据获取命令、和/或至少一个rpc监控数据获取命令等。然后由BMC上的拆分程序对原始监控数据获取命令进行拆分处理,得到至少一个原始命令数据,原始命令数据为iostat监控数据获取命令、或nvme-cli监控数据获取命令、或rpc监控数据获取命令等。然后分别将至少一个iostat监控数据获取命令、至少一个nvme-cli监控数据获取命令、和至少一个rpc监控数据获取命令根据UART协议类型进行封装,再将封装后的至少一个iostat监控数据获取命令、至少一个nvme-cli监控数据获取命令、和至少一个rpc监控数据获取命令再次根据UART协议类型进行封装,得到监控数据获取命令,也就是说,监控数据获取命令是一个带有UART协议的数据包。
通过对原始监控数据获取命令拆分获取原始命令数据,再对原始命令数据根据目标串口对应的协议类型进行封装处理得到监控数据获取命令,使得监控数据获取命令能够通过目标串口将命令输入给目标芯片,进而使目标芯片上部署的SPDK服务进程做出响应,避免了传统技术中人工向目标芯片输入命令的缺陷。
在其中一个实施例中,对监控数据进行解析处理,得到SPDK服务进程所管制的目标设备的运行状态数据之后,方法还包括:若运行状态数据的类型为线性数据类型,则将运行状态数据以键值对的形式写入目标文件中;通过数据获取线程读取目标文件,以根据监控数据更新线性传感器读值;在对线性传感器读值进行更新后,确定更新后的线性传感器读值是否超过目标预设范围,若是,则生成第一故障日志并输出第一故障告警。
其中,线性数据类型的运行状态数据如IOSP(Input/Output Operations PerSecond,每秒的输入/输出操作)、带宽、平均每次设备I/O(Input/Output,输入/输出)等待时间等,是SPDK服务进程在iostat监控数据获取命令或者nvme-cli监控数据获取命令下返回给BMC的这部分数据。目标文件可以是JSON(JavaScript Object Notation)文件。第一故障日志可以是SEL日志(System Event Log,系统事件日志),第一故障告警可以是SNMPTrap(Simple Network Management Protocol Trap,简单网络管理协议陷阱)告警。
可选的,如图3所示,提供了另一种SPDK服务进程监控方法的流程示意图。BMC得到至少一个运行状态数据之后,根据得到各运行状态数据的监控数据获取命令的类型确定各运行状态数据的类型,若是iostat监控数据获取命令或nvme-cli监控数据获取命令,则运行状态数据为线性数据类型。对于线性数据类型的运行状态数据,BMC会将其进行协议封装,并送入第一串口设备。然后BMC中的数据更新处理模块访问第一串口设备,读取到线性数据类型的运行状态数据,并进行拆解协议封装,再将拆解得到的运行状态数据以键值对的形式写入JSON文件中,而且数据更新处理模块中的传感器监控进程中开出有一个针对加速卡信息获取的数据获取线程,该数据获取线程会周期性读取JSON文件,更新线性传感器读值,其中线性传感器读值是数据获取线程存储的历史运行状态数据。在对线性传感器读值进行更新后,判断更新后的线性传感器读值是否超过目标预设范围,其中目标预设范围是预先设置的。若更新后的线性传感器读值超过了目标预设范围,则生成SEL日志,SNMPTrap告警。
对于线性数据类型的运行状态数据,通过数据获取线程周期性读取JSON文件来更新线性传感器读值,并判断更新后的线性传感器读值是否超过目标预设范围的方式,实现了实时监控目标设备的运行状态的目的。另外,当更新后的线性传感器读值超过了目标预设范围时,生成第一故障日志、第一故障告警,实现了事件上报的运维手段。
在其中一个实施例中,对监控数据进行解析处理,得到SPDK服务进程所管制的目标设备的运行状态数据之后,方法还包括:若运行状态数据的类型为离散数据类型,则根据运行状态数据确定目标设备的目标状态;根据目标状态执行目标监控操作。
在其中一个实施例中,根据目标状态执行目标监控操作,包括:若目标状态为正常状态,则根据目标状态更新目标设备对应的离散传感器的读值;若目标状态为异常状态,则生成第二故障日志并输出第二故障告警。
在其中一个实施例中,生成第二故障日志,包括:通过目标串口向目标芯片发送运行数据获取命令以及日志数据获取命令;接收目标芯片通过目标串口发送的响应于运行数据获取命令发送的目标设备的设备运行数据,并接收目标芯片通过目标串口发送的响应于日志数据获取命令发送的日志数据;根据设备运行数据和日志数据生成第二故障日志。
在其中一个实施例中,方法还包括:若目标状态为异常状态,则重启目标设备。
其中,离散数据类型的运行状态数据如目标设备的状态值,即0,1值,是SPDK服务进程在rpc监控数据获取命令下返回给BMC的这部分数据。运行数据获取命令是rpc监控数据获取命令,日志数据获取命令可以是nvme-cli日志命令。设备运行数据指的是目标设备的状态值等,日志数据指的是目标设备的操作记录等。第二故障日志可以是SEL日志,第二故障告警可以是SNMP Trap告警。
可选的,如图4所示,提供了另一种SPDK服务进程监控方法的流程示意图。BMC得到至少一个运行状态数据之后,根据得到各运行状态数据的监控数据获取命令的类型确定各运行状态数据的类型,若是rpc监控数据获取命令,则运行状态数据为离散数据类型。对于离散数据类型的运行状态数据,BMC会将其进行协议封装,并送入第二串口设备。然后BMC中的进程检测处理模块访问第二串口设备,读取到离散数据类型的运行状态数据,并进行拆解协议封装,得到目标设备的状态值。再根据目标设备的状态值判断目标设备是否正常,假设0表示异常状态,1表示正常状态,则当目标设备的状态值为1时,更新目标设备对应的离散传感器的读值,其中离散传感器的读值是存储在进程检测处理模块中的历史运行状态数据;当目标设备的状态值为0时,封装rpc监控数据获取对应的原始数据,通过UART串口向SOC芯片发送协议封装的运行数据获取命令以及日志数据获取命令,然后接收SOC芯片通过UART串口发送的响应于运行数据获取命令发送的目标设备的设备运行数据,并接收SOC芯片通过UART串口发送的响应于日志数据获取命令发送的日志数据,最后根据设备运行数据和日志数据生成SEL日志,SNMP Trap告警。另外,当目标设备的状态值为0时,在生成SEL日志后,对目标设备做重启操作,其中,目标设备的状态值为0,一般是设备由于网络中断导致挂死或僵尸态。
利用BMC中的进程检测处理模块对SPDK服务进程进行轮询检测,重启目标设备,实现了目标设备自动恢复,缩短了目标设备异常时间,进而提升了目标设备的高可用性。另外,若目标设备的目标状态为异常状态时,生成第二故障日志、第二故障告警,实现了事件上报的运维手段。
在其中一个实施例中,通过目标串口向目标芯片发送监控数据获取命令之后,方法还包括:检测在预设时长内是否接收到目标芯片发送的监控数据;若未在预设时长内接收到目标芯片发送的监控数据,则检测监控数据获取命令的重发次数是否达到预设次数阈值;若未达到预设次数阈值,则向目标芯片重发监控数据获取命令;若达到预设次数阈值,则生成第三故障日志并输出第三故障告警。
其中,预设时长和预设次数阈值是预先设定的,第三故障日志可以是SEL日志,第三故障告警可以是SNMP Trap告警。
可选的,如图5所示,提供了又一种SPDK服务进程监控方法的流程示意图。BMC拆分iostat/nvme-cli/rpc工具支持的监控数据获取命令,得到原始命令数据,再根据目标串口对应的协议类型对原始命令数据进行封装处理,即协议封装,得到监控数据获取命令,并将该监控数据获取命令通过目标串口发送给目标芯片。然后根据预设时长检测是否接收到目标芯片发送的监控数据,若在预设时长内接收到了监控数据,则判断监控数据的数据类型,若是iostat/nvme-cli监控数据获取命令下返回的监控数据,则将监控数据发送给第一串口设备,由数据更新处理模块处理监控数据;若是rpc监控数据获取命令下返回的监控数据,则将监控数据发送给第二串口设备,由进程检测处理模块处理监控数据。若在预设时长内没有接收到监控数据,则再次判断监控数据获取命令的发送次数是否超过预设次数阈值,若未超过,则向目标芯片重发监控数据获取命令;若超过了,则生成异常信息,并将该异常信息发送至进程检测处理模块,进程检测处理模块判定该目标设备的目标状态为异常状态,执行目标设备为异常状态时的方法的步骤,包括生成SEL日志,SNMP Trap告警,重启目标设备。
BMC向目标芯片发送监控数据获取命令之后,通过检测是否接收到监控数据,并判断向目标芯片发送监控数据获取命令是否超过预设次数阈值的方式,可以实现实时监控SPDK服务进程所管制的目标设备的运行状态的目的。
综上所述,BMC首先获取原始监控数据获取命令,原始监控数据获取命令是SPDK服务进程监测工具所支持的命令,对原始监控数据获取命令进行拆分处理,获取原始命令数据,根据目标串口对应的协议类型对原始命令数据进行封装处理,得到监控数据获取命令。然后通过目标串口向目标芯片发送监控数据获取命令,其中,目标芯片部署有SPDK服务进程,并检测在预设时长内是否接收到目标芯片发送的监控数据,若未在预设时长内接收到目标芯片发送的监控数据,则检测监控数据获取命令的重发次数是否达到预设次数阈值,若未达到预设次数阈值,则向目标芯片重发监控数据获取命令,若达到预设次数阈值,则生成异常信息,将异常信息发送至进程检测处理模块。若在预设时长内接收到了目标芯片发送的监控数据,对监控数据进行解析处理,得到SPDK服务进程所管制的目标设备的运行状态数据。再判断运行状态数据的类型,若运行状态数据的类型为线性数据类型,则将运行状态数据以键值对的形式写入目标文件中;通过数据获取线程读取目标文件,以根据监控数据更新线性传感器读值;在对线性传感器读值进行更新后,确定更新后的线性传感器读值是否超过目标预设范围,若是,则生成第一故障日志并输出第一故障告警;若运行状态数据的类型为离散数据类型,则根据运行状态数据确定目标设备的目标状态;若目标状态为正常状态,则根据目标状态更新目标设备对应的离散传感器的读值;若目标状态为异常状态,则通过目标串口向目标芯片发送运行数据获取命令以及日志数据获取命令;接收目标芯片通过目标串口发送的响应于运行数据获取命令发送的目标设备的设备运行数据,并接收目标芯片通过目标串口发送的响应于日志数据获取命令发送的日志数据;根据设备运行数据和日志数据生成第二故障日志,另外,若目标状态为异常状态,则重启目标设备。本申请中BMC对SPDK服务进程自带工具的转发,是BMC模拟SOC文本模式下的命令下发,这种模式无需复杂的协议支撑,就可以实现日志收集,事件上报以及自动回复,实现了实时监控SPDK服务进程的运行状态的运维手段,且上述方法均是放在BMC现有的管理框架中,简单易实现。
另外,需要说明的是,SPDK服务进程中除了存储有设备的驱动代码,还存储有组件等,本申请中的目标设备指的不仅仅是硬件/软件设备,还有组件等,所有SPDK服务进程管制下的硬件/软件设备、组件等的运行状态的监控均可以通过上述方法实现。在此不对目标设备进行限定。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的SPDK服务进程监控方法的SPDK服务进程监控装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个SPDK服务进程监控装置实施例中的具体限定可以参见上文中对于SPDK服务进程监控方法的限定,在此不再赘述。
在一个实施例中,如图6所示,提供了一种SPDK服务进程监控装置的结构框图,用于BMC中,该装置600包括:发送模块601、接收模块602和处理模块603,其中:
发送模块601,用于通过目标串口向目标芯片发送监控数据获取命令,其中,目标芯片部署有SPDK服务进程。
接收模块602,用于接收目标芯片通过目标串口发送的响应于监控数据获取命令的监控数据。
处理模块603,用于对监控数据进行解析处理,得到SPDK服务进程所管制的目标设备的运行状态数据。
在其中一个实施例中,发送模块601通过目标串口向目标芯片发送监控数据获取命令之前,还用于获取原始监控数据获取命令,原始监控数据获取命令是SPDK服务进程监测工具所支持的命令;对原始监控数据获取命令进行拆分处理,获取原始命令数据;根据目标串口对应的协议类型对原始命令数据进行封装处理,得到监控数据获取命令。
在其中一个实施例中,如图7所示,提供了另一种SPDK服务进程监控装置的结构框图。装置600还包括数据更新处理模块701;处理模块603还用于若运行状态数据的类型为线性数据类型,则将运行状态数据发送给数据更新处理模块701,数据更新处理模块701用于将运行状态数据以键值对的形式写入目标文件中;通过数据获取线程读取目标文件,以根据监控数据更新线性传感器读值;在对线性传感器读值进行更新后,确定更新后的线性传感器读值是否超过目标预设范围,若是,则生成第一故障日志并输出第一故障告警。
在其中一个实施例中,装置600还包括进程检测处理模块702;处理模块603还用于若运行状态数据的类型为离散数据类型,则将运行状态数据发送给进程检测处理模块702,进程检测处理模块702用于根据运行状态数据确定目标设备的目标状态;根据目标状态执行目标监控操作。
在其中一个实施例中,进程检测处理模块702,具体用于若目标状态为正常状态,则根据目标状态更新目标设备对应的离散传感器的读值;若目标状态为异常状态,则生成第二故障日志并输出第二故障告警。
在其中一个实施例中,进程检测处理模块702,还用于通过目标串口向目标芯片发送运行数据获取命令以及日志数据获取命令;接收目标芯片通过目标串口发送的响应于运行数据获取命令发送的目标设备的设备运行数据,并接收目标芯片通过目标串口发送的响应于日志数据获取命令发送的日志数据;根据设备运行数据和日志数据生成第二故障日志。
在其中一个实施例中,进程检测处理模块702,还用于若目标状态为异常状态,则重启目标设备。
在其中一个实施例中,发送模块601,还用于通过目标串口向目标芯片发送监控数据获取命令之后,检测在预设时长内是否接收到目标芯片发送的监控数据;若未在预设时长内接收到目标芯片发送的监控数据,则检测监控数据获取命令的重发次数是否达到预设次数阈值;若未达到预设次数阈值,则向目标芯片重发监控数据获取命令;若达到预设次数阈值,则发送异常信息给进程检测处理模块,进程检测处理模块生成第三故障日志并输出第三故障告警。
上述SPDK服务进程监控装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储监控数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种SPDK服务进程监控方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述方法的步骤
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (12)
1.一种SPDK服务进程监控方法,其特征在于,用于BMC中,所述方法包括:
通过目标串口向目标芯片发送监控数据获取命令,其中,所述目标芯片部署有SPDK服务进程;
接收所述目标芯片通过所述目标串口发送的响应于所述监控数据获取命令的监控数据;
对所述监控数据进行解析处理,得到所述SPDK服务进程所管制的目标设备的运行状态数据。
2.根据权利要求1所述的方法,其特征在于,所述通过目标串口向目标芯片发送监控数据获取命令之前,所述方法还包括:
获取原始监控数据获取命令,所述原始监控数据获取命令是SPDK服务进程监测工具所支持的命令;
对所述原始监控数据获取命令进行拆分处理,获取原始命令数据;
根据所述目标串口对应的协议类型对所述原始命令数据进行封装处理,得到所述监控数据获取命令。
3.根据权利要求1所述的方法,其特征在于,所述对所述监控数据进行解析处理,得到所述SPDK服务进程所管制的目标设备的运行状态数据之后,所述方法还包括:
若所述运行状态数据的类型为线性数据类型,则将所述运行状态数据以键值对的形式写入目标文件中;
通过数据获取线程读取所述目标文件,以根据所述监控数据更新线性传感器读值;
在对所述线性传感器读值进行更新后,确定更新后的线性传感器读值是否超过目标预设范围,若是,则生成第一故障日志并输出第一故障告警。
4.根据权利要求1所述的方法,其特征在于,所述对所述监控数据进行解析处理,得到所述SPDK服务进程所管制的目标设备的运行状态数据之后,所述方法还包括:
若所述运行状态数据的类型为离散数据类型,则根据所述运行状态数据确定所述目标设备的目标状态;
根据所述目标状态执行目标监控操作。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标状态执行目标监控操作,包括:
若所述目标状态为正常状态,则根据所述目标状态更新所述目标设备对应的离散传感器的读值;
若所述目标状态为异常状态,则生成第二故障日志并输出第二故障告警。
6.根据权利要求5所述的方法,其特征在于,所述生成第二故障日志,包括:
通过所述目标串口向所述目标芯片发送运行数据获取命令以及日志数据获取命令;
接收所述目标芯片通过所述目标串口发送的响应于所述运行数据获取命令发送的所述目标设备的设备运行数据,并接收所述目标芯片通过所述目标串口发送的响应于所述日志数据获取命令发送的日志数据;
根据所述设备运行数据和所述日志数据生成所述第二故障日志。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述目标状态为异常状态,则重启所述目标设备。
8.根据权利要求1至7任一所述的方法,其特征在于,所述通过目标串口向目标芯片发送监控数据获取命令之后,所述方法还包括:
检测在预设时长内是否接收到所述目标芯片发送的所述监控数据;
若未在所述预设时长内接收到所述目标芯片发送的所述监控数据,则检测所述监控数据获取命令的重发次数是否达到预设次数阈值;
若未达到所述预设次数阈值,则向所述目标芯片重发所述监控数据获取命令;
若达到所述预设次数阈值,则生成第三故障日志并输出第三故障告警。
9.一种SPDK服务进程监控装置,其特征在于,用于BMC中,所述装置包括:
发送模块,用于通过目标串口向目标芯片发送监控数据获取命令,其中,所述目标芯片部署有SPDK服务进程;
接收模块,用于接收所述目标芯片通过所述目标串口发送的响应于所述监控数据获取命令的监控数据;
处理模块,用于对所述监控数据进行解析处理,得到所述SPDK服务进程所管制的目标设备的运行状态数据。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
12.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211692511.5A CN115981956A (zh) | 2022-12-28 | 2022-12-28 | Spdk服务进程监控方法、装置、设备、存储介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211692511.5A CN115981956A (zh) | 2022-12-28 | 2022-12-28 | Spdk服务进程监控方法、装置、设备、存储介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115981956A true CN115981956A (zh) | 2023-04-18 |
Family
ID=85975489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211692511.5A Pending CN115981956A (zh) | 2022-12-28 | 2022-12-28 | Spdk服务进程监控方法、装置、设备、存储介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115981956A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881091A (zh) * | 2023-09-08 | 2023-10-13 | 深圳云豹智能有限公司 | 系统事件日志上报方法、装置、芯片、设备及存储介质 |
-
2022
- 2022-12-28 CN CN202211692511.5A patent/CN115981956A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881091A (zh) * | 2023-09-08 | 2023-10-13 | 深圳云豹智能有限公司 | 系统事件日志上报方法、装置、芯片、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9389936B2 (en) | Monitoring the responsiveness of a user interface | |
US8990634B2 (en) | Reporting of intra-device failure data | |
US11907561B2 (en) | Data backup method and apparatus | |
CN111061628B (zh) | 数据分析方法、系统、装置、计算机设备和存储介质 | |
US10771306B2 (en) | Log monitoring system | |
TWI510918B (zh) | 快速測試及偵測行動裝置的方法及其系統 | |
CN110888783A (zh) | 微服务系统的监测方法、装置以及电子设备 | |
US20140089477A1 (en) | System and method for monitoring storage machines | |
US9442786B2 (en) | Determining and correcting software server error conditions | |
WO2019169765A1 (zh) | 电子装置、集群环境下状态信息的获取方法、系统及存储介质 | |
US20190215262A1 (en) | System and method for dynamically testing networked target systems | |
CN115981956A (zh) | Spdk服务进程监控方法、装置、设备、存储介质和程序产品 | |
CN110910249B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
CN110958161B (zh) | 区块链节点监控方法、装置和存储介质 | |
CN112104663A (zh) | 一种用于管理登录用户和用户设备的方法与设备 | |
CN114168429A (zh) | 报错分析方法、装置、计算机设备及存储介质 | |
US20170264527A1 (en) | Diagnostic service for devices that employ a device agent | |
CN116743619A (zh) | 网络服务的测试方法、装置、设备及存储介质 | |
CN111130882A (zh) | 网络设备的监控系统及方法 | |
CN115695326A (zh) | 数据帧传输方法、装置、计算机设备和存储介质 | |
CN115525392A (zh) | 容器监控方法、装置、电子设备及存储介质 | |
CN114510398A (zh) | 异常监测方法、装置、设备、系统和介质 | |
CN112905422A (zh) | 基于搜索服务器的告警规则管理方法和设备 | |
CN106850283B (zh) | 一种基于事件驱动的云ac告警处理系统及方法 | |
CN113553243A (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 |