使用基板管理控制器配置存储设备的系统和方法与流程

文档序号:15736427发布日期:2018-10-23 21:33阅读:157来源:国知局
本申请要求于2017年4月3日提交的标题为“MethodofConfiguringNetworkingControllersandSettingsofNVMe-oFDevicesviaControlPlane(BMC)”的美国临时专利申请No.62/480,670的优先权和权益,通过引用将其全部内容并入本文。
技术领域
本公开涉及计算机存储阵列。具体而言,本公开涉及配置连接到计算机存储阵列的目标存储设备的系统和方法。
背景技术
:计算机存储阵列(也称为磁盘阵列)通常是数据存储系统,诸如硬盘驱动器(HDD)和固态磁盘驱动器(SSD)之类的多个数据存储设备连接到该数据存储系统。计算机存储阵列被设计成具有高度可扩展性,并向多个发起者(可能是端点客户端、计算机服务器和/或其他数据消费者)提供共享数据访问。由于其高性能和可扩展性,支持Non-VolatileMemoryExpress(非易失性存储器标准)overFabrics(NVMe-oF)规范的存储设备(为了方便,在下文中称为“NVMe-oF设备”)变得越来越流行,尤其是对于在计算机存储阵列中的使用而言。NVMe-oF是一项技术规范,旨在使基于NVMe消息的命令能够通过网络(如以太网,光纤通道和InfiniBand)在发起者(如主机)与NVMe-oF设备或系统之间传输数据。因此,NVMe-OF设备通常包括联网设备(例如,具有(多个)以太网控制器)和存储设备(例如,具有(多个)SSD)两者的功能。作为联网设备,在发起者可以建立与NVMe-oF设备的NVMe-oF连接之前,需要配置NVMe-oF设备的联网设置。一种可能的解决方案是开发用于Linux和Windows的NVMe-oF设备驱动程序,类似于网络接口控制器(NIC)或诸如RAID供应商的主机总线适配器。提供设备驱动程序的优点类似于通过使用现有的网络配置工具配置网络控制卡的现有的方法。然而,这不是典型的商业模式,存储厂商可能没有能力为Linux和Windows开发新的存储设备驱动程序,维护每个发行版的设备驱动程序,并支持Linux开源社区。另一种现有技术的方法是分配给每个NVMe-oF设备主机已知的默认静态IP地址。在这种情况下,所有NVMe-oF设备最初将具有相同的静态默认IP地址。NVMe-oF的网络接口可以通过网络设备驱动程序进行配置,也可以由制造商进行硬编码。不幸的是,这种模式不适合当前的标准存储设备,因为只有存储协议驱动程序(而不是设备配置)被提供给这些存储设备。主机经由默认IP地址与目标通信后,可以更改IP地址。但是,这是一个缓慢的过程,因为一些NVMe-oF设备可能连接到不同的发起者。另外,当所有NVMe-oF连接到以太网交换机并且它们都具有相同的IP地址时,这可能不起作用。此外,NVMe-oF标准规范并未公开如何操作。根据目前公开的系统和方法,更好的解决方案是使用户或系统管理员能够在系统初始化期间通过控制平面动态地配置这些设备。正确配置NVMe-oF可能有其他要求。例如,可能需要根据其所需支持的RDMA协议(RoCE2vsiWARP)来配置NVMe-oF设备。尽管计算机存储阵列的本地计算机处理单元(CPU)可以用于配置经由控制平面连接到CPU的NVMe-oF设备的网络设置(例如,IP地址),但是这样做将需要CPU在同步和异步进程之间执行上下文切换,从而增加了崩溃存储阵列的机会。当需要配置连接到存储阵列的多个NVMe-oF设备时,崩溃的机会增加。此外,目前的NVMe-oF规范没有规定如何经由控制平面配置NVMe-oF设备的以太网控制器。因此,使用存储阵列的CPU来配置NVMe-oF设备可能是不可取的。作为存储设备,NVMe-oF设备的NVMe-oF设置还需要在运行数据通信之前进行配置。尽管存储阵列的本地CPU也可以用于配置NVMe-oF设备的NVMe-oF设置(例如,NVMe限定名称、管理员提交队列的大小等),但是由于上面讨论的原因,这可能也不可取。如果一个或多个发起者已经与NVMe-oF设备建立了网络连接,则发起者也可以配置NVMe-oF设备的NVMe-oF设置。但是,每个发起者都必须配置自己的目标NVMe-oF设备,这会使配置过程复杂化。此外,因为发起者通过数据平面而不是控制平面连接到NVMe-oF设备,所以赋予发起者配置NVMe-oF设备的任务可能花费更长的时间,并且对系统准备好数据传输的时间产生负面影响。因此,发起者配置NVMe-oF设备可能是不可取的。技术实现要素:本文公开了一种计算机存储阵列,其向一个或多个远程发起者提供到连接到存储阵列的一个或多个存储设备的NVMeoverfabric(NVMe-oF)访问。根据示例实施例,计算机存储阵列包括:计算机处理器,被配置为运行用于管理联网协议的操作系统;网络交换机,被配置为在发起者与存储设备之间建立NVMe-oF连接并路由数据;基板管理控制器(BMC),被配置为配置存储设备的网络设置或NVMe-oF设置;PCIe交换机,经由PCIe总线将BMC与每个存储设备连接;以及计算机主板,包括所述PCIe总线,并且计算机处理器、网络交换机、BMC和PCIe交换机被安装到计算机主板。本文还公开了一种配置连接到计算机存储阵列的一个或多个存储设备的计算机实现的方法,计算机存储阵列包括被配置为运行用于管理联网协议的操作系统的计算机处理器,以及被配置为配置存储设备的网络设置或NVMe-oF设置的基板管理控制器(BMC),该BMC由本地PCIe交换机经由PCIe总线连接至每个存储设备。根据示例性实施例,该方法包括:由BMC从管理服务器接收用于配置存储设备的网络设置或NVMe-oF设置的命令和参数值;以及由BMC根据从管理服务器接收到的命令和参数值来配置存储设备的网络设置或NVMe-oF设置。附图说明作为本公开的一部分被包括的附图示出了各种实施例,并且与上面给出的一般描述以及下面给出的各种实施例的详细描述一起,用于解释和教导这里描述的原理。图1示出了根据本系统和方法的实施例的利用BMC来配置NVMe-oF存储设备的网络和/或NVMe-oF设置的示例计算机存储阵列。图2示出了根据本系统和方法的实施例的用于使用BMC配置一个或多个NVMe-oF存储设备的示例操作的流程图。出于说明的目的,在整个附图中,附图中的图不一定按比例绘制,并且类似结构或功能的元件通常由相同的附图标记表示。附图仅旨在便于描述本文描述的各种实施例,并且不描述本文公开的教导的每个方面,并且不限制权利要求的范围。具体实施方式本文公开的特征和教导中的每一个可以单独使用或者与其他特征和教导结合使用以提供本系统和方法。参考附图来分别地和组合地描述利用这些特征和教导中的许多特征和教导的代表性示例。虽然本文中的详细描述向本领域的普通技术人员示出了用于实践本教导的各方面的进一步的细节,但是其不限制权利要求的范围。因此,在详细描述中公开的特征的组合是本教导的代表性示例,并且可能不是从广义上实践教导所必需的。根据本系统和方法的示例性实施例,基板管理控制器(BMC)可以用于经由计算机存储阵列的控制平面来配置NVMe-oF存储设备的网络和/或NVMe-OF设置。BMC是嵌入在计算机存储阵列、服务器、交换机等中的低功耗控制器,并连接到机箱传感器(如温度传感器、电源电压传感器和湿度传感器),以读取环境条件并控制各种设备。BMC还可以通过本地系统总线(如外围组件互连快速(PCIe)总线和系统管理总线(SMBus))访问和控制NVMe-oF设备。因此,BMC处于配置NVMe-oF设备的网络和/或NVMe-oF设置的独特位置。图1示出了根据本系统和方法的实施例的利用BMC来配置NVMe-oF存储设备的网络和/或NVMe-oF设置的示例计算机存储阵列。计算机存储阵列100包括计算机主板101、本地CPU102、BMC103、PCIe交换机104、网络交换机105和多个存储设备106。在这种情况下,存储设备106可以是包括以太网端口、PCIe端口和SMBus端口的以太网启用的SSD(Ethernet-enabledSSDs,eSSD),并且网络交换机105可以是以太网交换机。计算机存储阵列100向一个或多个远程发起者107(例如,107a,107b)提供对连接到存储阵列100的一个或多个存储设备106的访问。根据示例实施例,本地CPU102、BMC103、PCIe交换机104和网络交换机105可以被集成或者内置到主板101中,或者可以作为分立组件被安装到主板101上。计算机主板101包括以太网连接、PCIe总线和SMBus。本地CPU102被配置为运行用于管理联网协议的操作系统。网络交换机105被配置为在发起者107和存储设备106之间建立NVMe-oF连接和路由数据。例如,一个发起者和一个目标设备可以由网络交换机105连接成对于给定会话的一对(asapairforagivensession)。PCIe交换机104经由PCIe总线将BMC103与每个存储设备106相连接。BMC103被配置为根据从管理服务器108接收到的命令和参数值来配置存储设备106的网络设置和/或NVMe-OF设置。BMC103经由与经由以太网连接建立的NVMe-oF连接分离的带外连接(out-of-bandconnection)与管理服务器108通信。BMC103可以使用智能平台管理接口(IPMI)从管理服务器108接收命令和参数值。IPMI是计算机子系统(如BMC103)的一组计算机接口规范,提供独立于系统本地CPU、固件和操作系统的管理和监视功能。例如,为了设置存储设备106的网络设置,管理服务器108可以向BMC103发送新的“设置网络配置”命令。“设置网络配置”命令,以及类似地,“获取网络配置”命令目前不是标准IPMI命令集的一部分,但可以实现为供应商特定的IPMI命令。因此,这些新的命令启用了现有系统和方法中不存在的附加功能。管理服务器108还可以向BMC103发送用于配置网络设置的参数值,例如要配置的存储设备的IP地址。详情参见下表。NVMe-oF设备网络配置-命令DwordXX位描述31:08保留07:00数据字节的数量“设置功能-NVMe-oF设备网络配置”数据类似地,为了设置存储设备106的NVMe-oF设置,管理服务器108可以向BMC103发送新的“设置NVMe-oF配置”命令,其也可以被实现为OEM可配置的IPMI命令。管理服务器108还可以向BMC103发送用于配置要配置的存储设备的NVMe-oF设置的参数值,例如提交队列大小和/或NVMe限定名称。在接收到命令和参数值之后,BMC103可以根据来自管理服务器108的指令(其可以由系统管理员控制)将命令和参数应用于存储设备106中的一个或所有存储设备106。如果指示BMC103将命令和参数值应用到所有存储设备106,则BMC103根据命令和参数值来对每个存储设备进行优化配置。否则,BMC103仅配置目标存储设备。BMC103可以经由PCIe总线和/或SMBus在管理组件传输协议(MCTP)上使用NVMe管理接口(NVMe-MI)协议来配置存储设备106的网络设置和/或NVMe-oF设置。具体地,BMC103可以将从管理服务器接收到的IPMI命令和参数值重新格式化和/或封装到NVMe-MI消息中,然后经由PCIe总线和/或SMBus将其作为MCTP分组发送到存储设备106。例如,为了配置存储设备106的网络设置,BMC103可以经由PCIe或SMBus向存储设备106发送新的“设置配置-NVMe-oF网络设置”命令。该命令的“NVMe-OF网络设置”部分,当前不是标准NVMe-MI命令集的一部分,可以被实现为供应商特定字段。类似地,为了配置存储设备106的NVMe-oF设置,BMC103可以经由PCIe或SMBus向存储设备106发送新的“设置配置-NVMe-oF设置”命令。该命令的“NVMe-oF设置”部分当前不是标准NVMe-MI命令集的一部分,也可以实现为供应商特定字段。NVMe-oF配置可以是NVMe-oF发现日志页面字段的一部分。以下是NVMe-oF配置的示例:图2示出了根据本系统和方法的实施例的用于使用BMC配置一个或多个NVMe-oF存储设备的示例操作的流程图。BMC从管理服务器接收命令和参数值,用于配置存储设备的网络设置和/或NVMe-oF设置(在201)。BMC确定命令是否包含指定将命令和参数应用于所有存储设备的命令参数(在202)。如果BMC确定该命令包含该命令参数(在202),则BMC根据命令和参数值迭代地配置每个存储设备(在205)。当BMC确定已经配置了所有存储设备(在204)时,命令完成(在206)。如果BMC确定该命令不包含该命令参数(在202),则BMC根据命令和参数值仅配置存储器设备(在203)并且命令完成(在206)。如传统所实施的,BMC作为根联合体设备(rootcomplexdevice)操作,其中CPU具有对BMC的单向控制。换句话说,传统的BMC接收来自CPU的指令,不独立于CPU工作。相反,根据本系统和方法的示例实施例,BMC可以被实现为使得BMC独立于和不受计算机存储阵列的CPU的干预而操作。换句话说,BMC可以作为终端设备操作。通过不需要CPU干预BMC对存储设备的配置,实现了数据平面与控制平面的更清晰的界定,并且由于同步和异步进程之间的上下文切换较少,计算机存储阵列可能不易于崩溃。因此,鉴于上述情况,本系统和方法的实施例提供了利用BMC经由计算机存储阵列的控制平面配置NVMe-oF设备的网络和/或NVMe-oF设备设置,其使得系统初始化后配置更快。此外,因为本系统和方法不需要修改计算机存储阵列的数据面,所以发起者仍然能够配置NVMe-oF设备的网络和/或NVMe-oF设置。本系统和方法的各种实施例可以使用硬件元件、软件元件或两者的组合来实现。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件示例可以包括软件组件、程序、应用程序、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子程序、功能、方法、过程、软件接口、应用程序接(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定是否使用硬件元件和/或软件元件来实现实施例可以根据任何数量的因素而变化,诸如期望的计算速率、功率水平、热容差、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能限制。至少一个实施例的一个或多个方面可以通过存储在机器可读介质上的代表性指令来实现,其表示处理器内的各种逻辑,当由机器读取时机器致使机器制造逻辑(fabricatelogic)以执行本文所描述的技术。称为“IP核”的这种表示可以被存储在有形的机器可读介质上,并被提供给各种客户或制造设施,以加载到实际做出逻辑的制造机器或处理器中。尽管已经参照各种实施方式描述了本文中描述的某些特征,但是该描述不意图被解释为限制性的意思。因此,本文所描述的实现的各种修改以及其他实现对于本公开所属领域的技术人员来说显而易见的,并被认为是在本公开的精神和范围之内。出于解释的目的,前面的描述已经参照具体实施例进行了描述。然而,上面的说明性讨论并不是穷举性的或者将权利要求的范围限制为所公开的确切形式。鉴于上述教导,许多修改和变化是可能的。选择实施例是为了最好地解释权利要求及其实际应用的基本原理,从而使得本领域的其他技术人员能够以适合于预期的特定用途的各种修改来最佳地使用实施例。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1