CN105468482A - 一种硬盘盘位识别和故障诊断方法及其服务器设备 - Google Patents
一种硬盘盘位识别和故障诊断方法及其服务器设备 Download PDFInfo
- Publication number
- CN105468482A CN105468482A CN201410433230.7A CN201410433230A CN105468482A CN 105468482 A CN105468482 A CN 105468482A CN 201410433230 A CN201410433230 A CN 201410433230A CN 105468482 A CN105468482 A CN 105468482A
- Authority
- CN
- China
- Prior art keywords
- hard disk
- dish position
- mapping relations
- access
- information
- 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.)
- Granted
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种硬盘盘位识别和故障诊断方法,通过预先建立硬盘盘位与所述硬盘盘位所在的SAS和/或SATA控制器硬盘通道之间的映射关系,生成所述硬盘盘位与所述硬盘通道映射关系表;依次对硬盘通道上的硬盘进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,建立硬盘通道与硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表;根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系,当硬盘出现故障时,用户可以快速、准确地判断和定位哪个硬盘盘位上的硬盘出现故障。
Description
技术领域
本发明涉及硬盘盘位识别领域,尤其涉及一种硬盘盘位识别和故障诊断方法及其服务器设备。
背景技术
硬盘盘位是指打印在计算机主板上的硬盘丝印。在Linux操作系统下,为硬盘分配的设备名称,是根据操作系统扫描到的硬盘先后顺序依次分配的,为/dev/sda,/dev/sdb或/dev/hda,/dev/hdb等。从硬盘名称,如/dev/sda,用户无法直观地知道/dev/sda是主板哪个硬盘盘位上的硬盘。当硬盘出现故障时,如硬盘侦测不到或剩余容量过低等,传统的方法只能靠人工依次排查,用户无法快速、直观、准确地判断哪个硬盘盘位上的硬盘出了故障,特别是服务器设备,硬盘的个数很多,故障诊断非常不方便。
发明内容
基于此,有必要提供一种硬盘盘位识别和故障诊断方法,当硬盘出现故障时,用户可以快速、准确地判断和定位哪个硬盘盘位上的硬盘出现故障。
本发明提供的一种硬盘盘位识别和故障诊断方法,包括如下步骤:
预先建立硬盘盘位与所述硬盘盘位所在的SAS(SerialAttachedSCSI,串行连接SCSI接口)和/或SATA(SerialAdvancedTechnologyAttachment,串行高级技术附件)控制器硬盘通道之间的映射关系,生成所述硬盘盘位与所述硬盘通道映射关系表;
依次对硬盘通道上的硬盘进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,建立硬盘通道与硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表;
根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系。
优选地,预先建立硬盘盘位与硬盘通道之间的映射关系,生成硬盘盘位与硬盘通道映射关系表,具体是指在BIOS中建立硬盘盘位与硬盘通道之间的映射关系或在Linux操作系统下建立硬盘盘位与硬盘通道之间的映射关系,从而生成硬盘盘位与硬盘通道映射关系表。
优选地,若是在BIOS中建立硬盘盘位与硬盘通道之间的映射关系,则所述依次对所述硬盘通道上的设备进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,具体是指:依次对所述硬盘盘位所在的SAS和/或SATA控制器的硬件通道上的硬盘进行侦测,向SAS和/或SATA控制器的IO空间执行ATA规范的0xEC(IDENTIFYDEVICE)命令,获取所述硬盘信息,从而建立所述硬盘通道与所述硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表;
若是在Linux操作系统下建立硬盘盘位与硬盘通道之间的映射关系,则所述依次对所述硬盘通道上的设备进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,具体是指:使用Linux操作系统下的shell命令获取所述硬盘盘位所在的SAS和/或SATA控制器的硬件通道上的硬盘信息,从而建立所述硬盘通道与所述硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表。
进一步地,所述根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系,具体是指:操作系统利用硬盘的S.M.A.R.T功能读取所述硬盘信息,根据所述硬盘信息从硬盘通道与硬盘映射关系表中获取所述硬盘对应的硬盘通道,再根据所述硬盘通道信息从硬盘盘位与硬盘通道映射关系表中获取所述硬盘的硬盘盘位信息,从而建立所述硬盘盘位与所述硬盘之间的映射关系。
进一步地,所述根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系,具体是指:根据Linux操作系统的启动信息分析SAS驱动扫描到的SAS硬盘信息和/或SATA驱动扫描到的SATA硬盘信息,根据所述硬盘信息从硬盘通道与硬盘映射关系表中获取所述硬盘对应的硬盘通道,再根据所述硬盘通道信息从硬盘盘位与硬盘通道映射关系表中获取所述硬盘的硬盘盘位信息,从而建立所述硬盘盘位与所述硬盘之间的映射关系。
进一步地,所述方法还包括:Linux操作系统读取所述硬盘通道与硬盘映射关系表并分析每个硬盘盘位的硬盘挂接情况,具体是指统计SAS硬盘盘位个数,SATA硬盘盘位个数,每个硬盘盘位是否挂接设备,挂接的设备是光驱还是硬盘,硬盘的型号和序列号等信息。
进一步地,所述方法还包括:操作系统将所述硬盘盘位与对应的硬盘信息输出到终端或者显示装置上,所述信息包括但不限于硬盘盘位名称、硬盘温度、硬盘剩余容量。
进一步地,所述方法还包括:通过所述硬盘信息判断所述硬盘是否丢失,所述硬盘剩余容量是否过低或所述硬盘健康是否存在异常,并将根据所述判断结果输出报警信息。
实施本发明具有以下有益效果:通过预先建立硬盘盘位与所述硬盘盘位所在的SAS和/或SATA控制器硬盘通道之间的映射关系,生成所述硬盘盘位与所述硬盘通道映射关系表;依次对硬盘通道上的硬盘进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,建立硬盘通道与硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表;根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系,当硬盘出现故障时,用户可以快速、准确地判断和定位哪个硬盘盘位上的硬盘出现故障。
附图说明
图1为本发明实施例一提供的一种硬盘盘位识别和故障诊断方法流程图;
图2为本发明实施例二提供的一种硬盘盘位识别和故障诊断方法流程图;
图3为Linux操作系统下用smartctl命令读取硬盘S.M.A.R.T信息示例;
图4为本发明实施例三提供的一种硬盘盘位识别和故障诊断方法流程图;
图5为本发明实施例四提供的一种硬盘盘位识别和故障诊断方法流程图;
图6为本发明实施例硬盘盘位与硬盘设备名称映射关系实例。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,为本发明实施例一提供的一种硬盘盘位识别和故障诊断方法流程图,包括如下步骤:
S1:预先建立硬盘盘位与所述硬盘盘位所在的SAS和/或SATA控制器硬盘通道之间的映射关系,生成所述硬盘盘位与所述硬盘通道映射关系表;
具体地,计算机主板在设计时已经确定了硬盘盘位与硬盘通道之间的映射关系,硬盘盘位名称在主板上通过丝印的方式标记出来,该步骤需要将硬盘盘位与所述硬盘盘位所在的SAS和/或SATA控制器硬盘通道之间的映射关系生成一个硬盘盘位与所述硬盘通道映射关系表,以方便后续步骤操作。
S2:依次对硬盘通道上的硬盘进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,建立硬盘通道与硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表;
具体地,通过侦测每个硬盘通道上的硬盘,获取硬盘信息,这样就可以建立硬盘通道与硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表。
S3:根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系。
具体地,在操作系统层,以硬盘通道为桥梁,根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系,从而使得硬盘盘位与硬盘对应起来,方便在硬盘出现故障时,快速、准确地判断和定位哪个硬盘盘位上的硬盘出现故障。
本发明实施例一通过预先建立硬盘盘位与所述硬盘盘位所在的SAS和/或SATA控制器硬盘通道之间的映射关系,生成所述硬盘盘位与所述硬盘通道映射关系表;依次对硬盘通道上的硬盘进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,建立硬盘通道与硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表;根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系,当硬盘出现故障时,通过映射关系的查询机制使得用户可以快速、准确地判断和定位哪个硬盘盘位上的硬盘出现故障。
图2为本发明实施例二提供的一种硬盘盘位识别和故障诊断方法流程图,本发明实施例二提供的一种硬盘盘位识别和故障诊断方法,通过结合BIOS(BasicInputandOutputSystem,基本输入输出系统)和操作系统下的应用软件来实现,该优选实施例是在BIOS阶段建立硬盘盘位与硬盘之间的映射关系,操作系统仅负责解析BIOS中的硬盘盘位与所述硬盘之间的映射关系,因此操作系统下的软件实现简单,且兼容Windows和Linux操作系统,跨平台性更好,当硬件平台升级时,只需更新BIOS即可,操作系统下的应用软件无需升级。
本发明实施例二具体实现过程如下:
在BIOS阶段建立硬盘盘位与硬盘之间的映射关系表,假设记为sas_sata_table,会对SAS控制器和SATA控制器的各通道上所接入的设备进行侦测,编写一个硬盘盘位与硬盘之间的映射模块。此模块负责将sas_sata_table表存储到BIOSFlash的固定偏移地址处,sas_sata_table的数据结构的伪代码描述如下:
硬盘盘位与硬盘之间的映射模块的实现原理如下:
S1’:预先建立硬盘盘位与所述硬盘盘位所在的SAS和/或SATA控制器硬盘通道之间的映射关系,生成所述硬盘盘位与所述硬盘通道映射关系表,具体地,通过上述伪代码描述的数组sas_slots,ide_sata_slots或ahci_sata_slots预先建立硬盘盘位与硬盘盘位所在的SAS和SATA控制器的硬盘通道关系表。
S2’:依次对硬盘通道上的硬盘进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,建立硬盘通道与硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表,具体地,根据数组sas_slots,ide_sata_slots或ahci_sata_slots记录的硬盘盘位与硬盘盘位所在的SAS和SATA控制器的硬盘通道关系表,依次对硬盘盘位所在的SAS和/或SATA控制器的硬件通道上的硬盘进行侦测,其原理是向SAS和/或SATA控制器的IO空间,执行ATA规范的0xEC(IDENTIFYDEVICE)命令,这是ATA规范的标准,在此不详细赘述。
将上述侦测到的设备记录信息(包括硬盘盘位名称,型号,序列号和设备类型)到表sas_sata_table中,建立硬盘通道与硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表。如果某个硬盘盘位上没有接设备,则该硬盘盘位的hdd_info_t实例的model,sn数据赋值为N/A。
在BIOSFlash空间中定义一个ROMHole(即保存用户私有数据,BIOS代码不会占用此空间),并将表sas_sata_table的数据写到此ROMHole中,以便操作系统下的应用软件解析各硬盘盘位的硬盘信息。
S3’:根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系。具体地,在操作系统的应用软件中实现对硬盘盘位与硬盘之间的映射关系表sas_sata_table的解析,具体实现过程如下:
在计算机进入操作系统后,从BIOSFlash中读取硬盘盘位与硬盘关系映射表sas_sata_table,并对其进行解析,从sas_sata_table表中可以知道主板上每个硬盘盘位的详细情况,如SAS硬盘盘位个数,SATA硬盘盘位个数,每个硬盘盘位是否连接设备,连接的设备是光驱还是硬盘,硬盘的型号和序列号等信息。
利用硬盘的S.M.A.R.T(Self-MonitoringAnalysisandReportingTechnology,自我监测、分析及报告技术)功能读取硬盘的序列号,再根据硬盘的序列号查找sas_sata_table表,从sas_sata_table表中获取该硬盘的硬盘盘位信息,从而建立硬盘盘位与具体硬盘之间的对应关系。如图3所示是Linux操作系统下用smartctl命令读取硬盘S.M.A.R.T信息示例,DeviceModel表示硬盘型号,SerialNumber表示硬盘序列号,硬盘型号和硬盘序列号为硬盘的具体信息,获取到硬盘的序列号后可根据硬盘序列号查找sas_sata_table表,从sas_sata_table表中获取该硬盘的硬盘盘位信息,从而建立硬盘盘位与具体硬盘之间的对应关系。
本发明实施例二通过预先建立硬盘盘位与所述硬盘盘位所在的SAS和/或SATA控制器硬盘通道之间的映射关系,生成所述硬盘盘位与所述硬盘通道映射关系表;依次对硬盘通道上的硬盘进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,建立硬盘通道与硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表;根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系,当硬盘出现故障时,用户可以快速、准确地判断和定位哪个硬盘盘位上的硬盘出现故障,由于其是在BIOS阶段建立硬盘盘位与硬盘之间的映射关系,操作系统仅负责解析BIOS中的硬盘盘位与所述硬盘之间的映射关系,因此操作系统下的软件实现简单,对操作系统类型不做限制,兼容Windows和Linux操作系统,跨平台性更好,当硬件平台升级时,只需更新BIOS即可,操作系统下的应用软件无需升级。
图4为本发明实施例三提供的一种硬盘盘位识别和故障诊断方法流程图,本发明实施例三提供的一种硬盘盘位识别和故障诊断方法可以直接通过Linux操作系统下的应用软件来实现,该优选实施例在操作系统下通过应用软件建立硬盘盘位与硬盘之间的映射关系,对于已有硬件平台,增加此功能时,无需更新BIOS。
本发明实施例三具体实现过程如下:
S1”:预先建立硬盘盘位与所述硬盘盘位所在的SAS和/或SATA控制器硬盘通道之间的映射关系,生成所述硬盘盘位与所述硬盘通道映射关系表。在Linux操作系统下,通过配置文件(标记为hdds.conf)描述板载SATA硬盘个数,SAS硬盘个数,硬盘盘位名称,硬盘盘位与SAS或SATA控制器通道的对应关系,在某个具体应用中实现过程的伪代码如下所示:
ControllerInterface,串行ATA高级主控接口/高级主机控制器接口)模式时,第一个SATA硬盘的通道名称
ahci1_chan="ata2.00"
ahci2_chan="ata3.00"
ahci3_chan="ata4.00"
ahci4_chan="ata5.00"
ahci5_chan="ata6.00"
S2”:依次对硬盘通道上的硬盘进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,建立硬盘通道与硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表,具体实现过程为:
(1)使用Linux操作系统下的shell命令获取硬盘信息:
fdisk-l|grep"Disk/dev/[s,h]d"|sed-e's/://g'|awk-F""'{print$2}'>hddevs.txt
此命令的功能是获取操作系统中所有以/dev/hd或/dev/sd开头的硬盘的设备名称。
(2)根据linux启动信息分析SAS驱动扫描到的SAS设备,并记录系统中SAS设备的个数
其实现原理就是以hdds.conf配置文件中记录的SAS通道(如sas:phy-1:0)为关键字查找dmesg启动信息中扫描到的SAS设备,并将扫描到的SAS硬盘信息记录在sasdevs.txt文件中。记录SAS设备个数目的是为了调整SATA硬盘的ATA通道,因为SAS硬盘会抢占SATA硬盘的ATA通道,例如假设在系统没有接SAS硬盘时,主板上SATA0的ATA通道为ata1.00,当主板上接了两个SAS硬盘时,主板上SATA0的ATA通道变为ata3.00。实现此功能的linux命令如下:
dmesg|grep"sas:phy-1:"|awk'{print$1,$2}'>sasdevs.txt
此命令的功能是以SAS硬盘盘位的硬件通道sas:phy-1为关键字,在系统启动信息dmesg中检索SAS硬盘盘位连接的设备。
sas_num="`wc-lsasdevs.txt|awk'{print$1}'`"
此命令的功能是获取系统中SAS设备的个数。
(3)建立SAS硬盘盘位与SAS硬盘之间的映射关系文件sas.txt
根据配置文件hdds.conf对sasdevs.txt文件中的每个元素进行分析,建立SAS硬盘与SAS硬盘盘位的映射关系文件sas.txt。其实现原理如下:
因为没有接设备的SAS硬盘盘位对应的SAS通道在dmesg启动信息中没有记录,所以步骤(2)生成的临时文件sasdev.txt只记录了用户接了SAS设备的SAS硬盘盘位与SAS硬盘之间的映射关系。
对hdds.conf配置文件中描述的SAS硬盘盘位个数及每个SAS硬盘盘位对应的SAS通道,以SAS硬盘盘位对应的SAS通道(如SAS硬盘盘位1对应的通道为sas:phy-1:0)为关键字,依次检索sasdev.txt文件。例如:
如果sas:phy-1:0在sasdev.txt文件中,则将该条件记录复制到sas.txt文件中,否则将S-SATA0,N/A信息写入sas.txt文件中,表示SAS硬盘盘位S-SATA0没有接设备或设备丢失。
(4)建立SATA硬盘盘位与SATA硬盘之间的映射关系文件sata.txt,并修正SATA硬盘盘位的ATA硬盘通道
主要的实现过程如下:
判断SATA控制器的工作模式是IDE模式还是AHCI模式
根据配置文件hdds.conf和操作系统中侦测的SAS硬盘个数,修正IDE模式或AHCI模式下SATA硬盘的ATA通道。
根据SATA硬盘盘位的ATA硬盘通道,在系统启动信息(dmesg)中查找SATA硬盘。如果该硬盘通道上接了硬盘,则记录硬盘型号,否则标记“N/A”,“N/A”表示硬盘没接或丢失。
S3”:根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系,具体地,循环对硬盘文件hddevs.txt中的每个设备进行分析,使用smartctl命令获取硬盘的型号和序列号等信息,因此可以根据硬盘型号,判断该硬盘是否记录在sas.txt和sata.txt中,从而判断该硬盘是否属于SAS硬盘或SATA硬盘,并获取该硬盘的详细信息,如型号,厂商,温度或健康状况等,并将hddevs.txt的设备名称进行分类,分别存储到SAS硬盘日志文件sas_hdds.txt和SATA硬盘日志文件sata_hdds.txt中。
至此,完成了在Linux操作系统下建立硬盘盘位与硬盘之间的映射关系,通过预先建立硬盘盘位与所述硬盘盘位所在的SAS和/或SATA控制器硬盘通道之间的映射关系,生成所述硬盘盘位与所述硬盘通道映射关系表;依次对硬盘通道上的硬盘进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,建立硬盘通道与硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表;根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系,当硬盘出现故障时,用户可以快速、准确地判断和定位哪个硬盘盘位上的硬盘出现故障,该实施例提供的硬盘盘位识别与故障诊断方法可以直接通过Linux操作系统下的应用软件来实现,对于已有硬件平台,增加此功能时,无需更新BIOS。
如图5所示为本发明实施例四提供的一种硬盘盘位识别和故障诊断方法流程图,所述硬盘盘位识别与故障诊断方法包括如下步骤:
S1:预先建立硬盘盘位与所述硬盘盘位所在的SAS和/或SATA控制器硬盘通道之间的映射关系,生成所述硬盘盘位与所述硬盘通道映射关系表;
具体地,计算机主板在设计时已经确定了硬盘盘位与硬盘通道之间的映射关系,硬盘盘位名称在主板上通过丝印的方式标记出来,该步骤需要将硬盘盘位与所述硬盘盘位所在的SAS和/或SATA控制器硬盘通道之间的映射关系生成一个硬盘盘位与所述硬盘通道映射关系表,以方便后续步骤操作。
S2:依次对硬盘通道上的硬盘进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,建立硬盘通道与硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表;
具体地,通过侦测每个硬盘通道上的硬盘,获取硬盘信息,这样就可以建立硬盘通道与硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表。
S3:根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系。
具体地,在操作系统层,以硬盘通道为桥梁,根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系,从而使得硬盘盘位与硬盘对应起来,方便在硬盘出现故障时,快速、准确地判断和定位哪个硬盘盘位上的硬盘出现故障。
S4:将所述硬盘盘位与对应的硬盘信息输出到终端或者显示装置上,所述信息包括但不限于硬盘盘位名称、硬盘温度、硬盘剩余容量。用户可以直观的看到硬盘盘位上挂接的硬盘信息。
S5:通过所述硬盘信息判断所述硬盘是否丢失,所述硬盘剩余容量是否过低或所述硬盘健康是否存在异常,并根据所述判断结果输出报警信息。用户可以根据报警信息及时排查故障,提高系统的可用性。
通过预先建立硬盘盘位与所述硬盘盘位所在的SAS和/或SATA控制器硬盘通道之间的映射关系,生成所述硬盘盘位与所述硬盘通道映射关系表;依次对硬盘通道上的硬盘进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,建立硬盘通道与硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表;根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系,用户可以快速、准确地判断和定位哪个硬盘盘位上的硬盘出现故障,当硬盘出现故障时,将所述故障信息输出到终端或者显示装置上,用户可以直观的看到硬盘盘位上挂接的硬盘信息。当硬盘出现异常时,会输出报警信息,用户可以根据报警信息及时排查故障,提高系统的可用性。在一个具体的应用中,硬盘盘位与硬盘设备名称映射关系示例如图6所示,N/A表示硬盘丢失或没有接,图6图示中表示硬盘盘位为I-SATA0、I-SATA1、I-SATA2、I-SATA4、I-SATA5的硬盘丢失或没有接。
本发明还公开了一种服务器设备,所述服务器设备采用上述硬盘盘位识别和故障诊断方法,建立硬盘盘位与硬盘之间的映射关系,将硬盘盘位与硬盘之间的映射关系输出到终端或者显示装置上,当硬盘出现故障时,进行报警和定位。
本发明实施例通过建立硬盘盘位与硬盘之间的映射关系,并对硬盘健康状况进行监控,如果侦测到某个硬盘盘位上的硬盘丢失,剩余容量过低或硬盘健康存在异常时,提供报警信息,报警方式可以有多种实现方式,如发送邮件或在液晶屏上显示故障信息等,从而用户可以快速、直观、准确地判断哪个硬盘盘位上的硬盘出了故障。本发明实施例还可以防止用户将数据写入错误的硬盘中,例如假设系统中接了4个硬盘,用户想将某些关键数据部署到第二硬盘盘位上的硬盘上,正常情况下Linux分配的设备名称分别为sda,sdb,sdc和sdd,它们分别对应主板SATA接口的硬盘盘位,即硬盘盘位分别为SATA1,SATA2,SATA3和SATA4。现假设SATA2硬盘丢失,linux系统分配的硬盘名称为sda,sdb,sdc,但此时sdb为SATA3硬盘盘位的硬盘,sdc为SATA4硬盘盘位的硬盘,如果没有检测机制,此时用户程序会将本该写入硬盘盘位SATA2硬盘的数据错误地写到硬盘盘位SATA2的硬盘上。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种硬盘盘位识别和故障诊断方法,其特征在于,包括如下步骤:
预先建立硬盘盘位与所述硬盘盘位所在的SAS和/或SATA控制器硬盘通道之间的映射关系,生成所述硬盘盘位与所述硬盘通道映射关系表;
依次对硬盘通道上的硬盘进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,建立硬盘通道与硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表;
根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系。
2.如权利要求1所述的一种硬盘盘位识别和故障诊断方法,其特征在于,预先建立硬盘盘位与硬盘通道之间的映射关系,生成硬盘盘位与硬盘通道映射关系表,具体是指在BIOS中建立硬盘盘位与硬盘通道之间的映射关系或在Linux操作系统下建立硬盘盘位与硬盘通道之间的映射关系,从而生成硬盘盘位与硬盘通道映射关系表。
3.如权利要求2所述的一种硬盘盘位识别和故障诊断方法,其特征在于,
若是在BIOS中建立硬盘盘位与硬盘通道之间的映射关系,则所述依次对所述硬盘通道上的设备进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,具体是指:依次对所述硬盘盘位所在的SAS和/或SATA控制器的硬件通道上的硬盘进行侦测,向SAS和/或SATA控制器的IO空间执行ATA规范的0xEC(IDENTIFYDEVICE)命令,获取所述硬盘信息,从而建立所述硬盘通道与所述硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表;
若是在Linux操作系统下建立硬盘盘位与硬盘通道之间的映射关系,则所述依次对所述硬盘通道上的设备进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,具体是指:使用Linux操作系统下的shell命令获取所述硬盘盘位所在的SAS和/或SATA控制器的硬件通道上的硬盘信息,从而建立所述硬盘通道与所述硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表。
4.如权利要求1所述的一种硬盘盘位识别和故障诊断方法,其特征在于,所述根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系,具体是指:操作系统利用硬盘的S.M.A.R.T功能读取所述硬盘信息,根据所述硬盘信息从硬盘通道与硬盘映射关系表中获取所述硬盘对应的硬盘通道,再根据所述硬盘通道信息从硬盘盘位与硬盘通道映射关系表中获取所述硬盘的硬盘盘位信息,从而建立所述硬盘盘位与所述硬盘之间的映射关系。
5.如权利要求1所述的一种硬盘盘位识别和故障诊断方法,其特征在于,所述根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系,具体是指:根据Linux操作系统的启动信息分析SAS驱动扫描到的SAS硬盘信息和/或SATA驱动扫描到的SATA硬盘信息,根据所述硬盘信息从硬盘通道与硬盘映射关系表中获取所述硬盘对应的硬盘通道,再根据所述硬盘通道信息从硬盘盘位与硬盘通道映射关系表中获取所述硬盘的硬盘盘位信息,从而建立所述硬盘盘位与所述硬盘之间的映射关系。
6.如权利要求1所述的一种硬盘盘位识别和故障诊断方法,其特征在于,所述方法还包括:Linux操作系统读取所述硬盘通道与硬盘映射关系表并分析每个硬盘盘位的硬盘挂接情况,具体是指统计SAS硬盘盘位个数,SATA硬盘盘位个数,每个硬盘盘位是否挂接设备,挂接的设备是光驱还是硬盘,硬盘的型号和序列号等信息。
7.如权利要求1所述的一种硬盘盘位识别和故障诊断方法及,其特征在于,所述方法还包括:操作系统将所述硬盘盘位与对应的硬盘信息输出到终端或者显示装置上,所述信息包括但不限于硬盘盘位名称、硬盘温度、硬盘剩余容量。
8.如权利要求1所述的一种硬盘盘位识别和故障诊断方法,其特征在于,所述方法还包括:通过所述硬盘信息判断所述硬盘是否丢失,所述硬盘剩余容量是否过低或所述硬盘健康是否存在异常,并将根据所述判断结果输出报警信息。
9.一种服务器设备,其特征在于,采用权利要求1~8任一项所述硬盘盘位识别和故障诊断方法,建立硬盘盘位与硬盘之间的映射关系,将硬盘盘位与硬盘之间的映射关系输出到终端或者显示装置上,当硬盘出现故障时,进行报警和定位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410433230.7A CN105468482B (zh) | 2014-08-29 | 2014-08-29 | 一种硬盘盘位识别和故障诊断方法及其服务器设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410433230.7A CN105468482B (zh) | 2014-08-29 | 2014-08-29 | 一种硬盘盘位识别和故障诊断方法及其服务器设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105468482A true CN105468482A (zh) | 2016-04-06 |
CN105468482B CN105468482B (zh) | 2021-02-05 |
Family
ID=55606216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410433230.7A Active CN105468482B (zh) | 2014-08-29 | 2014-08-29 | 一种硬盘盘位识别和故障诊断方法及其服务器设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105468482B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106469103A (zh) * | 2015-08-14 | 2017-03-01 | 华为软件技术有限公司 | 硬盘的维护方法和装置 |
CN107562576A (zh) * | 2017-09-14 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种数据保护的方法 |
CN107943723A (zh) * | 2017-11-23 | 2018-04-20 | 郑州云海信息技术有限公司 | 一种计算机硬盘识别方法及系统 |
CN108733500A (zh) * | 2017-04-13 | 2018-11-02 | 阿里巴巴集团控股有限公司 | 故障定位方法及装置、对应关系的生成方法及装置 |
CN109240869A (zh) * | 2018-09-21 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种确定目标硬盘背板的方法和装置 |
CN109491846A (zh) * | 2018-10-17 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种用于服务器抓取SATA硬盘trace的方法和系统 |
CN110928815A (zh) * | 2019-11-29 | 2020-03-27 | 四川效率源科技有限责任公司 | 一种获取ahci基地址寄存器值的方法 |
CN111831345A (zh) * | 2020-07-17 | 2020-10-27 | 深圳市同泰怡信息技术有限公司 | 服务器硬盘背板的管理方法、装置、存储介质和设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6430686B1 (en) * | 1998-03-18 | 2002-08-06 | Bull, S.A. | Disk subsystem with multiple configurable interfaces |
CN101776984A (zh) * | 2010-02-20 | 2010-07-14 | 浪潮(北京)电子信息产业有限公司 | 在存储系统中处理磁盘漫游的方法和装置 |
CN103593275A (zh) * | 2013-10-31 | 2014-02-19 | 华为技术有限公司 | 磁盘信息显示方法及装置 |
-
2014
- 2014-08-29 CN CN201410433230.7A patent/CN105468482B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6430686B1 (en) * | 1998-03-18 | 2002-08-06 | Bull, S.A. | Disk subsystem with multiple configurable interfaces |
CN101776984A (zh) * | 2010-02-20 | 2010-07-14 | 浪潮(北京)电子信息产业有限公司 | 在存储系统中处理磁盘漫游的方法和装置 |
CN103593275A (zh) * | 2013-10-31 | 2014-02-19 | 华为技术有限公司 | 磁盘信息显示方法及装置 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106469103A (zh) * | 2015-08-14 | 2017-03-01 | 华为软件技术有限公司 | 硬盘的维护方法和装置 |
CN106469103B (zh) * | 2015-08-14 | 2019-10-18 | 华为软件技术有限公司 | 硬盘的维护方法和装置 |
CN108733500A (zh) * | 2017-04-13 | 2018-11-02 | 阿里巴巴集团控股有限公司 | 故障定位方法及装置、对应关系的生成方法及装置 |
CN107562576A (zh) * | 2017-09-14 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种数据保护的方法 |
CN107943723A (zh) * | 2017-11-23 | 2018-04-20 | 郑州云海信息技术有限公司 | 一种计算机硬盘识别方法及系统 |
CN109240869A (zh) * | 2018-09-21 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种确定目标硬盘背板的方法和装置 |
CN109491846A (zh) * | 2018-10-17 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种用于服务器抓取SATA硬盘trace的方法和系统 |
CN109491846B (zh) * | 2018-10-17 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种用于服务器抓取SATA硬盘trace的方法和系统 |
CN110928815A (zh) * | 2019-11-29 | 2020-03-27 | 四川效率源科技有限责任公司 | 一种获取ahci基地址寄存器值的方法 |
CN110928815B (zh) * | 2019-11-29 | 2023-05-05 | 四川效率源科技有限责任公司 | 一种获取ahci基地址寄存器值的方法 |
CN111831345A (zh) * | 2020-07-17 | 2020-10-27 | 深圳市同泰怡信息技术有限公司 | 服务器硬盘背板的管理方法、装置、存储介质和设备 |
CN111831345B (zh) * | 2020-07-17 | 2023-08-22 | 深圳市同泰怡信息技术有限公司 | 服务器硬盘背板的管理方法、装置、存储介质和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105468482B (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105468482A (zh) | 一种硬盘盘位识别和故障诊断方法及其服务器设备 | |
US20070080205A1 (en) | System and method for testing a card reader of a computer | |
CN100524241C (zh) | 多操作系统平台整合测试方法 | |
CN102597962A (zh) | 用于虚拟计算环境中的故障管理的方法和系统 | |
US20040044693A1 (en) | Automated logging of system configurations | |
CN102568522A (zh) | 硬盘性能的测试方法和装置 | |
CN1848094A (zh) | 用于测试计算机系统的装置和方法 | |
JP2001281258A (ja) | 分析装置 | |
CN110989926A (zh) | 故障磁盘槽位定位方法、装置及电子设备 | |
CN112631848A (zh) | 一种机械硬盘故障智能诊断方法及系统 | |
WO2023226380A1 (zh) | 一种磁盘处理方法、系统及电子设备 | |
US8843781B1 (en) | Managing drive error information in data storage systems | |
US20060248236A1 (en) | Method and apparatus for time correlating defects found on hard disks | |
US20160224251A1 (en) | Systems and methods in support of dynamic data management | |
JP2014048782A (ja) | 情報処理装置、及び情報処理装置の障害処理方法 | |
CN101963931A (zh) | 可扩展固件接口下的硬盘测试方法 | |
CN102222033A (zh) | 一种保存小型计算机系统接口访问错误的方法及装置 | |
CN104750600A (zh) | 设备状态记录方法和系统 | |
US7246038B2 (en) | Method, system, and article of manufacture for running diagnostics related to a device | |
CN107807862A (zh) | 检测硬盘故障点的方法、装置及服务器 | |
EP2278468A2 (en) | System and method for tracking application usage | |
US10452464B1 (en) | Automatic human configuration error detection for reoccurring events | |
US20140344257A1 (en) | Detecting a Preferred Implementation of an Operation | |
CN108873668A (zh) | 时间校准方法、处理器及时间校准系统 | |
CN114064510A (zh) | 功能测试方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221028 Address after: 522, Floor 5, Block A, Haina Baichuan Headquarters Building, No. 6, Baoxing Road, Haibin Community, Xin'an Street, Bao'an District, Shenzhen, Guangdong 518000 Patentee after: Shenzhen yiyike data equipment Technology Co.,Ltd. Address before: 518057 Guangdong city of Shenzhen province Nanshan District high in the four EVOC Technology Building No. 31 Patentee before: EVOC INTELLIGENT TECHNOLOGY Co.,Ltd. |