用于基于扩展的主机信道适配器(hca)模型支持虚拟机的动态迁移的系统和方法

文档序号:6532961阅读:504来源:国知局
用于基于扩展的主机信道适配器(hca)模型支持虚拟机的动态迁移的系统和方法
【专利摘要】一种系统和方法可以支持网络中的虚拟机动态迁移。结构适配器可以与多个虚拟主机信道适配器(HCA)相关联,并且其中每个所述虚拟主机信道适配器(vHCA)与单独的队列对(QP)空间相关联。至少一个虚拟机操作来执行从第一主机到第二主机的动态迁移,其中所述至少一个虚拟机连接到与所述队列对(QP)空间中的队列对(QP)相关联的所述虚拟主机信道适配器(vHCA),并且其中所述队列对(QP)操作来向对等方QP发送关于动态迁移的信号并且向所述对等方QP提供迁移之后的地址信息。
【专利说明】用于基于扩展的主机信道适配器(HCA)模型支持虚拟机的 动态迁移的系统和方法
[0001] 版权通知
[0002] 本专利文件的公开的一部分包含受版权保护的材料。版权所有者不反对任何人对 专利文件或专利公开的传真复制,因为它出现在专利商标局专利文档或记录中,但在别的 方面保留所有任何版权。

【技术领域】
[0003] 本发明一般涉及计算机系统,并且具体地涉及支持计算机系统虚拟化。

【背景技术】
[0004] 随着引入大型云计算架构,与传统网络和存储相关联的执行和管理瓶颈已经变为 显著问题。无限带(IB)技术已被视为增加的部署作为用于云计算结构的基础。这是本发 明的实施例意欲解决的一般领域。


【发明内容】

[0005] 这里描述的是用于支持网络中虚拟机动态迁移的系统和方法。结构适配器可以与 多个虚拟主机信道适配器(vHCA)相关联,并且其中每个所述虚拟主机信道适配器(vHCA) 与单独的队列对(QP)空间相关联。至少一个虚拟机操作来执行从第一主机到第二主机的 动态迁移,其中所述至少一个虚拟机连接到与所述队列对(QP)空间中的队列对(QP)相关 联的所述虚拟主机信道适配器(vHCA),并且其中所述队列对(QP)操作来向对等方QP发送 关于动态迁移的信号并且向所述对等方QP提供迁移之后的地址信息。

【专利附图】

【附图说明】
[0006] 图1示出根据本发明的实施例的虚拟接口架构(VIA)网络设备的例示。
[0007] 图2示出根据本发明的实施例的与虚拟接口(VI)相关联的不同状态的例示。
[0008] 图3示出根据本发明的实施例的与队列对(QP)相关联的不同状态的例示。
[0009] 图4示出根据本发明的实施例的从网络和路由角度的虚拟机(VM)动态迁移的例 /_J、1 〇
[0010] 图5示出根据本发明的实施例的在虚拟机(VM)动态迁移之前虚拟化环境的例示。
[0011] 图6示出根据本发明的实施例的在虚拟机(VM)动态迁移之后虚拟化环境的例示。 [0012] 图7示出了根据本发明的实施例的用于支持在虚拟化环境中虚拟机的动态迁移 的示范性流程图。
[0013] 图8示出根据本发明的实施例的无限带架构(IBA)网络设备的例示。
[0014] 图9示出根据本发明的实施例的支持迁移的队列对(QP)与远程对等方QP之间的 通信的例示。
[0015] 图10示出了根据本发明的实施例的用于支持基于扩展的VHCA模型的虚拟机的动 态迁移的示范性流程图。
[0016] 图11示出根据本发明的实施例的支持虚拟化环境中的局部标识符(LID)分配的 例示。

【具体实施方式】
[0017] 本发明通过示例方式而不是通过限制方式来在附图的图示中示出,其中相似的参 考指示相似的元件。应当注意,在此公开中的参考"一"或"一个"实施例或"一些"实施例 不一定是指相同的实施例,并且此类参考意味着至少一个。
[0018] 下述发明的描述使用无限带(IB)网络作为高性能网络的示例。对本领域技术人 员来说,显而易见可以无限制地使用其它类型的高性能网络。同样,下述发明的描述使用 Xen虚拟化模型作为虚拟化模型的示例。对本领域技术人员来说,显而易见可以无限制地使 用其它类型的虚拟化模型。
[0019] 这里描述的是可以支持网络中虚拟机(VM)动态迁移的系统和方法。
[0020] 根据本发明的实施例,虚拟化可以有益于在云计算中高效的资源利用和弹性的资 源分配。动态迁移可以通过以应用透明的方式在物理服务器之间移动虚拟机(VM)来优化 资源使用。因此,虚拟化可以实现资源的强化、按需提供、和通过动态迁移的弹性。
[0021] 无限带(IB)架构
[0022] IB架构是串行点对点全双工技术。IB网络可以被称为子网,其中子网由利用交换 机和点到点链路互连的一组主机构成。IB子网可以包括至少一个子网管理器(SM),其负责 初始化和提出网络,包括子网中的所有交换机、路由器和主机信道适配器(HCA)的配置。
[0023] IB支持丰富的传输服务集合,以便提供远程直接存储器存取(RDMA)和传统的发 送/接收语义。独立于使用的传输服务,IB HCA利用队列对(QP)进行通信。QP在通信建立 期间创建,并且可以具有诸如QP数目、HCA端口、目的地LID、队列大小、和提供的传输服务 之类的初始属性集合。HCA可以处理许多QP,每个QP由一对队列构成,诸如发送队列(SQ) 和接收队列(RQ),并且存在一个这样的对呈现在参与通信的每个终端节点处。发送队列保 存要被传送到远程节点的工作请求,而接收队列保存关于对从远程节点接收的数据做什么 的信息。除了 QP之外,每个HCA具有与发送和接收队列的集合相关联的一个或多个完成队 列(CQ)。CQ保存用于发布给发送和接收队列的工作请求的完成通知。即使通信的复杂度 对用户隐藏,QP状态信息也被保存在HCA中。
[0024] 每个物理IB设备被分配双地址:LID和全球唯一标识符(⑶ID)。LID用于在子网 内路由IB分组,而⑶ID是唯一地表示物理IB设备的硬件地址。64位⑶ID与局部(64位) 子网前缀组合以形成全局标识符。128位全局标识符用于在IB子网之间路由IB分组。
[0025] 输入/输出(I/O)虚拟化
[0026] I/O虚拟化(I0V)可以通过允许VM访问下层物理资源提供I/O的可用性。存储业 务和服务器间通信的组合施加增加的负载,可能压垮单个服务器的I/O资源,在它们等待 数据时导致积压和空闲的处理器。随着I/O请求的数目增加,I0V可以提供可用性;并且可 以改善(虚拟化的)I/O资源的性能、可分级性和灵活性以匹配在现代CPU虚拟化中看到的 性能水平。
[0027] 可以存在不同类型I0V技术,诸如仿真、半虚拟化、直接分配(DA)、和单一根-I/O 虚拟化(SR-IOV)。在这些IOV技术当中,SR-IOV可以扩展快速PCI(PCIe)规范,意味着允 许从多个VM直接存取单个物理设备同时维持接近固有性能。因此,SR-I0V可以提供良好 性能和可分级性。
[0028] SR-I0V允许PCIe设备暴露可以通过将一个虚拟设备分配到每个访客在多个访客 之间共享的多个虚拟设备。每个SR-I0V设备具有至少一个物理功能(PF)和一个或多个关 联的虚拟功能(VF)。PF是由虚拟机监控器(VMM)、或超控制器控制的正常PCIe功能,而VF 是轻型PCIe功能。每个VF具有它自己的基局部址(BAR)并且被分配有使得I/O存储器管 理单元(I0MMU)在业务流与不同的VF之间进行区分的唯一的请求者ID。I0MMU也在PF与 VF之间应用存储器和中断转换。
[0029] 可以存在不同类型的SR-I0V模型,例如共享端口模型和虚拟交换机模型。在共享 端口模型中,所有VF可以共享单个端口地址和单个QP名称空间,并且仅仅单个HCA端口暴 露于网络。在虚拟交换机模型中,每个VF是包含唯一端口地址和唯一 QP名称空间的虚拟 HCA,并且用于设备上的每个VF的一个HCA暴露于网络。因此,虚拟交换机模型可以简化具 有多个复杂硬件的I0V。
[0030] SR-I0V能力设备的使用可以输出接近固有的性能和改善的可分级性。另一方面, SR-10V可以不是与动态迁移和检查点/重新开始机制完全不兼容的。
[0031] 动态迁移的硬件解决方案
[0032] 根据本发明的实施例,硬件解决方案可以基于灵活、高性能和可升级的虚拟化的 10架构,以应用透明的方式支持物理服务器之间的虚拟机(VM)的动态迁移。此外,硬件解 决方案可以增加迁移的透明性并且改善IB与SR-I0V之间的互操作性。另外,系统可以可 应用于诸如虚拟接口架构(VIA)和Myrinet之类的其它高速无损联网技术。
[0033] 利用硬件解决方案,IB主机信道适配器(HCA)可以将每个物理功能(VF)区分为具 有用于QP的它自己的资源池的虚拟端点。此外,诸如QPN之类的QP属性可以在迁移之后 被重复使用。同样,IBHCA可以基于用于暂停和重新开始通信的QP状态支持VM动态迁移。
[0034] 另外,系统可以避免可以用来在迁移的QP与迁移的QP对等方之间静默的握手机 制。因此,系统允许虚拟机(VM)的动态迁移以将服务停止时间减少到与IB中可靠连接的 重试超时可比较的级别。
[0035] 此外,系统可以表不支持VM动态迁移的一般解决方案,包括具有严格定时要求的 情况和应用。例如,在高可用性集群中,由有故障的物理服务器托管的VM可以在有限时间 内被迁移到另一个服务器。迁移可以在故障被发现之后,但是在有故障的服务器变为不可 恢复的错误之前发生。软件方法不足以完成低服务停止时间的此需要,因为它们遭受开销。 此外,软件方法就开发费用而言是昂贵的。
[0036] 虚拟端点
[0037] 根据本发明的实施例,虚拟接口架构(VIA)硬件可以集成PCI虚拟交换机以区分 从每个VF创建的VI。在虚拟交换机后面,多个独立的虚拟端点可以由网络管理器发现。
[0038] 图1示出根据本发明的实施例的虚拟接口架构(VIA)网络设备的例示。如图1所 示,虚拟接口架构(VIA)网络设备100可以包括硬件层110、虚拟机监控器120和一个或多 个虚拟机,例如VM101-102。在这里,VM101可以基于内核代理107支持与固定的存储器105 相关联的用户进程103。VM102可以基于内核代理108支持与固定的存储器106相关联的 用户进程104。
[0039] 虚拟交换机130可以被提供在硬件层110上。虚拟交换机130可以与一个或多个 虚拟功能(VF),例如VF111-119相关联。VF111-119的每一个可以创建并管理一个或多个 虚拟接口(VI)。
[0040] 根据本发明的实施例,利用虚拟交换机模型,每个VF111-119可以被隔离为可以 分配给例如VM101或VM102的访客VM的专用的PCI端点。此外,VF111-119的每一个可以 具有它专用的VI名称空间121-129并且可以被认为是完成的VI端点。VI名称空间隔离可 以提供虚拟化的环境中的保护和灵活性。每个VF可以被限制为访问分区内的VI资源,其 扩展了用于10操作的VM的保护和隔离性质。此外,VI属性可以在迁移之后被重复使用。
[0041] 例如,硬件层110可以基于诸如IB架构之类的高速网络架构。VF111-119的每一个 可以是虚拟主机信道适配器(vHCA),其包含唯一的端口地址和唯一的QP名称空间。另外, 一个vHCA可以暴露于用于IB设备上的每个VF的网络。此外,每个vHCA可以与它自己的 QP名称空间相关联并且可以创建并管理一个或多个队列对(QP),诸如IB架构中的QP131 和132。如图1所示,队列对(QP) 131-132的每一个可以包括发送器队列和接收器队列。
[0042] 此外,VIA设备100可以利用10存储器管理单元(I0MMU)功能的优势。VI属性可 以被存储在经由由I0MMU翻译的10虚拟存储器访问的存储器区域中。当新的VF被重新附 接到VM时,在没有明确地再创建新的VI的情况下,超控制器可以改变I0MMU以将10虚拟 存储器重新映射到新的物理存储器集合。与共享的VI名称空间模型相比,虚拟交换机模型 简化资源迁移并且避免使用映射表重新映射VI属性以便保持用于正在运行的应用的透明 性。
[0043] 队列对(QP)暂停状态
[0044] 图2示出根据本发明的实施例的与虚拟接口(VI)相关联的不同状态的例示。如 图2所示,VI的生命周期可以包括多个状态,诸如:空闲状态201、待定连接状态202、连接 状态203、错误状态204、和暂停状态205。
[0045] 暂停状态205指示正在进行的通信被临时中止以便让VI处于静默状态,例如在动 态迁移期间。连接状态203与暂停状态205之间的转变可以由软件发起的请求或通过VI 事件请求驱动。例如,在迁移期间,软件接口可以将迁移的VI从连接状态203修改到暂停 状态205。
[0046] 当VI进入暂停状态205时,VI可以完成任何先前发起的消息传输并且将任何剩 余消息刷到硬件发送器队列上而不处理它们。硬件可以保证剩余消息在刷它们之前由用于 用户进程的发送器队列高速缓存。在暂停状态205中,任何新消息可以在发送器队列和接 收器队列中被排队,并且保持被发布而不被处理。
[0047] 此外,如果输入消息把暂停的VI作为目标,则SuspendRequest (暂停请求)事件 可以由暂停的VI生成以将对等方VI转变成为暂停状态205。在这种情况下,先前发起的消 息可以在接收的ResumeRequest (重新开始请求)事件之后被重新发送并且可以不对未完 成的传输生成超时错误。
[0048] 在新的VF附接于迁移的VM之后和在迁移的VM被在新位置重新开始之前,停止 和复制阶段可以将10虚拟存储器寄存到I0MMU中新设置的物理存储器。然后,软件接口 可以将迁移的VM的VI状态修改到连接状态203。然后,系统可以触发转发到对等方VI的 ResumeRequest事件。对等方VI然后可以在不生成ResumeRequest事件的情况下转变回到 连接状态203。因此,暂停状态205可以提供VM的动态迁移期间的平滑转变,并且VI可以 处于静默状态。
[0049] 根据本发明的实施例,为了减少在VM动态迁移期间的停止时间,具有最小延迟的 方法是暂停VI或正好在所有未完成的操作已经完成之前分离VF。因此,扩展可以改善超时 并且重试作为暂停状态205处理的一部分的由可靠传输协议提供的处理。在不引起对于或 者对等方VI或者迁移VI的致命错误的情况下,扩展的重试和超时逻辑可以将VI转变到暂 停状态205。
[0050] 因此,VI可以在迁移之后不具有对VI的可用性的困难的实时约束的情况 下被迁移。此方法也可以覆盖其中由于网络中的延迟在VI之间没有生成事件报告 (SuspendRequest和ResumeRequest)的情况。另外,在具有多个VI的情况中,每个VI可以 同时执行以上操作。
[0051] 图3示出根据本发明的实施例的与队列对(QP)相关联的不同状态的例示。如图3 所示,QP的生命周期300包括多个状态,诸如:复位状态301、初始化(INT)状态302、准备 接收(RTR)状态303、准备发送(RTS)状态304、SQ误差(SQE)状态305、错误状态306、SQ 排出(SQD)状态307、和暂停(SUS)状态308。
[0052] 暂停状态SUS308可以临时中止正在进行的通信以在迁移期间静默QP。RTS304与 SUS308之间的转变可以由软件发起的请求或通过事件请求触发。在迁移期间,软件接口可 以将迁移的QP从RTS304状态转变到SUS308状态。当QP进入暂停状态205时,它可以完 成任何先前发起的消息并且将任何剩余消息刷到SQ中而不处理它们。硬件也可以保证剩 余消息在刷它们之前由用户进程缓冲器高速缓存。在暂停状态205中,任何新消息可以在 SQ和RQ中被排队,但是保持被发布而不被处理。
[0053] VM动态迁移的联网和路由角度
[0054] 图4示出根据本发明的实施例的从网络和路由角度的虚拟机(VM)动态迁移的 例示。如图4所示,虚拟化环境400可以包括多个vHCA,例如vHCA A-C401-403。vHCA A-C401-403的每一个可以用作完成的IB端点,其可以提供用于虚拟化的透明性。
[0055] 另外,虚拟化环境400可以包括网络管理器410。网络管理器可以发现IB交换 机A-B431-432后面的vHCA A-C401-403,并且可以基于不同的LID和v⑶ID识别vHCA A-C401-403 的每一个。例如,vHCA A401 可以被分配有 LID A411 和 vGHD A421,而 vHCA A402可以被分配有LID B412和v⑶ID B422,并且vHCA C403可以被分配有LID C413和 v⑶ID C423。
[0056] 根据本发明的实施例,在VM迁移期间,网络管理器410可以注意到例如vHCA B402 的IB端点在IB交换机A431后面停止(即暂停),并且在IB交换机B432后面的网络(如 vHCA B404)的另一端重新出现,具有例如LID B412和v⑶ID B422的相同地址,被传送到新 的位置。
[0057] 在迁移之后,网络管理器410可以更新路由表420以在它移位之后反映LID的新 的重新布置。此外,可以实施局部地修改LID的新的路由算法以便减少整个网络的重新路 由时间。另外,网络管理器410也可以保证新的LID布置是无死锁的。
[0058] 此外,高速网络可以具有有限的局部地址资源。例如,当每个vHCA被分配它自己 的LID并且在1000个节点群中的每个节点托管多个VM时,可以使用16位的LID的IB网 络可能快速用尽地址空间。
[0059] 根据本发明的实施例,系统可以使用不同的方法处理虚拟化环境中的可分级性问 题。例如,系统可以将LID寻址空间扩展到32位,或组合v⑶ID与LID以执行vHCA之间的 路由。第一解决方案不需要在网络管理器中任何架构修改;但是,它不向后兼容旧的硬件。
[0060] 虚拟机角度
[0061] 图5示出根据本发明的实施例的在虚拟机(VM)动态迁移之前虚拟化环境的例示。 如图5所示,IB网络500可以包括多个主机,例如主机A-B501-502。主机A501包括使用 HCA517的VMM A515,并且可以支持特权域(或管理域),DomO 511,其管理例如DomU513的 访客域。同样,主机B包括使用HCA518的VMM B516,并且可以支持管理DomU514的DomO 512。
[0062] 此外,在主机A501上的VMa503可以与例如VF505的VF连接,其连接到例如QPa507 的队列对。另外,VMa503可以与VMb504通信,VMb504与QPb508相关联。
[0063] 根据本发明的实施例,例如在主机A501上的DomO 511的特权域不需要例如VF505 的设备在迁移期间被分离。系统可以仅需要例如QPa507的有效QP在停止和复制阶段处暂 停。
[0064] 如图5所示,在主机A501上的特权域DomO 511可以发起VMa503迁移到主机 B102(如在图6中的VMa604)。在VMa503的迁移之前,系统可以执行将它置于暂停状态的 状态转移操作。此外,在从QPb508接收输入分组之后,暂停的QPa507可以指示QPb508也 进入暂停状态。
[0065] 然后,例如基于远程直接存储器存取(RDMA)连接520,可以通过在源与目的地服 务器之间同步包括1/0虚拟存储器的脏页(存储器)来执行VM迁移。
[0066] 图6示出根据本发明的实施例的在虚拟机(VM)动态迁移之后虚拟化环境的例示。 如图6所示,IB网络600可以包括多个主机,例如主机A-B601-602。(另外,在图6中具有 与图5中相同数字的元件可以提供相同的功能)。
[0067] 在迁移到主机B602之后,VMa603可以与新的VF连接,例如VF616,其连接到例如 QPa' 607的队列对。在这里,QPa' 607与图5中的QPa507在逻辑上是相同的并且具有在 VMa503(或VMa603)的虚拟存储器中相同的上下文信息。
[0068] 此外,在VMa603被取消暂停之前,特权域DomO 612可以对QPa' 607执行状态转 移,其可以将QPa' 607放置回到RTS状态。此外,QPa' 607可以重新开始与主机A601上的 QPb608进行通信。
[0069] 因此,用于迁移的服务停止时间可以等效于停止和复制阶段的持续时间。同样,利 用RDMA操作执行迁移还可以减小服务停止时间和总迁移时间。
[0070] 图7示出了根据本发明的实施例的用于支持在虚拟化环境中虚拟机的动态迁移 的示范性流程图。如图7所示,在步骤701处,系统可以将虚拟交换机与多个虚拟功能(VF) 相关联,其中每个所述虚拟功能(VF)与单独的队列对(QP)空间相关联。此外,在步骤702 处,系统可以将所述虚拟功能(VF)与至少一个虚拟机连接,其中所述虚拟功能(VF)与虚拟 接口(VI)相关联。然后,在步骤703处,所述至少一个虚拟机可以执行从第一主机到与所 述虚拟功能(VF)连接的第二主机的动态迁移。
[0071] 扩展的HCA模型
[0072] 图8示出根据本发明的实施例的无限带架构(IBA)网络设备的例示。如图8所示, 无限带架构(IBA)网络设备800可以包括硬件层810、虚拟机监控器820和一个或多个虚拟 机,例如VM801-802。VM801可以支持基于内核807和用户库837与固定的存储器805相关 联的应用803。VM802可以支持基于内核代理808和用户库838与固定的存储器806相关 联的应用804。
[0073] 硬件层810可以包括结构适配器,诸如IB HCA830,其连接到IB子网840。此外, IB HCA830可以与多个vHCA实例,例如VHCA811-819相关联。
[0074] 根据本发明的实施例,例如物理HCA830的结构适配器可以实施虚拟交换机模型、 扩展的HCA模型、或两个模型的结合。此外,利用扩展的HCA模型,可以存在仅仅物理的 HCA830而没有交换机。虚拟HCA811-819表示物理HCA模型的扩展,并且一个或多个虚拟 HCA实例811-819可以经由物理HCA830端口从例如IB子网840的结构中可访问。
[0075] 根据本发明的实施例,硬件层810可以支持以下特征以便保护用于执行VM动态迁 移的分配的IB资源。
[0076] 1. QP上下文(例如QP数目)可以通过允许每个vHCA具有私有QP空间被保护。
[0077] 2.存储器区域数目可以通过允许每个vHCA具有私有存储器区域数目空间被保 护。
[0078] 3.寄存的存储器可以通过允许每个vHCA实施用于访问局部物理主机局部存储器 的私有虚拟地址空间被保护。
[0079] 可以利用或者上述部分讨论的基于虚拟交换机的模型、或者通过利用扩展的HCA 模型实施私有QP空间。扩展HCA规范的扩展的HCA模型允许定义多个vHCA实例811-819, 每个可以具有私有QP空间。如图8所示,VHCA811-819的每一个可以支持队列对(QP),例 如QP821-829,其可以通过与例如应用803或804的应用相关联的、用于发送并且接收分组 的发送器/接收器缓冲器使用。
[0080] 此外,扩展的HCA规范可以具有不依赖于更复杂的结构拓扑的优势。另外,对于每 个vHCA可以基于与用于私有QP空间的相同的替换物实施私有存储器区域数目空间。
[0081] 根据本发明的实施例,用于局部物理存储器的私有虚拟地址空间可以被独立于 vHCA方案是否基于虚拟交换机模型或扩展的HCA模型而实施。
[0082] 实施私有虚拟地址空间的一种方法是通过利用服务器平台,其中由物理HCA观察 的局部存储器地址空间表示虚拟存储器。此虚拟存储器可以由具体地用于每个SRIOV VF, 即VHCA811-819的每一个的主机平台实施。
[0083] 实施私有虚拟地址空间的另一个方式是通过包括由例如VMM820的平台超控制器 控制的系统MMU的集合内的物理HCA的存储器管理单元(MMU)。因此,特定于VM的地址空 间可以在不同的物理主机之间迁移而不改变任何虚拟地址,其中虚拟地址到物理地址的映 射根据需要被更新。(例如,私有虚拟地址空间可以通过让系统MMU在物理HCA与局部物理 存储器之间来实施)。
[0084] 根据本发明的实施例,连接状态可以被保存在被迁移的VM的局部存储器中。同 样,连接状态可以在迁移之后被对于新的vHCA重建(或重新使用),而不需要分配任何新资 源。
[0085] 此外,暂停状态(如图3所示)可以应用于迁移的QP和连接到迁移的QP的远程 对等方QP二者。因此,系统可以保证在VM迁移期间没有超时可以发生,并且系统可以允许 迁移操作独立于由迁移的VM的对等方实施的IB连接有关的超时值花费任意数量的时间。 此外,为了允许与连接相关联的IB地址由于迁移而改变,系统可以更新用于暂停状态中的 QP的地址信息。
[0086] 与远程QP对等方的通信
[0087] 根据本发明的实施例,系统可以使用用于支持对等方之间的通信的特殊报头信息 和/或非征求性消息。系统允许VM动态迁移被发起而不在远程对等方之间执行静默操作。 此外,系统允许远程对等方知道迁移并且以异步事件驱动方式进入暂停状态。
[0088] 例如,可以支持vHCA路由报头(VRH),并且在IB网络中可以使用基于VRH的vHCA 寻址而不是基于全局路由报头(GRH)的寻址。包含VRH的分组可以被传送到在VRH中指定 的目的地vHCA索引(DVI),例如如果在VRH中的目的地vHCA标签(DVT)不是零并且报头中 的DVT与由VRH中的DVI标识的vHCA标签表条目中的DVT相同。当不存在定义VRH存在 的线路协议扩展时,系统可以经由LID策略指定哪些分组预期包含VRH。可替换地,系统可 以定义对于所有vHCA公共的QP数字范围,并且其中不同的范围可以与VRH或其它协议策 略的使用相关联。此外,VRH可以不经由QP上下文被指定,因为QP上下文不是已知的,直 至IJ vHCA索引已从VRH中检索。
[0089] 图9示出根据本发明的实施例的支持迁移的队列对(QP)与远程对等方QP之间的 通信的例示。如图9所示,虚拟化环境900可以包括多个主机,例如主机A-C901-903,每个 可以包括软件栈,例如SW911-913中的一个。(软件栈可以驻留在内核空间、用户空间或两 者中)。
[0090] 此外,在QPa910迁移到主机C903(如QPa930)之前,主机A901上的QPa910可以 与主机B902上的QPb920通信。QPa910可以被设置在暂停状态以实现迁移,在该时间期间 QPb920可以将分组(UD,UC或RC)发送到QPa910。目标是主机A901上的无效VHCA931的 此分组可以使用或者GRH或者基于VRH/LID映射的地址。
[0091] 在接收到目标为无效VHCA931的分组之后,主机A901可以生成局部异步事件并且 可选地将非征求性响应分组发送到VHCA932上的QPb920。此外,当QPb920接收非征求性响 应分组时,它可以生成包含来自于非征求性响应的信息的局部异步事件。然后,如果QPb920 是启动的可靠连接的(RC)或不可靠的连接(UC)QP,则QPb920可以自动地执行转变到暂停 状态(如图3所示)。
[0092] 根据本发明的实施例,由IBA提供的动词接口可以包括用于将队列对(QP)转移到 暂停状态和从暂停状态转移的ModifyQP和ModifyAddressHandle选项。此外,当暂停状态 被对于RC QP复位时,重试计数和计时器可以被复位到初始值(即在进入暂停状态之前耗 费的任何"重试预算"可以被"遗忘")。虽然在暂停状态中,对于RC或UC QP,路径信息可 以被更新。QP和地址处理可以保持在暂停状态中,直到例如SW A-C911-913的局部软件明 确地复位暂停状态。在这里,在复位暂停状态之前,局部软件可以获得可以包括目的地LID 和VRH信息的更新的路径信息。
[0093] 根据本发明的实施例,每当由它的v⑶ID标识的vHCA端口开始在IB网络中操作 时,可以经由用于相关物理HCA端口的vGUID和vHCA信息报告给vHCA端口。在VM/vHCA迁 移的情况下,目的地节点物理HCA端口的vGUID和vHCA信息和SMA信息可以在迁移的vHCA 开始操作时被更新。在VM迁移之后,具有暂停的QP或地址处理的远程对等方可以观察有 关信息并且在已经更新相关路径信息之后复位暂停状态。
[0094] 此外,当在新的位置处重新开始迁移的VM和vHCA时,通信对等方可以不知道迁移 的vHCA。例如,当例如QPa930的迁移的RC QP将请求发送到它的对等方时,QPb920、QPa930 可以具有正确的路径信息,因为QPb920有可能没有在相同时间帧在被迁移。同样,如果 QPb920不具有更新的路径信息,则对来自于迁移的QPa930的输入请求的确认和响应可能 被发送给旧的目的地。然后,旧的目的地可以将非征求性响应发送到QPb920,使得QPb920 意识到路径信息已经被更新。
[0095] 另外,在例如主机C903的新位置处开始的迁移的vHCA,例如VHCA933,可以依赖对 等方以以及时方式更新路径信息,以便避免输出的请求变得超时。例如,当QPb920不具有 正确的路径信息时,从迁移的VHCA933输出的请求由于确认和响应没能回来的事实而可能 超时。
[0096] 为了保证来自于迁移的QPa930的原始请求分组可以通知对等方QPb920迁移已经 发生,系统可以使得迁移信息可从请求分组中的报头内容中检测。例如,代替依赖于对等方 检测源地址信息中的任何相关变化,VRH可以包含迁移计数字段。迁移计数字段可以在迁 移的VHCA930再次在新位置(主机C903)处开始操作之前被更新。此外,相对于在对等方 QP状态中记录的,迁移计数的变化可以引起识别对等方节点上的状况的异步事件。因此, 通过经由VRH迁移计数字段明确地通知远程对等方,系统可以在大多数情况下避免迁移的 HCA端的QP的超时。
[0097] 根据本发明的实施例,为了完全避免对于对等方的实时依赖性以更新路径信息, 迁移的vHCA可以在非暂停待定状态中以QP开始。非暂停待定QP状态与暂停状态相似,除 了允许输出请求。此外,在迁移之后重新开始vHCA之后生成的对请求的响应或确认从远程 对等方接收到之后,非暂停待定状态可以被复位并且QP可以正常行为。
[0098] 此外,系统的实施方式(HW、FW或SW)可以使用超时和重试以解决分组的丢失,而 QP本身的超时行为可以与在暂停状态中一样(即,由于超时而不进入到错误状态)。另外, 非暂停待定状态可以用于对于没有被迁移的vHCAs/QPs得体地执行从暂停状态中的转变。
[0099] 可替换地,在其中VRH不被使用的情况中,迁移的信令可以经由非征求性消息完 成。例如,非征求性消息可以在迁移之后的重新开始之后潜在地与正常消息被交织发送。此 夕卜,来自于远程对等方QP的请求或响应的接收可以消除对发送此类非征求性消息的需要。 在这里,非征求性消息的使用允许信令独立于QP/连接上的任何其它通信活动发生。
[0100] 因此,利用附加报头信息和/或非征求性消息,系统允许迁移的QP自动地向它的 对等方QP发关于迁移发生的信号并且向它的对等方QP提供包含的新地址信息。地址信息 的任何相关更新可以与子网管理器的有关信息的通告和报告并行发生并且可以进一步减 小用于使得连接回到完全操作状态的延迟。
[0101] 图1〇示出了根据本发明的实施例的用于基于扩展的vHCA模型支持虚拟机的动态 迁移的示范性流程图。如图10所示,在步骤1001处,系统可以将结构适配器与多个虚拟主 机信道适配器(HCA)关联,并且其中每个所述虚拟主机信道适配器(vHCA)与单独的队列对 (QP)空间相关联。在这里,结构适配器可以实施虚拟交换机模型、扩展的主机信道适配器 (HCA)模型、或两个模型的结合。此外,在步骤1002处,至少一个虚拟机可以执行从第一主 机到第二主机的动态迁移,其中所述至少一个虚拟机连接到与所述队列对(QP)空间中的 队列对(QP)相关联的所述虚拟主机信道适配器(vHCA)。然后,在步骤1003处,所述队列 对(QP)可以在迁移之后向对等方QP发送关于动态迁移的信号并且向所述对等方QP提供 地址信息。
[0102] 可升级的寻址方案
[0103] 根据本发明的实施例,作为层3 (L3)地址的一部分、与VM相关联的虚拟⑶ID可以 通过动态迁移被保护并且虚拟GUID可以用于从通信对等方的角度、以及从子网管理器的 角度唯一地识别VM。
[0104] 不像存在更新与被迁移的远程连接对等方相关联的地址信息的固有需要的软件 方法,扩展的HCA模型允许与VM相关联的地址信息被跨迁移保护。因此,没有更新用于连 接对等方的地址信息的固有需要,因为系统可以保护IB层2 (L2)、或局部路由报头(LRH), 除了 L3、或全局路由报头(GRH)、地址之外,地址信息可以被保护。
[0105] 根据本发明的实施例,系统可以实现IB子网内的可分级性和灵活性。例如,IB子 网可以被限于48K LID值。系统支持忽略LMC特征,其允许HCA基于IB子网中的子网管理 器决定使用来便于将分组转发到相关HCA端口(物理端口或vHCA端口)的无论任何LID 值被寻址。例如,HCA端口可以不被迫使具有专用的LID或基于二的连续LID范围(如HCA 端口 LID掩码,S卩LMC值所定义的)的专用能力。
[0106] 另外,系统可以支持管理LID的范围的使用,其表示子网管理器将不使用作为用 于物理端口的静态分配的LID/LID范围的LID值。此外,子网管理器可以在VM创建时间, 或者动态地在VM生命期期间,将管理LID分配到需要唯一 LID用于寻址的VM。
[0107] 图11示出根据本发明的实施例的在虚拟化环境中支持局部标识符(LID)分配的 例示。如图11所示,虚拟化环境1100可以包括子网管理器(SM) 1101,其可以负责分配用于 各个网络设备的LID,诸如物理HCA端口 1111-1112,和虚拟HCA端口 1121-1123。
[0108] SM1101可以支持如下策略接口,其中管理LID1120的范围可以被储存。每个管理 LID在SM1101可以不将此值分配到任何端口除非经由策略输入指示的意义上是特殊的。
[0109] 此外,SM1101可以支持如下策略接口,其中v⑶ID可以与一个或多个此类管理LID 相关联并且其中v⑶ID迁移意味着用于对应LID的路由被设置到相关物理HCA端口。另外, 如果vGUID与管理LID相关联,则SM1101可以不允许将vGUID与不支持忽略LMC特征的物 理HCA端口关联。
[0110] 根据本发明的实施例,管理LID的路由可以基于此刻对SM101有效的路由算法和 策略。用于与管理LID相关联的vGUID的路径信息可以根据由SM101限定的策略反映分配 的管理LID。
[0111] 因此,独立于VM动态迁移操作,系统可以使用忽略LMC和管理LID特征以提供用 于在IB子网之内寻址的可分级性和灵活性。一般,这些特征可以用于便于可以用于到达IB 子网内的任何物理或虚拟HCA端口的一个或多个附加LID的动态创建。
[0112] 此外,动态服务质量(QoS)、高可用性(HA)、和/或其它基于多地址的属性可以在 运行时间被动态地建立。这些特征可以被施加于任何具体的物理或虚拟HCA端口而不需要 子网重新初始化,或引起对IB子网内的正在进行的通信的任何其它负面影响。
[0113] 可以使用一个或多个传统的通用或专门数字计算机、计算设备、机器或微处理器 方便地实现本发明,包括一个或多个处理器、存储器和/或根据本公开的教导编程的计算 机可读存储介质。合适的软件编码能够容易地由熟练的程序员基于本公开的教导来准备, 这对软件领域的技术人员将是明显的。
[0114] 在一些实施例中,本发明包括计算机程序产品,其是上面或其中存储指令的存储 介质或计算机可读介质(介质),指令可以用于编程计算机来执行本发明的处理中的任 何一个。存储介质能够包括以下中的一个或多个:任何类型的盘,包括软盘、光盘、DVD、 CD-ROM、微驱动器、和磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器件、磁或光 卡、纳米系统(包括分子存储器1C)或适合于存储指令和/或数据的任何类型的介质或设 备,但是不局限于此。
[0115] 本发明的上面的描述是为了说明和描述的目的而提供的。它不意欲是穷举的或将 本发明限制于公开的精确的形式。许多修改和变化能够对本领域的实践者是明显的。选择 并且描述实施例以便最佳地说明本发明的原理和它的实际应用,从而使得本领域技术人员 能够理解用于各个实施例中的并且具有适合于预期的特定使用的各种修改的本发明。预期 本发明的范围由以下权利要求书和它们的等价物定义。
【权利要求】
1. 一种用于支持网络中的虚拟机动态迁移的系统,包括: 一个或多个微处理器; 结构适配器,与所述一个或多个微处理器相关联,其中所述结构适配器与多个虚拟主 机信道适配器(HCA)相关联,并且其中每个所述虚拟主机信道适配器(VHCA)与单独的队列 对(QP)空间相关联; 至少一个虚拟机,操作来执行从第一主机到第二主机的动态迁移,其中所述至少一个 虚拟机连接到与所述队列对(QP)空间中的队列对(QP)相关联的所述虚拟主机信道适配器 (vHCA),以及 其中所述队列对(QP)操作来向对等方QP发送关于动态迁移的信号并且向所述对等方 QP提供迁移之后的地址信息。
2. 根据权利要求1所述的系统,还包括: 至少一个虚拟机监控器,其管理所述一个或多个虚拟机,其中每个所述虚拟机与私有 虚拟地址空间相关联。
3. 根据权利要求1所述的系统,其中: 所述结构适配器实施虚拟交换机模型和扩展的主机信道适配器(HCA)模型中的至少 一个。
4. 根据权利要求1所述的系统,其中: 暂停状态能够应用于迁移的QP和连接到迁移的QP的远程对等方QP二者。
5. 根据权利要求1所述的系统,其中: 特殊报头信息和/或非征求性消息能够用于支持对等方之间的通信和通信状态更新。
6. 根据权利要求1所述的系统,其中: 当在主机处接收到以无效vHCA为目标的输入分组时,所述主机能够生成局部异步事 件并且将非征求性分组发送到输入分组的源,并且其中与输入分组的源相关联的队列对 (QP)能够自动地执行到暂停状态的转变。
7. 根据权利要求1所述的系统,其中: 从迁移的vHCA发送的分组能够包含迁移计数字段,所述迁移计数字段能够在迁移的 vHCA在新的位置处再次变为操作之前被更新。
8. 根据权利要求1所述的系统,其中: 迁移的vHCA能够在非暂停待定状态中以QP开始。
9. 根据权利要求1所述的系统,还包括: 子网管理器,其能够为HCA端口分配LID值,所述子网管理器决定使用所述LID值来便 于将分组转发到相关的HCA端口,而独立于已经与HCA端口相关联的任何其它LID值。
10. 根据权利要求9所述的系统,其中: 所述子网管理器能够将管理LID分配到需要独特LID来寻址的VM。
11. 一种用于支持网络中的虚拟机动态迁移的方法,包括: 将结构适配器与多个虚拟主机信道适配器(HCA)相关联,并且其中每个所述虚拟主机 信道适配器(vHCA)与单独的队列对(QP)空间相关联; 经由至少一个虚拟机执行从第一主机到第二主机的动态迁移,其中所述至少一个虚 拟机连接到与所述队列对(QP)空间中的队列对(QP)相关联的所述虚拟主机信道适配器 (vHCA);以及 经由所述队列对(QP)向对等方QP发送关于动态迁移的信号并且向所述对等方QP提 供迁移之后的地址信息。
12. 根据权利要求11所述的方法,还包括: 提供管理所述一个或多个虚拟机的至少一个虚拟机监控器,其中每个所述虚拟机与私 有虚拟地址空间相关联。
13. 根据权利要求11所述的方法,还包括: 允许所述结构适配器实施虚拟交换机模型和扩展的主机信道适配器(HCA)模型中的 至少一个。
14. 根据权利要求11所述的方法,还包括: 将暂停状态应用于迁移的QP和连接到迁移的QP的远程对等方QP二者。
15. 根据权利要求11所述的方法,还包括: 利用特殊报头信息和/或非征求性消息来支持对等方之间的通信和通信状态更新。
16. 根据权利要求11所述的方法,还包括: 配置主机以生成局部异步事件并且将非征求性分组发送到以无效vHCA为目标的输入 分组的源,并且其中与输入分组的源相关联的队列对(QP)能够自动地执行到暂停状态的 转变。
17. 根据权利要求11所述的方法,还包括: 在从迁移的vHCA发送的分组中包含迁移计数字段,所述迁移计数字段能够在迁移的 vHCA在新的位置处再次变为操作之前被更新。
18. 根据权利要求11所述的方法,还包括: 配置迁移的vHCA以在非暂停待定状态中以QP开始。
19. 根据权利要求11所述的方法,还包括: 配置子网管理器以 为HCA端口分配LID值,所述LID值独立于已经与所述HCA端口相关联的任何其它LID 值并且子网管理器决定使用所述LID值来便于将分组转发到相关的HCA端口,以及 将管理LID分配到需要独特LID来寻址的VM。
20. -种非瞬时机器可读存储介质,在其上存储有指令,所述指令在被执行时使得系统 执行如下步骤: 将结构适配器与多个虚拟主机信道适配器(HCA)相关联,并且其中每个所述虚拟主机 信道适配器(vHCA)与单独的队列对(QP)空间相关联; 经由至少一个虚拟机执行从第一主机到第二主机的动态迁移,其中所述至少一个虚 拟机连接到与所述队列对(QP)空间中的队列对(QP)相关联的所述虚拟主机信道适配器 (vHCA);以及 经由所述队列对(QP)向对等方QP发送关于动态迁移的信号并且向所述对等方QP提 供迁移之后的地址信息。
【文档编号】G06F9/50GK104094229SQ201380008048
【公开日】2014年10月8日 申请日期:2013年3月25日 优先权日:2012年3月26日
【发明者】B·D·约翰森, 倪威麟 申请人:甲骨文国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1