发明内容
本申请实施例提供的硬盘温度的获取方法及服务器、基板管理控制器,使服务器能够及时获取硬盘在出现温度异常时的温度信息,从而可根据获取的硬盘的温度信息进行相关温度调控,保证硬盘工作的可靠性。
第一方面,本申请实施例提供一种硬盘温度的获取方法,应用于服务器,所述服务器包括基板管理控制器BMC、独立冗余磁盘阵列Raid卡、硬盘;所述BMC与所述Raid卡连接,所述Raid卡与所述硬盘连接;所述方法包括:
所述BMC通过所述Raid卡向所述硬盘发送请求感知命令;所述请求感知命令用于获取硬盘的感知数据;
所述BMC通过所述Raid卡获取所述硬盘针对所述请求感知命令的感知数据,其中,所述感知数据包括第一字段,所述第一字段被配置为指示所述硬盘的温度信息;
所述BMC基于所述硬盘的感知数据,获取所述硬盘的温度信息。
实施该实施例,BMC控制Raid卡向硬盘发送请求感知命令,硬盘在响应该请求感知命令后即可反馈指示硬盘的温度信息的感知数据。这样,使得硬盘在出现温度异常时能够及时向服务器反馈自身的温度信息,以使服务器根据硬盘的温度信息进行相关温度调控,从而保证硬盘工作的可靠性。
在一些实施例中,所述BMC通过所述Raid卡向所述硬盘发送请求感知命令之前,所述方法还包括:
所述BMC通过所述Raid卡向所述硬盘发送查询命令;
若所述BMC未获取到所述硬盘的温度信息,所述BMC通过所述Raid卡向所述硬盘发送请求感知命令。
实施该实施例,在确定硬盘未响应温度查询命令以反馈当前温度信息的情况下,再向硬盘发送请求感知指令。一方面可保证能够及时获取到硬盘的当前温度信息,另一方面也可避免随意发送请求感知指令造成的资源浪费。
在一些实施例中,检测所述硬盘的状态;
若所述硬盘为格式化的状态,执行所述BMC通过所述Raid卡向所述硬盘发送请求感知命令的步骤。
实施该实施例,使得硬盘在处于格式化状态下仍能够反馈当前温度信息,保证硬盘工作的可靠性。
在一些实施例中,所述第一字段为Sense data descriptor字段,所述Sense datadescriptor字段被配置为指示硬盘的温度值,所述方法还包括:
所述BMC基于所述硬盘的温度值对风扇进行控制。
实施该实施例,硬盘还可向BMC反馈当前温度值,以使BMC根据硬盘的当前温度值,对硬盘温度进行精准调控,既能够保证硬盘工作的可靠性,也能够避免增加风扇的功耗。
在一些实施例中,所述服务器还包括风扇,所述风扇与所述BMC连接,所述感知数据还包括第二字段和第三字段,所述第二字段为附加检测码ASC字段,所述第三字段为附加检测码限定符ASCQ字段;
所述ASC被配置为第一值、ASCQ被配置为第二值,所述第一值和所述第二值用于指示所述触发风扇执行调速的温度阈值;所述方法还包括:
若所述硬盘的温度值达到所述触发风扇执行调速的温度阈值,所述BMC启动所述风扇对所述硬盘进行散热;
或,所述ASC被配置为第三值、ASCQ被配置为第四值,所述第三值和所述第四值用于指示硬盘工作温度的上限阈值;所述方法还包括:
若所述硬盘的温度值达到硬盘工作温度的上限阈值,所述BMC控制所述风扇增大转速;
或,所述ASC被配置为第五值、ASCQ被配置为第六值,所述第五值和所述第六值用于指示硬盘停止工作的温度阈值;所述方法还包括:
若所述硬盘的温度值达到所述硬盘停止工作的温度阈值,所述BMC确定所述硬盘已停止工作。
实施该实施例,硬盘在向Raid卡反馈温度信息后,BMC即可基于硬盘的温度信息确定硬盘的当前工作情况,从而可根据硬盘的当前工作情况完成对硬盘温度的调控,保证硬盘工作的可靠性。
在一些实施例中,所述感知数据还包括第四字段,所述第四字段为错误类码sensekey字段,
所述ASC为第一值、ASCQ为第二值,所述sense key字段用于指示需要注意硬盘温度;所述方法还包括:
所述BMC确定所述硬盘的温度异常;
或,所述ASC为第三值、ASCQ为第四值,sense key字段用于指示出现一个可恢复的错误;所述方法还包括:
所述BMC确定所述硬盘出现可恢复的错误;
或,所述ASC为第五值、ASCQ为第六值,sense key字段用于指示硬件错误;所述方法还包括:
所述BMC确定所述硬盘出现不可恢复的错误。
实施该实施例,通过设定sense key字段的不同取值,还可反映出硬盘出现的错误情况,从而使服务器可根据获取的sense key字段反映的取值确定硬盘的错误情况,从而对硬盘进行温度调控,保证硬盘工作的可靠性。
在一些实施例中,所述硬盘获取温度值,并将所述温度值写入第一字段。
实施该实施例,硬盘反馈的感知数据的第一字段中写入有温度值,BMC可根据获取的硬盘温度值对硬盘进行温度调控,保证硬盘工作的可靠性。
第二方面,本申请实施例提供一种硬盘温度的获取方法,应用于基板管理控制器BMC;所述方法包括:
所述BMC向Raid卡发送感知数据获取指令,所述感知数据获取指令用于指示所述Raid卡向硬盘发送请求感知命令request sense command;所述请求感知命令用于获取硬盘的感知数据sense data;
所述BMC接收所述Raid卡发送的针对所述请求感知命令的感知数据,其中,所述感知数据包括第一字段,所述第一字段被配置为指示所述硬盘的温度信息;
所述BMC基于所述硬盘的感知数据,获取所述硬盘的温度信息。
第三方面,本申请实施例提供一种服务器,所述服务器包括基板管理控制器BMC、独立冗余磁盘阵列Raid卡、硬盘;所述BMC与所述Raid卡连接,所述Raid卡与所述硬盘连接,所述服务器用于执行上述实施例中任一项所述的硬盘温度的获取方法。
第四方面,本申请实施例提供一种基板管理控制器BMC,所述基板管理控制器BMC用于执行如上述实施例所述的硬盘温度的获取方法。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
需要指出,本申请实施例所涉及的术语“第一\第二\第三”用以区别类似或不同的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
在服务器中,存储设备是不可或缺的,其用于存放系统应用程序和用户数据,服务器可以大到服务器,小到电脑主机,或是其他便携式的服务器,以服务器为例,服务器在工作时,其内设置的内存、硬盘、主板等各个电子元器件会带来大量功耗,进而会导致服务器内部温度升高。而服务器内的各个电子元器件的运行可靠性与服务器的温度强相关,因此,需要考虑服务器在工作时的散热问题,保证各个电子元器件工作在规格宣称的温度范围内,以进一步保障各个电子元器件及服务器整机的可靠性。
在实现对服务器的散热时,一般可从两个方面来实现。第一,可对服务器的结构进行优化;第二,可通过服务器内的散热组件,如风扇对各个电子元器件进行散热。其中,对服务器的结构进行优化,是在服务器开发阶段进行硬件结构的设计时实现的,一旦设计完成,在后期使用时就较难改变。而通过服务器内的散热组件对各个电子元器件进行散热,可在服务器工作时,通过从各个电子元器件或者服务器中的传感器收集温度,从而根据收集到的温度对散热组件的工作情况进行调节,进而实现对各个电子器件的温度调节。
本申请实施例提供一种硬盘管理方法,该方法应用于服务器。
图1为一个实施例中提供的服务器的结构示意图。
如图1所示,服务器可包括独立冗余磁盘阵列(Redundant Array of IndependentDisks,Raid)卡和多个硬盘。
硬盘是服务器中主要的存储设备,在本申请实施例中,对于硬盘的类型不作限定,如硬盘可包括机械硬盘HDD和固态硬盘SSD等。其中,HDD硬盘又可包括串行连接小型计算机系统接口(serial attached SCSI,SAS)硬盘、串口(serial ATA,SATA)硬盘等;SSD硬盘又可包括非易失性内存主机控制器接口规范(NonVolatile Memory Express,NVME)硬盘等。
其中,Raid卡可用于管理服务器中的多个硬盘,以满足实际业务的需求。Raid卡可与至少一个硬盘建立连接,至少一个硬盘在Raid卡下可组成Raid组,Raid组可用于提升服务器的性能或减少冗余。
Raid组可以分为两类:一类为非冗余Raid级别的Raid组,例如,Raid 0等;另一类为冗余Raid级别的Raid组,例如,Raid 1、Raid 5等。其中,Raid0通过条带划分技术提高读写速度,但不提供数据冗余;Raid 1则通过镜像技术提供完全的数据冗余,但磁盘利用率较低;Raid 5结合了条带划分和奇偶校验,提供较好的数据保护和性能平衡。
通过Raid卡和硬盘的组合使用,能够提高数据的可靠性、安全性、读写性能、存储容量以及服务器的可用性和稳定性。
图2为另一个实施例中提供的服务器的结构示意图。如图2所示,服务器可包括Raid卡、硬盘和管理控制器。
其中,管理控制器是一种独立于服务器的操作系统和主处理器的专用微控制器,可为独立的硬件模块,也可为集成在服务器主板上的软件或固件。
管理控制器可包括基板管理控制器(baseboard management controller,BMC)、服务处理器(Service Processor,SP)、集成管理模块(Integrated Management Module,IMM)、远程控制卡(integrated dell remote access,IDRAC)、集成远程管理端口(integrated lightsout,iLO)、硬件设备管理(hardware device management,HDM)等。
以管理控制器为BMC为例进行说明,BMC可通过特定的接口或协议与Raid卡进行交互。如Raid卡可通过外设组件互连(Peripheral Component Interconnect,PCI)等总线接口连接到服务器的主板上,而BMC也可能通过类似的接口或其他专用接口(如IntelligentPlatform Management Bus,IPMB)与主板上的其他组件进行通信。或者,除了硬件接口外,BMC和Raid卡之间还可能通过软件接口进行通信。这些软件接口可能包括驱动程序、API(应用程序接口)或特定的管理协议。或者,BMC可通过开放标准协议(Intelligent PlatformManagement Interface,IPMI)发送指令给Raid卡,以获取其状态信息、执行配置更改等。
BMC还可用于设备信息管理,如记录服务器的型号、制造商、日期、各部件生成信息等;或者,BMC可对服务器的状态进行监控管理,如对服务器各部件的温度、电压等健康状态进行检测;或者,BMC还可对服务器进行远程控制管理,如管理服务器的开关机、重启、维护、固件更新、系统安装等,本申请实施例对此不作限定。
在服务器中,Raid卡、管理控制器和硬盘共同构成了一个高效、稳定的数据存储和管理平台。Raid卡可通过组合多个硬盘来提高数据存储的可靠性、性能和容量;管理控制器则通过监控和管理服务器的硬件组件来确保系统的稳定运行;而硬盘作为数据存储的介质,则是整个系统中最基础也是最重要的组成部分。这三者之间相互作用、相互依赖,共同为服务器的稳定运行和数据安全提供了坚实的保障。
图3为再一个实施例中提供的服务器结构示意图。如图3所示,服务器可包括Raid卡、管理控制器、处理器、冷却系统、主板、背板以及至少一个硬盘等。
其中,主板是服务器的核心组件之一,提供硬件支持和连接,控制和管理资源,完成数据传输和处理。主板上集成了各种接口和插槽,用于连接处理器、内存、硬盘、Raid卡等组件。
背板可包括多个插槽,背板通过插槽和接口可与主板、硬盘、电源等组件连接,确保它们之间的数据传输和电力供应。
处理器可以为中央处理器(central processing unit,CPU),处理器是服务器的计算核心,负责执行程序指令和处理数据。
处理器可通过主板上的处理器插槽与主板连接,并通过主板上的总线与其他组件(如内存、硬盘等)进行高速数据传输。
处理器还可与管理控制器进行交互,如通过智能平台管理接口(IntelligentPlatform Management Interface,IPMI)来完成。
管理控制器还可通过多种方式与Raid卡进行交互。如管理控制器可通过接口与Raid卡连接,如通过服务器的内部总线(如PCIe、I2C或GPIO等)进行物理连接,以实现数据传输;或者,管理控制器还可通过特定的通信协议与Raid卡进行数据传输,通信协议可包括IPMI协议、系统管理中断(System Management Interrupt,SMI)协议等;或者,管理控制器还可通过运行的专用的固件或软件实现与Raid卡的数据传输,这些软件提供了与Raid卡交互的接口和工具,通过这些工具,管理员可以查询Raid卡的状态、配置Raid级别、监控磁盘健康等。
Raid卡可设置于主板的高速串行计算机扩展总线标准(peripheral com ponentinterconnectexpress,PCIe)槽位上,并与主板实现电连接。
Raid卡上行通过PCIe协议和处理器交互;Raid卡下行可通过串行连接SCSI接口(Serial Attached SCSI,SAS)协议和背板、硬盘交互,以管理连接到Raid卡上的硬盘。
冷却系统可包括风扇、散热器或其他冷却设备。以冷却系统为风扇为例进行说明,风扇通过主板上的风扇接口与主板连接,管理控制器在获取到服务器内部有元器件温度异常,如硬盘温度异常如硬盘温度过高等,则可控制风扇对硬盘进行散热。
以下将结合附图对本发明实施例做进一步介绍。
图4为本申请实施例提供的一种硬盘温度的获取方法的实现流程示意图。该硬盘管理方法可应用于如图1至图3所示的任一服务器。如图4所示,该方法可以包括以下步骤:
步骤401,BMC通过Raid卡向硬盘发送请求感知命令,请求感知命令用于获取硬盘的感知数据。
在一些实施例中,在BMC通过Raid卡向硬盘发送请求感知命令之前,BMC还可通过Raid卡向硬盘发送查询命令,查询命令用于指示查询硬盘的温度信息;若BMC未获取到硬盘的温度信息,则BMC再通过Raid卡向硬盘发送请求感知命令。
在本申请实施例中,并不限定查询命令是何种命令。如在SCSI协议中,温度查询命令可为INQUIRY command(12h)命令,该查询命令可用于查询硬盘的温度信息。在其他协议中,查询命令也可为其他类型的命令,在此不再一一赘述。
在一些实施例中,可通过传感器检测硬盘的温度信息,传感器可包括温度传感器,该温度传感器可为硬盘自身的传感器,也可为服务器中的传感器,对此不作限定。
在本申请实施例中,BMC通过Raid卡向硬盘发送查询命令,可为向单个硬盘发送查询命令,也可为向多个硬盘发送查询命令,对比不作限定。
在本申请实施例中,对于BMC通过Raid卡向硬盘发送查询命令的时间也不作限定,如BMC通过Raid卡可以固定时间间隔向硬盘下发查询命令。
可以理解地,BMC通过Raid卡向硬盘发送查询命令,硬盘可响应于该查询命令以向BMC反馈温度信息,也可不响应于该查询命令,不向BMC反馈温度信息。
其中,硬盘接收查询命令但未反馈温度信息,可能存在多种情况,如可能是硬盘自身出现故障,如物理损坏、固件损坏等;也可能是硬盘处于格式化(format)状态,如在小型计算机系统接口协议SCSI协议中,关于查询命令FORMAT UNIT的描述中,并未明确当硬盘处于格式化状态时,对接收的命令要如何处理。这样,会导致硬盘在处于格式化状态下,不能够响应于上层下发的温度查询命令以上报自身的温度信息。
即,在一些实施例中,服务器还可先检测硬盘的状态,若硬盘为格式化的状态,则执行BMC通过Raid卡向硬盘发送请求感知命令的步骤。
因此,基于硬盘是否响应于查询命令,可执行不同的处理方法。
如在一些实施例中,若硬盘响应于查询命令,向BMC反馈温度信息,则可执行如图5所示的处理方法。
如图5所示,若BMC通过Raid卡向硬盘发送查询命令,并接收到硬盘反馈的温度信息,则BMC在接收到温度信息后,即可根据预先设置好的多种温度调控方式,执行与温度信息对应的温度调控方式。
例如,可确定硬盘的温度信息中反馈的温度情况是否到达调控阈值;如果硬盘的当前温度情况未到达调控阈值,则不作处理,继续等待下一次硬盘上报温度;如果硬盘的当前温度情况达到调控阈值,则可根据温度调控方式,适应性调节服务器中的冷却系统的工作模式,以对硬盘进行降温。
这里,以冷却系统为风扇为例进行说明。若确定硬盘的工作温度大于工作温度上限,则可控制风扇的转速为1;若确定硬盘的工作温度达到指示停止工作的温度上限,则可控制风扇的转速为2,转速1小于转速2。
在一些实施例中,在检测到硬盘温度降低,如硬盘的温度信息低于调控阈值的情况下,还可将恢复风扇的转速为低功耗转速模式,避免浪费风扇功耗。
在一些实施例中,若硬盘接收到查询命令,而未向BMC反馈温度信息,则BMC可通过Raid卡向硬盘发送请求感知命令。
在本申请实施例中,对于BMC通过Raid卡向硬盘发送请求感知命令的时机不作限定。如在一些实施例中,可在硬盘接收查询命令,但未反馈温度信息的情况下,BMC通过Raid卡向硬盘发送请求感知命令。即,在硬盘执行查询命令出错的情况下,BMC通过Raid卡再向硬盘发送请求感知命令。
或者,BMC也可在硬盘执行查询命令并已反馈温度信息的情况下,仍通过Raid卡向硬盘发送请求感知指令。这样,请求感知指令即可用于查询到硬盘上一次正常执行查询命令后的状态信息。
在本申请实施例中,对于BMC通过Raid卡向硬盘发送请求感知命令的时间也不作限定,如BMC可通过Raid卡定期向硬盘发送请求感知指令;或者,BMC可在接收到硬盘反馈的错误信息后通过Raid卡向硬盘发送请求感知指令;或者,BMC还可在一段时间内未接收到硬盘响应于查询命令反馈相关信息时,再通过Raid卡向硬盘发送请求感知指令。
上述的请求感知命令可能因为不同协议或者协议的不同版本,实现同样的功能但名称可能有不同,因此,在本申请实施例中,并不限定请求感知命令具体是何种命令。如在SCSI协议中,请求感知命令可为Request Sense command命令,Request Sense command命令也可简称为Request Sense命令或Sense命令。例如在《SCSI Block Commands-5(SBS-5)》协议中,Request Sense command命令可用于获取设备关于之前执行命令失败的详细信息,从而帮助设备进行调试或故障排查。在其他协议中,请求感知命令也可为其他类型的命令,在此不再一一赘述。
步骤402,BMC通过Raid卡获取硬盘针对请求感知命令的感知数据,其中,感知数据包括第一字段,第一字段被配置为指示硬盘的温度信息。
需要说明的是,在本申请实施例中,Raid卡并不对感知数据进行解析,而是由Raid卡将感知数据发送给BMC,由BMC对感知数据进行解析,以得到感知数据中包含的硬盘的温度信息。
在本申请实施例中,硬盘的温度信息,可为硬盘在接收到查询命令时检测到的温度信息,也可为硬盘在接收到请求感知命令时检测到的温度信息,对此不作限定。
步骤403,BMC基于硬盘的感知数据,获取硬盘的温度信息。
在本申请实施例中,对于感知数据中包括的硬盘的温度信息的类型不作限定。如硬盘的温度信息可为硬盘的温度范围、硬盘的温度值、硬盘的温度异常类型等情况,温度异常类型可以是温度过高、需要警告等一种或多种,后续将对温度信息进行详细介绍。
在一些实施例中,感知数据包括第一字段,第一字段可为Sense data descriptor字段,该Sense data descriptor字段可被配置为指示硬盘的温度值。
在一些实施例中,第一字段可包括第一字节、第二字节以及第三字节,第一字节用于指示描述符类型,第二字节用于指示温度值信息长度,以及第三字节用于指示硬盘的当前温度值。
也即,硬盘可获取温度值,并可将温度值写入第一字段,如将温度值写入第一字段的第三字节中。
这样,BMC可基于硬盘的温度值对连接的风扇进行控制。
在本申请实施例中,对于第一字段的类型不作限定。如在SCSI协议中,第一字段可为Sense data descriptor字段。当然,在其他协议中,第一字段也可为其他类型的字段,在此不再一一赘述。
请继续参考图6,如图6所示,第8字节至第n字节即为第一字段所在的位置。
图7给出一种SCSI协议中第一字段的描述示意图。如图7所示,第一字段可由描述符类型字段(Descriptor type field)进行描述,且为描述出硬盘的当前温度值,可选择使用描述符类型列表Descriptor type field list中的80h至FFh范围内的取值,来实现对第一字段的内容自定义。
图8给出一种第一字段的构成示意图。如图8所示,在一些实施例中,第一字节可为描述符类型Descriptor type(80h to FFh),第二字节可为附加信息长度ADDITIONALLENGTH(n-1),第三字节为可自定义内容的字节,如温度传感器在检测到硬盘的温度值后,即可将硬盘的温度值写入第三字节中。
在一些实施例中,感知数据还包括第五字段,第五字段用于指示第一字段的长度,也就是指示出后续的字节长度。
请继续参考图6,如图6所示,第7个字节即为第五字段所在的位置,该第五字段可表示为附加信息长度ADDITIONAL SENSE LENGTH(n-1),即该第五字段可用于指示第一字段所占据的字节长度。
举例来说,若第一字段中写入的硬盘的当前温度值为1个字节,则第一字段的总字节数为指示描述符类型的信息占用1个字节,指示温度值信息长度的信息占用1个字节,总占用3个字节,即第五字段取值为3。
当然,在一些实施例中,感知数据中也可不反馈硬盘的具体温度值,而是可选择反馈硬盘当前所处的温度范围,以使BMC根据硬盘当前所处的温度范围,确定对风扇的控制方法。
如在实施例一中,为使得感知数据可反映出硬盘的温度信息,感知数据还可包括第二字段和第三字段,根据协议的不同,第二字段和第三字段也可以不同。
如在SCSI协议中,第二字段可为Sense data信息中的附加检测码ASC字段,第三字段可为附加检测码限定符ASCQ字段。
当然,在其他协议中,第二字段和第三字段也可为其他类型的字段,在此不再一一赘述。
需要说明的是,在SCSI协议中,对ASC字段以及ASCQ字段的不同取值进行了描述,通过描述信息可以识别出部分取值开放给用户以对这些取值进行自定义的描述,后续将这部分用户可以自定义描述的取值简称为“自定义取值”,将协议中已经有具体的描述信息的取值简称为“已定义取值”。
图9给出一种ASC字段以及ASCQ字段的描述信息示意图。
如图9所示,通过虚线框中的内容可知,在ASC取值为80h至FFh之间的任意取值时,ASCQ字段同样可进行任意取值,如取值为01h,02h,03h等等,此时ASC字段和ASCQ字段可组合描述为“VENDOR SPECIFIC”,即由用户自定义相关内容。
在ASC字段以及ASCQ字段均取值为00h时,ASC字段和ASCQ字段可描述为“NOADDITIONAL SENSE INFORMATION”,即用于指示对异常情况进行限定的额外信息;在ASC取值为0Ch,ASCQ字段取值为00h时,ASC字段和ASCQ字段可描述为“WRITE ERROR”,即用于指示出现写入错误。
可见,在SCSI协议中,ASC字段和ASCQ字段中均存在可用于自定义的取值,以及已定义好描述信息的取值。通过对可用于自定义的取值以及已定义好描述信息的取值的组合使用,则可使得ASC字段和ASCQ字段能够组合反馈出硬盘的温度信息。
基于此,可通过将ASC和ASCQ均配置为自定义取值,从而使得ASC和ASCQ的取值可直接反映出硬盘的温度信息。
例如,在一些实施例中,ASC被配置为第一值、ASCQ被配置为第二值,第一值和第二值用于指示触发风扇执行调速的温度阈值T1。
这样,若BMC接收到的感知数据中的ASC被配置为第一值、ASCQ被配置为第二值,则BMC可确定硬盘的温度值达到触发风扇执行调速的温度阈值T2,基于此,BMC可启动风扇对硬盘进行散热。
例如,如下表1所示,在一可行的实施例中,可将附加检测码ASC字段取值为80h,附加检测码限定符ASCQ字段取值为02h,这两个字段可组合描述为“硬盘的当前温度大于T2”。
或者,在另一些实施例中,ASC被配置为第三值、ASCQ被配置为第四值,第三值和第四值用于指示硬盘工作温度的上限阈值。
这样,若BMC接收到的感知数据中的ASC被配置为第三值、ASCQ被配置为第四值,则BMC可确定硬盘的温度值达到硬盘工作温度的上限阈值T1,基于此,BMC可控制风扇增大转速,如以最大转速运行。
例如,如下表1所示,可将附加检测码ASC字段取值为80h,附加检测码限定符ASCQ字段取值为01h,这三个字段可组合描述为“硬盘的当前温度大于T1”。
或者,在再一些实施例中,ASC被配置为第五值、ASCQ被配置为第六值,第五值和第六值用于指示硬盘停止工作的温度阈值。这样,若硬盘的温度值达到硬盘停止工作的温度阈值T3,BMC可确定硬盘已停止工作。
例如,如下表1所示,可将附加检测码ASC字段取值为80h,附加检测码限定符ASCQ字段取值为03h,这三个字段可组合描述为“硬盘的当前温度大于T3”。
表1
其中,T1可设置为硬盘工作温度的上限阈值,T2可设置为触发风扇执行调速的温度阈值,T3可设置为硬盘停止工作(shutdown)的温度上限。这里,T2≤T1<T3。一般情况下,硬盘的正常工作温度通常在40-50度之间,极限工作温度应小于70度。
实施该实施例,硬盘在向BMC反馈温度异常信息后,BMC即可基于硬盘的温信息确定风扇的调控方式,从而完成对硬盘的异常温度的调控,保证硬盘工作的可靠性。
在一些实施例中,感知数据还可包括第四字段,第四字段为错误类码sense key字段。
当然,在其他协议中,第四字段也可为其他类型的字段,在此不再一一赘述。
请继续参考图6,图6给出一种感知数据的组成示意图。如图6所示,虚线框显示的部分即为sense key字段、ASC字段和ASCQ字段所在的位置。
下面以第四字段为sense key字段、第二字段为ASC字段以及第三字段为ASCQ字段为例进行说明,描述如何通过第二字段、第三字段和第四字段的组合使用,以反映硬盘的温度信息。
在SCSI协议中,可通过sense key字段、ASC字段和ASCQ字段的组合使用,反映出硬盘出现的错误情况以及具体的错误信息,为服务器提供了一个自上而下的方法来确定硬盘上报的状态。
首先,在SCSI协议中,对sense key字段的不同取值进行了描述,通过描述信息可以识别出部分取值开放给用户以对这些取值进行自定义的描述。
图10给出一种sense key字段的描述信息示意图。
如图10所示,在sense key字段取值为0h时,该字段可用于指示没有错误;在sensekey字段取值为1h时,该字段可描述为“RECOVERED ERROR”,即用于指示出现可恢复的错误,这种错误通常不会影响数据的完整性;在sense key字段取值为2h时,该字段可描述为用于指示设备未准备就绪,错误表明目标设备(如硬盘驱动器)当前无法访问;在sense key字段取值为3h时,该字段可用于指示出现介质错误,表明在执行命令过程中,数据存储介质上发现了不可恢复的错误;在sense key字段取值为4h时,该字段可描述为“HARDWARE ERROR”,即用于指示出现一个不可恢复的硬件错误;在sense key字段取值为6h时,该字段可描述为“UNIT ATTENTION”,即用于指示需注意;在sense key字段取值为9h时,该字段可描述为“VENDOR SPECIFIC”,即可由用户进行自定义,用户可根据实际情况任意对该字段的含义进行设置。
当然,在sense key字段的取值为已定义的用于描述命令执行引起的异常类型的取值时,sense key字段仅能够反映硬盘出现异常,BMC根据该字段并不能够知道硬盘出现的异常类型与温度异常相关。
基于此,还需ASC字段以及ASCQ字段辅助反映硬盘的温度信息。现有的SCSI协议中,未存在已定义的可用于反映硬盘的温度异常信息的ASC字段以及ASCQ字段的取值。因此,ASC字段以及ASCQ字段的取值需要为自定义的取值,通过对自定义取值的描述来指示硬盘出现温度异常的场景信息。
现有的SCSI协议中,规定ASC字段取值为80h至FFh之间时,其可自定义与取值对应的描述内容。
可见,在SCSI协议中,sense key字段、ASC字段和ASCQ字段中均存在可用于自定义的取值,以及已定义好描述信息的取值。通过对可用于自定义的取值以及已定义好描述信息的取值的组合使用,则可使得sense key字段、ASC字段和ASCQ字段能够组合反馈出硬盘的温度信息。
例如,在一些实施例中,可设定ASC为第一值、ASCQ为第二值,sense key字段用于指示需要注意硬盘温度。这样,BMC可根据sense key字段、ASC字段和ASCQ字段的组合描述,确定硬盘的温度异常。
需要说明的是,在一些实施例中,若硬盘的温度出现异常,但硬盘温度未达到触发风扇执行调速的温度阈值T2,则BMC仍可不启动风扇对硬盘进行散热。
举例来说,可将sense key字段取值为自定义的指示需要注意硬盘温度的取值,如下表2所示,可将sense key字段取值为6h,该字段可自定义为指示需要注意硬盘温度。
这种情况下,还可同时设定ASC字段以及ASCQ字段的取值也为自定义的取值,即ASC为第一值、ASCQ为第二值,如可将ASC字段取值为80h,ASCQ字段取值为02h,这两个字段可组合描述为“硬盘的当前温度大于T2”。
这样,在BMC接收到的感知数据中包含的sense key字段取值为6h,ASC字段取值为80h,ASCQ字段取值为02h的情况下,BMC即可确定硬盘的当前温度大于T2。
或者,在另一些实施例中,ASC为第三值、ASCQ为第四值,sense key字段用于指示出现一个可恢复的错误。这样,BMC可根据sense key字段、ASC字段和ASCQ字段的组合描述,确定硬盘出现可恢复的错误。
举例来说,如下表2所示,在选择sense key字段的取值,可选择sense key字段取值为1h,通过sense key字段取值为1h表明硬盘出现可恢复的错误。同时,为进一步说明硬盘的温度信息,可设定ASC取值为第三值、ASCQ取值为第四值,如第三值为80h,第四值为01h,第三值和第四值用于指示硬盘工作温度的上限阈值。
这样,在BMC接收到的感知数据中包含的sense key字段取值为1h,ASC字段取值为80h,ASCQ字段取值为01h的情况下,BMC即可硬盘当前出现可恢复的错误,且硬盘的温度值达到硬盘工作温度的上限阈值T1,基于此,BMC可控制风扇增大转速,如以最大转速运行。
或者,在再一些实施例中,ASC为第五值、ASCQ为第六值,sense key字段用于指示硬件错误。这样,BMC可根据sense key字段、ASC字段和ASCQ字段的组合描述,确定硬盘出现不可恢复的错误。
举例来说,如下表2所示,将错误类码sense key字段取值为4h,通过sense key字段取值为4h表明硬盘出现不可恢复的错误。同时,为进一步说明硬盘的温度信息,可设定ASC取值为第五值、ASCQ为第六值,如第五值为80h,第六值为03h,第五值和第六值用于指示硬盘停止工作的温度阈值。
这样,在BMC接收到的感知数据中包含的sense key字段取值为4h,ASC字段取值为80h,ASCQ字段取值为03h的情况下,BMC即可硬盘当前出现不可恢复的错误,且硬盘的温度值达到停止工作的温度阈值T3。
表2
其中,T1可设置为硬盘工作温度的上限阈值,T2可设置为触发风扇执行调速的温度阈值,T3可设置为硬盘停止工作(shutdown)的温度上限。这里,T2≤T1<T3。一般情况下,硬盘的正常工作温度通常在40-50度之间,极限工作温度应小于70度。
实施该实施例,服务器可获取到硬盘当前所处的具体温度范围,从而根据硬盘所处的温度范围对硬盘进行准确温度调控,保证硬盘工作的可靠性。
在一些实施例中,在sense key字段的取值为协议中已定义的用于描述命令执行引起的异常类型的取值时,sense key字段仅能够反映硬盘出现异常,服务器根据该字段并不能够知道硬盘出现的异常类型与温度异常相关。
基于此,在一些实施例中,还可将ASC取值为80h,ASCQ取值为00h,并预先定义这两个字段可组合描述为“硬盘的当前温度大于T1,或硬盘的当前温度大于T2,或硬盘的当前温度大于T3”。
这样,如在BMC接收到的感知数据中包含的sense key字段取值为6h,ASC字段取值为80h,ASCQ字段取值为00h的情况下,服务器即可确定硬盘出现需注意的异常情况,异常情况可能为硬盘的当前温度大于T1,或硬盘的当前温度大于T2,或硬盘的当前温度大于T3。
当然,在一些实施例中,sense key字段的取值也可为自定义的指示出现异常类型的取值,如sense key字段取值为9h,该字段可自定义为指示硬盘出现异常,或指示硬盘出现温度异常等。这种情况下,ASC字段以及ASCQ字段的取值也可为自定义的取值。
参见下表3,举例来说,如可将错误类码sense key字段取值为9h,附加检测码ASC字段取值为80h,附加检测码限定符ASCQ字段取值为00h,这三个字段可组合描述为“硬盘出现温度异常,异常情况为硬盘的当前温度大于T1,或硬盘的当前温度大于T2,或硬盘的当前温度大于T3”。
表3
其中,T1可设置为硬盘工作温度的上限阈值,T2可设置为触发风扇执行调速的温度阈值,T3可设置为硬盘停止工作(shutdown)的温度上限。这里,T2≤T1<T3。一般情况下,硬盘的正常工作温度通常在40-50度之间,极限工作温度应小于70度。
可以理解地,对上述实施例而言,服务器仅能够根据第四字段、第二字段和第三字段的组合确定硬盘出现温度异常,或仅能够确定出硬盘出现的温度异常情况可能为“硬盘的当前温度大于T1,或硬盘的当前温度大于T2,或硬盘的当前温度大于T3”,但无法准确确定出硬盘的当前温度所在的范围,因此也无法控制冷却系统进行合理调控,以在保证硬盘工作可靠性的同时,还降低冷却系统的功耗。
基于此,在上述实施例的基础上,还可结合感知数据中的第一字段提供的硬盘的温度值,共同确定对风扇的调控方式。
实施上述实施方式,硬盘可通过向BMC反馈感知数据,感知数据中包括硬盘的温度信息,如包括硬盘出现异常、硬盘的温度值等,从而使得硬盘在出现温度异常时,能够及时成功反馈自身的温度异常信息,以使服务器根据硬盘的温度异常信息进行相关温度调控,进而保证硬盘工作的可靠性。
应该理解的是,虽然上述各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
基于前述的实施例,本申请实施例提供一种硬盘温度的获取方法,该方法应用于基板管理控制器BMC;所述方法包括:
所述BMC向Raid卡发送感知数据获取指令,所述感知数据获取指令用于指示所述Raid卡向硬盘发送请求感知命令request sense command;所述请求感知命令用于获取硬盘的感知数据sense data;
所述BMC接收所述Raid卡发送的针对所述请求感知命令的感知数据,其中,所述感知数据包括第一字段,所述第一字段被配置为指示所述硬盘的温度信息;
所述BMC基于所述硬盘的感知数据,获取所述硬盘的温度信息。
在一些实施例中,基板管理控制器BMC还可执行如上述实施例所述的方法。
本申请实施例提供一种服务器,基板管理控制器BMC、独立冗余磁盘阵列Raid卡、硬盘;所述BMC与所述Raid卡连接,所述Raid卡与所述硬盘连接。
通过服务器中的BMC、Raid卡和硬盘,可执行上述方法实施例提供的方法中的步骤。
本申请实施例提供一种基板管理控制器BMC,通过基板管理控制器BMC,可执行上述方法实施例提供的方法中的步骤。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。