CN104583954B - 用于提供流量冗余消除可感知的槽放置的方法和装置 - Google Patents
用于提供流量冗余消除可感知的槽放置的方法和装置 Download PDFInfo
- Publication number
- CN104583954B CN104583954B CN201380043206.6A CN201380043206A CN104583954B CN 104583954 B CN104583954 B CN 104583954B CN 201380043206 A CN201380043206 A CN 201380043206A CN 104583954 B CN104583954 B CN 104583954B
- Authority
- CN
- China
- Prior art keywords
- groove
- container
- redundancy
- cluster
- placement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Abstract
各种实施例提供了一种提供冗余消除可感知的技术用于基于跨槽通信对的冗余和在槽通信对内的冗余来放置槽的方法和装置。
Description
技术领域
本发明总体涉及用于提供槽放置的方法和装置。
背景技术
本节介绍了可以有助于促进本发明的更好的理解的方面。因此,本节的陈述将以此角度来阅读并且将不被理解为关于什么在现有技术中或者什么不在现有技术中的承认。
在一些已知的虚拟机放置策略中,基于最小化跨越机架传输的数据的带宽需求将虚拟机放置在数据中心机架中。
发明内容
各种实施例提供了一种提供冗余消除可感知的技术用于基于跨槽通信对的冗余和在槽通信对内的冗余来放置槽的方法和装置。
在一个实施例中,提供了一种装置用于提供槽放置。该装置包括数据存储和通信地连接至该数据存储的处理器。该处理器被编程为:确定多个容器内待放置的多个槽;确定多个冗余参数;以及基于多个冗余参数确定在多个容器中多个槽的放置。
在一些实施例中,多个该多个槽是虚拟机。
在一些实施例中,多个该多个容器是数据中心中的机架。
在一些实施例中,冗余参数是基于多个槽中的至少一部分槽的通信内冗余和通信间冗余。
在一些实施例中,冗余参数是基于多个槽中的至少一部分槽的通信模式。
在一些实施例中,多个槽的放置的确定包括将处理器编程为:确定多个簇;将多个槽中的至少一部分槽中的每一个槽分配给多个簇中的至少一个簇;以及将多个簇中的至少一部分簇中的每一个簇分配给多个容器中的至少一个容器。
在一些实施例中,多个槽中的部分槽的分配是基于冗余消除以后所需要的槽带宽。
在一些实施例中,多个槽中的部分槽的分配是进一步基于一个或者多个槽放置约束条件。
在一些实施例中,多个簇中的部分簇的分配是基于有效容器间带宽使用量。
在一些实施例中,多个槽的放置的确定包括进一步将处理器编程为交换第一放置的槽和第二放置的槽,该交换基于对于将改善容器间带宽使用量以及该交换满足一个或者多个容器间带宽约束条件的确定。
在第二实施例中,一种用于提供槽放置的交换系统。该系统包括:放置控制器和通信地连接至该放置控制器的多个代理。多个代理被编程为:收集多个冗余测量值并且将多个冗余测量值发送至放置控制器。该放置控制器被编程为:接收多个冗余测量值,确定多个容器内待放置的多个槽,基于多个冗余测量值确定多个冗余参数,以及基于多个冗余参数确定多个容器中多个槽的放置。
在一些实施例中,多个槽的放置的确定包括将放置控制器编程为:确定多个簇,将多个槽中的至少一部分槽中的每一个槽分配给多个簇中的至少一个簇,以及将多个簇中的至少一部分簇中的每一个簇分配给多个容器中的至少一个容器。
在一些实施例中,多个槽中的部分槽的分配是基于冗余消除以后所需要的槽带宽。
在一些实施例中,多个槽中的部分槽的分配是进一步基于一个或者多个槽放置约束条件。
在一些实施例中,多个簇中的部分簇的分配是基于有效容器间带宽使用量。
在一些实施例中,多个槽的放置的确定包括进一步将放置控制器编程为交换第一放置的槽和第二放置的槽,该交换基于对于将改善容器间带宽使用量以及该交换满足一个或者多个容器间带宽约束条件的确定。
在第三实施例中,提供了一种用于槽放置的方法。该方法包括:确定多个容器内待放置的多个槽,确定多个冗余参数,以及基于多个冗余参数确定多个容器中多个槽的放置。
在一些实施例中,该方法进一步包括交换第一放置的槽和第二放置的槽,该交换基于对于将改善容器间带宽使用量以及该交换满足一个或者多个容器间带宽约束条件的确定。
在一些实施例中,确定多个槽的放置的步骤包括:确定多个簇,将多个槽中的至少一部分槽中的每一个槽分配给多个簇中的至少一个簇,以及将多个簇中的至少一部分簇中的每一个簇分配给多个容器中的至少一个容器。
在一些实施例中,分配多个槽中的部分槽的步骤是基于冗余消除以后所需要的槽带宽。
附图说明
在附图中图示了各种实施例,其中:
图1图示了冗余消除可感知的数据中心100经由网络180服务于客户端190-1和190-2的实施例;
图2描述了图示用于冗余消除可感知的系统(例如,图1的冗余消除可感知的数据中心100)来执行冗余消除可感知的槽放置的方法200的实施例的流程图;
图3图示了冗余消除可感知的数据中心100中冗余的功能框图300;
图4描述了图示用于放置控制器(例如,图1的放置控制器170)如图2的步骤270中所示来放置槽的方法400的实施例的流程图;
图5描述了图示用于如图4的步骤480中所示的放置槽的方法500的实施例的流程图;
图6描述了图示用于如图4的步骤480以及图5的步骤520、540和560中所示放置槽的方法600的实施例的流程图;
图7描述了说明图6的步骤610-640的实施例的伪代码;
图8描述了说明图6的步骤650的实施例的伪代码;
图9描述了说明图6的步骤670的实施例的伪代码;
图10示意性地图示了各种装置1000的实施例,比如图1的端主机120中的一个端主机、ToR交换机130中的一个ToR交换机、聚合交换机150中的一个聚合交换机、或者放置控制器170。
为了促进理解,相同的标号已被用于标示具有基本上相同的或者相似的结果或者基本上相同的或者相似的功能的元素。
具体实施方式
描述和附图仅说明本发明的原理。因此应当理解,本领域的技术人员将能够设计不同的安排,尽管在此没有明确描述或者示出,这些安排体现了本发明的原理并且被包括在本发明的范围之内。此外,在此所述的所有示例主要地清楚地意图为仅用于教导的目的以帮助读者理解本发明的原理以及由发明人为了推进技术所贡献的概念,并且被理解为不限于这些具体描述的示例和条件。此外,除非另行说明(例如,“否则”或者“或者可替代的”),在此使用的术语“或者”指代非排他的或者。同时,由于一些实施例可以与一个或者多个其他实施例合并以形成新的实施例,在此所述的各种实施例不一定是互相排斥的。
各种实施例提供了一种提供冗余消除可感知的技术用于基于跨槽通信对的冗余和在槽通信对内的冗余来放置槽的方法和装置。有利地,这种放置可以减少容器间(例如,机架或者数据中心)链接的整体的带宽使用量。
图1图示了冗余消除可感知的数据中心100经由网络180服务客户端190-1和190-2的实施例。冗余消除可感知的数据中心100包括机架110-1和110-2(统称,机架110)、机架顶部的交换机130-1和130-2(统称,ToR交换机130)、冗余消除(RE)箱140-1和140-2(统称,RE箱140)、聚合交换机150-1—150-2(统称,聚合交换机150)和放置控制器170。冗余消除可感知的数据中心100还包括链接135-1、145-1、155-1、175-1和185-1(统称,冗余消除可感知的数据中心链接)(出于清晰的目的已省略剩余链接标签)。机架110经由ToR交换机130、RE箱140、聚合交换机150以及合适的冗余消除可感知的数据中心链接中的合适的一个与网络180通信地连接。应当理解,冗余消除可感知的数据中心100可以以任何合适的配置构造并且该冗余消除可感知的数据中心100仅是用于说明的目的的一个示范性的架构。放置控制器170控制冗余消除可感知的数据中心100内机架110中的资源(例如,处理器、存储器、存储或者网络)的分配。
机架110包括端主机120-1-EH1—120-1-EH5以及120-2-EH1—120-2-EH5(统称,端主机120)。应当理解,当在此图示了2个机架时,系统100可以包括更多或者更少的机架。应当进一步理解,不是所有的系统100的机架可以包括端主机。
端主机120-1-EH1包括槽122-1—122-3(统称,槽122)(如横纹的框所示)和代理160-1-A1(如网纹框所示)。应当理解,尽管端主机120-1-EH1中图示了3个槽时,端主机120中的每一个端主机可以包括更少或者更多的槽(出于清晰的目的已省略剩余槽),包括一些端主机没有槽。应当进一步理解,尽管端主机120中的每一个端主机中图示了一个(1)代理时(例如,代理160-1-A1—160-1-A5和160-2-A1—160-2-A5),端主机120中的每一个端主机可以包括更少或者更多的代理,包括一些端主机没有代理。
槽122是被配置为服务应用程序实例服务客户端190-1和190-2(统称,客户端190)的所分配的资源的集合。在此使用的术语“槽”可以是比如包括处理/计算、存储器或者网络资源或者虚拟存储的虚拟机的分配的资源的任意合适的集合。
ToR交换机130在相关联的机架中的端主机和合适的聚合交换机之间交换数据。例如,ToR交换机130-1经由聚合交换机150-1或者150-2将数据从机架110-1中的端主机交换至其他机架(例如,机架110-2)中的端主机。
RE箱140执行冗余消除。特别地,RE箱140缓存接收的数据并且抑制重复的流量。应当理解,虽然图示了两个(2)RE箱,系统100可以包括更少或者更多的RE箱。应当进一步理解,尽管图示为在系统100中被放置在ToR交换机之后,RE箱可以被放置在系统100的任何合适的部分以执行冗余消除。此外,尽管图示为独立的组件,RE箱140可以包括任何配置,比如:(a)独立的冗余消除组件;(b)位于比如端主机120中的一个或者多个端主机或者ToR交换机130中的一个或者多个ToR交换机的组件上的软件模块;(c)或者任何其他配置组合。
例如,源RE箱(例如,RE箱140-1)可以创建与从端主机(例如,端主机120-1-EH1)接收的数据相关联的标识符并且将所创建的标识符传输至目标RE箱(例如,RE箱140-2)。在源RE箱和目标箱之间(任何方向)的接下来的传输中,源RE箱(例如,RE箱140-1)可以通过将新接收的数据中接下来的重复的字节序列替换为所创建的标识符来执行数据去重以减少应用程序延时和节省带宽。在本示例中,接收RE箱(例如,RE箱140-2)使用所创建的标识符检索完整存储的字节序列并且将取回的字节序列转发至其目的地(例如,端主机120-2-EH1)。
聚合交换机150在相关联的ToR交换机和网络180之间交换数据。例如,ToR交换机130-1-1经由合适的聚合交换机(例如,聚合交换机150-1或者150-2)将数据从机架110-1中的资源交换至网络180。
代理160-1-A1—160-1-A5、160-2-A1—160-2-A5、160-3-A1—160-3-A2和160-4-A1—160-4-A2(统称,代理160)测量通信中(例如,槽到槽)的冗余并且经由一个或者多个合适的冗余消除可感知的数据中心链接向放置控制器170报告这些测量值。在此使用的术语“冗余”意味着能够被RE箱140去重的任何内容序列,并且应当广义地理解为包括任何重复的内容序列。应当理解,尽管图示为位于端主机120、ToR交换机130和聚合交换机150中的每一个中,系统100可以包括代理的任何配置。例如,代理可以部署在:(a)一部分或者所有端主机120上;(b)一部分或者所有端主机120上,以及一部分或者所有聚合交换机150上;(c)或者任何其他配置组合。
端主机120上,代理可以对于位于端主机上的槽来监控槽到槽的通信。ToR交换机130上,代理可以监控:(a)来自机架内的不同端主机上的槽的槽到槽的通信;(b)机架内端主机间的通信;(c)机架内的端主机和其他机架上的端主机间的通信;或者(d)等等。在包括分布式的数据中心设置的实施例中,聚合交换机150上的代理可以监控向其他数据中心传出的通信。
放置控制器170包括将槽(例如,槽122中的一个或者多个槽)分配给容器(例如,分布式的数据中心中机架110或者数据中心中的一个)。应当理解,尽管在此图示了一个(1)放置控制器,系统100可以包括多个放置控制器或者可以存在对于一组数据中心的一个放置控制器。在这些实施例中的一些实施例中,尽管放置控制器170被图示于系统100内,放置控制器170可以被放置在系统100外并且经由网络180连接至系统100。
冗余消除可感知的数据中心链接195-1和链接195-2支持在一个或者多个通信信道上通信,比如:无线通信(例如,LTE、GSM、CDMA、蓝牙);毫微微蜂窝通信(例如,WiFi);分组网络通信(例如,IP);宽带通信(例如,DOCSIS和DSL);存储通信(例如,光纤通道,iSCSI)等。应当理解,尽管被描述为一个连接,链接可以是任意数量的通信信道或者通信信道的组合。
网络180包括任意数量的接入节点和边缘节点和接入网络设备和边缘网络设备以及任意数量的链接和链接的配置(出于清晰的目的而未示出)。此外,应当理解,网络180可以包括无线或者有线网络的任意组合和任意数量的无线或者有线网络,包括:LTE、GSM、CDMA、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、城域网(MAN)等。
客户端190-1和190-2可以包括能够在网络180上经由链接195-1或者195-2中的合适的一个链接发送或者接收信息的任何类型的通信设备。例如,通信设备可以是瘦客户端、智能手机(例如,客户端190-2)、个人电脑或者膝上电脑(例如,190-1)、服务器、网络设备、平板电脑、电子阅读器等。通信设备可以依赖于示例性的系统内的其他资源以执行比如处理或者存储的任务中的一部分任务,或者可以能够独立地执行任务。应当理解,尽管在此图示了两个客户端,系统100可以包括更少或者更多的客户端。此外,由于操作期间在多个时刻可以从系统增加或者减少客户端,在任一时刻的客户端的数量可以是动态的。
在一些实施例中,槽122中的一些或者一部分槽是虚拟机。
在一些实施例中,槽122中的一些或者一部分槽是虚拟化的存储。
在一些实施例中,ToR交换机130是以太网交换机。
在一些实施例中,聚合交换机150是层2以太网交换机。
在冗余消除可感知的数据中心100的一些实施例中,冗余可感知的数据中心100是分布式的数据中心的系统中的分布式的数据中心。在这些实施例中的一些实施例中,可以将RE箱140放置在聚合交换机150之后(例如,聚合交换机150和网络180之间)以代替或者补充在ToR交换机130之后、其所图示的放置。有利地,如果冗余可感知的数据中心100没有容纳应用程序实例的所有槽(例如,一些槽被分配在其他数据中心中),那么冗余可感知的数据中心100可以被用于减少数据中心间的流量,以便更有效地利用这些分布式的数据中心间的带宽。
图2描述了图示用于冗余消除可感知的系统(例如,图1的冗余消除可感知的数据中心100)来执行冗余消除可感知的槽放置的方法200的实施例的流程图。该方法包括一个或者多个代理160-1—160-N(例如,图1的代理160中的一个或者多个代理)收集冗余测量值(步骤210-1—210-N)并且基于对于已经发生了报告触发的确定(步骤220-1—220-N)向放置控制器170(例如,图1的放置控制器170)报告所收集的测量值(步骤230-1—230-N)。该方法进一步包括放置控制器170从代理160-1—160-N接收测量值(步骤250)并且基于对于已经发生了放置触发的确定(步骤260)来基于所接收的测量值执行槽放置(步骤270)。
在方法200中,步骤210-1—210-N包括收集冗余测量值。特别地,测量值包括槽通信模式和确定的与槽对相关联的冗余。通信模式可以是槽间所收集的测量值的流量矩阵,并且确定的冗余可以包括在流量矩阵中槽对槽的通信间所识别的冗余流量。
方法200中,步骤220-1—220-N包括确定已经发生了报告触发。基于触发的确定,该方法要么相应地进行至步骤230-1—230-N中的一个步骤,要么相应地回到步骤220-1—220-N中的一个步骤。触发可以是以信号通知应当将所收集的测量值发送至放置控制器170的任何合适的事件。例如,触发事件可以是:(a)以阈值间隔周期性地触发的;(b)基于分别在步骤210-1—210-N中的一个步骤收集的测量值;(c)基于对于来自放置控制器170的请求的接收;或者(d)等等。应当理解,多个触发事件可以同时发生。
方法200中,步骤230-1—230-N包括向放置控制器170报告所收集的测量值。特别地,所收集的测量值可以以任何合适的形式报告,比如:(a)未加工的所收集的测量值;(b)所收集的测量值的聚合;或者(d)等等。
方法200中,步骤250包括从代理160-1—160-N中的一个或者多个代理接收测量值。
应当理解,测量值可以被推送或者被拉取至执行方法的装置。
方法200中,步骤260包括确定放置触发已经发生。基于触发的确定,该方法要么进行至步骤270,要么回到步骤260。触发可以是以信号通知应当执行放置的任何合适的事件。例如,触发事件可以是:(a)以阈值间隔周期性地触发的;(b)基于在步骤250接收的代理测量值;或者(c)等等。应当理解,多个触发事件可以同时发生。质量阈值可以是任何合适的阈值,比如与估计的最佳有效容器间带宽相比大于阈限的当前有效容器间带宽。
方法200中,步骤270包括在端主机(例如,图1中的端主机120)内放置槽。特别地,待放置在端主机中的槽被确定并且基于步骤250中接收的代理测量值被放置在端主机中。
在步骤210-1—210-N中的一个或者多个步骤的一些实施例中,冗余测量值包括槽到槽的通信中通信内冗余或者通信间冗余中的冗余的测量值。
在此使用的术语“通信内冗余”意味着槽到槽的通信内的冗余并且应当广义地理解为包括任何槽到槽的通信之间的冗余。例如,(a)图1的槽122-1和122-3之间;(b)122-1和图1的端主机120-2-EH1中的槽(未示出)之间;(c)图3的322-SLOT1和322-SLOT2之间或者(d)图3的322-SLOT1和322-SLOT3之间的冗余。
在此使用的术语“通信间冗余”意味着两个槽到槽的通信间的冗余,并且应当广义地理解为包括任意两个槽到槽的通信之间的冗余。例如,(a)图1的槽122-1/122-3的槽到槽对以及122-1和在端主机120-2-EH1的槽(未示出)之间的冗余;或者(b)图3的槽到槽对322-SLOT1/322-SLOT3以及槽到槽对322-SLOT2/322-SLOT4之间的冗余是通信间冗余。
在步骤250的一些实施例中,可以提供API用于放置控制器和代理之间的通信(例如,放置控制器170和图1的代理160中的一个或者多个代理)。在这些实施例中的一些实施例中,放置控制器可以从一个或者多个代理请求所收集的冗余测量值中的一部分冗余测量值中的全部冗余测量值。
在一些实施例中,步骤260和270中的部分可以被同时执行。例如,步骤260中的放置触发可以包含确定当前有效容器间带宽是否达到估计的最佳的有效容器间带宽。应当理解,确定估计的最佳有效容器间带宽可以需要虚拟机的最佳放置的确定。正因如此,在步骤260和270两者中可以使用虚拟机的相同的确定的最佳放置。
图3图示了冗余消除可感知的数据中心100中冗余的功能框图300。图表300包括机架310-1和310-2(例如,图1中机架110中的两个机架)和RE箱340-1和340-2。机架310-1包括槽322-SLOT1和322-SLOT2以及机架310-2包括槽322-SLOT3和322-SLOT4。数据传输路径390-1—390-7图示了组件之间的数据传输路径。RE箱被放置为对由数据传输390-4所示的网络链接上的数据去重。
在比如分布式的数据中心实施例的一些实施例中,机架310-1和310-2可以是数据中心。
在一些实施例中,RE箱340-1或者340-2可以包括多于一个RE箱。例如,不同的RE箱可以是运行在端主机中的一个或者多个端主机上的软件模块。
在以下示例中,假定下列内容:
1)可以将四个虚拟机:VM1、VM2、VM3和VM4中的一个虚拟机分配给槽322-SLOT1—322-SLOT4中的每一个槽;
2)VM1→VM3和VM2→VM4之间存在通信间冗余(即,数据传输之间存在可以由RE箱340-1和340-2去重的高相似性);
3)VM1和VM2之间数据流量的带宽需求是8V;
4)VM1和VM3之间数据流量的带宽需求是10V;
5)VM3和VM4之间数据流量的带宽需求是8V;以及
6)VM2和VM4之间数据流量的带宽需求是10V。
在第一示例中,将四个虚拟机分配给使用基于带宽的放置策略的槽,该基于带宽的放置策略将具有更高带宽流量的VM对放置在相同的机架内。正因如此,VM1和VM3被放置在相同的机架中并且VM2和VM4被放置在相同的机架中。例如放置可以是:将VM1分配给322-SLOT1,将VM3分配给322-SLOT2,将VM2分配给322-SLOT3以及将VM4分配给322-SLOT4。因此跨域数据传输链接的带宽需求将是:
7)经由390-1,322-SLOT1和322-SLOT2之间的带宽需求是10V;
8)经由390-2→RE箱340-1→390-4→RE箱340-2和390-5,322-SLOT1和322-SLOT3之间的带宽需求是8V;
9)经由390-3→RE箱340-1→390-4→RE箱340-2和390-6,322-SLOT2和322-SLOT4之间的带宽需求是7V;以及
10)经由390-7,322-SLOT3和322-SLOT4之间的带宽需求是10V。
在本示例中,机架间带宽需求(即,数据传输390-4上的带宽)是如下所示的15V。
8V用于槽322-SLOT1和槽322-SLOT3之间的流量
+7V用于槽322-SLOT2和槽322-SLOT4之间的流量。
在第二示例中,四个虚拟机被分配给使用在此所述的冗余消除可感知的放置策略的槽。正因如此,VM1和VM2被放置在相同的机架中并且VM3和VM4被放置在相同的机架中。例如放置可以是:将VM1分配给322-SLOT1,将VM2分配给322-SLOT2,将VM3分配给322-SLOT3以及将VM4分配给322-SLOT4。因此跨越数据传输链接的带宽需求将是:
11)经由390-1,322-SLOT1和322-SLOT2之间的带宽需求是8V;
12)经由390-2→RE箱340-1→390-4→RE箱340-2和390-5,322-SLOT1和322-SLOT3之间的带宽需求是10V;
13)经由390-3→RE箱340-1→390-4→RE箱340-2和390-6,322-SLOT2和322-SLOT4之间的带宽需求是10V;以及
14)经由390-7,322-SLOT3和322-SLOT4之间的带宽需求是7V。
在本示例中,机架间带宽需求(即,数据传输390-4上的带宽)是如下所示的10V。应当理解,在本示例中当通信间冗余槽对穿过允许数据的去重的RE箱对340-1和340-2,利用了通信间冗余(即,数据传输322-SLOT1→322-SLOT3和322-SLOT2→322-SLOT4之间的相似性)。
10V用于槽322-SLOT1和槽322-SLOT3之间的流量
+10V用于槽322-SLOT2和槽322-SLOT4之间的流量
-10V用于由RE箱对340-1和340-2去重的数据。
因此,在本示例中,通过利用数据传输间的高相似性,冗余消除可感知的放置策略在基于带宽的放置策略之上将机架间(或者分布式的数据中心的数据中心间)的带宽使用量显著地降低了33%(即,10V相比于15V)。
图4描述了图示用于放置控制器(例如,图1的放置控制器160)如图2的步骤270中所示的在端主机中放置槽的方法400的实施例的流程图。该方法包括基于确定的一组待放置的槽(步骤420)、确定的通信模式(步骤440)和确定的槽通信冗余(步骤460)来放置槽(步骤480)。
方法400中,步骤420包括确定待放置的槽的数量和类型。特别地,执行该方法的装置确定了支持服务客户端(例如,图1中的客户端190)的应用程序实例所需要的槽的数量和类型。
方法400中,步骤440包括确定通信模式。特别地,通信模式来源于从一个或者多个代理(例如,图2中的步骤250)接收的通信模式。可以使用任何合适的机制得到通信模式,比如:(a)使用所接收的通信模式;(b)修改所接收的通信模式;(c)聚合所接收的通信模式;或者(d)等等。
方法400中,步骤460包括确定通信冗余。特别地,通信冗余来源于从一个或者多个代理(例如,图2中的步骤250)接收的通信冗余。可以使用任何合适的机制得到通信冗余,比如:(a)使用所接收的通信冗余;(b)修改所接收的通信冗余;(c)聚合所接收的通信冗余;或者(d)等等。
方法400中,步骤480包括基于确定的所需要的槽、确定的通信模式和确定的槽冗余来执行冗余消除可感知的放置策略。特别地,冗余消除可感知的放置策略考虑了槽到槽的通信的数据传输中的冗余并且放置槽以利用数据传输中的冗余同时最小化整体的机架间(或者数据中心间)的带宽使用量。
在一些实施例中,步骤480包括将槽的放置基于跨越机架的槽到槽的数据传输的通信内冗余,以及跨越机架的两个槽到槽的传输的通信间冗余。在一些实施例中,替代于跨越机架或者除了跨越机架之外,跨越数据中心(例如,分布式的设置中的数据中心)来确定通信内冗余和通信间冗余。
在一些实施例中,步骤480包括使用传统的整数线性规划或者经典的优化技术来确定槽放置。传统的优化技术包括确定最佳地获得既定目标或者目的的行动。可以通过最大化或者最小化目标函数的值来确定最佳地获得目标或者目的的行动。在一些实施例中,目标函数的目的或者度量可以是为了最小化整体的容器间(例如,机架间或者数据中心间)的带宽使用量(例如,其中ua,b代表容器Ca和Cb之间使用的带宽)。
问题可以被表示为:
优化:
[E.1]y=f(x1,x2,…,xn)
约束条件:
其中方程式E.1是目标函数并且方程式E.2制定了施加在解决方案上的约束条件的集合。xi变量x1,x2,……,xn表示决定变量的集合并且y=f(x1,x2,…,xn)是用这些决定变量表示的目标函数。应当理解,可以最大化或者最小化目标函数。
在这些实施例中的任何实施例中的一些实施例中,约束条件可以是以下的一个或者多个条件:
1.其中将每一个槽放置在一个容器中并且xi,j是指示槽(i)放置在容器(j)中的变量。
2.其中每一个容器(j)具有关于容器可以容纳的槽的最大数量的极值Maxj(例如,基于容量或者配置参数)。
3.yj,a,k,b≥xj,a+xk,b–1;其中yj,a,k,b表示变量,如果槽(i)被放置在容器(a)中并且槽(k)被放置在容器(b)中该变量为1,否则为0。
4.对于跨容器的使用量的带宽是基于每一种类型的流量的贡献(即,单独的,冗余内的以及冗余间的)。
a.独特的数据传输对于容器Ca和Cb之间的带宽使用量的贡献是Σj,k,j≠kUnij,k×yj,a,k,b。其中Unij,k是槽j和k之间独特的流量的数量。如果槽(j)被放置在容器Ca中并且槽(k)被放置在容器Cb中,那么它将向容器间的带宽使用量贡献Ca→Cb。
b.冗余内的数据传输对于容器Ca和Cb之间的带宽使用量的贡献是0。应当理解冗余内的数据将被RE机制抑制。
c.冗余间的数据传输对于带宽使用量的贡献如下来计算:Σj,k,l,m,j≠lork≠ mInterj,k,l,m×zj,l,a,k,m,b。其中Interj,k,l,m表示槽间冗余,以及zj,l,a,k,m,b是表示槽间冗余何时将被抑制的变量。例如,当槽(j)和槽(k)分别被放置在容器Ca和Cb中时(即yj,a,k,b=1),并且槽(l)和槽(m)也分别被放置在容器Ca和Cb中(即yl,a,m,b=1),槽间冗余数据将被RE机制抑制并且因此zj,l,a,k,m,b=0。然而,如果yj,a,k,b=1并且yl,a,m,b=0,槽间冗余将不被抑制并且因此zj,l,a,k,m,b=1。
5.Ca和Cb之间的带宽小于可用带宽BWa,b:ua,b≤BWa,b。
6.一个或者多个槽被限制于一个或者多个已识别的容器(例如,xj,a=0)。
图5描述了图示用于如图4的步骤480中所示的放置槽的方法500的实施例的流程图。该方法包括确定簇的数量(步骤520),将槽分配给可用的簇(步骤540),以及将簇分配给容器(步骤560)。
方法500中,步骤520包括确定簇的数量。特别地,将确定数量的待放置的槽(例如,图4中的步骤420)划分为“K”个簇,使得可以将每一个所划分的簇分配在至少一个容器中。在此使用的术语“容器”可以是能够聚合槽的任何合适的组件比如数据中心设置内的机架或者分布式的数据中心设置内的数据中心本身。
在一些实施例中,容器是机架。
在一些实施例中,容器是数据中心。
图6描述了图示用于如图4的步骤480以及图5的步骤520、540和560中所示放置槽的方法600的实施例的流程图。
方法600中,如在此所述,步骤610包括选择簇的数量“K”。其中K是簇的数量,确定的槽被分发给这些簇。
方法600中,步骤620包括将若干随机槽中的每一个槽分配给一个可用的容器。在这些实施例中的一些实施例中,所分配的随机槽的数量是“K”。
方法600中,步骤630和640包括对于每一个剩余的待分配的槽“S”(步骤640),基于所计算的到每一个可用簇的距离在可用的簇中放置槽“S”(步骤630)。
方法600中,步骤650包括基于有效容器间带宽使用量度量将簇分配给容器。
方法600可选地包括步骤660。步骤660包括确定在步骤650中所确定的有效容器间带宽使用量是否达到所计算的最佳的以及所确定的放置是否满足每一容器间流量(R1,R2)应当小于BW(R1,R2)的约束条件。确定计算的最佳的有效容器间带宽使用量可以使用任何合适的方法完成,比如:(a)设置迭代计数并且选择最佳值;(b)将来自步骤650的确定的有效容器间带宽使用量与预定的阈值相比较;或者(c)等等。
方法600中,步骤670包括优化确定的槽放置。特别地,槽放置的优化包括确定移动容器对是否将改善有效容器间带宽使用量。例如,将C1中的S1与C2中的S2交换可以基于将容器C1中的S1移动至容器C2以及将容器C2中的S2移动至C1会改善有效容器间带宽使用量的确定。
在步骤610的一些实施例中,基于每一个容器中可用槽的数量来选择K。
在步骤610的一些实施例中,随机地选择K。
在一些实施例中,步骤630包括计算到每一个可用簇的距离并且基于所计算的到每一个可用簇的距离在可用簇中放置槽S。其中可用簇是未填满的簇(即,已经分配了超过容量的槽)。
在步骤630的这些实施例中的一些实施例中,计算到每一个候选簇(例如,簇C)的距离是基于有效带宽度量(M)。特别地,有效带宽度量是从槽S到簇中任何其他槽的数据传输内(通信内冗余)的和跨越簇中槽S到任意槽i以及槽S到任意槽j的数据传输(通信间冗余)的冗余消除后所需要的带宽。
在这些实施例中的一些实施例中有效带宽度量如伪代码行(1)—(3)所述来计算。
(3)M(S)=M_from(S)+M_to(S)
其中:函数Demand(slot-i,slot-j)返回槽“i”和“j”之间的带宽需求;函数IntraRedundancy(slot i,slot j)返回从槽i到槽j的数据传输的通信内冗余;以及函数InterRedundancy(slot i,slot j,slot k,slot l)返回数据传输(槽i,槽j)和数据传输(槽k,槽l)之间的通信间冗余。
在步骤630的一些实施例中,簇放置的选择是基于所计算的到簇C的最小平均距离(Min(C))。在这些实施例中的一些实施例中,Min(C)如伪代码行(4)—(6)所示来计算。
(4)for每一个簇C
(5)计算AvgDistance(C)=(1/N*1/M(S));
//其中N是簇C中槽的数量
(6)Min(C)=Min|AvgDistance(C)|
应当理解,通过对有效带宽度量(例如,M(S))求逆以及选择最小的(槽,容器)对,具有对容器的高带宽需求的槽将被放置在该容器中,潜在地降低了将穿越容器的流量(例如,减少有效的容器间带宽使用量)。
在一些实施例中,如图7所述的步骤610—640。其中VM是虚拟机(例如,一种类型的槽);Mindistu是到簇C的最小平均距离;MinVM和MinC分别是与Mindistu相关联的虚拟机和容器;Uniu,v是虚拟机u和v之间的独特的流量的总量;以及Interj,k,l,m是用于VMj→VMk以及VMl→VMm的数据传输间的冗余的虚拟机间冗余流量需求。
在步骤650的一些实施例中,有效的容器间带宽使用量被计算为所有的容器间带宽需求的总和减去容器间的冗余的流量(包括通信内冗余流量和通信间冗余流量两者)。在这些实施例中的一些实施例中,有效的容器间带宽使用量如伪代码行(7)—(10)所示来计算。
(7)有效容器间带宽使用量=0
(8)for成对的每一个容器Ci,Cj
(9)找到(槽i,槽j)通信的列表使得槽i和槽j在不同的容器中;
//其中槽i和槽k在一个容器中并且
//槽j和槽k在另一容器中
在一些实施例中,步骤650如图8所述。其中VM是虚拟机(例如,一种类型的槽);Uniu,v是虚拟机u和v之间的独特的流量的总量;以及Interj,k,l,m是用于VMj→VMk以及VMl→VMm的数据传输间的冗余的虚拟机间冗余流量需求。
在步骤670的一些实施例中,优化确定如伪代码行(11)—(16)所示来计算。
(11)for每一对容器Ci,Cj;
(12)for Ci中的每一个槽k;
(13)for Cj中的每一个槽l,确定将槽k与槽l交换是否改善有效的容器间带宽使用量;
(14)选择槽lmax
//其中lmax是具有最佳的所计算的
//有效的容器间带宽使用量度量的槽l;
(15)if槽k≠槽lmax&&
该交换没有违背容器间带宽约束条件
(16)将槽k与槽lmax交换;
在一些实施例中,步骤670如图9所述。
在一些实施例中,方法600包括槽放置的约束条件。特别地,对于一些槽,仅一个子集的容器可用于槽放置。在这些实施例中的一些实施例中,可用容器的子集的选择是基于服务质量度量,比如时延。
在这些实施例中的一些实施例中,选择了若干容器(“K”)并且通过使用一对一对应以及确保槽放置的约束条件得到满足,随机选择的K个槽的集合分配给K个容器。步骤630中,在计算槽到容器的距离中,仅考虑了满足槽放置约束条件的容器。步骤670中,仅执行了满足槽放置的约束条件的交换。
尽管主要按特殊的顺序来描绘和描述,应当理解,可以按任何合适的顺序执行方法200、400、500和600中所示的步骤。此外,由一个步骤标识的步骤也可以按顺序以一个或者多个其他步骤来执行或者多于一个步骤的共同的动作可以仅被执行一次。
应当理解,各种上述方法的步骤可以由经编程的计算机来执行。在此,一些实施例也意图为包括程序存储设备,例如数据存储介质,程序存储设备是机器或者计算机可读的并且编码了机器可执行的或者计算机可执行的指令的程序,其中所述指令执行所述上述方法中的一些或者所有的步骤。该程序存储设备可以是,例如,数字存储器、比如磁盘和磁带的磁存储介质、硬盘驱动器或者光可读的数据存储介质。实施例也意图为包括被编程为执行上述方法的所述步骤的计算机。
图10示意性地图示了各种装置1000,比如图1的端主机120中的一个端主机、ToR交换机130中的一个ToR交换机、聚合交换机150中的一个聚合交换机或者放置控制器170,的实施例。装置1000包括处理器1010、数据存储1011和可选地输入/输出接口1030。
处理器1010控制装置1000的操作。处理器1010与数据存储1011协作。
数据存储1011可以适当地存储比如冗余测量值、通信模式等的程序数据。数据存储1011也存储由处理器1010可执行的程序1020。
处理器可执行的程序1020可以适当地包括代理收集程序1021、放置控制器程序1023、放置控制器放置程序1025、或者输入/输出接口程序1027。处理器1010与处理器可执行的程序1020协作。
输入/输出接口1030与处理器1010和输入/输出接口程序1027协作以支持在任何合适的通信信道比如图1的链路上的通信。
如上所述,代理收集1021执行图2的方法200的步骤210-1、220-1和230-1。
如上所述,放置控制器程序1023执行图5的方法200的步骤250、260和270。
如上所述,放置控制器放置程序1025执行图2的方法270的步骤、图4的步骤、图5的步骤或者图6的步骤。
在一些实施例中,处理器101可以包括比如处理器/CPU内核的资源,输入/输出接口1030可以包括任何合适的网络接口,或者数据存储1011可以包括存储器或者存储设备。此外装置1000可以是任何合适的物理硬件配置,比如:一个或者多个服务器,包括比如处理器、存储器、网络接口或者存储设备的组件的刀片。在这些实施例中的一些实施例中,装置1000可以包括彼此远离的云网络资源。
在一些实施例中,装置1000可以是虚拟机。在这些实施例中的一些实施例中,虚拟机可以包括来自不同机器的或者地理上分散的组件。例如,数据存储1011和处理器1010可以在两个不同的物理机器中。
在一些实施例中,装置1000可以是被编程为执行方法200、400、500或者600的通用计算机。
当在处理器1010上实现处理器可执行的程序1020时,程序代码段与处理器结合以提供类似于特定逻辑电路地操作的独特的设备。
尽管在此所描绘和描述的关于这样的实施例,其中,例如,在数据存储中存储程序和逻辑并且存储器被通信地连接至处理器,应当理解,这样的信息可以以任何其他合适的方式(例如,使用任何合适数量的存储器、存储或者数据库)来存储;使用通信地连接至设备的任何合适的安排的存储器、存储或者数据库的任何合适的安排;在存储器、存储或者内部数据库或者外部数据库的任何合适的组合中存储信息;或者使用任何合适数量的可访问外部存储器、存储或者数据库。因此,这里所引用的术语数据存储意在包括存储器,存储和数据库的所有适当组合。
描述和附图仅说明本发明的原理。因此应当理解,本领域的技术人员将能够设计不同的安排,尽管在此没有明确描述或者示出,这些安排体现了本发明的原理并且被包括在本发明的精神和范围之内。此外,在此所述的所有示例主要地清楚地意图为仅用于教导的目的以帮助读者理解本发明的原理以及由发明人为了推进技术所贡献的概念,并且应被理解为不限于这些具体描述的示例和条件。此外,在此描述了本发明的原理、方面和实施例及其具体示例的所有陈述意图为包括其等价物。
图中所示的各种元素的功能,包括标记为“处理器”的任何功能块,可以通过专用硬件以及能够执行与适当的软件相关联的软件的硬件。当由处理器提供时,这些功能可以由单一的专用处理器提供,由单一的共享处理器提供,或者由多个单独的处理器提供,其中的一些处理器可以被共享。此外,术语“处理器”或“控制器”的显式的使用不应当被理解为仅指代能够执行软件的硬件,而可以隐含地包括但不限于,数字信号处理器(DSP)硬件、网络处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)和非易失性存储器。也可以包括常规的和/或定制的其他硬件。类似地,图中所示的任何交换机仅是概念性的。它们的功能可以通过程序逻辑的操作、通过专用逻辑、通过程序控制和专用逻辑的交互、或者甚至手动地、如从上下文更具体地理解的由实现者可选择的特定的技术来执行。
应当理解,在此的任何框图代表体现本发明的原理的说明性的电路的概念视图。类似地,应当理解,任何流程表、流程图、状态转换图、伪代码等代表各种过程,这些过程可以基本上表示在计算机可读媒介中并且因此由计算机或者处理器执行,无论该计算机或者处理器是否明确示出。
Claims (9)
1.一种用于提供槽放置的装置,所述装置包括:
数据存储;以及
处理器,被通信地连接至所述数据存储,所述处理器被配置为:
确定多个容器内待放置的多个槽;
基于所述多个槽中的至少一部分槽之间的通信冗余来确定多个冗余参数;
基于所述多个冗余参数确定在所述多个容器中所述多个槽的放置;以及
基于如下确定来交换第一放置的槽和第二放置的槽:容器间带宽使用量将得到改善并且所述交换满足一个或者多个容器间带宽约束条件。
2.根据权利要求1所述的装置,其中所述冗余参数是基于所述多个槽中的至少一部分槽的通信内冗余和通信间冗余。
3.根据权利要求2所述的装置,其中所述冗余参数是基于所述多个槽中的至少一部分槽的通信模式。
4.根据权利要求1所述的装置,其中所述多个槽的所述放置的所述确定包括将所述处理器配置为:
确定多个簇;
将所述多个槽中的至少一部分槽中的每一个槽分配给所述多个簇中的至少一个簇;以及
将所述多个簇中的至少一部分簇中的每一个簇分配给所述多个容器中的所述至少一个容器。
5.根据权利要求4所述的装置,其中所述多个槽中的所述部分槽的所述分配是基于冗余消除以后所需的槽带宽的。
6.根据权利要求5所述的装置,其中所述多个簇中的所述部分簇的所述分配是基于有效容器间带宽使用量的。
7.一种用于提供槽放置的方法,所述方法包括:
在通信地连接至数据存储的处理器处,确定多个容器内待放置的多个槽;
由与所述数据存储协作的所述处理器基于所述多个槽的至少部分之间的通信冗余来确定多个冗余参数;
由与所述数据存储协作的所述处理器来基于所述多个冗余参数确定在所述多个容器中所述多个槽的放置;以及
由与所述数据存储协作的所述处理器基于如下确定来交换第一放置的槽和第二放置的槽:容器间带宽使用量将得到改善并且所述交换满足一个或者多个容器间带宽约束条件。
8.根据权利要求7所述的方法,其中确定所述多个槽的所述放置的步骤包括:
由与所述数据存储协作的所述处理器来确定多个簇;
由与所述数据存储协作的所述处理器来将所述多个槽中的至少一部分槽中的每一个槽分配给所述多个簇中的至少一个簇;以及
由与所述数据存储协作的所述处理器来将所述多个簇中的至少一部分簇中的每一个簇分配给所述多个容器中的所述至少一个容器。
9.根据权利要求8所述的方法,其中分配所述多个槽中的所述部分槽的所述步骤是基于冗余消除以后所需的槽带宽的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/584,859 US9104462B2 (en) | 2012-08-14 | 2012-08-14 | Method and apparatus for providing traffic re-aware slot placement |
US13/584,859 | 2012-08-14 | ||
PCT/US2013/051436 WO2014028175A1 (en) | 2012-08-14 | 2013-07-22 | Method and apparatus for providing traffic re-aware slot placement |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104583954A CN104583954A (zh) | 2015-04-29 |
CN104583954B true CN104583954B (zh) | 2017-08-25 |
Family
ID=49213062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380043206.6A Active CN104583954B (zh) | 2012-08-14 | 2013-07-22 | 用于提供流量冗余消除可感知的槽放置的方法和装置 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9104462B2 (zh) |
EP (1) | EP2885706B1 (zh) |
JP (1) | JP6385932B2 (zh) |
KR (1) | KR20150034265A (zh) |
CN (1) | CN104583954B (zh) |
IN (1) | IN2015DN00456A (zh) |
WO (1) | WO2014028175A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9678800B2 (en) * | 2014-01-30 | 2017-06-13 | International Business Machines Corporation | Optimum design method for configuration of servers in a data center environment |
US20150304450A1 (en) * | 2014-04-17 | 2015-10-22 | Alcatel Lucent Canada,Inc. | Method and apparatus for network function chaining |
CN108475210B (zh) * | 2015-12-23 | 2021-05-11 | 华为技术有限公司 | 机架感知 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7120904B1 (en) * | 2000-04-19 | 2006-10-10 | Intel Corporation | Data-flow method for optimizing exception-handling instructions in programs |
US20080172526A1 (en) * | 2007-01-11 | 2008-07-17 | Akshat Verma | Method and System for Placement of Logical Data Stores to Minimize Request Response Time |
JP2008299791A (ja) * | 2007-06-04 | 2008-12-11 | Hitachi Ltd | 仮想計算機システム |
JP5131915B2 (ja) * | 2008-03-31 | 2013-01-30 | 国立大学法人 東京大学 | パケット符号化方法および装置ならびに復号方法および装置 |
US8102781B2 (en) * | 2008-07-31 | 2012-01-24 | Cisco Technology, Inc. | Dynamic distribution of virtual machines in a communication network |
JP2010108409A (ja) * | 2008-10-31 | 2010-05-13 | Hitachi Ltd | ストレージ管理方法及び管理サーバ |
US20100254377A1 (en) * | 2009-04-03 | 2010-10-07 | Srinivasa Aditya Akella | Network Routing System Providing Increased Network Bandwidth |
JP2011070464A (ja) * | 2009-09-28 | 2011-04-07 | Hitachi Ltd | 計算機システム及び計算機システムの性能管理方法 |
US8589921B2 (en) * | 2009-11-30 | 2013-11-19 | Red Hat Israel, Ltd. | Method and system for target host optimization based on resource sharing in a load balancing host and virtual machine adjustable selection algorithm |
US8478878B2 (en) * | 2010-03-11 | 2013-07-02 | International Business Machines Corporation | Placement of virtual machines based on server cost and network cost |
US20110283062A1 (en) * | 2010-05-14 | 2011-11-17 | Hitachi, Ltd. | Storage apparatus and data retaining method for storage apparatus |
US9083708B2 (en) * | 2010-05-17 | 2015-07-14 | Microsoft Technology Licensing, Llc | Asymmetric end host redundancy elimination for networks |
US8667171B2 (en) * | 2010-05-28 | 2014-03-04 | Microsoft Corporation | Virtual data center allocation with bandwidth guarantees |
US9110727B2 (en) * | 2010-10-05 | 2015-08-18 | Unisys Corporation | Automatic replication of virtual machines |
US8681649B2 (en) * | 2011-08-01 | 2014-03-25 | Cisco Technology, Inc. | System and method for adaptive optimization of resource utilization for redundancy elimination |
US9281865B2 (en) * | 2011-10-13 | 2016-03-08 | Cisco Technology, Inc. | Efficient network discovery in frequency hopping networks |
US9201697B2 (en) * | 2012-01-23 | 2015-12-01 | International Business Machines Corporation | System and method to reduce memory usage by optimally placing VMS in a virtualized data center |
US20130268672A1 (en) * | 2012-04-05 | 2013-10-10 | Valerie D. Justafort | Multi-Objective Virtual Machine Placement Method and Apparatus |
-
2012
- 2012-08-14 US US13/584,859 patent/US9104462B2/en active Active
-
2013
- 2013-07-22 CN CN201380043206.6A patent/CN104583954B/zh active Active
- 2013-07-22 KR KR20157003939A patent/KR20150034265A/ko not_active Application Discontinuation
- 2013-07-22 EP EP13763336.8A patent/EP2885706B1/en active Active
- 2013-07-22 WO PCT/US2013/051436 patent/WO2014028175A1/en active Application Filing
- 2013-07-22 JP JP2015527467A patent/JP6385932B2/ja active Active
-
2015
- 2015-01-19 IN IN456DEN2015 patent/IN2015DN00456A/en unknown
- 2015-06-05 US US14/731,980 patent/US20150278146A1/en not_active Abandoned
Non-Patent Citations (2)
Title |
---|
"Improving the Scalability of Data Center Networks with Traffic-aware Virtual Machine Placement";xiaoqiao meng等;《INFOCOM, 2010 Proceedings IEEE》;20100506;全文 * |
"Stratos:Virtual Middleboxes as First-Class Entities";Aaron Gember等;《http://pages.cs.wisc.edu/~akella/CS838/F12/838-CloudPagers/Stratos.pdf》;20120618;第8-9页 * |
Also Published As
Publication number | Publication date |
---|---|
KR20150034265A (ko) | 2015-04-02 |
CN104583954A (zh) | 2015-04-29 |
US20140052973A1 (en) | 2014-02-20 |
US20150278146A1 (en) | 2015-10-01 |
US9104462B2 (en) | 2015-08-11 |
EP2885706B1 (en) | 2020-02-26 |
WO2014028175A1 (en) | 2014-02-20 |
IN2015DN00456A (zh) | 2015-06-26 |
JP2015534663A (ja) | 2015-12-03 |
EP2885706A1 (en) | 2015-06-24 |
JP6385932B2 (ja) | 2018-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105912396B (zh) | 用于动态地分配可配置计算资源的资源的技术 | |
CN107995030A (zh) | 一种网络探测方法、网络故障检测方法及系统 | |
CN110120915A (zh) | 高性能计算的三级成本效益分解和具有在线扩展灵活性的高容量存储器 | |
CN108694068A (zh) | 用于虚拟环境中的方法和系统 | |
CN110463140A (zh) | 计算机数据中心的网络服务水平协议 | |
KR101629861B1 (ko) | 진정한 데이터센터 테스팅을 가지는 서비스 품질 지각 억류 애그리게이션 | |
CN107819696A (zh) | 一种交易流量控制方法和系统 | |
CN104166597B (zh) | 一种分配远程内存的方法及装置 | |
CN107733676A (zh) | 一种弹性调度资源的方法及系统 | |
CN104583954B (zh) | 用于提供流量冗余消除可感知的槽放置的方法和装置 | |
CN106909310B (zh) | 用于存储系统的路径选择的方法和装置 | |
CN110365748A (zh) | 业务数据的处理方法和装置、存储介质及电子装置 | |
CN103649916A (zh) | 虚拟机在数据中心中的分配 | |
CN109857335A (zh) | 系统及其控制方法以及存储介质 | |
CN103327072A (zh) | 一种集群负载均衡的方法及其系统 | |
CN102724103A (zh) | 代理服务器、分层次网络系统及分布式工作负载管理方法 | |
US9519441B1 (en) | Automated storage provisioning and management using a centralized database | |
CN104426694A (zh) | 一种调整虚拟机资源的方法和装置 | |
CN109218383A (zh) | 虚拟网络功能负载平衡器 | |
CN109617758A (zh) | 节点网络质量计算方法及装置、服务器、计算机存储介质 | |
JP2014186411A (ja) | 管理装置、情報処理システム、情報処理方法、及びプログラム | |
JP2016219859A (ja) | コントローラ、コントローラの制御装置、及び、制御方法 | |
Li et al. | A network-aware scheduler in data-parallel clusters for high performance | |
CN105446913B (zh) | 一种数据访问方法及装置 | |
US20060037018A1 (en) | System, method and software providing an adaptive job dispatch algorithm for large distributed jobs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |