一种磁盘监控系统及方法与流程

文档序号:11690995阅读:461来源:国知局
一种磁盘监控系统及方法与流程

本发明属于服务器技术领域,尤其涉及一种磁盘监控系统及方法。



背景技术:

随着云计算技术和大数据应用的发展,市场对服务器的功能要求越来越综合。既要求其搭配的传统sas、sata机械磁盘容量增加,也要求使用ssd特别是nvmessd来实现高性能低延迟的应用。因此,混合应用sas、sata、nvme磁盘的服务器系统,需求量越来越大。

当前支持sas或sata磁盘的接口类型是sff8680,如果需要支持nvme磁盘,则需要更换为sff8639接口,而且通过sff8639接口中的i2c或smbus接口可以读取磁盘的vpd(vitalproductdata)获取磁盘型号、厂家、速率信息,读取磁盘temperature、alert报警以及nvme协议中规定的其它附加信息。而sff8639可以兼容支持sas或sata磁盘,因此在做混合应用的磁盘中板或背板板卡设计时,会根据需求使用多个sff8639接口或是混用sff8680接口。

在这种应用场景下,要实现sas或sata或nvme磁盘的监控则需要监控更多的信息。传统的方法是要么只监控sas、sata盘不监控nvme盘;要么就是使用多个i2cswitch、i2cexpander芯片的复杂的方法,即bmc通过一组i2c连接i2cswitch(如pca9546),i2cswitch连接sff8639接口读取nvme盘信息,另一组i2c连接i2cexpander(如pca9555、pca6408)芯片,控制点亮磁盘指示led灯,再另一组i2c连接cpld读取sas或sata磁盘的状态信息,总共需要使用bmc的3组i2c总线资源。这两种方法要么监控范围不足,要么实现方法复杂、占用资源多、可靠性差,都存在较大不足和局限性。

cpld(complexprogrammablelogicdevice)复杂可编程逻辑器件和fpga(fieldprogrammablegatearray)现场可编程门阵列,是从pal和gal器件发展出来的器件,是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。具体讲即可根据应用要求,通过veriloghdl等编程语言灵活实现各种逻辑器件和协议算法等功能。



技术实现要素:

本发明为解决上述技术问题,为此,本发明提供一种磁盘监控系统及方法,它具有实现对不同类型磁盘状态监控,监控功能全面统一、实现方式简洁可靠、客户查看便捷的优点。

为了实现上述目的,本发明采用如下技术方案。

一种磁盘监控系统包含,

磁盘监控显示模块、cpld或fpga模块、磁盘接口模块、sas/sata传输模块、nvme传输模块。

磁盘监控显示模块,包含nvme磁盘的状态判定、传统磁盘状态判定、磁盘状态显示功能单元。所述磁盘监控显示模块通过一组i2c总线与cpld或fpga模块的i2c通信模块相连,读取sas、sata或nvme磁盘的状态信息,进行管理及显示。

所述nvme磁盘的状态判定,能对不同nvme接口的ssd磁盘进行状态信息管理,判定。

所述传统磁盘状态判定,能对传统sas或sata接口的机械结构或ssd结构磁盘进行状态信息管理,判定;

所述磁盘状态显示,是指对sas、sata或nvme磁盘的数量、状态进行列表统一显示。可实现按照磁盘序号(slot)显示磁盘类型(type)、在位(present)、活动(active)、定位(locate)、失效(fail)、重建(rebuild)、速度(speed)、温度(temperature)、报警(alert)等状态信息。

优选的,磁盘监控显示模块,可实现对不同厂商nvmessd的vpd、temp或alert信息的智能仲裁判断,依据实际获取的温度、速率、协议报警等数值,参考ssdspec,判定磁盘是否出现fail或alert状态。

优选的,磁盘监控显示模块,用户可通过网络在本地或远程登录服务器web界面,进行查看、控制。特别是可通过界面选项进行nvme磁盘的locate定位功能控制,是本发明创新功能;

优选的,磁盘监控显示模块的主控芯片可以是服务器主板上的bmc(基板管理控制器)、嵌入式arm处理器、powerpc处理器、mcu单片机及soc芯片的一种。

cpld或fpga模块,包含i2c通信模块、磁盘检测模块、磁盘状态获取模块、磁盘状态指示模块。其i2c通信模块通过1组i2c总线上行与磁盘监控显示模块相连,其磁盘检测模块下行通过gpio与每个磁盘接口相连,其磁盘状态获取模块上行通过sgpio与sas/sata传输模块相连、下行通过i2c或smbus总线与每个磁盘接口相连,磁盘状态指示模块通过gpio与每个磁盘的led指示灯相连,在中板或背板上指示磁盘active、locate、fail等状态。

所述i2c通信模块,是编写的程序功能模块,支持i2c标准通信速率,是核心交互模块。在外部与磁盘监控显示模块相连,在内部与磁盘检测模块、磁盘状态获取模块、磁盘状态指示模块相连,分别进行磁盘类型数量、磁盘状态、磁盘状态指示信息的交互。

所述磁盘检测模块,是编写的程序功能模块,负责实现对各类磁盘的检测并区分磁盘类型数量。通过gpio与每个磁盘接口相连,通过侦测接口上的p10、p4、p5等pin的高低电平,获取present、ready、ifdet信号信息,判定接入的磁盘类型、磁盘数量等信息,保存到内部寄存器。

所述磁盘状态获取模块,是编写的程序功能模块,上行通过sgpio与sas/sata传输模块相连、下行通过i2c或smbus总线与每个磁盘接口相连。如果磁盘接口接入的是传统的sas或sata盘,则程序控制sgpio总线向sas/sata传输模块获取磁盘的状态信息,包括active、locate、fail等;获取到这些信息后,保存到内部寄存器,供i2c通信模块调用上传。

如果磁盘接口接入的是nvme磁盘,则程序控制i2c或smbus总线,按照nvmessd的寄存器地址,读取磁盘的vpd(vitalproductdata)获取磁盘型号、厂家、速率等信息,读取磁盘temperature、alert报警以及nvme协议中规定的其它附加信息。获取到这些信息后,保存到内部寄存器,供i2c通信模块调用上传。

所述磁盘状态指示模块,上行与i2c通信模块相连,下行通过gpio与每个磁盘的led指示灯相连,从磁盘监控显示模块获取的统一磁盘状态信息,再根据磁盘状态对应的led灯指示标准,在中板或背板上控制led的亮灭、闪烁,指示出磁盘的active、locate、fail、rebuild等状态。

磁盘接口模块,包括兼容支持sas、sata或nvme磁盘的sff8639接口和兼容支持sas或sata磁盘的sff8680接口。

sas/sata传输模块,该模块通过磁盘接口直接连接sas或sata盘,当系统接入sas或sata磁盘时,会通过sas/sata高速信号(称带内总线)对磁盘进行读写、raid管理,同时会将磁盘状态active、locate、error信息通过sgpio总线(称带外总线)传递给磁盘状态获取模块。

优选的,sas/sata传输模块可以是sas12g速率的sas、raid、expander卡中的一种。

nvme传输模块,该模块通过磁盘接口直接连接nvme盘,当系统接入nvme磁盘时,会通过pcie高速信号线对磁盘进行读写。该模块只负责nvme盘的读写。

优选的,nvme传输模块可以是pcie3.0速率的retimer、redriver、switch等pcie卡的一种。

磁盘监控方法,包含以下步骤:

s01、系统开机上电后,磁盘检测模块对所连接的磁盘类型、数量进行检测区分;

s02、对于nvmessd磁盘,磁盘检测模块通过i2c、smbus总线获取磁盘vpd、temp、alert、nvme协议信息,读取后经i2c通信模块通过一组i2c总线上传至磁盘监控显示模块;磁盘监控显示模块依据nvmessd厂商spec规范,结合温度值、读写速率值、协议报警等情况判定磁盘失效(fail)状态,控制界面按钮实现磁盘的定位(locate)操作,根据磁盘读写情况指示激活(active)状态。

对于sas或sata接口磁盘,sas/sata传输模块通过sas带内信号对磁盘进行读写、raid管理,同时会将磁盘状态locate、error或active信息通过sgpio总线传递给磁盘状态获取模块;磁盘状态获取模块中的sgpio解析单元解析出磁盘状态locate、error或active,并通过i2c通信模块共用1组i2c总线,将状态信息上报给磁盘监控显示模块。磁盘监控显示模块汇总sas、sata或nvme磁盘的状态信息后,统一下发传递给i2c通信模块;

优选的,磁盘监控方法还包含以下步骤:

s03、磁盘状态指示模块根据收集到sas或sata接口磁盘、nvme盘的状态信息后,控制磁盘的led灯进行亮灭、闪烁显示。

s04、在磁盘状态监控显示模块的web界面中,将磁盘状态形成列表格式显示,用户通过网络在本地或远程登录服务器访问查看,实现磁盘状态实时监控。

本发明的有益效果:本发明与传统方法相比,新方法通过磁盘监控管理模块的软硬件设计实现核心的管理功能,实现nvme盘状态的智能判定,增加控制nvme盘locate功能,使其除了具有传统sas或sata盘相同的监控效果外,还增加温度、速度、alert等监控;通过cpld或fpga模块使各项分立的功能综合到一起,用磁盘检测模块程序代替原方案中i2c芯片的使用,从而降低故障率和板卡设计成本。用磁盘状态获取模块,实现将sas或sata盘和nvme盘的状态信息进行统一获取;用磁盘状态指示模块控制各个磁盘的led灯,使nvme磁盘具有传统sas或sata盘相同的指示效果。而且由于cpld或fpga程序代码的灵活性和可移植性,使得该方法更加模块化,可用于支持不同磁盘数量的情况,支持2、4、6、8、12或24口等多种磁盘中板或背板,通用性强。

本发明只使用磁盘监控指示模块的1组i2c总线与cpld或fpga模块进行通信,节省总线资源,降低开发投入。

cpld或fpga模块中的磁盘检测模块、磁盘状态指示模块,通过软件编程实现i2cswitch、i2cexpander功能,与采用多个i2cswitch(如pca9546)、i2cexpander(如pca9555、6408)芯片的传统方案相比,减少元器件使用,节省板卡空间,降低系统成本。

磁盘接口模块,在板卡结构上,既包括全部都是sff8639接口的板卡,也包括sff8639接口、sff8680组合使用的板卡。且在存储介质上,不限定是机械硬盘hdd还是固态磁盘ssd。

附图说明

图1是本发明的系统组成框图。

图2是本发明磁盘监控显示模块中显示的磁盘状态列表。

图3是实施例的硬件系统组成框图。

具体实施方式

下面结合附图与实施例对本发明作进一步说明。

下面以3个sff8639接口1个sff8680接口中板设计、假定2个nvme盘2个sas盘为例,结合图3对本发明的具体实施方式进一步说明:

如图1建立硬件连接,bmc模块(磁盘监控显示模块)通过一组i2c总线与cpld或fpga模块连接;sas卡(sas/sata传输模块)通过sgpio与cpld或fpga模块连接;cpld或fpga模块通过i2c或smbus与接口sff8639连接,通过gpio与接口sff8639、接口sff8680连接。

同时sas卡(sas/sata传输模块)、retimer卡模块(nvme传输模块)通过连接磁盘接口建立与磁盘的高速数据传输。

系统开机上电后,cpld或fpga模块中的磁盘检测模块通过芯片自身gpio探测磁盘接口的present、ready、ifdet信号的高低电平,结合内部判断逻辑程序,根据present与ifdet均为低时,接入的是sas或sata;present为高ifdet为低时,接入的是nvme盘的规范,实现磁盘类型、数量的检测区分。

再次,对于前2个nvme盘,磁盘状态获取模块通过程序模拟出的i2cswitch和i2c或smbus总线功能经过两个sff8639接口的i2c或smbuspin,依次读取nvme盘内部寄存器中的vpd、temp、alert或nvme协议信息,读取后再通过cpld或fpga模块中的i2c通信模块上传至bmc。

之后bmc内部的nvme磁盘的状态判定单元,依据intel、samsung、memeblaze等nvmessd厂商spec规范,结合温度值、读写速率值、协议报警等情况判定磁盘fail状态,启用支持控制磁盘的locate状态按钮,根据磁盘读写情况指示active状态。

再次,对于后2个sas盘,cpld或fpga中的磁盘状态获取模块通过sgpio信号与sas卡相连。此时sas卡模块会通过sas带内信号对磁盘进行读写、raid管理,同时会将磁盘状态locate、error或active信息通过sgpio总线传递给cpld或fpga。注意第3个接口虽然是sff8639接口,但因为接入的是sas盘,cpld不会尝试用i2c读取sff8639接口的i2c或smbuspin后面的信息。

之后cpld或fpga中的磁盘状态获取模块中的sgpio解析单元解析出磁盘状态locate、error或active,并通过i2c通信模块与bmc之间的1组i2c总线,将状态信息上报给bmc。磁盘监控显示模块,将sas、sata或nvme磁盘的这些状态信息汇总后,统一下发传递给cpld或fpga模块。

cpld或fpga接收到nvme盘、sas盘的状态信息后,通过自身的gpio控制磁盘的led对应显示,通常locate是蓝灯亮,error对应红灯亮,active对应绿灯闪烁,rebuild对应蓝红等闪烁。

最后,bmc将汇总到的磁盘状态、报警信息等,在bmcweb界面中形成列表格式显示,用户通过网络在本地或远程访问查看,实现磁盘状态实时监控。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

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