本发明属于硬盘容量信息错误定位领域,具体涉及一种定位硬盘容量信息错误的方法及系统。
背景技术:
服务器无论是在研发阶段还是维护阶段都需要验证硬盘容量信息是否正确,当硬盘容量信息出现错误时,需要及时定位问题的根源,并将分析数据提供给研发阶段,以便在研发阶段可以有针对性的解决此问题。但由于当前服务器的bios和bmc均可以对硬盘的容量信息进行读取,无法确定导致硬盘容量信息出错的根源。
此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种定位硬盘容量信息错误的方法及系统,是非常有必要的。
技术实现要素:
本发明的目的在于,针对上述当前服务器的bios和bmc均可以对硬盘的容量信息进行读取,无法确定导致硬盘容量信息出错根源的缺陷,提供一种定位硬盘容量信息错误的方法及系统,以解决上述技术问题。
为实现上述目的,本发明给出以下技术方案:
一种定位硬盘容量信息错误的方法,其特征在于,包括如下步骤:
步骤s1.将已知容量的待测硬盘插入服务器;
步骤s2.获取bios读取的待测硬盘第一信息;
步骤s3.比较bios读取的待测硬盘第一信息中待测硬盘容量与已知容量,并判断是否有错误;
若是,判定bios读取硬盘容量信息错误;进入步骤s8;
若否,进入步骤s4;
步骤s4.获取bios发送给bmc的待测硬盘第二信息;
步骤s5.比较bios发送给bmc的待测硬盘第二信息中待测硬盘容量与已知容量,并判断是否有错误;
若是,判定bios发送硬盘容量信息错误;进入步骤s8;
若否,进入步骤s6;
步骤s6.获取bmc解析的待测硬盘第三信息;
步骤s7.比较bmc解析的待测硬盘第三信息中待测硬盘容量与已知容量,并判断是否有错误;
若是,判定bmc解析硬盘容量信息错误;进入步骤s8;
若否,判定读取硬盘容量信息正确;进入步骤s8;
步骤s8.反馈硬盘容量信息判定结果。
进一步地,步骤s2中通过在linux系统下执行fdisk命令获取bios读取的待测硬盘第一信息。因bios可以直接读取外围设备硬盘的数量和容量信息,所以可以直接在linux系统下执行fdisk命令获取bios读取硬盘容量信息是否正确。
进一步地,步骤s4中,获取bios通过智能平台管理接口ipmi发送给bmc的待测硬盘第二信息。智能平台管理接口(ipmi)是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法。ipmi信息通过基板管理控制器(bmc)进行交流,bios与bmc之间又是通过ipmi进行交流的。
进一步地,步骤s4通过在linux系统下执行impitoolraw命令获取bios发送给bmc的待测硬盘第二信息。impitoolraw命令发送一个原始的ipmi请求,并且打印回复信息。
进一步地,所述已知容量的待测硬盘数量为若干个。服务器的硬盘数量通常为多个。
本发明还给出如下技术方案:
一种定位硬盘容量信息错误的系统,包括:
待测硬盘准备模块,用于将已知容量的待测硬盘插入服务器;
bios读取的硬盘容量信息获取模块,用于获取bios读取的待测硬盘第一信息;
bios读取硬盘容量信息判断模块,用于比较bios读取的待测硬盘第一信息中待测硬盘容量与已知容量,并判断是否有错误;
bios发送给bmc的硬盘容量信息获取模块,用于获取bios发送给bmc的待测硬盘第二信息;
bios发送给bmc的硬盘容量信息判断模块,用于比较bios发送给bmc的待测硬盘第二信息中待测硬盘容量与已知容量,并判断是否有错误;
bmc解析的硬盘容量信息获取模块,用于获取bmc解析的待测硬盘第三信息;
bmc解析的硬盘容量信息判断模块,用于比较bmc解析的待测硬盘第三信息中待测硬盘容量与已知容量,并判断是否有错误;
硬盘容量信息判断结果反馈模块,用于反馈硬盘容量信息判定结果。
进一步地,bios读取的硬盘容量信息获取模块中通过在linux系统下执行fdisk命令获取bios读取的待测硬盘第一信息。因bios可以直接读取外围设备硬盘的数量和容量信息,所以可以直接在linux系统下执行fdisk命令获取bios读取硬盘容量信息是否正确。
进一步地,bios发送给bmc的硬盘容量信息获取模块,用于获取bios通过智能平台管理接口ipmi发送给bmc的待测硬盘第二信息。智能平台管理接口(ipmi)是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法。ipmi信息通过基板管理控制器(bmc)进行交流,bios与bmc之间又是通过ipmi进行交流的。
进一步地,bios发送给bmc的硬盘容量信息获取模块中通过在linux系统下执行impitoolraw命令获取bios发送给bmc的待测硬盘第二信息。impitoolraw命令发送一个原始的ipmi请求,并且打印回复信息。
进一步地,所述已知容量的待测硬盘数量为若干个。服务器的硬盘数量通常为多个。
本发明的有益效果在于:
本发明实现快速、高效、准确的对硬盘容量错误信息进行定位,提高测试人员定位bug的效率,为研发人员解决问题提供可靠、有效数据支撑。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
图1为本发明的方法流程图;
图2为本发明的系统示意图;
图3为bios通过fdisk命令读取硬盘容量信息示意图;
图4为执行impitoolraw命令获取bios发送给bmc的信息示意图;
其中,1-待测硬盘准备模块;2-bios读取的硬盘容量信息获取模块;3-bios读取硬盘容量信息判断模块;4-bios发送给bmc的硬盘容量信息获取模块;5-bios发送给bmc的硬盘容量信息判断模块;6-bmc解析的硬盘容量信息获取模块;7-bmc解析的硬盘容量信息判断模块;8-硬盘容量信息判断结果反馈模块。
具体实施方式:
为使得本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明具体实施例中的附图,对本发明中的技术方案进行清楚、完整地描述。
实例1:
如图1所示,本发明提供一种定位硬盘容量信息错误的方法,包括如下步骤:
步骤s1.将已知容量的待测硬盘插入服务器;所述已知容量的待测硬盘数量为若干个;
步骤s2.通过在linux系统下执行fdisk命令获取bios读取的待测硬盘第一信息;
步骤s3.比较bios读取的待测硬盘第一信息中待测硬盘容量与已知容量,并判断是否有错误;
若是,判定bios读取硬盘容量信息错误;进入步骤s8;
若否,进入步骤s4;
步骤s4.通过在linux系统下执行impitoolraw命令获取bios通过智能平台管理接口ipmi发送给bmc的待测硬盘第二信息;
步骤s5.比较bios发送给bmc的待测硬盘第二信息中待测硬盘容量与已知容量,并判断是否有错误;
若是,判定bios发送硬盘容量信息错误;进入步骤s8;
若否,进入步骤s6;
步骤s6.获取bmc解析的待测硬盘第三信息;
步骤s7.比较bmc解析的待测硬盘第三信息中待测硬盘容量与已知容量,并判断是否有错误;
若是,判定bmc解析硬盘容量信息错误;进入步骤s8;
若否,判定读取硬盘容量信息正确;进入步骤s8;
步骤s8.反馈硬盘容量信息判定结果。
实施例2:
应用上述实例1的方法,将一块1000gb的nvme盘和一块4000gb的普通硬盘作为待测硬盘插入服务器;
bios通过在linux系统下执行fdisk命令fdisk–l来判断硬盘的容量信息是否正确,如图所示,bios读取到待测硬盘第一信息中有一块nvme硬盘,其容量是1000.2gb(由于换算机制不同,1000.2≈1000),一块普通硬盘,其容量是4000.8gb;
此时,判定bios读取硬盘容量信息是正确的,需要继续进行下一步判断;
在linux系统下执行如下命令:ipmitoolraw0x3e0x7f0x010x23判断bios通过智能平台管理接口impi发送给bmc的硬盘容量信息是否正确,如图4所示,两个数字的是普通硬盘的信息,数量是01,容量04换算成十进制是4t=4000gb;三个数字的是nvme盘的信息,数量是01,容量03e8换算成十进制是1000gb;
此时,判定bios发送给bmc的硬盘容量信息是正确的;
再继续判断bmc读取的硬盘容量信息是否正确,即可得到最终的硬盘容量信息判定结果。
实施例3:
如图2所示,本发明提供一种定位硬盘容量信息错误的系统,包括:
待测硬盘准备模块1,用于将已知容量的待测硬盘插入服务器;所述已知容量的待测硬盘数量为若干个;
bios读取的硬盘容量信息获取模块2,用于通过在linux系统下执行fdisk命令获取bios读取的待测硬盘第一信息;
bios读取硬盘容量信息判断模块3,用于比较bios读取的待测硬盘第一信息中待测硬盘容量与已知容量,并判断是否有错误;
bios发送给bmc的硬盘容量信息获取模块4,用于获取bios通过智能平台管理接口ipmi发送给bmc的待测硬盘第二信息;通过在linux系统下执行impitoolraw命令获取bios发送给bmc的待测硬盘第二信息;
bios发送给bmc的硬盘容量信息判断模块5,用于比较bios发送给bmc的待测硬盘第二信息中待测硬盘容量与已知容量,并判断是否有错误;
bmc解析的硬盘容量信息获取模块6,用于获取bmc解析的待测硬盘第三信息;
bmc解析的硬盘容量信息判断模块7,用于比较bmc解析的待测硬盘第三信息中待测硬盘容量与已知容量,并判断是否有错误;
硬盘容量信息判断结果反馈模块8,用于反馈硬盘容量信息判定结果。
bmc,执行服务器远端管理控制器,英文全称为baseboardmanagementcontroller.为基板管理控制器。它可以在机器未开机的状态下,对机器进行固件升级、查看机器设备等一些操作。
bios是英文"basicinputoutputsystem"的缩略词,直译过来后中文名称就是"基本输入输出系统,它可从cmos中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。此外,bios还向作业系统提供一些系统参数。系统硬件的变化是由bios隐藏,程序使用bios功能而不是直接控制硬件。它与硬件的联系也是相当地紧密。形象地说,bios应该是连接软件程序与硬件设备的一座"桥梁",负责解决硬件的即时要求。
智能平台管理接口(ipmi)是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法。ipmi信息通过基板管理控制器(bmc)(位于ipmi规格的硬件组件上)进行交流。
本发明的实施例是说明性的,而非限定性的,上述实施例只是帮助理解本发明,因此本发明不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他的具体实施方式,同样属于本发明保护的范围。