首页> 中国专利> 用于基于扩展的主机信道适配器(HCA)模型支持虚拟机的动态迁移的系统和方法

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

摘要

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

著录项

  • 公开/公告号CN104094229A

    专利类型发明专利

  • 公开/公告日2014-10-08

    原文格式PDF

  • 申请/专利权人 甲骨文国际公司;

    申请/专利号CN201380008048.0

  • 发明设计人 B·D·约翰森;倪威麟;

    申请日2013-03-25

  • 分类号G06F9/48(20060101);G06F9/50(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人李晓芳

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-17 02:29:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-22

    授权

    授权

  • 2014-10-29

    实质审查的生效 IPC(主分类):G06F9/48 申请日:20130325

    实质审查的生效

  • 2014-10-08

    公开

    公开

说明书

版权通知

本专利文件的公开的一部分包含受版权保护的材料。版权所有者 不反对任何人对专利文件或专利公开的传真复制,因为它出现在专利 商标局专利文档或记录中,但在别的方面保留所有任何版权。

技术领域

本发明一般涉及计算机系统,并且具体地涉及支持计算机系统虚 拟化。

背景技术

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

发明内容

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

附图说明

图1示出根据本发明的实施例的虚拟接口架构(VIA)网络设备 的例示。

图2示出根据本发明的实施例的与虚拟接口(VI)相关联的不 同状态的例示。

图3示出根据本发明的实施例的与队列对(QP)相关联的不同 状态的例示。

图4示出根据本发明的实施例的从网络和路由角度的虚拟机 (VM)动态迁移的例示。

图5示出根据本发明的实施例的在虚拟机(VM)动态迁移之前 虚拟化环境的例示。

图6示出根据本发明的实施例的在虚拟机(VM)动态迁移之后 虚拟化环境的例示。

图7示出了根据本发明的实施例的用于支持在虚拟化环境中虚 拟机的动态迁移的示范性流程图。

图8示出根据本发明的实施例的无限带架构(IBA)网络设备的 例示。

图9示出根据本发明的实施例的支持迁移的队列对(QP)与远 程对等方QP之间的通信的例示。

图10示出了根据本发明的实施例的用于支持基于扩展的vHCA 模型的虚拟机的动态迁移的示范性流程图。

图11示出根据本发明的实施例的支持虚拟化环境中的局部标识 符(LID)分配的例示。

具体实施方式

本发明通过示例方式而不是通过限制方式来在附图的图示中示 出,其中相似的参考指示相似的元件。应当注意,在此公开中的参考 “一”或“一个”实施例或“一些”实施例不一定是指相同的实施例, 并且此类参考意味着至少一个。

下述发明的描述使用无限带(IB)网络作为高性能网络的示例。 对本领域技术人员来说,显而易见可以无限制地使用其它类型的高性 能网络。同样,下述发明的描述使用Xen虚拟化模型作为虚拟化模型 的示例。对本领域技术人员来说,显而易见可以无限制地使用其它类 型的虚拟化模型。

这里描述的是可以支持网络中虚拟机(VM)动态迁移的系统和 方法。

根据本发明的实施例,虚拟化可以有益于在云计算中高效的资源 利用和弹性的资源分配。动态迁移可以通过以应用透明的方式在物理 服务器之间移动虚拟机(VM)来优化资源使用。因此,虚拟化可以 实现资源的强化、按需提供、和通过动态迁移的弹性。

无限带(IB)架构

IB架构是串行点对点全双工技术。IB网络可以被称为子网,其 中子网由利用交换机和点到点链路互连的一组主机构成。IB子网可以 包括至少一个子网管理器(SM),其负责初始化和提出网络,包括 子网中的所有交换机、路由器和主机信道适配器(HCA)的配置。

IB支持丰富的传输服务集合,以便提供远程直接存储器存取 (RDMA)和传统的发送/接收语义。独立于使用的传输服务,IB HCA 利用队列对(QP)进行通信。QP在通信建立期间创建,并且可以具 有诸如QP数目、HCA端口、目的地LID、队列大小、和提供的传输 服务之类的初始属性集合。HCA可以处理许多QP,每个QP由一对 队列构成,诸如发送队列(SQ)和接收队列(RQ),并且存在一个 这样的对呈现在参与通信的每个终端节点处。发送队列保存要被传送 到远程节点的工作请求,而接收队列保存关于对从远程节点接收的数 据做什么的信息。除了QP之外,每个HCA具有与发送和接收队列 的集合相关联的一个或多个完成队列(CQ)。CQ保存用于发布给发 送和接收队列的工作请求的完成通知。即使通信的复杂度对用户隐 藏,QP状态信息也被保存在HCA中。

每个物理IB设备被分配双地址:LID和全球唯一标识符 (GUID)。LID用于在子网内路由IB分组,而GUID是唯一地表示 物理IB设备的硬件地址。64位GUID与局部(64位)子网前缀组合 以形成全局标识符。128位全局标识符用于在IB子网之间路由IB分 组。

输入/输出(I/O)虚拟化

I/O虚拟化(IOV)可以通过允许VM访问下层物理资源提供I/O 的可用性。存储业务和服务器间通信的组合施加增加的负载,可能压 垮单个服务器的I/O资源,在它们等待数据时导致积压和空闲的处理 器。随着I/O请求的数目增加,IOV可以提供可用性;并且可以改善 (虚拟化的)I/O资源的性能、可分级性和灵活性以匹配在现代CPU 虚拟化中看到的性能水平。

可以存在不同类型IOV技术,诸如仿真、半虚拟化、直接分配 (DA)、和单一根-I/O虚拟化(SR-IOV)。在这些IOV技术当中, SR-IOV可以扩展快速PCI(PCIe)规范,意味着允许从多个VM直 接存取单个物理设备同时维持接近固有性能。因此,SR-IOV可以提 供良好性能和可分级性。

SR-IOV允许PCIe设备暴露可以通过将一个虚拟设备分配到每 个访客在多个访客之间共享的多个虚拟设备。每个SR-IOV设备具有 至少一个物理功能(PF)和一个或多个关联的虚拟功能(VF)。PF 是由虚拟机监控器(VMM)、或超控制器控制的正常PCIe功能,而 VF是轻型PCIe功能。每个VF具有它自己的基局部址(BAR)并且 被分配有使得I/O存储器管理单元(IOMMU)在业务流与不同的VF 之间进行区分的唯一的请求者ID。IOMMU也在PF与VF之间应用 存储器和中断转换。

可以存在不同类型的SR-IOV模型,例如共享端口模型和虚拟交 换机模型。在共享端口模型中,所有VF可以共享单个端口地址和单 个QP名称空间,并且仅仅单个HCA端口暴露于网络。在虚拟交换 机模型中,每个VF是包含唯一端口地址和唯一QP名称空间的虚拟 HCA,并且用于设备上的每个VF的一个HCA暴露于网络。因此, 虚拟交换机模型可以简化具有多个复杂硬件的IOV。

SR-IOV能力设备的使用可以输出接近固有的性能和改善的可 分级性。另一方面,SR-lOV可以不是与动态迁移和检查点/重新开始 机制完全不兼容的。

动态迁移的硬件解决方案

根据本发明的实施例,硬件解决方案可以基于灵活、高性能和可 升级的虚拟化的IO架构,以应用透明的方式支持物理服务器之间的 虚拟机(VM)的动态迁移。此外,硬件解决方案可以增加迁移的透 明性并且改善IB与SR-IOV之间的互操作性。另外,系统可以可应 用于诸如虚拟接口架构(VIA)和Myrinet之类的其它高速无损联网 技术。

利用硬件解决方案,IB主机信道适配器(HCA)可以将每个物 理功能(VF)区分为具有用于QP的它自己的资源池的虚拟端点。此 外,诸如QPN之类的QP属性可以在迁移之后被重复使用。同样,IB HCA可以基于用于暂停和重新开始通信的QP状态支持VM动态迁 移。

另外,系统可以避免可以用来在迁移的QP与迁移的QP对等方 之间静默的握手机制。因此,系统允许虚拟机(VM)的动态迁移以 将服务停止时间减少到与IB中可靠连接的重试超时可比较的级别。

此外,系统可以表示支持VM动态迁移的一般解决方案,包括 具有严格定时要求的情况和应用。例如,在高可用性集群中,由有故 障的物理服务器托管的VM可以在有限时间内被迁移到另一个服务 器。迁移可以在故障被发现之后,但是在有故障的服务器变为不可恢 复的错误之前发生。软件方法不足以完成低服务停止时间的此需要, 因为它们遭受开销。此外,软件方法就开发费用而言是昂贵的。

虚拟端点

根据本发明的实施例,虚拟接口架构(VIA)硬件可以集成PCI 虚拟交换机以区分从每个VF创建的VI。在虚拟交换机后面,多个独 立的虚拟端点可以由网络管理器发现。

图1示出根据本发明的实施例的虚拟接口架构(VIA)网络设备 的例示。如图1所示,虚拟接口架构(VIA)网络设备100可以包括 硬件层110、虚拟机监控器120和一个或多个虚拟机,例如VM 101-102。在这里,VM101可以基于内核代理107支持与固定的存储 器105相关联的用户进程103。VM102可以基于内核代理108支持与 固定的存储器106相关联的用户进程104。

虚拟交换机130可以被提供在硬件层110上。虚拟交换机130 可以与一个或多个虚拟功能(VF),例如VF111-119相关联。VF 111-119的每一个可以创建并管理一个或多个虚拟接口(VI)。

根据本发明的实施例,利用虚拟交换机模型,每个VF111-119 可以被隔离为可以分配给例如VM101或VM102的访客VM的专用 的PCI端点。此外,VF111-119的每一个可以具有它专用的VI名称 空间121-129并且可以被认为是完成的VI端点。VI名称空间隔离可 以提供虚拟化的环境中的保护和灵活性。每个VF可以被限制为访问 分区内的VI资源,其扩展了用于IO操作的VM的保护和隔离性质。 此外,VI属性可以在迁移之后被重复使用。

例如,硬件层110可以基于诸如IB架构之类的高速网络架构。 VF111-119的每一个可以是虚拟主机信道适配器(vHCA),其包含 唯一的端口地址和唯一的QP名称空间。另外,一个vHCA可以暴露 于用于IB设备上的每个VF的网络。此外,每个vHCA可以与它自 己的QP名称空间相关联并且可以创建并管理一个或多个队列对 (QP),诸如IB架构中的QP131和132。如图1所示,队列对(QP) 131-132的每一个可以包括发送器队列和接收器队列。

此外,VIA设备100可以利用IO存储器管理单元(IOMMU) 功能的优势。VI属性可以被存储在经由由IOMMU翻译的IO虚拟存 储器访问的存储器区域中。当新的VF被重新附接到VM时,在没有 明确地再创建新的VI的情况下,超控制器可以改变IOMMU以将IO 虚拟存储器重新映射到新的物理存储器集合。与共享的VI名称空间 模型相比,虚拟交换机模型简化资源迁移并且避免使用映射表重新映 射VI属性以便保持用于正在运行的应用的透明性。

队列对(QP)暂停状态

图2示出根据本发明的实施例的与虚拟接口(VI)相关联的不 同状态的例示。如图2所示,VI的生命周期可以包括多个状态,诸如: 空闲状态201、待定连接状态202、连接状态203、错误状态204、和 暂停状态205。

暂停状态205指示正在进行的通信被临时中止以便让VI处于静 默状态,例如在动态迁移期间。连接状态203与暂停状态205之间的 转变可以由软件发起的请求或通过VI事件请求驱动。例如,在迁移 期间,软件接口可以将迁移的VI从连接状态203修改到暂停状态205。

当VI进入暂停状态205时,VI可以完成任何先前发起的消息传 输并且将任何剩余消息刷到硬件发送器队列上而不处理它们。硬件可 以保证剩余消息在刷它们之前由用于用户进程的发送器队列高速缓 存。在暂停状态205中,任何新消息可以在发送器队列和接收器队列 中被排队,并且保持被发布而不被处理。

此外,如果输入消息把暂停的VI作为目标,则SuspendRequest (暂停请求)事件可以由暂停的VI生成以将对等方VI转变成为暂停 状态205。在这种情况下,先前发起的消息可以在接收的 ResumeRequest(重新开始请求)事件之后被重新发送并且可以不对 未完成的传输生成超时错误。

在新的VF附接于迁移的VM之后和在迁移的VM被在新位置重 新开始之前,停止和复制阶段可以将IO虚拟存储器寄存到IOMMU 中新设置的物理存储器。然后,软件接口可以将迁移的VM的VI状 态修改到连接状态203。然后,系统可以触发转发到对等方VI的 ResumeRequest事件。对等方VI然后可以在不生成ResumeRequest 事件的情况下转变回到连接状态203。因此,暂停状态205可以提供 VM的动态迁移期间的平滑转变,并且VI可以处于静默状态。

根据本发明的实施例,为了减少在VM动态迁移期间的停止时 间,具有最小延迟的方法是暂停VI或正好在所有未完成的操作已经 完成之前分离VF。因此,扩展可以改善超时并且重试作为暂停状态 205处理的一部分的由可靠传输协议提供的处理。在不引起对于或者 对等方VI或者迁移VI的致命错误的情况下,扩展的重试和超时逻辑 可以将VI转变到暂停状态205。

因此,VI可以在迁移之后不具有对VI的可用性的困难的实时约 束的情况下被迁移。此方法也可以覆盖其中由于网络中的延迟在VI 之间没有生成事件报告(SuspendRequest和ResumeRequest)的情况。 另外,在具有多个VI的情况中,每个VI可以同时执行以上操作。

图3示出根据本发明的实施例的与队列对(QP)相关联的不同 状态的例示。如图3所示,QP的生命周期300包括多个状态,诸如: 复位状态301、初始化(INT)状态302、准备接收(RTR)状态303、 准备发送(RTS)状态304、SQ误差(SQE)状态305、错误状态306、 SQ排出(SQD)状态307、和暂停(SUS)状态308。

暂停状态SUS308可以临时中止正在进行的通信以在迁移期间 静默QP。RTS304与SUS308之间的转变可以由软件发起的请求或 通过事件请求触发。在迁移期间,软件接口可以将迁移的QP从RTS 304状态转变到SUS308状态。当QP进入暂停状态205时,它可以 完成任何先前发起的消息并且将任何剩余消息刷到SQ中而不处理它 们。硬件也可以保证剩余消息在刷它们之前由用户进程缓冲器高速缓 存。在暂停状态205中,任何新消息可以在SQ和RQ中被排队,但 是保持被发布而不被处理。

VM动态迁移的联网和路由角度

图4示出根据本发明的实施例的从网络和路由角度的虚拟机 (VM)动态迁移的例示。如图4所示,虚拟化环境400可以包括多 个vHCA,例如vHCA A-C401-403。vHCA A-C401-403的每一个可 以用作完成的IB端点,其可以提供用于虚拟化的透明性。

另外,虚拟化环境400可以包括网络管理器410。网络管理器可 以发现IB交换机A-B431-432后面的vHCA A-C401-403,并且可以 基于不同的LID和vGUID识别vHCA A-C401-403的每一个。例如, vHCA A401可以被分配有LID A411和vGUID A421,而vHCA A 402可以被分配有LID B412和vGUID B422,并且vHCA C403可 以被分配有LID C413和vGUID C423。

根据本发明的实施例,在VM迁移期间,网络管理器410可以 注意到例如vHCA B402的IB端点在IB交换机A431后面停止(即 暂停),并且在IB交换机B432后面的网络(如vHCA B404)的另 一端重新出现,具有例如LID B412和vGUID B422的相同地址,被 传送到新的位置。

在迁移之后,网络管理器410可以更新路由表420以在它移位之 后反映LID的新的重新布置。此外,可以实施局部地修改LID的新 的路由算法以便减少整个网络的重新路由时间。另外,网络管理器410 也可以保证新的LID布置是无死锁的。

此外,高速网络可以具有有限的局部地址资源。例如,当每个 vHCA被分配它自己的LID并且在1000个节点群中的每个节点托管 多个VM时,可以使用16位的LID的IB网络可能快速用尽地址空 间。

根据本发明的实施例,系统可以使用不同的方法处理虚拟化环境 中的可分级性问题。例如,系统可以将LID寻址空间扩展到32位, 或组合vGUID与LID以执行vHCA之间的路由。第一解决方案不需 要在网络管理器中任何架构修改;但是,它不向后兼容旧的硬件。

虚拟机角度

图5示出根据本发明的实施例的在虚拟机(VM)动态迁移之前 虚拟化环境的例示。如图5所示,IB网络500可以包括多个主机,例 如主机A-B501-502。主机A501包括使用HCA517的VMM A515, 并且可以支持特权域(或管理域),Dom0 511,其管理例如DomU513 的访客域。同样,主机B包括使用HCA518的VMM B516,并且可 以支持管理DomU514的Dom0 512。

此外,在主机A501上的VMa503可以与例如VF505的VF连 接,其连接到例如QPa507的队列对。另外,VMa503可以与VMb504 通信,VMb504与QPb508相关联。

根据本发明的实施例,例如在主机A501上的Dom0 511的特权 域不需要例如VF505的设备在迁移期间被分离。系统可以仅需要例 如QPa507的有效QP在停止和复制阶段处暂停。

如图5所示,在主机A501上的特权域Dom0 511可以发起VMa 503迁移到主机B102(如在图6中的VMa604)。在VMa503的迁 移之前,系统可以执行将它置于暂停状态的状态转移操作。此外,在 从QPb508接收输入分组之后,暂停的QPa507可以指示QPb508 也进入暂停状态。

然后,例如基于远程直接存储器存取(RDMA)连接520,可以 通过在源与目的地服务器之间同步包括I/O虚拟存储器的脏页(存储 器)来执行VM迁移。

图6示出根据本发明的实施例的在虚拟机(VM)动态迁移之后 虚拟化环境的例示。如图6所示,IB网络600可以包括多个主机,例 如主机A-B601-602。(另外,在图6中具有与图5中相同数字的元 件可以提供相同的功能)。

在迁移到主机B602之后,VMa603可以与新的VF连接,例如 VF616,其连接到例如QPa’607的队列对。在这里,QPa’607与图5 中的QPa507在逻辑上是相同的并且具有在VMa503(或VMa603) 的虚拟存储器中相同的上下文信息。

此外,在VMa603被取消暂停之前,特权域Dom0 612可以对 QPa’607执行状态转移,其可以将QPa’607放置回到RTS状态。此 外,QPa’607可以重新开始与主机A601上的QPb608进行通信。

因此,用于迁移的服务停止时间可以等效于停止和复制阶段的持 续时间。同样,利用RDMA操作执行迁移还可以减小服务停止时间 和总迁移时间。

图7示出了根据本发明的实施例的用于支持在虚拟化环境中虚 拟机的动态迁移的示范性流程图。如图7所示,在步骤701处,系统 可以将虚拟交换机与多个虚拟功能(VF)相关联,其中每个所述虚拟 功能(VF)与单独的队列对(QP)空间相关联。此外,在步骤702 处,系统可以将所述虚拟功能(VF)与至少一个虚拟机连接,其中所 述虚拟功能(VF)与虚拟接口(VI)相关联。然后,在步骤703处, 所述至少一个虚拟机可以执行从第一主机到与所述虚拟功能(VF)连 接的第二主机的动态迁移。

扩展的HCA模型

图8示出根据本发明的实施例的无限带架构(IBA)网络设备的 例示。如图8所示,无限带架构(IBA)网络设备800可以包括硬件 层810、虚拟机监控器820和一个或多个虚拟机,例如VM801-802。 VM801可以支持基于内核807和用户库837与固定的存储器805相 关联的应用803。VM802可以支持基于内核代理808和用户库838 与固定的存储器806相关联的应用804。

硬件层810可以包括结构适配器,诸如IB HCA830,其连接到 IB子网840。此外,IB HCA830可以与多个vHCA实例,例如vHCA 811-819相关联。

根据本发明的实施例,例如物理HCA830的结构适配器可以实 施虚拟交换机模型、扩展的HCA模型、或两个模型的结合。此外, 利用扩展的HCA模型,可以存在仅仅物理的HCA830而没有交换机。 虚拟HCA811-819表示物理HCA模型的扩展,并且一个或多个虚拟 HCA实例811-819可以经由物理HCA830端口从例如IB子网840的 结构中可访问。

根据本发明的实施例,硬件层810可以支持以下特征以便保护用 于执行VM动态迁移的分配的IB资源。

1.QP上下文(例如QP数目)可以通过允许每个vHCA具有私 有QP空间被保护。

2.存储器区域数目可以通过允许每个vHCA具有私有存储器区 域数目空间被保护。

3.寄存的存储器可以通过允许每个vHCA实施用于访问局部物 理主机局部存储器的私有虚拟地址空间被保护。

可以利用或者上述部分讨论的基于虚拟交换机的模型、或者通过 利用扩展的HCA模型实施私有QP空间。扩展HCA规范的扩展的 HCA模型允许定义多个vHCA实例811-819,每个可以具有私有QP 空间。如图8所示,vHCA811-819的每一个可以支持队列对(QP), 例如QP821-829,其可以通过与例如应用803或804的应用相关联的、 用于发送并且接收分组的发送器/接收器缓冲器使用。

此外,扩展的HCA规范可以具有不依赖于更复杂的结构拓扑的 优势。另外,对于每个vHCA可以基于与用于私有QP空间的相同的 替换物实施私有存储器区域数目空间。

根据本发明的实施例,用于局部物理存储器的私有虚拟地址空间 可以被独立于vHCA方案是否基于虚拟交换机模型或扩展的HCA模 型而实施。

实施私有虚拟地址空间的一种方法是通过利用服务器平台,其中 由物理HCA观察的局部存储器地址空间表示虚拟存储器。此虚拟存 储器可以由具体地用于每个SRIOV VF,即vHCA811-819的每一个 的主机平台实施。

实施私有虚拟地址空间的另一个方式是通过包括由例如VMM 820的平台超控制器控制的系统MMU的集合内的物理HCA的存储 器管理单元(MMU)。因此,特定于VM的地址空间可以在不同的 物理主机之间迁移而不改变任何虚拟地址,其中虚拟地址到物理地址 的映射根据需要被更新。(例如,私有虚拟地址空间可以通过让系统 MMU在物理HCA与局部物理存储器之间来实施)。

根据本发明的实施例,连接状态可以被保存在被迁移的VM的 局部存储器中。同样,连接状态可以在迁移之后被对于新的vHCA重 建(或重新使用),而不需要分配任何新资源。

此外,暂停状态(如图3所示)可以应用于迁移的QP和连接到 迁移的QP的远程对等方QP二者。因此,系统可以保证在VM迁移 期间没有超时可以发生,并且系统可以允许迁移操作独立于由迁移的 VM的对等方实施的IB连接有关的超时值花费任意数量的时间。此 外,为了允许与连接相关联的IB地址由于迁移而改变,系统可以更 新用于暂停状态中的QP的地址信息。

与远程QP对等方的通信

根据本发明的实施例,系统可以使用用于支持对等方之间的通信 的特殊报头信息和/或非征求性消息。系统允许VM动态迁移被发起 而不在远程对等方之间执行静默操作。此外,系统允许远程对等方知 道迁移并且以异步事件驱动方式进入暂停状态。

例如,可以支持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上下文不是已知的,直到vHCA索引已 从VRH中检索。

图9示出根据本发明的实施例的支持迁移的队列对(QP)与远 程对等方QP之间的通信的例示。如图9所示,虚拟化环境900可以 包括多个主机,例如主机A-C901-903,每个可以包括软件栈,例如 SW911-913中的一个。(软件栈可以驻留在内核空间、用户空间或两 者中)。

此外,在QPa910迁移到主机C903(如QPa930)之前,主机 A901上的QPa910可以与主机B902上的QPb920通信。QPa910 可以被设置在暂停状态以实现迁移,在该时间期间QPb920可以将分 组(UD,UC或RC)发送到QPa910。目标是主机A901上的无效 vHCA931的此分组可以使用或者GRH或者基于VRH/LID映射的地 址。

在接收到目标为无效vHCA931的分组之后,主机A901可以生 成局部异步事件并且可选地将非征求性响应分组发送到vHCA932上 的QPb920。此外,当QPb920接收非征求性响应分组时,它可以生 成包含来自于非征求性响应的信息的局部异步事件。然后,如果QPb 920是启动的可靠连接的(RC)或不可靠的连接(UC)QP,则QPb 920可以自动地执行转变到暂停状态(如图3所示)。

根据本发明的实施例,由IBA提供的动词接口可以包括用于将 队列对(QP)转移到暂停状态和从暂停状态转移的ModifyQP和 ModifyAddressHandle选项。此外,当暂停状态被对于RC QP复位 时,重试计数和计时器可以被复位到初始值(即在进入暂停状态之前 耗费的任何“重试预算”可以被“遗忘”)。虽然在暂停状态中,对 于RC或UC QP,路径信息可以被更新。QP和地址处理可以保持在 暂停状态中,直到例如SW A-C911-913的局部软件明确地复位暂停 状态。在这里,在复位暂停状态之前,局部软件可以获得可以包括目 的地LID和VRH信息的更新的路径信息。

根据本发明的实施例,每当由它的vGUID标识的vHCA端口开 始在IB网络中操作时,可以经由用于相关物理HCA端口的vGUID 和vHCA信息报告给vHCA端口。在VM/vHCA迁移的情况下,目 的地节点物理HCA端口的vGUID和vHCA信息和SMA信息可以在 迁移的vHCA开始操作时被更新。在VM迁移之后,具有暂停的QP 或地址处理的远程对等方可以观察有关信息并且在已经更新相关路 径信息之后复位暂停状态。

此外,当在新的位置处重新开始迁移的VM和vHCA时,通信 对等方可以不知道迁移的vHCA。例如,当例如QPa930的迁移的 RC QP将请求发送到它的对等方时,QPb920、QPa930可以具有正 确的路径信息,因为QPb920有可能没有在相同时间帧在被迁移。同 样,如果QPb920不具有更新的路径信息,则对来自于迁移的QPa930 的输入请求的确认和响应可能被发送给旧的目的地。然后,旧的目的 地可以将非征求性响应发送到QPb920,使得QPb920意识到路径信 息已经被更新。

另外,在例如主机C903的新位置处开始的迁移的vHCA,例如 vHCA933,可以依赖对等方以以及时方式更新路径信息,以便避免 输出的请求变得超时。例如,当QPb920不具有正确的路径信息时, 从迁移的vHCA933输出的请求由于确认和响应没能回来的事实而可 能超时。

为了保证来自于迁移的QPa930的原始请求分组可以通知对等 方QPb920迁移已经发生,系统可以使得迁移信息可从请求分组中的 报头内容中检测。例如,代替依赖于对等方检测源地址信息中的任何 相关变化,VRH可以包含迁移计数字段。迁移计数字段可以在迁移 的vHCA930再次在新位置(主机C903)处开始操作之前被更新。 此外,相对于在对等方QP状态中记录的,迁移计数的变化可以引起 识别对等方节点上的状况的异步事件。因此,通过经由VRH迁移计 数字段明确地通知远程对等方,系统可以在大多数情况下避免迁移的 HCA端的QP的超时。

根据本发明的实施例,为了完全避免对于对等方的实时依赖性以 更新路径信息,迁移的vHCA可以在非暂停待定状态中以QP开始。 非暂停待定QP状态与暂停状态相似,除了允许输出请求。此外,在 迁移之后重新开始vHCA之后生成的对请求的响应或确认从远程对 等方接收到之后,非暂停待定状态可以被复位并且QP可以正常行为。

此外,系统的实施方式(HW、FW或SW)可以使用超时和重 试以解决分组的丢失,而QP本身的超时行为可以与在暂停状态中一 样(即,由于超时而不进入到错误状态)。另外,非暂停待定状态可 以用于对于没有被迁移的vHCAs/QPs得体地执行从暂停状态中的转 变。

可替换地,在其中VRH不被使用的情况中,迁移的信令可以经 由非征求性消息完成。例如,非征求性消息可以在迁移之后的重新开 始之后潜在地与正常消息被交织发送。此外,来自于远程对等方QP 的请求或响应的接收可以消除对发送此类非征求性消息的需要。在这 里,非征求性消息的使用允许信令独立于QP/连接上的任何其它通信 活动发生。

因此,利用附加报头信息和/或非征求性消息,系统允许迁移的 QP自动地向它的对等方QP发关于迁移发生的信号并且向它的对等 方QP提供包含的新地址信息。地址信息的任何相关更新可以与子网 管理器的有关信息的通告和报告并行发生并且可以进一步减小用于 使得连接回到完全操作状态的延迟。

图10示出了根据本发明的实施例的用于基于扩展的vHCA模型 支持虚拟机的动态迁移的示范性流程图。如图10所示,在步骤1001 处,系统可以将结构适配器与多个虚拟主机信道适配器(HCA)关联, 并且其中每个所述虚拟主机信道适配器(vHCA)与单独的队列对 (QP)空间相关联。在这里,结构适配器可以实施虚拟交换机模型、 扩展的主机信道适配器(HCA)模型、或两个模型的结合。此外,在 步骤1002处,至少一个虚拟机可以执行从第一主机到第二主机的动 态迁移,其中所述至少一个虚拟机连接到与所述队列对(QP)空间中 的队列对(QP)相关联的所述虚拟主机信道适配器(vHCA)。然后, 在步骤1003处,所述队列对(QP)可以在迁移之后向对等方QP发 送关于动态迁移的信号并且向所述对等方QP提供地址信息。

可升级的寻址方案

根据本发明的实施例,作为层3(L3)地址的一部分、与VM相 关联的虚拟GUID可以通过动态迁移被保护并且虚拟GUID可以用于 从通信对等方的角度、以及从子网管理器的角度唯一地识别VM。

不像存在更新与被迁移的远程连接对等方相关联的地址信息的 固有需要的软件方法,扩展的HCA模型允许与VM相关联的地址信 息被跨迁移保护。因此,没有更新用于连接对等方的地址信息的固有 需要,因为系统可以保护IB层2(L2)、或局部路由报头(LRH), 除了L3、或全局路由报头(GRH)、地址之外,地址信息可以被保 护。

根据本发明的实施例,系统可以实现IB子网内的可分级性和灵 活性。例如,IB子网可以被限于48K LID值。系统支持忽略LMC 特征,其允许HCA基于IB子网中的子网管理器决定使用来便于将分 组转发到相关HCA端口(物理端口或vHCA端口)的无论任何LID 值被寻址。例如,HCA端口可以不被迫使具有专用的LID或基于二 的连续LID范围(如HCA端口LID掩码,即LMC值所定义的)的 专用能力。

另外,系统可以支持管理LID的范围的使用,其表示子网管理 器将不使用作为用于物理端口的静态分配的LID/LID范围的LID值。 此外,子网管理器可以在VM创建时间,或者动态地在VM生命期期 间,将管理LID分配到需要唯一LID用于寻址的VM。

图11示出根据本发明的实施例的在虚拟化环境中支持局部标识 符(LID)分配的例示。如图11所示,虚拟化环境1100可以包括子 网管理器(SM)1101,其可以负责分配用于各个网络设备的LID, 诸如物理HCA端口1111-1112,和虚拟HCA端口1121-1123。

SM1101可以支持如下策略接口,其中管理LID1120的范围可 以被储存。每个管理LID在SM1101可以不将此值分配到任何端口 除非经由策略输入指示的意义上是特殊的。

此外,SM1101可以支持如下策略接口,其中vGUID可以与一 个或多个此类管理LID相关联并且其中vGUID迁移意味着用于对应 LID的路由被设置到相关物理HCA端口。另外,如果vGUID与管理 LID相关联,则SM1101可以不允许将vGUID与不支持忽略LMC 特征的物理HCA端口关联。

根据本发明的实施例,管理LID的路由可以基于此刻对SM101 有效的路由算法和策略。用于与管理LID相关联的vGUID的路径信 息可以根据由SM101限定的策略反映分配的管理LID。

因此,独立于VM动态迁移操作,系统可以使用忽略LMC和管 理LID特征以提供用于在IB子网之内寻址的可分级性和灵活性。一 般,这些特征可以用于便于可以用于到达IB子网内的任何物理或虚 拟HCA端口的一个或多个附加LID的动态创建。

此外,动态服务质量(QoS)、高可用性(HA)、和/或其它基 于多地址的属性可以在运行时间被动态地建立。这些特征可以被施加 于任何具体的物理或虚拟HCA端口而不需要子网重新初始化,或引 起对IB子网内的正在进行的通信的任何其它负面影响。

可以使用一个或多个传统的通用或专门数字计算机、计算设备、 机器或微处理器方便地实现本发明,包括一个或多个处理器、存储器 和/或根据本公开的教导编程的计算机可读存储介质。合适的软件编码 能够容易地由熟练的程序员基于本公开的教导来准备,这对软件领域 的技术人员将是明显的。

在一些实施例中,本发明包括计算机程序产品,其是上面或其中 存储指令的存储介质或计算机可读介质(介质),指令可以用于编程 计算机来执行本发明的处理中的任何一个。存储介质能够包括以下中 的一个或多个:任何类型的盘,包括软盘、光盘、DVD、CD-ROM、 微驱动器、和磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、 VRAM、闪速存储器件、磁或光卡、纳米系统(包括分子存储器IC) 或适合于存储指令和/或数据的任何类型的介质或设备,但是不局限于 此。

本发明的上面的描述是为了说明和描述的目的而提供的。它不意 欲是穷举的或将本发明限制于公开的精确的形式。许多修改和变化能 够对本领域的实践者是明显的。选择并且描述实施例以便最佳地说明 本发明的原理和它的实际应用,从而使得本领域技术人员能够理解用 于各个实施例中的并且具有适合于预期的特定使用的各种修改的本 发明。预期本发明的范围由以下权利要求书和它们的等价物定义。

去获取专利,查看全文>
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号