基于Python的串行采集NVMeSSD的smart信息的方法与系统技术方案

技术编号:17467148 阅读:35 留言:0更新日期:2018-03-15 04:46
本发明专利技术提供基于Python的串行采集NVMeSSD的smart信息的方法与系统,所述方法包括:获取NVMeSSD列表集;根据所述NVMeSSD列表集设置串行采集循环;依次对每个NVMeSSD进行smart信息采集。本发明专利技术采用基于Python语言开发的第三方库中的commands方法,实现快速高效的NVMeSSD列表集采集分析处理工作,同时将列表集信息写入内存缓存地址中,由于内存的读写速度远远大于硬盘的读写速度,因此可以实现大量NVMeSSD的smart信息高效且简单的采集过程,避免了测试过程中不断的读写硬盘的操作。

Method and system for collecting smart information of NVMeSSD based on Python

The invention provides a method and system for serial acquisition of NVMeSSD smart information based on Python. The method includes acquiring NVMeSSD list set, setting up serial collection cycle according to the NVMeSSD list set, and collecting smart information for each NVMeSSD sequentially. The invention adopts commands method Python language development of the third party Library Based on fast and efficient implementation of the NVMeSSD list in collecting and analyzing work, while the list set information into memory buffer address, the memory read and write speed is far greater than the hard disk read and write speed, the process of collecting smart information so you can achieve efficient and simple a large number of NVMeSSD, to avoid the hard disk read and write continuously during the test operation.

【技术实现步骤摘要】
基于Python的串行采集NVMeSSD的smart信息的方法与系统
本专利技术硬盘检测
,特别是基于Python的串行采集NVMeSSD的smart信息的方法与系统。
技术介绍
NVMeSSD,基于NVMe(Non-VolatileMemoryexpress,非易失性存储标准)协议的固态硬盘,采用PCIE通道,是服务器中常用的一种高级硬盘,具有读写快、低功耗和低延时等优点,是未来硬盘发展的一大趋势。smart(Self-MonitoringAnalysisandReportingTechnology,自我监测、分析及报告技术)信息,可以记录硬盘的硬件如磁头、盘片、马达和电路的运行情况。smart信息通过记录硬盘硬件信息,并将硬件信息用于硬盘故障检测分析,从而可以保障硬盘数据安全。在服务器测试运行或者运维过程中,需要经常查看硬盘的smart信息,特别针对NVMeSSD硬盘,从而可以掌握硬盘的运行情况。现有技术中,对于数量较少的硬盘,可以通过人工输入指令直接查看,根据指令获得目标硬盘的smart信息。但是对于服务器机柜或者集群等,硬盘数量可能会有几百、几千或者上万块,这时如果采用指令进行逐一查看,则会费时费力,且容易出现服务器卡顿现象。
技术实现思路
本专利技术的目的是提供基于Python的串行采集NVMeSSD的smart信息的方法与系统,旨在解决传统硬盘smart信息的获取采用简单命令逐一查看方式导致的浪费时间人力的问题,实现快速获取大量NVMeSSD的smart信息,提高信息采集效率,节省时间和人力成本。为达到上述技术目的,本专利技术提供了基于Python的串行采集NVMeSSD的smart信息的方法,包括以下步骤:获取NVMeSSD列表集;根据所述NVMeSSD列表集设置串行采集循环;依次对每个NVMeSSD进行smart信息采集。优选地,所述获取NVMeSSD列表集的具体操作为:通过awk工具检索NVMe设备,将设备名称信息进行过滤采集;将采集到的设备名称信息存入内存中的缓存地址中;利用commands方法将设备名称信息转化为NVMeSSD列表集信息。优选地,所述smart信息采集在内存缓存中进行。优选地,所述commands方法为基于python语言开发的第三方库。本专利技术还提供了基于Python的串行采集NVMeSSD的smart信息的系统,包括:NVMeSSD列表集模块,用于获取NVMeSSD列表集;循环设置模块,用于根据所述NVMeSSD列表集设置串行采集循环;smart信息采集模块,用于依次对每个NVMeSSD进行smart信息采集。优选地,所述NVMeSSD列表集模块包括:设备信息过滤单元,用于通过awk工具检索NVMe设备,将设备名称信息进行过滤采集;设备信息存储单元,用于将采集到的设备名称信息存入内存中的缓存地址中;列表集转化单元,利用commands方法将设备名称信息转化为NVMeSSD列表集信息。优选地,所述smart信息采集在内存缓存中进行。优选地,所述commands方法为基于python语言开发的第三方库。
技术实现思路
中提供的效果仅仅是实施例的效果,而不是专利技术所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:与现有技术相比,本专利技术采用基于Python语言开发的第三方库中的commands方法,实现快速高效的NVMeSSD列表集采集分析处理工作,同时将列表集信息写入内存缓存地址中,由于内存的读写速度远远大于硬盘的读写速度,因此可以实现大量NVMeSSD的smart信息高效且简单的采集过程,避免了测试过程中不断的读写硬盘的操作。附图说明图1为本专利技术实施例中所提供的基于Python的串行采集NVMeSSD的smart信息的方法流程图;图2为本专利技术实施例中所提供的基于Python的串行采集NVMeSSD的smart信息的系统结构框图。具体实施方式为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本专利技术进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本专利技术的不同结构。为了简化本专利技术的公开,下文中对特定例子的部件和设置进行描述。此外,本专利技术可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本专利技术省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本专利技术。下面结合附图对本专利技术实施例所提供的基于Python的串行采集NVMeSSD的smart信息的方法与系统进行详细说明。如图1所示,本专利技术实施例公开了基于Python的串行采集NVMeSSD的smart信息的方法,包括以下步骤:获取NVMeSSD列表集;根据所述NVMeSSD列表集设置串行采集循环;依次对每个NVMeSSD进行smart信息采集。针对大量的NVMeSSD,首先对其进行信息采集,获取NVMeSSD的一个列表集。现有技术中对硬盘列表集的获取大都采用命令的方式来获取,但是此种方式由于对硬盘数量的限制,存在效率低下、实现繁琐的问题,而本专利技术实施例创新地采用“命令+第三方工具”来进行获取NVMeSSD硬盘列表集。AWK,是一种文本处理工具,是Linux环境中一种强大的数据处理引擎,尤其是在数据分析并生成报告时,其性能尤为突出。获取硬盘的硬件信息,获取方式如下:nvmeSSD_cmd=tool+"-drive_list|awk-F':”/DevicePath:/dev/nvme/{print$2}'"其中,tool是一种基于NVMe工具的采集命令,通过AWK检索NVMe设备,检索包含NVMe设备路径信息的设备路径信息,将NVMe设备路径信息中的设备名称信息过滤输出,即通过检索字符串“DevicePath:/dev/nvme”,并将包含该字符串的信息中的第二列信息,即设备名称信息进行过滤采集输出,通过“{print$2}”来实现,将采集过滤的信息存入内存的缓存地址nvmeSSD_cmd进行记录。获取SSD列表集,获取方式如下:nvmelist=commands.getoutput(nvmeSSD_cmd).split('\n')通过第三方工具基于Python语言开发的方法库包之一的commands方法,将存储在内存缓存地址nvmeSSD_cmd中的硬件信息转化为可用的SSD列表集合信息,并将SSD列表集合信息存储在内存缓存地址nvmelist中。通过commands方法能有效减少采集操作的步骤,快速准确的找出存储的地址位置,相比写入硬盘文件的方式,具有高效、快捷、读取方便的特点。在采集NVMeSSD列表集完成后,设置一个串行采集循环,根据所述列表集信息,依次对每个NVMeSSD进行smart信息采集,并输出至存储文件中,具体操作方式如下:forindexinrange(len(nvmelist)):#通过FOR循环逐个读取内存缓存nvmelist地址smartcmd=tool+"-drive_index"+str(index)+"-smart"#将读取出来的地址信息index,自动填充给NVMe的采集工具进行采集作业,同时自动存储nvme_smart=(c本文档来自技高网
...
基于Python的串行采集NVMeSSD的smart信息的方法与系统

【技术保护点】
基于Python的串行采集NVMeSSD的smart信息的方法,其特征在于,包括以下步骤:获取NVMeSSD列表集;根据所述NVMeSSD列表集设置串行采集循环;依次对每个NVMeSSD进行smart信息采集。

【技术特征摘要】
1.基于Python的串行采集NVMeSSD的smart信息的方法,其特征在于,包括以下步骤:获取NVMeSSD列表集;根据所述NVMeSSD列表集设置串行采集循环;依次对每个NVMeSSD进行smart信息采集。2.根据权利要求1所述的基于Python的串行采集NVMeSSD的smart信息的方法,其特征在于,所述获取NVMeSSD列表集的具体操作为:通过awk工具检索NVMe设备,将设备名称信息进行过滤采集;将采集到的设备名称信息存入内存中的缓存地址中;利用commands方法将设备名称信息转化为NVMeSSD列表集信息。3.根据权利要求1所述的基于Python的串行采集NVMeSSD的smart信息的方法,其特征在于,所述smart信息采集在内存缓存中进行。4.根据权利要求2所述的基于Python的串行采集NVMeSSD的smart信息的方法,其特征在于,所述commands方法为基于python语言开发的第三方库。5.基于Python的串行采集NVMeSSD的smart信息...

【专利技术属性】
技术研发人员:范鹏飞贠雄斌
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1