在睡眠模式下重新配置网络适配器的系统和方法

文档序号:7770311阅读:303来源:国知局

专利名称::在睡眠模式下重新配置网络适配器的系统和方法
技术领域
:本发明一般涉及网络。尤其是,本发明涉及网络适配器的重新配置。
背景技术
:传统网络环境使用多种网络类型来完成不同任务。在常见情形中,数据中心可能拥有用于数据存储操作的基于光纤通道(FC)的存储区域网(SAN)和用于互连服务器和各个工作站的基于以太网的局域网(LAN)。FC和以太网可能需要不同的物理媒介,因此,数据中心需要分别的部件、适配器、线缆、交换机、和网络管理实体。这种网络的多样性不仅增加了成本,而且也增加了复杂性。降低成本和复杂性的一种措施是建议将多种网络融合成单一网络,其中该单一网络承担其它网络的各种业务类型。例如,融合增强型以太网(CEE)网络可以将以太网网络用作承担诸如存储(例如,FC)、LAN、管理等的多种业务类型的单一链路。一种新兴产业标准被称为以太网光纤通道(FCoE或FCoCEE),它使用通常用在光纤通道中的FC包和命令,但将它们封装在以太网包中。尽管FCoE日益普及,但容易理解,在一段时间内,FCSAN仍将被使用并继续安装。CEE网络和FCSAN的这种发展状况给制造商和用户双方都带来一些问题。对于与FCSAN的本地连接,需要光纤通道主机总线适配器(FCHBA)。对于与CEE网络的连接,需要融合网络适配器(CNA)。为了缓解与投资和管理分别的接口卡或线路板有关的问题,一些制造商推出了可以配置成工作在FCSAN、CEE或两者上的网络接口。一种这样网络接口卡的示例性框图被示出在图1中。图1示出了服务器101经由PCIe总线106与网络适配器102连接。适配器102可以包括FCHBA模块108和CNA模块109两者。适配器的一个或多个端口可以配置成与FCHBA模块108或CNA模块109耦合。配置信息可以存储在存储器107中。为了实际配置适配器,服务器101中的BIOS104从存储器107中访问配置信息,并且装入适配器102中的适当寄存器。为了改变适配器102的配置,需要改变存储在存储器107中的配置信息。改变配置信息通常只有通过BIOS104才有可能。因此,想改变适配器配置的任何管理实体都必须与服务器BIOS104通信以便实现这样的改变。依赖于BIOS104来改变适配器102的配置可能是一件麻烦的事情。例如,必须对服务器101供电以便允许访问BIOS104。通常,当服务器空闲时,它们是关闭的。因此,如果服务器101是关闭的,就不能重新配置适配器102。一些方法使用网络唤醒(wake-on-LAN,W0L)操作来对服务器供电,以便允许访问BIOS104,然后进行重新配置操作。但是,即使在这些方法中,也需要对服务器供电以便重新配置它。而且,在加电的时候重新配置适配器102可能中断它的正常操作。更进一步,想重新配置服务器群中的适配器的管理实体必须物理地存在于每台服务器上,才能进行重新配置。
发明内容处于睡眠模式的网络适配器可以允许管理实体通过网络访问和更改网络适配器的配置数据。在睡眠模式期间,网络适配器仍然对适配器的辅助部分供电。该辅助部分包括存储器、网络唤醒(WOL)逻辑单元、和基板(baseboard)管理控制器(BMC)。该存储器可以包括配置参数、固件、和与适配器有关的其它数据。管理实体可以通过WOL逻辑单元直接地或通过BMC间接地访问和更改存储器,包括配置参数、固件等。管理实体可以将配置消息发送给适配器,该配置消息可以包括从存储器读取数据或向存储器写入数据的命令。如果处在睡眠模式下的适配器的活动端口是以太网端口,则该配置消息可以是以太网帧。类似地,如果睡眠模式期间的适配器的活动端口是FC端口,则该配置消息可以是FC帧。管理实体可以将配置消息寄送(address)给适配器或BMC。配置消息的有效载荷可以包括用于读取或写入配置参数、更新固件等的命令或指令。BMC在向适配器发送该命令或指令之前可以对该接收到的消息进行验证和安全操作。配置消息的有效载荷中的命令或指令可以包括配置参数的名称或位置,以及如果要更改配置参数,则包括对应的值。该命令或指令也可以包括用于更新存储在存储器中的固件的代码。一般来说,该命令或指令可以在存储器中的任何位置读取/写入。与存储器耦合的存储器控制器可以执行该命令,并且返回任何结果(例如,在读取操作期间)。可以将结果封装在响应消息中并发回给管理实体。如果该命令是从BMC接收到的,则可以将结果传送给BMC。BMC接着可以在响应消息中将结果发回给管理实体。本发明具有的其它优点和特征可以更容易地从结合附图所作的本发明的如下详细描述和所附权利要求中看出,在附图中图1描绘了经由BIOS更改适配器配置参数的传统方法;图2例示了可以在睡眠模式下配置的示例性适配器的框图;图3示出了示出各种配置参数的存储器位置的示例性存储映像;图4例示了提供对存储在存储器中的适配器配置信息的访问的示例性网络唤醒模块的框图;图5示出了管理实体发送的配置包的示例性格式;图6例示了包处理器在接收到配置包时执行的步骤的示例性流程图;图7A例示了从管理实体接收的命令或指令的示例性格式;图7B-7C示出了要由存储器控制器执行的示例性命令或指令;图8例示了由基板管理控制器执行的步骤的示例性流程图;以及图9例示了由包处理器执行的用于向管理实体发送响应包的步骤的示例性流程图。具体实施例方式图2例示了当处在睡眠模式(或局部关闭模式)下时可以经由网络110配置的示例性适配器102。通常,该配置由位于交换机111中的管理实体113进行。但是,该管理实体可以位于网络110中的任何地方,而不仅仅在交换机111中。例如,管理服务器114可以与网络110连接,可以与适配器102通信,以及与交换机111和管理实体113通信。还可以想到,管理服务器114可以重新配置交换机111和管理实体113。因此,适配器102的重新配置可以从可通过网络110与适配器102通信的任何位置远程地进行。因此,适配器配置可以被认为是以网络为中心的,这与传统以服务器为中心的手段相反。以网络为中心的适配器重新配置可以便利地使管理实体(例如,管理服务器114、管理实体113等)能够远程重新配置若干适配器而无需物理上位于适配器所在之处。网络110可以代表提供对可配置计算资源(例如,网络、服务器、存储设备、应用和服务)的共享池的按需网络访问的“云”。适配器102可以基于云内的变化通过云来重新配置,而无需服务器本身的介入,该变化可以包括网络类型的变化、带宽的变化、拥塞等。适配器102可以包括使适配器102能够将适配器硬件的一部分断电以调节能耗的电力管理功能。在图2中示出的示例性系统中,适配器102可以包括用于管理供应给适配器102的各个部分的电力的电力管理模块118。电力管理模块118可以分开地向适配器102中的两个区域——核心逻辑部分117和辅助部分119——提供电力。核心逻辑部分117可以包括以太网子系统和FC子系统。辅助部分119可以包括网络唤醒(WOL)模块116、存储器107和基板管理控制器(BMC)115。在节电模式或睡眠模式期间,电力管理模块118可以在保持对适配器102的辅助部分119供电的同时减少或关闭对核心逻辑单元117的供电。注意,电力管理模块118也可以将电力关闭延伸到PCIe总线106和服务器101的一个或多个部件。在这样的情况下,电力管理模块118响应于服务器101中其它地方的电力管理逻辑单元和软件而工作。辅助部分119在睡眠模式下仍然可以工作。尽管存储器107和BMC115被示出为与适配器102分开,但可理解的是,它们也可以是适配器102的组成部分。存储器107可以是诸如可编程ROM、闪存等的非易失性存储器。通常,存储器107可以用于存储适配器102的配置信息,该配置信息可以包括设备特性、端口特性等。而且,存储器107可以用于存储用于操作和控制核心逻辑单元117的固件。图3示出了用于存储适配器102的配置信息的存储器107的示例性存储映像300。显示的存储位置仅仅被选来帮助讨论,可以理解的是,这些存储位置在实际实现中可以不同。例如,初始化代码301可以从存储位置0x0010开始存储。初始化代码301可以包括与初始化WOL逻辑单元116、BMC115、或在睡眠模式期间可能需要初始化的任何其它部件有关的代码或寄存器值。初始化代码301也可以包括与在加电期间初始化核心逻辑单元117有关的代码或寄存器值。每当对辅助部分119和/或核心逻辑部分117加电时,也可以执行初始化代码。可以将设备特性参数302存储在存储位置OxOOFF。设备特性参数决定适配器可以操作的模式,该模式可以包括FC-HBA、FCoE/NIC、和混合式HBA/NIC。在FC-HBA模式下,适配器102可以作为光纤通道主机总线适配器而工作。适配器102的所有端口都可以工作在FC模式下。在FCoE/NIC模式下,适配器102可以作为具有FCoE能力的以太网适配器而工作。在混合式HBA/NIC模式下,适配器的至少一个端口可以工作在FC模式下,而至少另一个端口将工作在以太网模式下。参数位可以从存储位置OxOOFF开始存储以设置设备特性。端口特性(303和304)可以从存储位置0x012A开始设置。因为适配器102可以具有多个端口,所以可以分别设置与每个端口有关的参数。例如,端口0的参数303可以包括端口的类型(例如,FC或以太网)、端口速度(例如,14(ibpSFCUOGbpsFC(以太网速度)、10.2Gbps标准FC、8(ibpSFC等)、单/双端口(例如,为传送16(ibpS而汇聚的两个8(ibpS端口),等等。在存储位置0x014A可以为端口1设置类似的参数304。尽管未示出,但也可以包括用于另外的端口的参数的存储位置。PF(物理功能)特性305(例如,在存储位置0x016)可以定义PCIe物理功能和它们到适配器102中的各种逻辑功能或端口的映射。可以为每个PF存储参数,该参数可以包括映射端口号、端口类型(例如,FC/以太网)、激活/停用PF等。可以将VF(虚拟功能)的参数存储在存储位置0x02BF。PCIe单根输入输出虚拟化(SIOV)将虚拟机(VM)绑定到PCIe核心内的VF。对于VM,每个VF可以表现为可以通过VF参数来配置的独立以太网/FC/FCoEE。与适配器102的配置有关的其它参数307可以从存储位置0χ03Α1开始存储。存储器107也可以包括从存储位置0x04FE开始的固件308。固件308可以包括由核心逻辑单元117执行的代码以便初始化和/或配置核心逻辑单元117。与适配器有关的任何其它数据309可以存储在存储器107的其余部分中。再次参照图2,BMC115可以是通常用于监视服务器硬件的健康状况的管理控制器。它可以定期从系统内的各种源收集信息和例行统计数据,并且更新诸如管理实体113之类的远程管理代理。它也可以向管理实体113提醒系统内的任何故障。BMC115还可以用于重新配置存储器107。BMC115使用边带接口(图4中,121)与适配器102通信。BMC115可以基于本领域熟知的智能平台管理接口(IPMI)规范。该边带接口可以是分布式管理任务组(DistributedManagementTaskForce,he.)详述的网络控制器边带接口(NC-SI)规范。典型的网络唤醒模块包括侦听传入包以发现唤醒包或所谓魔包(magicpacket)的硬件。图2的WOL部分116不仅侦听魔包,而且侦听配置包。当WOL116接收到有效的魔包时,它就通知电力管理模块118,电力管理模块118接着就可以唤醒核心逻辑单元117,艮口,恢复对核心逻辑单元117供电。当WOL116接收到配置包时,它就按照存储在该包中的数据处理该包,以便执行配置功能(如下文详述)。即使核心逻辑单元117处在断电模式下,WOL部分116也从电力管理模块118接收持续的电力。图4例示了WOL116的示例性功能框图。WOL116可以包括存储器控制器120、边带接口121、包处理器122、和网络接口123。存储器控制器120与存储器107通信,而边带接口121与BMC115通信。包处理器122检查接收到的配置包或唤醒魔包的包头部。包处理器还帮助生成传出包。网络接口123形成适配器102与网络之间的接口。接口的类型可以取决于与适配器连接的网络的类型。例如,在以太网网络的情况下,网络接口123可以包括10/100/1G以太网MAC和串行器-解串器(SerDes)。在网络110是FC网络的情况下,网络接口123可以包括FCMAC和krDes。管理实体113可以按两种方式经由WOL116配置存储器107的内容。它可以直接经由存储器控制器120或经由BMC115从/向存储器控制器107读取/写入配置参数。经由BMC115配置存储器107使BMC115可以提供附加的安全性。管理实体113可以将配置包发送给WOL116。图5示出了管理实体113发送给WOL116的以太网配置包400的示例性格式。目的地地址字段401可以包括适配器102的地址或BMC115的地址。源地址字段402可以包括交换机111或管理实体113的源地址。在存在虚拟LAN的情形下,802.Iq头部(字段403和404)可以包括用于TPID(标记协议标识符)、PCP(优先级代码点)、CFI(规范格式指示符)、和VID(VLAN标识符)的适当值。举例来说,可以使用用于指示包是配置包的VID。以太网类型字段405可以指示在有效载荷中封装了哪种类型的协议。以太网类型值可以是标准802以太网类型或可以是专有的。例如,以太网类型可以是0x0842,其指示有效载荷包括与网络唤醒类型协议有关的数据。字段406中的有效载荷数据可以包括要发送给存储器控制器120或BMC115的数据、指令和命令。最终,字段407可以包括基于目的地地址、类型和有效载荷数据的循环冗余校验位。可以理解,如果在睡眠模式期间WOL部分116与FC网络连接,则配置包400可以是FC包而不是以太网包。图6示出了描述包处理器122的操作的示例性流程图。在步骤501,包处理器122可以接收来自网络接口123的以太网包。在步骤502,包处理器122可以解析接收到的包以获得目的地地址。例如,参考配置帧400,可以解析出字段401的目的地MAC。在步骤503,包处理器122可以确定配置包是要寄送给适配器102还是BCM115。如果该包是要寄送给适配器102,则可以将包有效载荷数据406传送给存储器控制器120。如果该包是要寄送给BMC115,则可以将包有效载荷数据406传送给边带接口121。可替换地,可以把要寄送给BMCl15的整个包400传递给边带接口121,边带接口121接着可以将整个包传递给BMC115。包400的有效载荷数据406可以包括用于从/向存储器107读取/写入数据的指令或命令。该命令可能取决于配置包被引向存储器控制器120还是BMC115。举一个例子来说,图7A示出了包括在被引向存储器控制器120的配置包中的命令格式。字段601可以包括编码要由存储器控制器执行的操作的操作代码(或称为操作码)。例如,操作码0001可以规定由存储器控制器读取指定参数的值的读取操作。操作码0002可以规定可以将指定参数的值设置成所希望的值的写入操作。操作码0003可以规定可以擦除存储器107中的所有配置参数的重置操作。操作码0004可以规定固件308需要更新。操作码0005可以规定读取指定存储位置的数据,其可以包括除了配置参数之外的其它数据(例如,图3,其它数据309)。操作码0006可以规定在特定存储位置写入数据。操作码OOFF可以规定已经到达最终命令。可以理解,在图7A中示出的操作码的列表是非穷举的,其可以包括诸如将数据从一个存储位置传送到另一存储位置、算术运算、逻辑运算等的各种其它操作的操作码。字段602可以指定特定参数或该参数在存储器107中的位置。例如,参照图3,字段602可以包括文本“设备特性”或设备特性参数的标识符(例如,0x0》,或可以包括起始地址OxOOFF。字段602还可以指定存储器107中存储配置参数之外的其它数据的存储位置。例如,字段602可以指定用于存储固件308的从0x04FE(图3)开始的存储位置。一般说来,字段602可以指定存储器107中用于读或写操作的任何位置。字段603可以包括要写入存储器107中或从存储器107中读取的数据的长度。最后,字段604可以包括要写入存储器107中的参数、代码或其它数据的实际值。图7B例示了从存储器107中读取参数值的示例性指令。该命令含有规定这是获取或读取命令的操作码0001。字段602将存储位置0X012A指定为要从其读取参数值的存储位置。参照图3,存储位置0x012A对应于端口0的特性参数。字段603规定要从存储位置0x012A开始读取4个字节的数据。因为这是读操作,所以可以忽略数据字段604。图7C例示了在存储器107中设置参数值的示例性指令。该命令含有规定这是写入命令的操作码0002。字段602将存储位置0x014A指定为要写入数据的存储位置。参照图3,存储位置0x014A对应于端口1的特性参数。字段603规定要写入4个字节的数据,而字段604指定要写入的实际数据00110010。其它指令或命令可以利用新数据刷新或更新固件。这样的数据可以包括可以从存储器107装载到核心逻辑单元117内(例如,FCHBA108和CNA109中)的处理器中的指令或代码。可以理解,在图7A-7C中例示的命令和指令的格式只是示例性的,本领域的普通技术人员可以设想出各种其它格式来实现同样的结果,即,对存储在存储器107中的配置参数进行操纵。这些命令或指令的格式可以随着所使用的存储器控制器的类型而变。存储器操作可以由存储器控制器120来执行。可以经由边带接口121从包处理器122或BMC115接收用于存储器操作的命令或指令。存储器控制器120可以是,例如,微控制器、顺序状态机等。该控制器还可以包括指令和数据缓冲器、地址转换逻辑单元、控制和定时电路、存储器接口电路等。存储器控制器120的部件可以取决于所使用的非易失性存储器107的类型。例如,如果存储器107是NAND闪存,那么存储器控制器将具有NAND闪存特有部件。存储器控制器120可以执行指令或命令,并且在其输出端口或输出端口缓冲器上给出执行结果。例如,在执行了图7B中示出的命令之后,存储器控制器可以提供从存储器107中的存储位置0x012A读取的4个字节的数据。可以使命令所来自的模块(例如,BMC115或包处理器12可获得该命令的执行结果。再次参照图4,当包处理器122接收到目的地地址为BMC115的配置包时,经由边带接口121将该配置包引向BMC115。BMC115接收的配置包的格式与图5中示出的相同。而且,有效载荷字段406内的命令和指令可以与图7A-7C中示出的相同。图8示出了由BMC115执行的用于配置存储器107的步骤的示例性流程图。一旦BMC115从包处理器122接收到了配置包,它就可以提取包括配置命令或指令的有效载荷数据(步骤801)。有效载荷字段406内的命令和指令可以与图7A-7C中示出的相同。然后,在步骤802,BMC115可以进行配置命令的验证和安全检查。例如,BMC115可以处理以太网校验和以核实配置包的完整性。另外,BMC115也可以核实存储位置、数据长度和命令的完整性。BMC115可以将配置命令发送给存储器控制器120以供执行(步骤80;3)。一般说来,可以将配置命令封装在接口命令的有效载荷内,该接口命令由边带接口121接收。边带接口121可以将配置命令提供给存储器控制器120以供执行。如果该配置命令生成响应,例如,如果配置命令是读取存储器命令,那么,BMC115可以经由边带接口121接收从存储器控制器120返回的数据(步骤804)。通过生成要寄送给管理实体的数据包,可以将该数据发回给管理实体113。BMC115可以生成这个包,或可以将数据传递给包处理器122,包处理器122可以生成要寄送给管理实体113的响应包。图9示出了由包处理器122执行的用于将数据传送回管理实体113的步骤的示例性流程图。该数据可以是存储器控制器120执行读取配置命令(例如,图6B)的结果,或可以是BMC115生成的数据。在步骤510,包处理器可以经由边带接口121接收来自存储器控制器120或BMC115的数据。在步骤511,包处理器确定数据是从存储器控制器120接收的还是从BMC115接收的。如果数据是从存储器控制器120接收的,包处理器122可以生成源地址为适配器102并且将接收到的数据作为有效负载数据的响应包。如果数据是从BMC115接收的,包处理器122可以生成源地址为BMC115并且将接收到的数据作为有效负载数据的响应包。响应包的目的地地址可以是管理实体113的网络地址。包处理器122可以经由网络接口123将生成的包发送给管理实体113(步骤514)。无需为了配置适配器102而更新BIOS104。因此,可以将具有默认特性的适配器102发货给顾客。一旦在睡眠模式下连接到网络,顾客或任何管理实体就可以在适配器102离开睡眠模式以前首次将适配器102重新配置成所希望的特性。一旦适配器102的配置参数已经设置成所希望的值,就可以在加电期间将这些值从存储器107装载到适配器102中的寄存器中。根据存储在存储器107中的值重新配置适配器102的细节可以在VenkataPramodBalakavi等人提交、发明名称为IserSelectableMultipleProtocolNetworkInterfaceDevice”的共同拥有的美国专利申请第12/570,565号中找到,其通过引用并入本文。上面的描述是例示性的,而非限制性的。本发明的许多变型对于本领域的普通技术人员来说是显而易见的。因此,本发明的范围不应该参考上面的描述来确定,而是参考所附权利要求及其所有等同物来确定。权利要求1.一种方法,包括当网络适配器处于睡眠模式时经由网络适配器的网络接口提供对该网络适配器的存储器的访问。2.如权利要求1所述的方法,其中所述网络适配器的存储器是非易失性存储器。3.如权利要求1所述的方法,其中所述提供访问包括允许读取所述网络适配器的存储器。4.如权利要求3所述的方法,其中所述允许读取包括接收用于指定存储位置的消息;以及发送与所指定的存储位置相关联的值。5.如权利要求4所述的方法,其中所述消息是被寄送给所述网络适配器的。6.如权利要求4所述的方法,其中所述消息是被寄送给与所述网络适配器耦合的管理控制器的。7.如权利要求6所述的方法,进一步包括只有当所述管理控制器验证了所述消息时才发送所述值。8.如权利要求1所述的方法,其中所述提供访问包括允许更改所述网络适配器的存储器的内容。9.如权利要求8所述的方法,其中所述允许更改包括接收指定存储位置的消息和相关联的值;以及将所指定的存储位置的内容更改成所接收的相关联的值。10.如权利要求9所述的方法,其中所述消息是被寄送给所述网络适配器的。11.如权利要求9所述的方法,其中所述消息是被寄送给与所述网络适配器耦合的管理控制器的。12.如权利要求11所述的方法,进一步包括只有当所述管理控制器验证了所述消息时才更改值。13.一种网络设备,包括包含网络接口的网络适配器;以及与所述网络适配器耦合的存储器,其中所述网络适配器被配置成当所述网络适配器处于睡眠模式时经由所述网络接口提供对所述存储器的访问。14.如权利要求13所述的网络设备,所述网络适配器进一步包括与所述网络接口耦合并且被配置成根据经由所述网络接口接收的消息对所述存储器执行操作的模块。15.如权利要求14所述的网络设备,其中如果所述消息是指定了存储位置的读取消息,则所述模块被配置成访问所述存储器以获得与所述存储位置相关联的值,并且经由所述网络接口发送包括所述值的响应消息。16.如权利要求14所述的网络设备,其中如果所述消息是指定了存储位置和相应值的写入消息,则所述模块被配置成在所指定的存储位置访问所述存储器,并存储所述相应值。17.如权利要求13所述的网络设备,进一步包括与所述网络适配器耦合的管理控制器,所述网络适配器被配置成将寄送给所述管理控制器且经由所述网络接口接收的消息引向所述管理控制器。18.如权利要求17所述的网络设备,其中所述管理控制器被配置成验证所述消息,并且指示所述网络适配器基于所述消息的内容执行存储器操作。19.如权利要求18所述的网络设备,其中所述管理控制器被配置成接收所述存储器操作的结果,并且经由所述网络适配器的所述网络接口发送响应消息。全文摘要本公开涉及在睡眠模式下重新配置网络适配器的系统和方法。处于睡眠模式的融合网络适配器可以允许管理实体通过网络访问和更改网络适配器的配置。可以将诸如配置参数、固件和与适配器有关的其它数据之类的配置数据存储在存储器中,该存储器可以耦合到适配器在睡眠模式期间接收电力的部分。管理实体可以将配置消息发送给适配器,该配置消息可以包括读取存储器的内容或向存储器写入内容的命令或指令。该消息可以包括要更改的配置参数的值、固件代码等。管理实体还可以将配置消息发送给与适配器耦合的基板管理控制器(BMC)以进行消息验证。适配器和BMC可以在响应消息中将存储器操作的结果发回给管理实体。文档编号H04L12/24GK102571414SQ20111040790公开日2012年7月11日申请日期2011年12月9日优先权日2010年12月9日发明者G·劳,G·迈克兰纳翰,M·布兰斯泰德,V·纳加普迪,Y·班赛尔申请人:博科通迅系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1