本发明涉及服务器技术领域,特别涉及一种磁盘乱序的检测方法、装置、设备及系统。
背景技术:
在服务器领域,硬盘的盘符乱序(即磁盘乱序)问题是一个十分常见的问题,而且是一个特别严重的问题,可能直接导致服务器在实际生产使用过程中的数据丢失损坏,而如何快速的准确的验证该问题进而去帮助解决问题就显的尤为的总要。但是,由于os(operatingsystem,操作系统)版本的不同,有无raid(磁盘阵列)卡,以及riad卡的型号的不同等不同状况都会是产生硬盘磁盘乱序的因素,而单台服务器上少则十几颗多则上百颗的硬盘数量,大大的增加了验证磁盘乱序的工作量。目前尚未有人在磁盘乱序的问题上进行深入的研究,难以对服务器上的磁盘乱序问题进行快速便捷的检测。
因此,如何能够对磁盘乱序进行快速便捷的检测,缩短检测时间且降低人力成本,是现今急需解决的问题。
技术实现要素:
本发明的目的是提供一种磁盘乱序的检测方法、装置、设备及系统,以快速便捷的检测磁盘乱序问题,缩短检测时间且降低人力成本。
为解决上述技术问题,本发明提供一种磁盘乱序的检测方法,包括:
获取待测设备中的可识别硬盘的硬盘标识信息;
根据所述硬盘标识信息,按预设点灯顺序对所述可识别硬盘进行点灯操作,获取点灯结果顺序;
将所述点灯结果顺序与所述预设点灯顺序对应的标准结果顺序进行比较,获取磁盘乱序检测结果。
可选的,所述根据所述硬盘标识信息,按预设点灯顺序对所述可识别硬盘进行点灯操作,获取点灯结果顺序,包括:
利用storcli64命令,按所述预设点灯顺序对所述可识别硬盘进行点灯操作,获取第一点灯结果顺序;
利用dd命令,按所述预设点灯顺序对所述可识别硬盘进行点灯操作,获取第二点灯结果顺序。
可选的,所述将所述点灯结果顺序与所述预设点灯顺序对应的标准结果顺序进行比较,获取磁盘乱序检测结果,包括:
判断所述第一点灯结果顺序和所述第二点灯结果顺序是否均符合所述标准结果顺序;
若是,则确定所述磁盘乱序检测结果为不存在磁盘乱序;
若否,则确定所述磁盘乱序检测结果为存在磁盘乱序。
可选的,所述预设点灯顺序为硬盘位置顺序,所述标准结果顺序为硬盘标识信息顺序。
可选的,所述硬盘标识信息为序列号时,还包括:
根据接收的扫码枪依次扫码采集的所述硬盘标识信息,获取所述标准结果顺序。
可选的,所述获取待测设备中的可识别硬盘的硬盘标识信息之前,还包括:
在所述待测设备的启动过程中,通过pxe网络将预设无盘启动文件发送到所述待测设备,为所述待测设备安装操作系统。
本发明还提供了一种磁盘乱序的检测装置,包括:
获取模块,用于获取待测设备中的可识别硬盘的硬盘标识信息;
点灯模块,用于根据所述硬盘标识信息,按预设点灯顺序对所述可识别硬盘进行点灯操作,获取点灯结果顺序;
比较模块,用于将所述点灯结果顺序与所述预设点灯顺序对应的标准结果顺序进行比较,获取磁盘乱序检测结果。
本发明还提供了一种磁盘乱序的检测设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的磁盘乱序的检测方法的步骤。
本发明还提供了一种磁盘乱序的检测系统,包括:
如上述所述的磁盘乱序的检测设备;
与所述检测设备连接的待测设备;其中,所述待测设备上插入有可识别硬盘。
可选的,所述检测设备具体为pxe服务器,用于在所述待测设备的启动过程中,通过pxe网络将预设无盘启动文件发送到所述待测设备,为所述待测设备安装操作系统。
本发明所提供的一种磁盘乱序的检测方法,包括:获取待测设备中的可识别硬盘的硬盘标识信息;根据硬盘标识信息,按预设点灯顺序对可识别硬盘进行点灯操作,获取点灯结果顺序;将点灯结果顺序与预设点灯顺序对应的标准结果顺序进行比较,获取磁盘乱序检测结果;
可见,本发明通过按预设点灯顺序对可识别硬盘进行点灯操作,获取点灯结果顺序,确定待测设备当前检测的磁盘顺序;通过将点灯结果顺序与预设点灯顺序对应的标准结果顺序进行比较,获取磁盘乱序检测结果,可以确定待测设备当前检测的磁盘顺序是否为正确的磁盘顺序,从而确定待测设备的硬盘是否发生磁盘乱序的情况,实现对磁盘乱序问题的快速便捷的自动检测,缩短了检测时间且降低了人力成本。此外,本发明还提供了一种磁盘乱序的检测装置、设备及系统,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种磁盘乱序的检测方法的流程图;
图2为本发明实施例所提供的一种磁盘乱序的检测系统的示意图;
图3为本发明实施例所提供的一种磁盘乱序的检测装置的结构框图;
图4为本发明实施例所提供的一种磁盘乱序的检测设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种磁盘乱序的检测方法的流程图。该方法可以包括:
步骤101:获取待测设备中的可识别硬盘的硬盘标识信息。
其中,本步骤中的待测设备可以为需要进行磁盘乱序检测的设备,如服务器;本步骤中的可识别硬盘可以为待测设备能够识别的硬盘;本步骤中的硬盘标识信息可以为硬盘的唯一身份标识信息,如sn码(即序列号)。
可以理解的是,本步骤的目的可以为对待测设备进行磁盘乱序检测的检测设备中的处理器或待测设备中的处理器通过获取待测设备中的可识别硬盘的硬盘标识信息,确定待测设备中能够识别的硬盘的情况。
具体的,本实施例并不限定处理器获取待测设备中的可识别硬盘的硬盘标识信息的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如检测设备中的处理器可以通过执行如下代码的测试脚本(如shell脚本)读取待测设备中的可识别硬盘的sn码:
#######当硬盘直连在待测设备下时:
#ls/dev/sd*|grep–v[0-9]$|sed‘s//dev///’>sdx.txt
foriinsdx.txt;do
smartctl–i/dev/sd$i|grep–isn>>sn_driect.txt
done
#######当硬盘直连在raid卡,读取硬盘的sn码:
#/opt/megaraid/storcli/storcli64/c0/eall/sallshowall|grep–isn|awk
‘{print$3}'>sn_strocli.txt
步骤102:根据硬盘标识信息,按预设点灯顺序对可识别硬盘进行点灯操作,获取点灯结果顺序。
其中,本步骤中的预设点灯顺序可以为预先设置的用于控制可识别硬盘的指示灯依次点亮闪烁的顺序;本步骤中的点灯结果顺序可以为处理器获取的按预设点灯顺序对可识别硬盘进行点灯操作后,可识别硬盘的硬盘指示灯实际点亮顺序。例如预设点灯顺序为可识别硬盘的排列位置的顺序(即硬盘位置顺序)时,点灯结果顺序可以为指示灯依次点亮的可识别硬盘的硬盘标识信息顺序。
对应的,对于本步骤中的预设点灯顺序和点灯结果顺序的具体内容,可以由设计人员根据实用场景和用户需求自行设置,预设点灯顺序可以为硬盘位置顺序,对应的点灯结果顺序可以为按预设点灯顺序依次点亮指示灯的可识别硬盘的硬盘标识信息的顺序;预设点灯顺序可以为硬盘标识信息顺序,对应的点灯结果顺序可以为按预设点灯顺序依次点亮指示灯的可识别硬盘的插入位置的顺序。本实施例对此不作任何限制。
具体的,本实施例并不限定处理器按预设点灯顺序对可识别硬盘进行点灯操作的具体方式,如预设点灯顺序可以为硬盘位置顺序时,处理器可以通过执行如下storcli64命令,按预设点灯顺序对可识别硬盘进行点灯操作:
#/opt/megaraid/storcli/storcli64/c0/e255/s$i
处理器可以通过执行如下dd命令,按预设点灯顺序对可识别硬盘进行点灯操作:
foriin{a..g};do
ddif=/dev/sd$iof=/dev/zero
done
也就是说,本实施例可以通过storcli64命令和dd命令可以得到两次点灯操作的点灯结果顺序(即第一点灯结果顺序和第二点灯结果顺序),从而提高磁盘乱序检测的准确性。也就是说,本步骤可以包括利用storcli64命令,按预设点灯顺序对可识别硬盘进行点灯操作,获取第一点灯结果顺序;利用dd命令,按预设点灯顺序对可识别硬盘进行点灯操作,获取第二点灯结果顺序。
对应的,处理器也可以仅利用storcli64命令或dd命令,按预设点灯顺序对可识别硬盘进行点灯操作,获取相应的点灯结果顺序。本实施例对此不作任何限制。
需要说明的是,本步骤还可以包括判断获取的硬盘标识信息的顺序与预设点灯顺序或预设点灯顺序中的硬盘标识信息的数量是否相等的步骤;若是,则可以按预设点灯顺序对可识别硬盘进行点灯操作;若否,则可以确定待测设备可识别的硬盘数量有误,直接结束本流程。
步骤103:将点灯结果顺序与预设点灯顺序对应的标准结果顺序进行比较,获取磁盘乱序检测结果。
其中,本步骤中的标准结果顺序可以为预先设置的在不发生磁盘乱序情况时,待测设备中插入的硬盘按预设点灯顺序进行点灯操作得到的点灯结果顺序;如预设点灯顺序为硬盘位置顺序时,标准结果顺序可以为硬盘位置顺序对应的硬盘标识信息顺序。
对应的,对于本步骤中的标准结果顺序可以具体获取方式,可以由设计人员自行设置,如硬盘标识信息为序列号(sn码)时,为了兼顾了实用与经济方面的考量,如图2所示,可以通过扫码枪扫描硬盘的序列号对应的条形码的方式,在安装待测设备(测试样机)的硬盘的过程中,获取标准结果顺序;例如用户在按预设点灯顺序(如插入硬盘顺序排列)安装待测设备的每个硬盘之前,可以利用扫码枪扫描该硬盘的序列号,再将该硬盘安装到待测设备,从而使处理器可以根据扫码枪依次扫码采集的序列号,获取标准结果顺序并存储为csv(逗号分隔值)文件。
可以理解的是,本步骤的目的可以为处理器通过获取的点灯结果顺序与标准结果顺序的比较,确定磁盘乱序检测结果,即待测设备的硬盘是否存在磁盘乱序的问题。
具体的,对于本步骤中处理器将点灯结果顺序与预设点灯顺序对应的标准结果顺序进行比较,获取磁盘乱序检测结果的具体方式,可以由设计人员自行设置,如获取点灯结果顺序包括第一点灯结果顺序和第二点灯结果顺序,可以判断第一点灯结果顺序和第二点灯结果顺序是否均符合标准结果顺序;如第一点灯结果顺序、第二点灯结果顺序和标准结果顺序均为硬盘标识信息顺序时,分别判断第一点灯结果顺序中的硬盘标识信息的顺序和第二点灯结果顺序中的硬盘标识信息的顺序是否均符合标准结果顺序中的硬盘标识信息的顺序;若是,则确定磁盘乱序检测结果为不存在磁盘乱序(pass);若否,则确定磁盘乱序检测结果为存在磁盘乱序(fall)。例如处理器可以执行如下代码的测试脚本将第一点灯结果顺序和第二点灯结果顺序与标准结果顺序进行对比:
#diffsn_strocli.txtsn_standard.txt
or
#diffsn_driect.txtsn_standard.txt
处理器可以执行如下代码的测试脚本得到磁盘乱序检测结果:
进一步的,为了减少待测设备安装操作系统(os)所花费的漫长等待时间,本实施例中的测试设备可以为pxe(prebootexecutionenvironment,预启动执行环境)服务器,在待测设备开机过程中,将预设无盘启动文件发送到待测设备,为待测设备安装操作系统;其中,预设无盘启动文件可以为预先设置操作系统对应的无盘启动的文件,如以调试好的操作系统为基础创建用于无盘启动的img(一种镜像格式)文件。即pxe服务器的处理器可以在待测设备的启动过程中,通过pxe网络将预设无盘启动文件发送到待测设备,为待测设备安装操作系统。
对应的,本实施例还可以包括pxe服务器的pxe网络环境搭建过程,如图2所示,pxe服务器(pxeserver)可以搭建dhcp服务、nfs服务、tftp服务和http等网络服务,以保证可以通过交换机(switch)将预设无盘启动文件发送到待测设备。
具体的,本实施例还可包括pxe服务器的设置过程,如以一个常用型的服务器为对象,在此服务器上安装一个操作系统,如rhel7.6(红帽linux7.6系统),然后在安装好的该操作系统上安装常用的raid卡,sas卡的驱动程序,同时安装一些测试中常用的工具,例如:storcli64、smartctl、hdparm等;将测试脚本也同时设置在该操作系统下,完成该操作系统的准备,之后可以通过下列命令将该操作系统传输到pxe服务器,存储起来为之后快速无盘启动待测机器做准备:
#rsync-a-essh--exclude='/proc/*'--exclude='/sys/*'pxe_ip:目标路径
本实施例中,本发明实施例通过按预设点灯顺序对可识别硬盘进行点灯操作,获取点灯结果顺序,确定待测设备当前检测的磁盘顺序;通过将点灯结果顺序与预设点灯顺序对应的标准结果顺序进行比较,获取磁盘乱序检测结果,可以确定待测设备当前检测的磁盘顺序是否为正确的磁盘顺序,从而确定待测设备的硬盘是否发生磁盘乱序的情况,实现对磁盘乱序问题的快速便捷的自动检测,缩短了检测时间且降低了人力成本。
请参考图3,图3为本发明实施例所提供的一种磁盘乱序的检测装置的结构框图。该装置可以包括:
获取模块10,用于获取待测设备中的可识别硬盘的硬盘标识信息;
点灯模块20,用于根据硬盘标识信息,按预设点灯顺序对可识别硬盘进行点灯操作,获取点灯结果顺序;
比较模块30,用于将点灯结果顺序与预设点灯顺序对应的标准结果顺序进行比较,获取磁盘乱序检测结果。
可选的,点灯模块20,可以包括:
第一点灯子模块,用于利用storcli64命令,按预设点灯顺序对可识别硬盘进行点灯操作,获取第一点灯结果顺序;
第二点灯子模块,用于利用dd命令,按预设点灯顺序对可识别硬盘进行点灯操作,获取第二点灯结果顺序。
可选的,比较模块30,可以包括:
判断子模块,用于判断第一点灯结果顺序和第二点灯结果顺序是否均符合标准结果顺序;若是,则确定磁盘乱序检测结果为不存在磁盘乱序;若否,则确定磁盘乱序检测结果为存在磁盘乱序。
可选的,预设点灯顺序为硬盘位置顺序,标准结果顺序为硬盘标识信息顺序。
可选的,硬盘标识信息为序列号时,该装置还可以包括:
标准获取模块,用于根据接收的扫码枪依次扫码采集的硬盘标识信息,获取标准结果顺序。
可选的,该装置还可以包括:
无盘启动模块,用于在待测设备的启动过程中,通过pxe网络将预设无盘启动文件发送到待测设备,为待测设备安装操作系统。
本实施例中,本发明实施例通过点灯模块20按预设点灯顺序对可识别硬盘进行点灯操作,获取点灯结果顺序,确定待测设备当前检测的磁盘顺序;通过比较模块30将点灯结果顺序与预设点灯顺序对应的标准结果顺序进行比较,获取磁盘乱序检测结果,可以确定待测设备当前检测的磁盘顺序是否为正确的磁盘顺序,从而确定待测设备的硬盘是否发生磁盘乱序的情况,实现对磁盘乱序问题的快速便捷的自动检测,缩短了检测时间且降低了人力成本。
请参考图4,图4为本发明实施例所提供的一种磁盘乱序的检测设备的结构示意图。该设备1可以包括:
存储器11,用于存储计算机程序;处理器12,用于执行该计算机程序时实现如上述实施例所提供的磁盘乱序的检测方法的步骤。
设备1(如pxe服务器)可以包括存储器11、处理器12和总线13。
其中,存储器11至少包括一种类型的可读存储介质,该可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是设备1的内部存储单元,例如服务器的硬盘。存储器11在另一些实施例中也可以是设备1的外部存储设备,例如服务器上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器11还可以既包括设备1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于设备1的应用软件及各类数据,例如:执行磁盘乱序的检测方法的程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行磁盘乱序的检测方法的程序的代码等。
该总线13可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,设备还可以包括网络接口14,网络接口14可选的可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该设备1与其他电子设备之间建立通信连接。
可选地,该设备1还可以包括用户接口15,用户接口15可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口15还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备1中处理的信息以及用于显示可视化的用户界面。
图4仅示出了具有组件11-15的设备1,本领域技术人员可以理解的是,图4示出的结构并不构成对设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例还提供了一种磁盘乱序的检测系统,包括:
如上述实施例所提供的磁盘乱序的检测设备;
与检测设备连接的待测设备;其中,待测设备上插入有可识别硬盘。
可选的,检测设备具体为pxe服务器,用于在待测设备的启动过程中,通过pxe网络将预设无盘启动文件发送到待测设备,为待测设备安装操作系统。
可选的,如图2所示,该系统还可以包括与检测设备(pxeserver)连接的扫码枪,用于依次将扫描采集到的硬盘标识信息(如序列号)发送给检测设备,以使检测设备可以根据接收的扫码枪依次扫码采集的硬盘标识信息,获取标准结果顺序。
此外,本发明实施例还公开了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如上述实施例所提供的磁盘乱序的检测方法的步骤。
其中,该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备、系统及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上对本发明所提供的一种磁盘乱序的检测方法、装置、设备及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。