一种基于BMC的背板硬盘点灯方法与流程

文档序号:18524789发布日期:2019-08-24 10:08阅读:1906来源:国知局
一种基于BMC的背板硬盘点灯方法与流程

本发明涉及硬盘点灯的技术领域,特别是涉及一种基于bmc的背板硬盘点灯方法。

技术背景

服务器系统中使用大量的硬盘,每个硬盘都要求有对应的硬盘指示灯来指示硬盘的各种状态。

现有的一种点扩展背板(expander背板,以下简称背板)上硬盘灯的方法是由系统下的sg_ses工具通过ses协议(scsienclosureservices,一种机箱管理协议)下发命令到背板的扩展芯片(expander)上。扩展芯片解析数据,输出标准的sgpio(serialgeneral-purposeioports,串行通用输入输出接口)数据给cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件)。cpld通过解析sgpio数据,控制相对应的gpio(generalpurposeinput/output,通用输入输出)输出高低电平从而控制灯的状态。现有的另外一种点灯方法是通过系统下的arcconf工具或者sas3ircu工具向sas(serialattachedscsi,串行小型计算机系统接口技术)卡发送点灯命令以进行硬盘点灯。也有的是通过在bios(basicinputoutputsystem,基本输入输出系统)阶段进入卡的设置界面中选中相对应的硬盘对硬盘进行点灯定位。

以上背板硬盘点灯方法需要在流程皆需要进入系统,下载相对应的工具,下发命令以完成硬盘点灯定位,对于没有安装系统的服务器上述方法皆是不可行的。因此,现有的背板硬盘点灯方法有一定的局限性,且操作相对复杂,需要有一定相关基础的人员才能准确操作。

此外,现有技术中还有一种背板硬盘点灯方法,该方法需要外接一台显示器等待bios完成前期的初始化工作,然后通过特定的按键进入卡的设置界面,通过外接键盘对卡的操作发送相对应的命令到背板进行点灯,此方法非常繁琐,对于有大量机器的机房,此方法非常不便。



技术实现要素:

本发明的目的是提供一种基于bmc的背板硬盘点灯方法,解决如何迅速点灯以定位故障硬盘的技术问题,缩短排除硬盘故障所需的时间,降低操作人员的技术要求。

为此,本发明提供了一种基于bmc的背板硬盘点灯方法,所述方法包括步骤:bmc定时向扩展芯片发送获取硬盘灯的状态的全双工的串行总线(12c)命令,bmc获取硬盘灯的状态数据,将状态数据更新至客户端;客户端向bmc发送点灯命令,bmc发送相应的点灯全双工的串行总线(12c)命令至扩展芯片;扩展芯片解析bmc所发送的点灯全双工的串行总线(12c)命令,输出sgpio信号至cpld器件;cpld器件依据sgpio信号控制硬盘灯的点灯状态。

进一步地,在bmc将状态数据更新至客户端的步骤中,网页显示界面根据背板上的硬盘槽位分区显示槽位内硬盘的硬盘灯的状态;在客户端向bmc发送点灯命令的步骤中,操作人员通过修改网页显示界面的信息向bmc发送点灯命令。

进一步地,在操作人员通过修改网页显示界面的信息向bmc发送点灯命令的步骤之后,bmc由web端接收到对应某个硬盘的点灯命令,bmc判断该硬盘是否在位;如果硬盘不在位,则结束;如果硬盘在位,bmc在一线程中将点灯数据发送至后台,后台处理点灯数据并通过全双工的串行总线(12c)将点灯全双工的串行总线(12c)命令传输至扩展芯片,同时后台处理点灯数据并将处理后数据传输至web端,网页显示界面读取web端的数据,根据背板上的硬盘槽位分区显示槽位内硬盘的硬盘灯的状态;bmc在另一线程中每隔5s秒判断该硬盘是否在位。

进一步地,该方法还包括步骤:扩展芯片在一线程中每隔5秒钟重复执行一次硬盘灯信息读取传输动作,所述硬盘灯信息读取传输动作包括:扩展芯片从dbs中读取硬盘灯的状态,并处理得到硬盘灯的状态信息,将硬盘灯的状态信息通过全双工的串行总线(12c)传送至bmc;扩展芯片在另一线程中定时初始化全双工的串行总线(12c)。

进一步地,在bmc发送相应的点灯全双工的串行总线(12c)命令至扩展芯片的步骤之后,扩展芯片收到bmc所发送的点灯全双工的串行总线(12c)命令并进入到中断处理函数,中断处理函数被配置为:扩展芯片从缓存器中获取bmc发送的点灯全双工的串行总线(12c)命令,从dbs中读取硬盘的该时刻点灯状态;扩展芯片将点灯全双工的串行总线(12c)命令和硬盘的该时刻点灯状态进行处理,输出sgpio信号至cpld器件,并将相关的数据写入dbs。

进一步地,cpld器件依据sgpio信号控制硬盘灯的点灯状态的步骤包括:cpld器件依照sgpio协议解析扩展芯片所发送的sgpio信号;cpld器件输出gpio信号至硬盘灯,并通过控制gipo信号的高低来控制硬盘灯的点灯状态。

进一步地,扩展芯片和cpld器件之间通过时钟信号端子、传输控制端子和数据传输端子进行数据传输;在扩展芯片输出sgpio信号至cpld器件的步骤中,cpld器件在时钟信号端子传输的信号为低电平且传输控制端子传输的信号处于下降沿时读取数据传输端子传输的信号,并从数据传输端子传输的信号中解析硬盘的状态。

进一步地,在cpld器件依据sgpio信号控制硬盘灯的点灯状态的步骤中,cpld器件读取对应数据传输端子传输的信号,从中解析对应于某一硬盘的第一bit数据、第二bit数据和第三bit数据;当cpld器件解析得到所述第一bit数据的电压为高电平时,cpld器件通过gpio信号控制该硬盘的状态指示灯点亮;当cpld器件解析得到所述第二bit数据的电压为高电平时,cpld器件通过gpio信号控制该硬盘的定位指示灯点亮;当cpld器件解析得到所述第三bit数据的电压为高电平时,cpld器件通过gpio信号控制该硬盘的错误指示灯点亮。

本发明的基于bmc的背板硬盘点灯方法,以bmc作为全双工的串行总线(12c)主机,expander作为全双工的串行总线(12c)从机,进行硬盘灯信息读取传输和点灯全双工的串行总线(12c)命令下达,可以方便地让操作人员迅速定位故障硬盘,缩短排除硬盘故障所需的时间;此外操作人员可通过修改网页显示页面的信息向bmc发送点灯命令,降低操作人员的技术要求。

附图说明

下面将以明确易懂的方式,结合附图说明优选实施方式,对本发明予以进一步说明。

图1为应用本发明的背板硬盘点灯方法的服务器的示意性框架图;

图2为根据本发明一实施例的通过bmc实时显示硬盘灯状态的流程示意图;

图3为根据本发明一实施例的扩展芯片执行硬盘灯信息读取传输动作的流程示意图;

图4为根据本发明一实施例的bmc接收点灯命令后的部分动作的流程示意图;

图5为根据本发明一实施例的扩展芯片执行中断处理函数的流程示意图;

图6为根据本发明一实施例的扩展芯片和cpld器件间sgpio协议的时序示意图。

具体实施方式

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。

应用本发明的背板硬盘点灯方法的服务器的示意性框架图如图1所示,该服务器包括主板和扩展背板(expander背板,以下简称背板),服务器通过web端与一客户端通信连接,客户端通过web端向服务器的主机发送请求或下发命令。主板上安装有bmc(baseboardmanagementcontroller,基板管理控制器),背板上安装有扩展芯片和cpld器件(complexprogrammablelogicdevice,复杂可编程逻辑器件),背板的硬盘槽位内安插有硬盘,本发明通过bmc、扩展芯片和cpld器件控制硬盘灯的点灯状态。bmc和扩展芯片通过全双工的串行总线(12c)(interintegratedcircuit,一种全双工的串行总线)通信连接,bmc作为全双工的串行总线(12c)主机,扩展芯片作为全双工的串行总线(12c)从机;扩展芯片和cpld器件通过sgpio(serialgeneral-purposeioports,一种串行的通用输入输出接口)通信连接,扩展芯片和cpld器件所传输的sgpio信号支持sgpio协议规范;cpld器件和硬盘灯(一般为led)通过gpio(general-purposeioports,一种通用输入输出接口)通信连接。

本发明中基于bmc的背板硬盘点灯方法包括以下步骤:

bmc定时向扩展芯片获取硬盘灯的状态的全双工的串行总线(12c)命令,bmc获取硬盘灯的状态数据,将状态数据更新至客户端;

客户端向bmc发送点灯命令,bmc发送相应的点灯全双工的串行总线(12c)命令至扩展芯片;

扩展芯片解析bmc所发送的点灯全双工的串行总线(12c)命令,输出sgpio信号至cpld器件;cpld器件依据sgpio信号控制硬盘灯的点灯状态。

以下提供一种基于bmc的背板硬盘点灯方法的具体实施例。

实施例一:

客户端包括网页显示界面,网页显示界面用于显示硬盘的点灯状态。背板上的硬盘槽位可有多个,对应于一个硬盘的硬盘灯也可有多个,网页显示界面根据硬盘槽位将硬盘灯的状态分区显示。操作人员可以通过修改网页显示界面的信息将点灯命令上传到web端,再通过web端向bmc下达。服务器还配置有dbs和缓存器(buffer),dbs用于存储硬盘的点灯状态,缓存器用于存储有bmc所发送的点灯全双工的串行总线(12c)命令。

本发明中基于bmc的背板硬盘点灯方法具体包括以下步骤:

s1:bmc定时向扩展芯片获取硬盘灯的状态的全双工的串行总线(12c)命令,bmc获取硬盘灯的状态数据,将数据传输至web端;客户端从web读取硬盘灯的状态数据,网页显示界面根据背板上的硬盘槽位分区显示槽位内硬盘的硬盘灯的状态;该步骤中通过bmc实时显示硬盘灯状态的流程如图2所示。

其中,硬盘灯的状态由扩展芯片读取并传输bmc,图3所示为扩展芯片执行硬盘灯信息读取传输动作的流程示意图。扩展芯片在一线程中每隔5秒钟重复执行一次在位信息读取传输动作,在位信息读取传输动作包括:扩展芯片从dbs中读取硬盘灯的状态,并处理得到硬盘灯的状态信息,将硬盘灯的状态信息通过全双工的串行总线(12c)传送至bmc;扩展芯片在另一线程中定时初始化全双工的串行总线(12c)。

s2:操作人员通过修改网页显示页面的信息向bmc发送点灯命令,bmc由web端接收到对应某个硬盘的点灯命令,bmc判断该硬盘是否在位;如果硬盘在位,bmc在一线程中将点灯全双工的串行总线(12c)命令发送至后台,后台处理点灯数据并通过全双工的串行总线(12c)将处理后数据传输至扩展芯片,同时后台处理点灯数据并将处理后数据传输至web端,网页显示页面读取web端的数据,根据背板上的硬盘槽位分区显示槽位内硬盘的硬盘灯的状态;bmc在另一线程中每隔5s秒判断该硬盘是否在位,如硬盘不在位则中止bmc的动作;该步骤中bmc接收点灯命令后的部分动作的流程如图4所示。

s3:扩展芯片解析bmc所发送的点灯全双工的串行总线(12c)命令,输出sgpio信号至cpld器件;cpld器件依据sgpio信号控制硬盘灯的点灯状态。

具体包括:在bmc发送相应的点灯全双工的串行总线(12c)命令至扩展芯片之后,扩展芯片收到bmc所发送的点灯全双工的串行总线(12c)命令并进入到中断处理函数,中断处理函数被配置为:

扩展芯片从缓存器中获取bmc发送的点灯全双工的串行总线(12c)命令,从dbs中读取硬盘的该时刻点灯状态;扩展芯片将点灯全双工的串行总线(12c)命令和硬盘的该时刻点灯状态进行处理,输出sgpio信号至cpld器件,并将相关的数据写入dbs。该步骤中扩展芯片执行中断处理函数的流程如图5所示。

其中,扩展芯片和cpld器件之间通过时钟信号端子(sclockpin)、传输控制端子(sloadpin)和数据传输端子(sdateoutpin)进行数据传输。图6为扩展芯片和cpld器件间sgpio协议的时序示意图,图6中以适用于四个硬盘的sgpio协议为例,每个硬盘包括三个硬盘灯,分别为状态显示灯(activityled)、定位显示灯(locateled)、错误显示灯(errorled)。时钟信号端子传输的信号为sclock,sclock的时序高低电平交错;传输控制端子传输的信号为sload,sload用于区分数据传输端子传输的信号的有效区段和无效区段;数据传输端子传输的信号为sdateout,对应于sload低电平的sdateout区段为有效区段(bitstream),本实施例中一有效区段包括四个数据组(4drives),四个数据组drive0、drive1、drive2、drive3分别对应于四个硬盘,每个数据组包括第一bit数据、第二bit数据和第三bit数据。

本发明的背板硬盘点灯方法在扩展芯片输出sgpio信号至cpld器件的步骤中,cpld器件在时钟信号端子传输的信号为低电平且传输控制端子传输的信号处于下降沿时读取数据传输端子传输的信号,并从数据传输端子传输的信号中解析硬盘的状态。在cpld器件依据sgpio信号控制硬盘灯的点灯状态的步骤中,cpld器件读取对应数据传输端子传输的信号,从中解析对应于某一硬盘的第一bit数据、第二bit数据和第三bit数据;当cpld器件解析得到所述第一bit数据的电压为高电平时,cpld器件通过gpio信号控制该硬盘的状态显示灯点亮;当cpld器件解析得到所述第二bit数据的电压为高电平时,cpld器件通过gpio信号控制该硬盘的定位显示灯点亮;当cpld器件解析得到所述第三bit数据的电压为高电平时,cpld器件通过gpio信号控制该硬盘的错误显示灯点亮。

需要说明的是,本发明的基础上选用其他硬盘数量和硬盘灯数量的常规改进均应落入本发明的保护范围。

本发明提供了一种基于bmc的背板硬盘点灯方法,可以方便地让操作人员迅速定位故障硬盘,缩短排除硬盘故障所需的时间。该方法以bmc作为全双工的串行总线(12c)主机,expander作为全双工的串行总线(12c)从机,进行硬盘灯信息读取传输和点灯全双工的串行总线(12c)命令下达;网页显示界面根据硬盘槽位将硬盘灯的状态分区显示,操作人员可通过修改网页显示页面的信息向bmc发送点灯命令,降低操作人员的技术要求;本发明的硬盘点灯方法相对于进入系统用sg_ses工具或者arcconf等工具进行点灯方法个人更简单直观,不需要复杂的命令,且在服务器上电但是没有安装系统的阶段也可以执行相应的点灯操作进行硬盘的定位;相对于通过进入卡的管理界面点灯方法更便捷。

应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,但是本发明并不限于上述实施方式中的具体细节,应当指出,对于本技术领域的普通技术人员来说,在本发明的技术构思范围内,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,对本发明的技术方案进行多种等同变换,这些改进、润饰和等同变换也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1