一种实现NVME硬盘点灯的方法及系统与流程

文档序号:13876195阅读:1698来源:国知局
一种实现NVME硬盘点灯的方法及系统与流程

本发明涉及服务器的技术领域,具体涉及一种实现nvme硬盘点灯的方法及系统。



背景技术:

存储服务器产品以存储为主,一台存储服务器产品通常会扩展10个、20个以上的硬盘,甚至会更多。随着存储产品技术升级,目前普通使用的硬盘接口有sas和nvme两种接口硬盘,nvme接口走的是pcie总线,nvme硬盘大有逐渐取代sas硬盘的趋势。

当前服务器产品上在用的nvme硬盘数量还比较少,比如:4个或者8个,此时,只需要由cpu直连nvme硬盘即可。而硬盘的指示灯也是由cpu直接控制。但是,针对存储服务器产品上,硬盘数量较多,而cpu自身的pcie端口数量有限,直连硬盘方式不能实现。中间需要加pcie总线的扩展芯片实现扩展多个硬盘,这种扩展芯片我们称为pcieswitch。此时再用cpu直连的控制硬盘灯,显然也无法实现。

当前cpu直连nvme硬盘,能够直接控制硬盘灯的硬盘数量非常有限。现有技术实现硬盘点灯功能时,每个硬盘连接对应的cpu的pcie端口,需要设定特定的地址,增加了设计复杂度。而且cpu本身的点灯协议限制了点灯的数量,同样也限制了服务器可搭载nvme硬盘数量的发展。



技术实现要素:

基于上述问题,本发明提出了一种实现nvme硬盘点灯的方法及系统,本发明的nvme点灯方式搭配软件开发,可实现更多硬盘指示灯控制。

本发明提供如下技术方案:

一方面,本发明提供了一种实现nvme硬盘点灯的方法,包括:

步骤101,cpu通过至少一个pcie总线连接到pcieswitch芯片,所述pcieswitch芯片分成n个pcie总线通过固定的连接器连接到n个硬盘;所述n大于或等于1;

步骤102,所述pcieswitch芯片通过i2c总线通道连接到cpld,所述cpld分成n个io信号连接n个硬盘指示灯;

步骤103,当硬盘n出现故障时,所述pcieswitch芯片通过pcie总线n识别到硬盘n的故障,并且将故障信息通过pcie总线传递给所述cpu,再由所述cpu将故障信息发送至系统应用层;所述n大于等于1且小于等于n;

步骤104,所述系统应用层接收所述故障信息,将命令下发至所述cpu,所述cpu通过pcie总线将包含有点灯信息的命令包发送至所述pcieswitch芯片,所述pcieswitch芯片将所述命令包通过i2c总线协议发送至所述cpld;

步骤105,所述cpld就会通过io端口n点亮硬盘n指示灯。

其中,所述pcieswitch芯片通过连接到每个硬盘的pcie总线获取每个硬盘的状态信息,所述状态信息包括故障信息。

其中,pcieswitch芯片分成n个pcie总线通过固定的连接器连接到n个硬盘后,每个硬盘连接到pcieswitch端口号固定。

其中,所述cpld通过解析所述命令包得到两个信息,所述两个信息为硬盘n出现故障和点亮硬盘n指示灯。

另外,本发明还提供了一种实现nvme硬盘点灯的系统,所述系统包括:

第一连接模块,用于cpu通过至少一个pcie总线连接到pcieswitch芯片,所述pcieswitch芯片分成n个pcie总线通过固定的连接器连接到n个硬盘;所述n大于或等于1;第二连接模块,用于所述pcieswitch芯片通过i2c总线通道连接到cpld,所述cpld分成n个io信号连接n个硬盘指示灯;

故障获取模块,用于当硬盘n出现故障时,所述pcieswitch芯片通过pcie总线n识别到硬盘n的故障,并且将故障信息通过pcie总线传递给所述cpu,再由所述cpu将故障信息发送至系统应用层;所述n大于等于1且小于等于n;

命令发送模块,用于所述系统应用层接收所述故障信息,将命令下发至所述cpu,所述cpu通过pcie总线将包含有点灯信息的命令包发送至所述pcieswitch芯片,所述pcieswitch芯片将所述命令包通过i2c总线协议发送至所述cpld;

指示灯模块,用于所述cpld就会通过io端口n点亮硬盘n指示灯。

其中,所述pcieswitch芯片通过连接到每个硬盘的pcie总线获取每个硬盘的状态信息,所述状态信息包括故障信息。

其中,pcieswitch芯片分成n个pcie总线通过固定的连接器连接到n个硬盘后,每个硬盘连接到pcieswitch端口号固定。

其中,所述cpld通过解析所述命令包得到两个信息,所述两个信息为硬盘n出现故障和点亮硬盘n指示灯。

本发明提供了一种实现nvme硬盘点灯的方法及系统,在cpu与nvme硬盘之间增加pcieswitch芯片,扩展出更多数量的nvme硬盘端口,连接更多的nvme硬盘,并开发系统应用层硬盘指示灯的控制命令,将此命令包含在pcieswitch芯片的驱动包内,cpu与pcieswitch之间通过pcie总线传递硬盘状态信息和硬盘点灯信息,硬盘点灯信息由pcieswitch的i2c总线通过cpld解析出对应的硬盘指示灯控制信息,在硬盘故障时点亮指示灯。通过本发明nvme硬盘点灯,解决了限制nvme硬盘的数量的问题,可根据产品需求搭配相应硬盘数量,省略每个nvme硬盘连接上一级设备的端口硬件线路上地址pin,降低设计复杂度,解除了pin对硬盘数量的限制。

附图说明

图1是现有技术的nvme硬盘点灯拓扑图;

图2是本发明的方法流程图;

图3是本发明的nvme硬盘点灯拓扑图。

具体实施方式

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

如附图1所示现有技术nvme硬盘点灯拓扑图,cpu所在的板卡与硬盘所在的板卡通过线缆连接,每个线缆中包含pcie总线,和地址信息。cpu的pcie总线数量是有限的,那么cpu能够扩展的nvme硬盘的数量就是有限制的。此处以四个硬盘数量为例讲解具体硬盘点灯原理。cpu通过四个包含pcie总线的线缆直连nvme硬盘,在四个线缆中包含不同的地址信息。

当线缆接入后,每个硬盘的地址信息固定。cpu通过线缆中的pcie总线获取硬盘的状态信息。cpu通过i2c发送硬盘指示灯控制信息给cpld,此信息中包含硬盘的地址信息。cpld通过判断地址信息,比如是地址1的硬盘出现故障,找出对应的硬盘指示灯控制io端口,是io端口1,然后将此信息通过io1端口发送,控制硬盘1指示灯。因为cpu的pcie总线数量限制和地址数量的分配限制,此方案可以连接的硬盘数量有限。

基于上述,一方面,本发明的实施方式提供了一种实现nvme硬盘点灯的方法,附图2为本发明的方法流程图,附图3为本发明的nvme硬盘点灯拓扑图,包括:

步骤101,cpu通过至少一个pcie总线连接到pcieswitch芯片,所述pcieswitch芯片分成n个pcie总线通过固定的连接器连接到n个硬盘;所述n大于或等于1;

所述n可以是1、2、3等大于等于1的正整数,依据实际情况可以设置。

当存储服务器产品要求搭载更多的nvme硬盘时,数量可能会超过10个,20个,甚至更多,此时cpu本身的pcie端口数量不足以满足如此大数量的nvme硬盘连接,需要在cpu与nvme硬盘之间增加一个或多个pcieswitch芯片,根据产品不同的硬盘数量要求,搭配不同的pcieswitch芯片。此时产品能够实现支持更多数量的nvme硬盘。

cpu与pcieswitch芯片之间通过pcie总线连接,pcieswitch芯片扩展出多个pcie总线连接到多个nvme硬盘上。pcieswitch芯片通过i2c总线连接到cpld,cpld通过io端口连接到每个硬盘的指示灯。pcieswitch芯片通过连接到每个硬盘的pcie总线获取每个硬盘的状态信息包括故障信息。

如附图3所示,列举了当n为4时的情况,此种方案可根据实际产品需要拓展出多个硬盘,此处以四个硬盘数量为例讲解具体实现原理。cpu通过一个或多个pcie总线连接到pcieswitch芯片,pcieswitch芯片分成四个pcie总线通过固定的连接器连接到四个硬盘。每个硬盘连接到pcieswitch端口号因此固定。

步骤102,所述pcieswitch芯片通过i2c总线通道连接到cpld,所述cpld分成n个io信号连接n个硬盘指示灯;

pcieswitch芯片通过i2c总线通道连接到cpld,cpld分成四个io信号连接四个硬盘的指示灯。

步骤103,当硬盘n出现故障时,所述pcieswitch芯片通过pcie总线n识别到硬盘n的故障,并且将故障信息通过pcie总线传递给所述cpu,再由所述cpu将故障信息发送至系统应用层;所述n大于等于1且小于等于n;

系统应用层是基于cpu的软件操作系统。当硬盘1出现故障时,pcieswitch芯片通过pcie总线1识别到硬盘1的故障,并且将此故障信息通过pcie总线0传递给cpu。从而到达最上层的系统应用层。

步骤104,所述系统应用层接收所述故障信息,将命令下发至所述cpu,所述cpu通过pcie总线将包含有点灯信息的命令包发送至所述pcieswitch芯片,所述pcieswitch芯片将所述命令包通过i2c总线协议发送至所述cpld;

pcieswitch芯片将此状态信息上传到cpu,然后上升到系统应用层。为了实现对所有硬盘的控制,系统应用层需要开发硬盘指示灯的控制命令,将此命令包含在pcieswitch芯片的驱动包内。当系统应用层需要对硬盘执行点灯操作时,系统应用层通过pcie总线向pcieswitch芯片发送命令包,命令包中包含i2c协议的指令级。

系统应用层接收到故障信息后,需要点亮对应的硬盘故障指示灯。系统应用层将命令下发到cpu,cpu通过pcie总线0将包含有点灯信息的命令包发送给pcieswitch芯片,pcieswitch芯片将此命令包通过i2c总线协议发送给cpld,cpld通过解析此命令包得到两个信息,一个信息是编号是1的硬盘出现故障,另一个信息是需要点亮此指示灯。cpld接收到此i2c总线的指令级后将i2c总线协议解析成对应的io端口信号状态,实现对应指示灯的状态表现。

步骤105,所述cpld就会通过io端口n点亮硬盘n指示灯。

cpld就会通过io1端口点亮硬盘1指示灯。命令流完成。本发明的技术方案可应用于所有存储类服务器产品上。

本发明提供了一种实现nvme硬盘点灯的方法,在cpu与nvme硬盘之间增加pcieswitch芯片,扩展出更多数量的nvme硬盘端口,连接更多的nvme硬盘,并开发系统应用层硬盘指示灯的控制命令,将此命令包含在pcieswitch芯片的驱动包内,cpu与pcieswitch之间通过pcie总线传递硬盘状态信息和硬盘点灯信息,硬盘点灯信息由pcieswitch的i2c总线通过cpld解析出对应的硬盘指示灯控制信息,在硬盘故障时点亮指示灯。通过本发明nvme硬盘点灯,解决了限制nvme硬盘的数量的问题,可根据产品需求搭配相应硬盘数量,省略每个nvme硬盘连接上一级设备的端口硬件线路上地址pin,降低设计复杂度,解除了pin对硬盘数量的限制。

另一方面,本发明的实施方式提供了一种实现nvme硬盘点灯的系统,附图3为本发明的系统结构框图,所述系统包括:

第一连接模块201,用于cpu通过至少一个pcie总线连接到pcieswitch芯片,所述pcieswitch芯片分成n个pcie总线通过固定的连接器连接到n个硬盘;所述n大于或等于1;

所述n可以是1、2、3等大于等于1的正整数,依据实际情况可以设置。

当存储服务器产品要求搭载更多的nvme硬盘时,数量可能会超过10个,20个,甚至更多,此时cpu本身的pcie端口数量不足以满足如此大数量的nvme硬盘连接,需要在cpu与nvme硬盘之间增加一个或多个pcieswitch芯片,根据产品不同的硬盘数量要求,搭配不同的pcieswitch芯片。此时产品能够实现支持更多数量的nvme硬盘。

cpu与pcieswitch芯片之间通过pcie总线连接,pcieswitch芯片扩展出多个pcie总线连接到多个nvme硬盘上。pcieswitch芯片通过i2c总线连接到cpld,cpld通过io端口连接到每个硬盘的指示灯。pcieswitch芯片通过连接到每个硬盘的pcie总线获取每个硬盘的状态信息包括故障信息。

如附图3所示,列举了当n为4时的情况,此种方案可根据实际产品需要拓展出多个硬盘,此处以四个硬盘数量为例讲解具体实现原理。cpu通过一个或多个pcie总线连接到pcieswitch芯片,pcieswitch芯片分成四个pcie总线通过固定的连接器连接到四个硬盘。每个硬盘连接到pcieswitch端口号因此固定。

第二连接模块202,用于所述pcieswitch芯片通过i2c总线通道连接到cpld,所述cpld分成n个io信号连接n个硬盘指示灯;

pcieswitch芯片通过i2c总线通道连接到cpld,cpld分成四个io信号连接四个硬盘的指示灯。

故障获取模块203,用于当硬盘n出现故障时,所述pcieswitch芯片通过pcie总线n识别到硬盘n的故障,并且将故障信息通过pcie总线传递给所述cpu,再由所述cpu将故障信息发送至系统应用层;所述n大于等于1且小于等于n;

系统应用层是基于cpu的软件操作系统。当硬盘1出现故障时,pcieswitch芯片通过pcie总线1识别到硬盘1的故障,并且将此故障信息通过pcie总线0传递给cpu。从而到达最上层的系统应用层。

命令发送模块204,用于所述系统应用层接收所述故障信息,将命令下发至所述cpu,所述cpu通过pcie总线将包含有点灯信息的命令包发送至所述pcieswitch芯片,所述pcieswitch芯片将所述命令包通过i2c总线协议发送至所述cpld;

pcieswitch芯片将此状态信息上传到cpu,然后上升到系统应用层。为了实现对所有硬盘的控制,系统应用层需要开发硬盘指示灯的控制命令,将此命令包含在pcieswitch芯片的驱动包内。当系统应用层需要对硬盘执行点灯操作时,系统应用层通过pcie总线向pcieswitch芯片发送命令包,命令包中包含i2c协议的指令级。

系统应用层接收到故障信息后,需要点亮对应的硬盘故障指示灯。系统应用层将命令下发到cpu,cpu通过pcie总线0将包含有点灯信息的命令包发送给pcieswitch芯片,pcieswitch芯片将此命令包通过i2c总线协议发送给cpld,cpld通过解析此命令包得到两个信息,一个信息是编号是1的硬盘出现故障,另一个信息是需要点亮此指示灯。cpld接收到此i2c总线的指令级后将i2c总线协议解析成对应的io端口信号状态,实现对应指示灯的状态表现。

指示灯模块205,用于所述cpld就会通过io端口n点亮硬盘n指示灯。

cpld就会通过io1端口点亮硬盘1指示灯。命令流完成。本发明的技术方案可应用于所有存储类服务器产品上。

本发明提供了一种实现nvme硬盘点灯的系统,在cpu与nvme硬盘之间增加pcieswitch芯片,扩展出更多数量的nvme硬盘端口,连接更多的nvme硬盘,并开发系统应用层硬盘指示灯的控制命令,将此命令包含在pcieswitch芯片的驱动包内,cpu与pcieswitch之间通过pcie总线传递硬盘状态信息和硬盘点灯信息,硬盘点灯信息由pcieswitch的i2c总线通过cpld解析出对应的硬盘指示灯控制信息,在硬盘故障时点亮指示灯。通过本发明nvme硬盘点灯,解决了限制nvme硬盘的数量的问题,可根据产品需求搭配相应硬盘数量,省略每个nvme硬盘连接上一级设备的端口硬件线路上地址pin,降低设计复杂度,解除了pin对硬盘数量的限制。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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