一种硬盘盘位识别和故障诊断方法及其服务器设备的制造方法_2

文档序号:9708185阅读:来源:国知局
桥梁,根据硬盘盘位与硬盘通道映射关系 表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系,从而使得 硬盘盘位与硬盘对应起来,方便在硬盘出现故障时,快速、准确地判断和定位哪个硬盘盘位 上的硬盘出现故障。
[0031] 本发明实施例一通过预先建立硬盘盘位与所述硬盘盘位所在的SAS和/或SATA 控制器硬盘通道之间的映射关系,生成所述硬盘盘位与所述硬盘通道映射关系表;依次对 硬盘通道上的硬盘进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,建立硬盘通道与硬 盘之间的映射关系,生成硬盘通道与硬盘映射关系表;根据硬盘盘位与硬盘通道映射关系 表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系,当硬盘出 现故障时,通过映射关系的查询机制使得用户可以快速、准确地判断和定位哪个硬盘盘位 上的硬盘出现故障。
[0032] 图2为本发明实施例二提供的一种硬盘盘位识别和故障诊断方法流程图,本发 明实施例二提供的一种硬盘盘位识别和故障诊断方法,通过结合BIOS (Basic Input and Output System,基本输入输出系统)和操作系统下的应用软件来实现,该优选实施例是在 BIOS阶段建立硬盘盘位与硬盘之间的映射关系,操作系统仅负责解析BIOS中的硬盘盘位 与所述硬盘之间的映射关系,因此操作系统下的软件实现简单,且兼容Windows和Linux操 作系统,跨平台性更好,当硬件平台升级时,只需更新BIOS即可,操作系统下的应用软件无 需升级。
[0033] 本发明实施例二具体实现过程如下:
[0034] 在BIOS阶段建立硬盘盘位与硬盘之间的映射关系表,假设记为sas_sata_table, 会对SAS控制器和SATA控制器的各通道上所接入的设备进行侦测,编写一个硬盘盘位与硬 盘之间的映射模块。此模块负责将sas_sata_table表存储到BIOS Flash的固定偏移地址 处,sas_sata_table的数据结构的伪代码描述如下:
[0035]


[0038] 硬盘盘位与硬盘之间的映射模块的实现原理如下:
[0039] S1' :预先建立硬盘盘位与所述硬盘盘位所在的SAS和/或SATA控制器硬盘通道 之间的映射关系,生成所述硬盘盘位与所述硬盘通道映射关系表,具体地,通过上述伪代码 描述的数组sas_slots,ide_sata_slots或ahci_sata_slots预先建立硬盘盘位与硬盘盘 位所在的SAS和SATA控制器的硬盘通道关系表。
[0040] S2' :依次对硬盘通道上的硬盘进行侦测,读取挂接在所述硬盘盘位上的硬盘信 息,建立硬盘通道与硬盘之间的映射关系,生成硬盘通道与硬盘映射关系表,具体地,根据 数组sas_slots,ide_sata_slots或ahci_sata_slots记录的硬盘盘位与硬盘盘位所在的 SAS和SATA控制器的硬盘通道关系表,依次对硬盘盘位所在的SAS和/或SATA控制器的硬 件通道上的硬盘进行侦测,其原理是向SAS和/或SATA控制器的10空间,执行ΑΤΑ规范的 OxEC (IDENTIFY DEVICE)命令,这是ΑΤΑ规范的标准,在此不详细赘述。
[0041] 将上述侦测到的设备记录信息(包括硬盘盘位名称,型号,序列号和设备类型)到 表sas_sata_table中,建立硬盘通道与硬盘之间的映射关系,生成硬盘通道与硬盘映射关 系表。如果某个硬盘盘位上没有接设备,则该硬盘盘位的hdd_info_t实例的model, sn数 据赋值为N/A。
[0042] 在BIOS Flash空间中定义一个ROMHole (即保存用户私有数据,BIOS代码不会占 用此空间),并将表sas_sata_table的数据写到此ROMHole中,以便操作系统下的应用软件 解析各硬盘盘位的硬盘信息。
[0043] S3' :根据硬盘盘位与硬盘通道映射关系表、硬盘通道与硬盘映射关系表,建立所 述硬盘盘位与所述硬盘之间的映射关系。具体地,在操作系统的应用软件中实现对硬盘盘 位与硬盘之间的映射关系表sas_sata_table的解析,具体实现过程如下:
[0044] 在计算机进入操作系统后,从BIOS Flash中读取硬盘盘位与硬盘关系映射表 sas_sata_table,并对其进行解析,从sas_sata_table表中可以知道主板上每个硬盘盘位 的详细情况,如SAS硬盘盘位个数,SATA硬盘盘位个数,每个硬盘盘位是否连接设备,连接 的设备是光驱还是硬盘,硬盘的型号和序列号等信息。
[0045] 利用硬盘的 S. M. A. R. T (Self-Monitoring Analysis and Reporting Technology, 自我监测、分析及报告技术)功能读取硬盘的序列号,再根据硬盘的序列号查找sas_sata_ table表,从sas_sata_table表中获取该硬盘的硬盘盘位信息,从而建立硬盘盘位与具 体硬盘之间的对应关系。如图3所示是Linux操作系统下用smartctl命令读取硬盘 S. M. A. R. T信息示例,Device Model表示硬盘型号,SerialNumber表示硬盘序列号,硬盘 型号和硬盘序列号为硬盘的具体信息,获取到硬盘的序列号后可根据硬盘序列号查找sas_ sata_table表,从sas_sata_table表中获取该硬盘的硬盘盘位信息,从而建立硬盘盘位与 具体硬盘之间的对应关系。
[0046] 本发明实施例二通过预先建立硬盘盘位与所述硬盘盘位所在的SAS和/或SATA 控制器硬盘通道之间的映射关系,生成所述硬盘盘位与所述硬盘通道映射关系表;依次对 硬盘通道上的硬盘进行侦测,读取挂接在所述硬盘盘位上的硬盘信息,建立硬盘通道与硬 盘之间的映射关系,生成硬盘通道与硬盘映射关系表;根据硬盘盘位与硬盘通道映射关系 表、硬盘通道与硬盘映射关系表,建立所述硬盘盘位与所述硬盘之间的映射关系,当硬盘出 现故障时,用户可以快速、准确地判断和定位哪个硬盘盘位上的硬盘出现故障,由于其是在 BIOS阶段建立硬盘盘位与硬盘之间的映射关系,操作系统仅负责解析BIOS中的硬盘盘位 与所述硬盘之间的映射关系,因此操作系统下的软件实现简单,对操作系统类型不做限制, 兼容Windows和Linux操作系统,跨平台性更好,当硬件平台升级时,只需更新BIOS即可, 操作系统下的应用软件无需升级。
[0047] 图4为本发明实施例三提供的一种硬盘盘位识别和故障诊断方法流程图,本发明 实施例三提供的一种硬盘盘位识别和故障诊断方法可以直接通过Linux操作系统下的应 用软件来实现,该优选实施例在操作系统下通过应用软件建立硬盘盘位与硬盘之间的映射 关系,对于已有硬件平台,增加此功能时,无需更新BIOS。
[0048] 本发明实施例三具体实现过程如下:
[0049] S1" :预先建立硬盘盘位与所述硬盘盘位所在的SAS和/或SATA控制器硬盘通道 之间的映射关系,生成所述硬盘盘位与所述硬盘通道映射关系表。在Linux操作系统下,通 过配置文件(标记为hdds. conf)描述板载SATA硬盘个数,SAS硬盘个数,硬盘盘位名称, 硬盘盘位与SAS或SATA控制器通道的对应关系,在某个具体应用中实现过程的伪代码如下 所示:
[0050]

[0052] Controller Interface,串行ΑΤΑ高级主控接口 /高级主机控制器接口)模式时, 第一个SATA硬盘的通道名称
[0053] ahcil-chan = "ata2. 00〃
[0054] ahci2-chan = "ata3. 00〃
[0055] ahci3-chan = "ata4.
...
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1