横向扩展NVMe存储装置中的出价/要价协议的制作方法

文档序号:13561318阅读:187来源:国知局
横向扩展NVMe存储装置中的出价/要价协议的制作方法

相关申请的交叉引用

本申请要求根据35u.s.c第119条第(e)项享有于2015年7月15日递交的、题为“apparatus,system,andmethodforbid/askprotocolinscale-outnvmestorage(用于横向扩展nvme存储装置中的出价/要价协议的装置、系统及方法)”的美国临时专利申请no.62/192,966的优先权,其全部公开通过引用被完整结合于此。

本公开总体涉及通信领域,更具体地,涉及用于实现横向扩展非易失性存储器标准(“nvme”)存储装置中的出价/要价(bid/ask)协议的实施例。



背景技术:

确定性存储系统普遍存在于支持大数据、高性能计算、数据库和其他常见应用的现代数据中心中。基于主机(即“发起者”)和目标之间的线性关系,有必要构建集可靠性、可用性和安全性(“ras”)于一体的完整系统来确保这种关系的完整性。但是,这样会导致现今的数据中心的命令和控制架构受到限制。非易失性存储器(“nvm”)系统的改进大大改变了这种关系的本质,从而促使一对一的、确定性线性系统向非线性的、动态自适应系统的转变。基元关系中的根本性的改变实现了在终端设备中的嵌入式智能,允许在大规模横向扩展架构中更大的灵活性和适用性;然而,现有的存储协议不能利用这种技术转变的优势,因此限制了这种系统的可扩展性。

附图说明

结合附图并参照以下描述来提供对于本公开及其特征和优点的更完整的理解,其中相似参考符号代表相似部分,其中:

图1是存储系统环境的简化框图,在其中可以实现根据本文描述的特征的横向扩展nvme存储装置中的出价/要价协议的实施例;

图2是根据本文所描述的特征示出的可以由请求者执行的用于实现横向扩展nvme存储装置中的出价/要价协议的操作的流程图;

图3是根据本文所描述的特征示出的可以由响应者执行的用于实现横向扩展nvme存储装置中的出价/要价协议的操作的流程图;

图4是可在存储系统环境中实现的请求者和响应者节点的简化框图,在其中可以实现根据本文描述的特征的横向扩展nvme存储装置中的出价/要价协议的实施例;以及

图5是根据本文描述的实施例的包括图1中的存储系统环境的元件的、用于实现减轻异构无线通信网络内的上行链路干扰的技术的机器的简化框图。

具体实施方式

概述

在一个示例实施例中提供了一种方法,并且该方法包括第一网络设备从第二网络设备接收针对存储资源的请求;评估第一网络设备提供所请求的存储资源的意愿并基于该评估分配意愿分值;确定意愿分值是否大于最小值;以及如果意愿分值大于最小值,则从第一网络设备向第二网络设备提供对请求的响应,其中,该响应包括第一网络设备向第二网络设备提供所请求的存储资源的出价。

示例实施例

本公开的示例实施例的一个目的是定义一种包括用于在诸如互连的nvme存储集群子系统之类的非线性可扩展系统中使用的标准命令集和出价/要价算法的协议。本文描述的协议的分布式特性是唯一的并明显有利于协议的可扩展性。特别地,本文描述的协议比当前解决方案分布得更广,从而提升了协议的可扩展性。

非易失性存储器标准(nvme)是一种促进经由快捷外设互联标准(“pcie”)总线访问附接的非易失性存储介质的逻辑设备接口规范。“nvm”所指的“非易失性存储器”通常是固态驱动器(“ssd”)形式的闪存。nvme利用了基于闪存存储设备的低延迟和内部并行性,借鉴了当前cpu、平台和应用程序的并行化。特别地,nvme通过现代固态硬盘(ssd)中的主机硬件和软件并行化实现充分利用。其结果是,与以前的逻辑设备接口相比,nvme可以降低i/o开销并提高性能。nvme是ssd供应商联盟专门针对ssd开发的。与小型计算机系统接口(“scsi”)和串行ata(“sata”)一样,nvme也是被设计为利用了管道富集型、基于随机存取存储器的存储装置的独特性能。nvme的目标是发挥pciessd当前及未来的潜力并标准化pciessd接口。

需要注意的是,nvme是一种流线型接口规范,仅由十三个所需的命令组成(与scsi的400+相比),并且可容纳232个队列且每个队列中有232个命令;nvme所能提供的容量有了大大增加。或许本文提出和描述的协议提供的比数值优势更重要的是nvme所支持的主机-目标关系的范式转变。具体而言,协议不是一对一的关系,而是支持一对多的关系,这种一对多关系开辟了更广泛的可能性,远超过任何命令-控制架构的能力。

例如,根据本文描述的特征,该协议能够使操作系统(“os”)被写以使多位置非易失性存储器单元容置在非确定性位置中(例如,跨越多个驱动单元、节点等),并使应用能够通过高度并行存储访问而用于高性能计算,从而使效率呈指数级地提高。另外,本文中的实施例可以使存储设备将影响主机-目标通信最佳效率的与scsi相关的基架省去。

转向与示例架构有关的某些细节,对于大规模可扩展系统,对称性的维持会使效率回报率不断下降。路径效率的计算是为了避免停机时间或解决问题进行的,而非针对系统适用性。强制将数据移至可能正在进行维护或甚至重建的文件集必然会导致性能下降并引起同步问题。此外,跨大规模可扩展系统分布的数据不一定是对称分布的。在数学上有大量i/o时,可扩展的系统应该能够动态地和自适应地与数据使用的波动相适应。这意味着预确定性数据i/o流量违背最佳存储方案。

典型的大规模存储方案依靠中央智能点将存储资源分配给计算节点。使用中央智能点可能会随着数据中心的增长限制了存储的可扩展性。这种配置在可用性方面面临许多挑战,迫使诸如热备用备份、状态共享和同步等技术的使用。

本文描述的实施例的一个方面是一种将分配或配置存储资源的过程完全分布给请求者节点的协议,从而省去用来执行该过程的中央智能点。自治在请求者节点内部被创建,以识别请求者节点自己的存储需求并在存储节点内部识别满足该存储需求的能力和意愿。通过这种方式,具有数千(或数十万)个端点的大型系统不会因为预确定性策略或行为而错误地或低效地被限制。

关于大规模存储系统的一个可能的误解是存储集群必须不断地将负载平衡维持在对称均衡状态。产生这个误解的原因是,在基于线性的系统中,无论是对于容错还是对于raid进行机制重建所需的需求,贯穿横向扩展系统中的元数据奇偶校验都是至关重要的。但是,在非线性非对称群集中,情况并非如此。存储内存没有像在基于scsi的系统中那样被抽象化为文件集呈现给主机。取而代之的是,发起者通过nvme直接进行访问nvm存储装置。nvm命名空间的每个基元单位都由其相应的发起者命名空间完全拥有,这消除了在任一特定存储节点上存储紧密性的必要性。从发起者的角度来看,它拥有可被直接寻址和访问的存储命名空间。而这些闪存页面所在的设备(或节点)的数量或位置并不重要。

因此,每个部署的存储群集都会创建自己的自治系统。也就是说,没有两个存储集群数据布局看起来是完全一样的,而是创建了一种针对每个系统进行了独特的优化的动态模式的数据布置。通过遵循一些非常简单的规则,利用审慎的多路径和命名空间管理外加所建议的快照/克隆/备份过程来维护数据完整性。实际的效果是数据在最有效且适当的存储节点可用时被放置,而不是预定义地被放置。一些节点可能负责大多数命名空间页面,而其他节点则可能不负责(取决于它们在例示中的意愿)。随着时间的推移,存储的分配必然会在整个集群中以非对称和非线性的方式进行,而不会在可靠性、可用性或安全性方面产生更高的风险。

为了实现这一点,有限数量的代理被授予存储节点(或“目标”)本身。基本概念是存储节点保持对其状态的自意识,可包括(但不限于)诸如以下参数:(1)带宽;(2)容量;(3)命名空间管理;(4)存储器健康;(5)诊断调度;(6)特征功能;以及(7)现有流量。这些参数用于创建存储节点的“意愿分值”,“意愿分值”进而又被节点用于进行对服务的“出价”。

另一方面,需要存储节点的服务的设备(下文中称为“发起者”或“请求者”)将提出详细描述发起者的存储需求的请求或者“要价”。在很多情况下,请求者是计算节点;然而,在其他情况下,例如,请求者可以例如是可能需要快照功能的另一存储节点。

当被添加到存储集群的新节点已成功完成的自诊断时,该新节点自动处于其最高“意愿”状态。新节点在已知的网络地址上监听来自请求者的“要价”,并以适当的意愿分值作出响应。接着,发起者选择具有最有利的意愿分值的(一个或多个)响应者,并开始进行有关命名空间管理的协商。

在一个实施例中,发起者具有被指定为a和b的两个命名空间,类似于确定性存储网络(例如,光纤通道)中的公共多路径概念。但是,传统存储环境将a和b流量终止到相同的存储设备,并且存储阵列上的软件针对最终i/o分配对存储流量进行管理,这是因为必须维持主机和目标之间的一对一关系。相比之下,根据本文描述的实施例的特征,nvme流量可以不被流送到相同的设备上。相反,对于高可用性(“ha”)而言,将命名空间a序列存储在与命名空间b序列不相同的存储节点上是至关重要的。在最佳实践示例中,对于a而言,即使序列1、2和3分布在多个存储节点上,i/o序列1、2和3也不会驻留在与b相同的节点上。

主机向每个存储节点发出其自己的“要价”。“要价”请求参与者提交贡献分布式命名空间(a或b)的能力。接收到“要价”的每个节点利用其相应的参与意愿进行响应,并且主机建立并聚集地址位置,以便准备nvme设备的注册和预约。该出价/要价系统是持续进行的,但是由于它只是被通传的意愿参数的总和,所以是极其轻巧的。

如上所述,传统的存储系统需要某种中央智能(通常以存储控制器的形式)将存储设备聚集,并接着将可用容量作为集体池呈现给主机或一系列主机。底层存储介质无论是在(一个或多个)主机或整个环境的构建过程中还是生命周期内都对环境一无所知。在这样的系统中存储配置过程一般是在初始阶段创建完成的;也就是说,存储控制器会一直对介质的状态以及由此产生的与主机环境的关系进行监视。多个抽象层被用来创建服务等级和服务质量,据此刚性的存储环境根据工作负载要求而被分区。要求这些初始配置之外的存储能力的工作负载还需单独的专用存储环境来满足其对性能或容量的需求。

图1示出了包括用于执行存储配置的存储控制器11的传统存储系统10。如图1所示,系统10包括连接到存储控制器11的多个主机12(1)至主机12(n),该存储控制器对存储设备16的阵列进行集体管理。存储控制器11将存储设备16作为单个集体存储池18呈现给主机。控制器11可以以传统方式给主机12的每一者分配或配置存储器18的一部分。例如,如图1所示,主机12(1)被分配存储器18的部分20(1),主机12(2)被分配存储器18的部分20(2),主机12(3)被分配存储器18的部分20(3),以及主机12(4)被分配存储器18的部分20(4)。

在这种普遍存在于现代数据中心的存储配置范例中,存储控制器14的约束由于若干原因严重地限制了存储环境规模扩展的可能性。首先,所有的存储介质在其最小共同特征(lowestcommondenominator)上被平等地对待。嵌入介质本身的高级智能能力通过存储控制器的配置过程被掩饰,这样以牺牲高级功能为代价换取了同质性。即使是“混合”系统(其基于旋转磁盘驱动器和固态驱动器之间的性能差异创建了独立的硬件或软件控制器能力)也必须将存储介质聚集到它们相应的最小共同特征。其次,由于有限的内存、带宽和性能,存储控制器在其管理能力方面受到限制。这种限制导致两种结果,即“纵向扩展”(即,将额外的驱动器添加到容量规模的最大可管理能力)和“横向扩展”(即,将额外的控制器添加到跨平台同步的最大可管理配置)。

第三,存储控制器经常将相应的主机限制于有限子集的存储访问方法。换句话说,提供块访问的存储阵列并不提供对象存储配置或文件存储配置,反之亦然。第四,存储控制器需要不能随时间变化的静态配置参数。由于配置模型必须在实际使用模式之前被很好地预计出,导致存储资源的分配效率低。而且,非易失性存储装置(例如,nand闪存)需要进行例行维护,由于例行维护是在不了解动态存储访问条件的情况下进行的,会导致工作流和应用性能的明显恶化。最后,存储控制器内部和跨越存储控制器之间(用于横向扩展系统)的数据结构需要进行海量同步和大规模负载平衡。每个组件都被视为相同的构造块,因此随着规模的扩大,分布式系统效率会降低。

为了适应这些限制,存储环境包括多个抽象层以降低管理、容量、性能、带宽和用例差异,从而使所支持的整个的生态系统得以表明“无意识”存储介质的必要性。

对非易失性存储器(nvm)介质和协议的改进提高了存储装置本身的嵌入式智商。这种嵌入式智能为实现本地(即,嵌入主机中)和远程(例如,阵列、设备等)的具有自意识的存储系统提供了额外的步骤。本发明的优点在于解决、改善或消除了依赖于存储控制器的现有存储技术的几个限制。在一个方面,本文描述的实施例将(本地和远程的)存储装置视为具有个体特性及属性的资源,而非单一、同质池的部分。另外,实施例随着时间的推移动态地适应存储生态系统条件、直接与主机交互以协调维护窗口期、以及甚至在单一主机环境(例如,单服务器存储存储器)内实现异构存储环境。此外,实施例使得能够针对二级和三级存储特征和功能(例如,快照、克隆、容量扩展等)轮询近邻系统、允许为大规模主机共享应用(例如,存储器内数据库)创建全局的统一命名空间、并基于最大共同特征创建存储环境、随着时间的推移适应更快速和功能更丰富的存储技术。实施例还可以取代性能节流并基于工作负载需求和介质能力来实现自动服务质量(qos)功能、消除对系统范围内的负载平衡的需求、并且为每一主机实例/环境创建对存储需求的细粒度级的精细控制。最后,实施例可以使操作系统能够被写入以将多位置非易失性存储器单元容置在非确定性位置中(例如,跨越多个驱动单元、节点等),并使应用能够通过高度并行存储访问进行高性能计算来使效率呈指数级地提高。

数据中心环境通常使用术语“发起者”来指代主机,而“目标”指的是主机的相应存储实体。因为这些术语很好理解,并且本文描述的出价/要价协议的实施例并没有将角色和功能限制到这些特定位置,所以将采用如下定义。“请求者”是指对存储功能具有特定需求的任何数据中心实体或节点。特定需求可以包括但不限于容量、带宽、加密或其他与存储相关的功能。这些存储功能可具有诸如延迟、抖动、地理分散等参数特性。“响应者”是具有一组存储资源并能够响应从请求者接收到的资源的请求的任何数据中心实体。请求者和响应者是功能性角色,并且因此可以存在于相同的实体(例如,服务器、存储装置、甚至联网设备)内或者在该实体之外(例如,设备、阵列、分布式存储器网络)。“要价”是请求者对存储资源的请求,包括一组定义所需资源的参数。“出价”是响应者对要价的响应,包括表示响应者满足要价参数的能力的意愿分值。“意愿分值”是响应者对满足要价的参数的自评估。该评估必然会随着时间的推移而改变,从而提高或降低了响应者参与请求者所请求的存储关系的资格。

图2是根据本文描述的实施例示出的从请求者的角度看到的在横向扩展nvme存储装置中实现出价/要价协议的技术的流程图。在步骤30中,请求者识别对存储资源的需求。可以在工作负载/应用开始时或在确定需要增加日益减少的现有资源时提示识别的进行。在步骤32中,请求者收集针对所识别的存储资源需求的要价。满足该需求的成功标准可以或可不包含在要价中。“重量级”要价可包括满意标准,这会使响应者能够确定是否提供针对存储资源的出价。在大规模部署中,为了减少出价的整体网络影响,重量级要价可能是更可取的。相反,“轻量级”要价可不包括满意标准。当请求者使用轻量级要价时,请求者随后将出价聚集并选择合适的(一个或多个)响应者,并忽略所有其他出价。轻量级要价允许请求者在资源的给定情况下使用“尽力而为”的选择标准。

在步骤34中,请求者在存储群集节点(即,存储设备)正在监听的已知网络地址上发送所收集的请求。在步骤36中,请求者从监听地址的存储设备接收出价。如前所述,收到的出价数量可能与要价是否是重量级要价(在这种情况下可能会接收到较少的出价)或轻量级要价(在这种情况下可能接收到很多出价)有关。在步骤38中,请求者评估所接收的出价并接受出价中能满足请求者的存储资源需求的一者或多者。在步骤40中,请求者启动用于配置基于在步骤38中执行的评估而识别的存储资源的正常过程。

图3是根据本文描述的实施例示出的从响应者的角度看到的在横向扩展nvme存储装置中实现出价/要价协议的技术的流程图。在步骤50中,一旦在已知网络地址从请求者接收到要价,响应者评估其参与请求者请求的存储关系的意愿。如上所述,在这方面而言,应该理解存储节点维持关于其状态的自意识,状态可以包括(但不限于)诸如以下参数:(1)带宽;(2)容量;(3)命名空间管理;(4)存储器健康;(5)诊断调度;(6)特征功能;以及(7)现有流量。存储节点评估这些参数中的一些或全部和/或在接收到要价时计算意愿分值(步骤52)。在步骤53中,确定意愿分值是否大于管理员定义的值。如果不是,则执行步骤54,其中请求者不参与出价。例如,正面临严重诊断问题的响应者可以自分配数值为零(0)的意愿分值,以防止它们响应于要价进行出价。如果在步骤53中确定愿意分值大于管理员定义的值,则执行步骤55。在步骤55中,响应者以出价的形式向请求者提供意愿分值。根据本文描述的实施例的特征,响应者将与出价值对应的存储资源预留,直到它接收到其出价已被接受(步骤56)或发生超时(步骤58)的通知为止。额外地,响应者响应来自请求者后续要价的意愿分值会被调整,以便适应请求者假定接受的出价,以免过度扩展可用资源。

如果响应者在步骤56中接收到其出价被接受的通知,则执行步骤60。在步骤60中,存储资源被配置。存储资源的配置可以包括但不限于nvme命名空间的启用、分散-收敛列表的创建、擦除/网络编码的实例化、归档、克隆、备份和/或恢复等。如果在步骤58中发生超时,意味着响应者出价未被接受,则执行步骤62,其中先前预留的资源被释放用于进行重新分配,这会使响应者响应来自请求者后续要价的意愿分值被重新调整。

应注意到的是,在某些实施例中,单个设备既可以充当请求者也可以充当响应者,并响应自己的要价而提出出价。例如,具有错误nvm位置的存储节点可能会认识到需要被迁移到更健康的设备。鉴于nvm介质是独立的,另外合适的位置可能存在于相同设备上。在此前提下,存储节点在某些情况下可以合理提交与自己要价对应的出价。事实上,可以预期到许多用于日常维护任务的典型操作是在设备内部进行的。

在示例实现方式中,可以通过诸如服务器、路由器中的软件来实现与本文概述的用于在横向扩展nvme存储装置中实现出价/要价协议的系统有关的活动的至少某些部分。在一些实施例中,所述软件可以是从网页服务器接收的或下载的、可以是在计算机可读介质上提供的、或者由特定元件的制造商配置的,以便提供这种具有本文描述的实施例的特征的系统。在一些实施例中,这些特征中的一者或多者可以在部署在这些元件外部的硬件中实现,或以任何适当的方式合并以实现预期的功能。

例如,参考图4,请求者70可以包括要价收集模块72,要价收集模块72包括体现在一个或多个有形介质中的、用于促进本文描述的活动(包括要价73的收集)的软件。特别地,要价收集模块72包括用于促进图2和图3中所示和参考图2和图3所描述的过程的软件。请求者70还可以包括存储器设备74,用于存储要用来实现本文概述的功能的信息。额外地,请求者70可以包括能够运行(诸如在模块72中体现的)软件或者算法来执行本说明书中讨论的功能的处理器76。请求者70还可以包括执行本文描述的功能所需的各种i/o77。

要价73被传达给至少一个响应者(在图4中由响应者80表示),响应者可以包括意愿评估及出价准备模块82,该模块包括体现在一个或多个有形介质中的、用于促进本文描述的活动(包括评估响应者80响应于接收到的要价提供存储资源的意愿以及准备将要返回至请求者70的出价83)的软件。特别地,意愿评估及出价准备模块82包括用于促进图2和图3中所示和参考图2和图3所描述的过程的软件。响应者80还可以包括存储器设备84,用于存储要用来实现本文概述的功能的信息。额外地,响应者80可以包括能够运行(诸如在模块82中体现的)软件或者算法来执行本说明书中讨论的功能的处理器86。响应者80还可以包括执行本文描述的功能所需的各种i/o87。

以下是本文描述的实施例的使用示例。这些示例仅仅是代表性的,并不意味着包括用例的详尽清单。在一个示例中,实施例可以用来实现主机到目标的存储配置。在这种情况下,具有针对存储资源的预定的(可能是策略驱动的)标准要求的主机生成请求或“要价”。该请求连同确定的起始时间戳通过已知的多播地址被发送终端设备。所有存储设备在策略指定的时间段内被邀请来对服务存储请求(或要价)进行出价。存储设备有条件地预留资源(例如,容量、带宽等)并提交提供资源的出价。主机评估所有提交的出价,并确定所选择的中标者。未胜出的出价者不会被通知,并且在策略定义的超时期限过后,将所预留的资源回收用于其他后续请求。如果主机没有收到足够的所请求资源的出价,则主机可以对请求进行超时处理(并且所有出价设备等待,直到超时期结束)或者提出需求降低的请求。可以通过管理员或自动策略发起这些后续请求。

在另一示例中,实施例可以被用来实现目标内的存储配置。在这种情况下,存储目标持续监视其健康状况和能力。如果内部组件发生故障,存储目标可以寻找其他地方的额外存储资源。这些新的资源可能存在于相同存储目标机箱内(例如,在大型存储系统中可能存在独立的nvme控制器,它们在自己的介质组件上的具有域名)。负责介质资源的存储设备在某些情况下(例如,组件故障)可能需要找到替代容量和/或带宽。此时,子系统将发出针对存储资源的请求,而所针对的存储资源又可以是被物理地容置于相同设备中的存储资源。为此,存储设备可以针对自己后续的存储资源要求进行响应(和出价)。

在又一示例中,实施例可用来实现快照存储配置。特别地,通过手动或基于策略的快照,需要快照“恢复点目标”(“rpo”)的数据存储库可以启动存储装置到存储装置的主机未知的数据复制,例如nvme命名空间以特定间隔进行复制。例如,nvme命名空间和介质映射(即,元数据)可以被复制为快照实体,并且写入的数据可以被重新标记为属于快照命名空间而不是被标记为删除。由于主机与重新标记过程无关,避免了快照正常性能的损失。但是,由于在快照积累时需要更多的存储介质,因此需要额外的存储容量。存储设备可以“在幕后”使用出价/要价方法来请求更多的存储介质,而使主机性能不受到影响。

在又一示例中,实施例可以用来实现远程灾难恢复存储配置。远程办公或业务连续性/灾难恢复情况需要在场外存储数据副本的能力。本文描述的出价/要价协议可以用作“推”方案(本地数据中心请求远程容量)或者“拉”方案(远程数据中心请求最近的数据存储库的最新更新)。数据可以通过任何传统的存储距离解决方案进行远距离传输,需要或无需在远程位置重组数据结构的擦除编码技术。

尽管实施例是参照某种类型的通信网络进行描述的,但是应认识到,这些技术同样适用于其他网络技术。在一个示例实施方式中,涉及实现本文描述的实施例的各种设备可以包括用于实现所描述的功能的软件。例如,如图4所示,节点可以使用一个或多个计算机设备来实现,该一个或多个计算机设备包括体现在一个或多个有形介质中的、用于促进本文描述的活动的软件。用于实现发射器和接收器元件的计算机设备还可以包括用于存储要用来实现本文概述的功能的信息的存储器设备(或存储元件)。额外地,用于实现发射器和接收器元件的计算机设备可以包括能够运行软件或算法以执行本说明书中所讨论的功能(包括但不限于图2和图3中所示和参考图2和图3所描述的功能)的处理器。这些设备还可在适用情况下并基于实际需要在任何合适的存储元件(随机存取存储器(ram)、rom、eprom、eeprom、asic等)、软件、硬件中或者任何其他合适的组件、设备、元件或对象中保持信息。本文讨论的存储项中的任一者应被理解为被涵盖在广义术语“存储元件”中。类似地,本说明书中描述的潜在处理元件、模块和机器中的任一者应被理解为被涵盖在广义术语“处理器”中。网络元件中的每一个还可以包括用于接收、发送和/或以其他方式在网络环境中传送数据或信息的合适接口。

注意,在某些示例实施方式中,本文概述的并且在图2和图3中具体示出的功能可以由一个或多个有形介质中编码的逻辑(例如,专用集成电路(asic)、数字信号处理器(dsp)指令、处理器运行的软件(可能包括目标代码和源代码)或其他类似机器等中提供的嵌入式逻辑)来实现。在这些实例的某一些中,存储元件可以存储用于本文描述的操作的数据。这包括能够存储被运行以实施本说明书中描述的活动(包括但不限于图2和图3中所示和参考图2和图3所描述的功能)的软件、逻辑、代码或处理器指令。处理器可以运行与用来实现本说明书此处详述的操作的数据相关的任何类型的指令。在一个示例中,处理器可以将元素或物品(例如,数据)从一种状态或事物转换成另一种状态或事物。在另一示例中,本文概述的活动可利用固定逻辑或可编程逻辑(例如,由处理器运行的软件/计算机指令)来实现并且本文标识出的元件可以是某种类型的可编程处理器、可编程数字逻辑(例如,包括数字逻辑、软件、代码、电子指令或其任何合适组合的现场可编程门阵列(fpga)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)或asic)。

应注意的是,本文讨论的大部分基础设施都可以作为任何类型的网络元件的一部分来配置。如本文所使用的,术语“网络元件”或“网络设备”可以包括计算机、服务器、网络设备、主机、路由器、交换机、网关、桥接器、虚拟设备、负载平衡器、防火墙、处理器、模块或可操作以在网络环境中交换信息的任何其他合适的设备、组件、元件、或对象。此外,这些网络元件可包括便于操作的任何合适的硬件、软件、组件、模块、接口或对象。这可包括允许有效交换数据或信息的适当的算法和通信协议。

在一个实现方式中,网络元件/设备可包括实现(或促进)本文讨论的管理活动。这可能包括附图中所示的任何组件、引擎、逻辑等实例的实现。另外,这些元件中的每一者可具有内部结构(例如,处理器、存储元件等),以便于进行本文描述的一些操作。在其他实施例中,这些管理活动可在这些元件外部执行,或者包括在某些其他网络元件中以实现预期的功能。可选地,这些网络设备可包括可与其他网络元件协作以便实现本文所描述的功能的软件(或往复式软件)。在其他实施例中,一个或多个设备可包括促进操作的任何合适的算法、硬件、软件、组件、模块、接口或对象。

转向图5,图5示出了示例性机器(或装置)100的简化框图,在某些实施例中,该机器(或装置)可以是主机或存储设备,例如图1中所示的主机12(1)-主机12(n)和存储设备16,该机器(或装置)可以根据本文描述的实施例的特征被实现为系统。示例机器100对应于可以被部署在系统10中的网络元件和计算设备,包括例如存储设备16和主机12(1)-主机12(n)。特别地,图5示出了机器的示例形式的框图表示,其中软件和硬件使机器100执行本文讨论的任何一个或多个活动或操作。如图5所示,机器100可以包括处理器102、主存储器103、辅助存储装置104、无线网络接口105、有线网络接口106、用户接口107以及包括计算机可读介质109的可移除介质驱动器108。总线101(例如,系统总线和存储器总线)可以提供处理器102与机器100的存储器、驱动器、接口以及其他组件之间的电子通信。

也可以被称为中央处理单元(“cpu”)的处理器102可以包括能够运行机器可读指令并且根据机器可读指令的指示对数据执行操作的任何通用或专用处理器。主存储器103可以被处理器102直接访问以进行机器指令的访问,并且可以是随机存取存储器(“ram”)或任何类型的动态存储装置(例如,动态随机存取存储器(“dram”))的形式。辅助存储装置104可以是能够存储包括可运行软件文件的电子数据的任何非易失性存储器,例如硬盘。外部存储的电子数据可以通过一个或多个可移除介质驱动器108提供给计算机100,该可移除介质驱动器可以被配置为接收任何类型的外部介质,例如光盘(“cd”)、数字视频光盘(“dvd”)驱动器、外部硬盘驱动器等。

无线网络接口105和有线网络接口106可被提供来实现机器100与其他机器或节点之间的电子通信。在一个示例中,无线网络接口105可以包括具有合适的发送和接收组件(例如,收发器)的无线网络控制器(“wnic”),用于在网络内进行无线通信。有线网络接口106可以使机器100能够通过有线线路(例如,以太网电缆)物理地连接至网络。无线网络接口105和有线网络接口106都可以被配置为使用诸如互联网协议组(“tcp/ip”)之类的合适的通信协议来促进通信。所示出的具有无线网络接口105和有线网络接口106的机器100仅用于说明的目的。虽然一个或多个无线和硬接线接口可以在机器100中被提供,或者从外部连接到机器100,但是仅需要一个连接选项就能实现机器100到网络的连接。

用户接口107可以设置在一些机器中以允许用户与机器100进行交互。用户接口107可以包括显示设备,例如图形显示设备(例如,等离子显示面板(“pdp”)、液晶显示屏(“lcd”)、阴极射线管(“crt”)等)。另外,还可以包括任何适当的输入机构,例如键盘、触摸屏、鼠标、轨迹球、语音识别、触摸板等。

可移除介质驱动器108表示被配置为接收任何类型的外部计算机可读介质(例如,计算机可读介质109)的驱动器。体现本文描述的活动或功能的指令可被存储在一个或多个外部计算机可读介质上。额外地,这样的指令在运行期间还可以或者可选地至少部分地保存在机器100的存储器元件内(例如,在主存储器103或处理器102的高速缓冲存储器中)或者在非易失性存储器元件(例如,辅助存储装置104)内。相应地,机器100的其他存储器元件也能构成计算机可读介质。因此,“计算机可读介质”意味着包括能够存储供机器100运行的指令的任何介质,这些指令使机器执行本文公开的任何一个或多个活动。

在图5中未示出可以适当地耦合到处理器102和其他组件的形式为存储器管理单元(“mmu”)、附加的对称多处理(“smp”)元件、物理存储器、外围组件互连(“pci”)总线和相应的桥接器、小型计算机系统接口(“scsi”)/电子集成驱动器(“ide”)元件之类的附加硬件。机器100可以包括促进操作的任何合适的硬件、软件、组件、接口、或对象。这可包括允许有效的数据保护及通信的适当的算法和通信协议。此外,还可以在机器100中配置任何合适的操作系统以适当地管理其中的硬件组件的操作。

参照机器100示出和/或描述的元件旨在说明的目的,并不意味着暗示对诸如根据本公开所使用的机器的结构的限制。另外,在适用情况下基于实际需要,每个机器可以包括更多或更少的组件。如在本说明书中所使用的,术语“机器”意味着包括诸如服务器、路由器、个人计算机、客户端计算机、网络器件、交换机、桥接器、网关、处理器、负载平衡器、无线lan控制器、防火墙之类的任何计算设备或网络元件、或可操作以影响或处理网络环境中的电子信息的任何其他合适的设备、组件、元件、或对象。

在示例实施方式中,本文描述的涉及用于实现数据中心网络中分组的优先排序而不会导致饥饿的技术的活动的至少一些部分可以在例如主机和存储设备中的软件中实现。在一些实施例中,该软件可以从网络服务器接收或下载,并被提供在计算机可读介质上,或者由特定元件的制造商进行配置,以便实现本文描述的实施例。在一些实施例中,这些特征中的一者或多者可以在部署在这些元件外部的硬件中实现,或以任何适当的方式合并以实现预期的功能。

在一个示例实施方式中,主机和存储设备是网络元件或计算设备,可以包括促进操作的任何合适的硬件、软件、组件、接口、或对象以及用于在网络环境中接收、传输和/或以其他方式通传数据或信息的合适的接口。这可包括允许有效交换数据或信息的适当的算法和通信协议。

此外,在本文描述和示出的实施例中,与各种网络元件相关联的处理器和存储器元件中的一些可以被省去或通过其他方式被整合,这样可以使单个处理器和单个存储器位置负责某些活动。可选地,可以将某些处理功能分开,且分开的处理器和/或物理机器可以实现各种功能。在一般意义上,图中所示的布置以这样的表示可能更合乎逻辑,而物理架构可以包括这些元件的各种排列、组合和/或混合。必须指出的是,无数可能的设计配置可用于实现这里概述的操作目标。因此,相关联的基础架构具有无数替代部署、设计选择、设备可能性、硬件配置、软件实现方式、设备选项等。

在一些示例实施例中,一个或多个存储器元件(例如,主存储器元件103、辅助存储装置104、计算机可读介质109)可以存储用于本文所描述的操作的数据。这包括能够在非暂态介质中存储指令(例如,软件、逻辑、代码等)的存储器元件,以使得这些指令被运行以执行本说明书中所描述的活动。处理器可以运行与数据相关联的任何类型的指令以实现本说明书中详细描述的操作。在一个示例中,处理器(例如,处理器102)可以将元素或物品(例如,数据)从一种状态或事物转换到另一状态或事物。在另一示例中,本文概述的活动可以用固定逻辑或可编程逻辑(例如,由处理器运行的软件/计算机指令)来实现,并且这里所标识的元件可以是某种类型的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列(fpga)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom))、asic(该asic包括数字逻辑、软件、代码、电子指令、闪存、光盘、cd-rom、dvdrom、磁卡或光卡、适用于存储电子指令的其他类型的机器可读介质)、或它们任意合适的组合。

在适用情况下并基于实际需要,网络10、110的组件可以将信息保存在任意合适类型的存储器(例如,随机存取存储器(ram)、只读存储器(rom)、现场可编程门阵列(fpga)、可擦可编程只读存储器eprom、电可擦可编程rom(eeprom)等)、软件、硬件或任何其他组件、设备、元件或对象中。本文中讨论的任何存储器术语应被解释为涵盖在广义术语“存储器元件”内。由网络环境10、110读取、使用、跟踪、发送、传送、通传或接收的信息可以在任何数据库、寄存器、队列、表、缓存、控制列表或其他存储结构中被提供,所有这些存储结构可以在任何合适的时间帧中被引用。任何这样的存储选项可以被包括在本文使用的广义术语“存储器元件”内。类似地,本说明书中描述的任何可能的处理元件、模块和机器应被解释为包含在广义术语“处理器”中。

注意,对于上述示例,交互可能是在两个、三个或四个网络元件中被描述的。但是,这仅仅是出于清楚和示例的目的而完成的。在某些情况下,通过仅引用有限数量的设备或组件可能更容易描述给定流程集的一个或多个功能。应该理解的是,在附图中所示和参照这些附图(及其教导)描述的拓扑是容易扩展的,并且还可以容纳大量的设备或部件以及更复杂/精细的布置和配置。因此,所提供的示例不应当限制所图示的拓扑的范围和阻止其广义教导,因为可潜在地应用于无数其他体系结构。

还应重点指出的是,前面的流程图中的步骤仅示出了可以由附图中所示的通信系统所运行或在通信系统内运行的一些可能的信令场景和模式。这些步骤中的一些步骤可以在适当的情况下被删除或移除,或者可以在不脱离所讨论的概念的范围的情况下对这些步骤进行可观地修改或改变。此外,这些操作中的很多操作被描述为与一个或多个附加操作同时或并行地运行。但是,这些操作的定时可以被明显改变。上述操作流程是为了举例和讨论的目的而提供的。在附图中示出的通信系统提供了实际的灵活性,因为在不脱离所讨论的概念的教导的情况下可以提供任何合适的布置、发生顺序、配置和定时机制。

虽然已经参考特定布置和配置详细描述了本公开,但是在不脱离本公开的范围的情况下,这些示例配置和布置可以被显著地改变。例如,虽然已经参考特定通信交换描述了本公开,但是本文描述的实施例可适用于其他架构。

本领域的技术人员可以确定很多其他改变、替换、变更、更改和修改,本公开旨在包含落入所附权利要求范围内的所有这样的改变、替换、变更、更改和修改。为了协助美国专利商标局(uspto)及针对本申请所授予的任何专利的任何读者理解所附的权利要求,申请人希望指出申请人:(a)不希望任何所附权利要求援引在其申请日存在的35u.s.c.第142部分的112条的第六款,除非在具体的权利要求中特定地使用了词语“用于…的装置”或“用于…的步骤”;以及(b)不希望通过本说明书中的任何表述来以任何未在所附权利要求中体现的方式限制本公开。

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