从源物理适配器向目的物理适配器迁移虚拟适配器的方法、装置和计算机可用程序代码的制作方法

文档序号:6453810阅读:214来源:国知局
专利名称:从源物理适配器向目的物理适配器迁移虚拟适配器的方法、装置和计算机可用程序代码的制作方法
技术领域
本发明总的涉及数据处理系统,更具体地,涉及包括已经虛拟化的物 理适配器的数据处理系统。更具体地,本发明涉及在数据处理系统中的计 算机实现的方法、装置和计算机可用程序代码,在所述数据处理系统中多
个主计算机系统共享多个适配器并通过PCI交换结构总线与这些适配器通 信,所述PCI交换结构(switched-fabric)总线用于从源物理适配器向目 的物理适配器迁移虚拟适配器。
背景技术
传统PCI总线是允许将扩展卡安装在单计算机系统(例如个人计算机) 中的局部并行总线。然后,将PCI兼容适配器卡与PCI总线耦合,以向计 算机系统添加输A/输出(1/0)设备,例如盘驱动器或其他设备。需要PCI 桥接器/控制器,以将PCI总线连接至计算机系统的系统总线。PCI总线可 通过PCI桥接器/控制器与安装有PCI总线的计算机系统的CPU通信。在 单计算机系统中可存在多个PCI桥接器。然而,这些PCI桥接器用于将多 个PCI总线与安装有PCI总线的计算机系统的CPU耦合。如果单计算机 系统包括多个CPU,则可通过单计算机系统的多个CPU来使用PC1总线。
PCI Express ( PCI-E )总线提供了与PCI软件环境兼容的迁移路径。 除了提供最优带宽、性能以及总线宽度和总线频率的可测量性之外,PCI Express还提供了其他改进特征。这些特征包括QoS(服务质量)、积极 功率管理、本地热插拔、每针脚带宽效率、错误报告、恢复和纠正和创新 的波形因数,并且满足逐渐增加的复杂功能的需要,例如点对点传输和动
态重新配置。PCI Express还能够通过少量的针脚数和配线实现产品的低 成本设计。线性标度的16-lane的PCI Express互连可提供大于每秒8千兆 的数据传输速率。
在PCI Express计算环境中的主计算机系统典型地具有PCI到主桥功 能,其通常已知为才娥合体(root complex)。根联合体桥接在CPU总线 (例如超传输)和PCI-E总线之间。如果必要,可以在根联合体中执行其 他功能,例如地址转换。包含一个或多个根功能的多个主机称为多根系统。
现今,PCI-E总线不允许在多个独立计算机系统之间共享PCI适配器。 例如,PCI适配器不能够由多个服务器计算机系统共享。因此,在使用PCI 总线的现有计算机系统中,物理I/O适配器不能够被以下系统共享,包括 a )在单根环境中作为1/0设备的唯一所有者的主机操作系统或访^作系 统;或b)在多根环境中作为1/0设备的唯一所有者的单操作系统或访客 操作系统。单1/Oi殳备不能够被单根环境中的多个访客操作系统,或多根 情况下多个主机上的多个访M作系统共享。
此外,现有PCI环境不允许物理I/O适配器的虚拟化。目前,1/0设 备不能够在标准PCI或PCI Express数据处理系统中虚拟化。由于在已知 计算机系统中不存在虚拟I/O适配器,所以已知计算机系统也不允许从源 物理适配器向目的物理适配器迁移虛拟I/O适配器。
在不使用PCI环境的已知系统中,可将辅助物理适配器设计为用于主 物理适配器的失败转移设备。在这些系统中,当主物理适配器出现故障时, 可使用辅助物理适配器代替主适配器。然而,这些不涉及虚拟适配器。在 这些系统中,^使用一个物理适配器代替出现故障的物理设备。用辅助物理 适配器代替整个主物理适配器。在这些系统中不存在迁移。存在对于一个 设备用另一个设备的代替。此外,代替设备(即,辅助物理适配器)完全 代替整个主设备(即,主物理适配器)。因此,需要一种在数据处理系统 中从源物理适配器向目的物理适配器迁移虚拟实体(还称为虛拟适配器) 的计算机实现的方法、装置和计算机可用程序代码,在所述数据处理系统 中多个主计算^L系统共享多个适配器并通过PCI交换结构总线与这些适配
器通信。

发明内容
公开一种计算机实现的方法、装置和计算机可用程序代码,用于在数 据处理环境中从源物理适配器向目的物理适配器迁移虛拟适配器,在数据
处理环境中多个主计算;f几系统共享多个适配器并通过PCI交换结构总线与 那些适配器通信。首先使得虚拟适配器停止处理事务。这样,使得虚拟适 配器离线。然后,捕获与所述虚拟适配器相关的所有进行中事务。从所述 源物理适配器向所述目的物理适配器转移用以定义虚拟适配器的配置信 息。然后,将进行中事务恢复到它们原始位置。 一旦虚拟适配器转移到目 的物理适配器时,将在虛拟适配器位于源物理适配器中时从虚拟适配器捕 获的进行中事务恢复到虚拟适配器。因此,将来自虚拟适配器的进行中事 务恢复到目的物理适配器。然后,在所述目的物理适配器上重启所述虛拟 适配器,从而所述虚拟适配器开始处理事务。


现在参照附图,仅通过实例描述本发明,其中
图l是根据本发明示例性实施例的分布式计算系统的示图2是包括本发明示例性实施例的逻辑分区平台的框图3是用于实现根据本发明示例性实施例这里所示的任意数据处理系
统的数据处理系统框图4示出包括本发明示例性实施例的数据处理环境,即在根据本发明
示例性实施例从源物理适配器向目的物理适配器迁移特定虚拟适配器之
前,计算机系统利用PCI交换器的结构与适配器(例如I/O适配器)耦合
的数据处理环境;
图5示出包括本发明示例性实施例的数据处理环境,其中在根据本发 明示例性实施例从源物理适配器向目的物理适配器迁移特定虛拟适配器之 后,在迁移之后没有重新配置虛拟适配器和物理适配器的情况下,计算机
系统利用PCI交换器的结构与适配器(例如I/O适配器)耦合的数据处理 环境;
图6示出示出包括本发明示例性实施例的数据处理环境,即在根据本 发明示例性实施例从源物理适配器向目的物理适配器迁移特定虛拟适配器 之后,在迁移之后至少重新配置某些虛拟适配器和/或物理适配器的情况 下,计算机系统利用PCI交换器的结构与适配器(例如I/O适配器)耦合 的数据处理环境;和
图7A和7B示出高级流程图,其描述才艮据本发明示例性实施例从源物 理适配器向目的物理适配器迁移特定虚拟适配器。
本发明的示例性实施例应用于多个主计算机系统通过共同I/O结构共 享I/O适配器(IOA)池的任意通用计算系统或专用计算系统。在优先实 施例中,该结构是符合PCI Express标准的设备集。
在本发明的示例性实施例中,PCI Express I/O结构与多个主计算机系 统以及多个I/O适配器连接,从而多个不同主计算机系统可与其他主计算 机系统共享I/O适配器。可对物理适配器虚拟化,从而对一个或多个主计 算机系统逻辑分配所有或部分的物理适配器。每一个虚拟适配器在其主计 算机系统看来是单独的和独立的物理适配器。这样,被逻辑分成多个虚拟 适配器的物理适配器类似于几个不同的和独立的物理适配器一样操作。
可将每一个虛拟适配器分配给相同的或不同的主计算机系统。对于本 领域普通技术人员,虚拟适配器还已知但不限于虛拟实体或虚拟功能。例 如,可将特定物理适配器逻辑分成3个虚拟适配器。可将这些虚拟适配器 中的每一个分配给相同或不同主计算机系统。
期望将特定虚拟适配器从其源物理适配器向不同的物理适配器迁移, 以提高性能、保证适配器的高实用性、复制系统、或平衡在物理适配器之 间的工作量。根据优先实施例,可将虛拟适配器从其源物理适配器向目的 物理适配器迁移。使用配置信息来定义虚拟适配器。对于特定虛拟适配器
的配置信息包括定义在物理适配器中的特定虛拟适配器所需的所有信息。 当将虚拟适配器的配置信息复制到物理适配器时,物理适配器将具有其所 需的任何信息,以包括在物理适配器中的虛拟适配器。当将虚拟适配器的 配置信息复制到物理适配器时,然后将虚拟适配器配置在物理适配器中并 且完全可用。
源硬件和目的硬件需要是相同的版本。然后,配置状态的"保存/恢复" 处理仅是告诉适配器"准备迁移"的事件,或者换句话说,将你的状态转
移到源i殳备状态准备区(staging area)。 然后,非特定设备的迁移代码检 查以看出两个适配器的配置空间从而识别相同的设备。然后,代码简单地 将状态从源物理适配器的状态准备区复制到目的物理适配器。
对于虛拟适配器的配置状态进行"集装",并且其可包含虛拟适配器 需要的任何信息。迁移代码不知道在整个范围内什么在移动。所集装的配 置状态可包含由虚拟适配器创建的信息,例如,I/O虚拟适配器上的进行 中(in-flight)事务和登记值,例如虚拟适配器功能的开/关切换。
在从源物理适配器向目的物理适配器迁移状态之前,示例性实施例使 得虛拟I/O适配器i^控制处理停止。在上下文中,进行中事务或数据指 的是当前在适配器队列、结构设备队列、和/或主计算机系统队列中的事务。 进行中事务是要迁移的重要状态。
为了对物理适配器虛拟化以包括特定虛拟适配器,在目标物理适配器 中恢复配置信息(还称为配置状态)。目标虛拟适配器的恢复处理必须恢 复已经向其目的i殳备状态准备区复制的集装的状态。恢复处理系统地恢复 对于目标虚拟适配器的状态。然后,恢复PCI配置信息。在虛拟适配器、 结构设备、和/或主计算机系统上对进行中事务排队。在虛拟适配器中恢复 适配器特定配置(例如可实现适配器上的校验和的开/关功能切换、不同网 *质速度和图形分辨率)。
系统管理员可选^%要从其源物理适配器向目的物理适配器迁移的特定 虚拟适配器。优选地,启动PCI管理器,然后使得特定虚拟适配器停止执 行事务。在数据处理系统中的所有剩余"i殳备(包括所有剩余虛拟适配器、
所有物理适配器、所有主计算机系统和结构)继续处理和执行事务。如果 特定虛拟适配器包括在还包括有其他虚拟适配器的源物理适配器中,则这 些其他虛拟适配器将继续处理。
然后,PCI管理器捕获与该特定虛拟适配器相关的所有进行中事务,
并将它们存储到迁移存储区中的物理适配器上。当事务从该特定虚拟适配 器发送或由该特定虚拟适配器接收时,进行中事务与该特定虚拟适配器相 关。典型地,当这些事务中的源地址或目的地址是虚拟适配器的地址时, 可识别这些事务。如果事务包括该特定虚拟适配器作为事务的源地址或目 的地址,则该事务是与该虚拟适配器相关的事务。进行中事务是位于数据 处理系统或主计算机系统的设备中的队列中的事务,所述数据处理系统包
括物理适配器、虚拟适配器、结构il备(例如PCI桥接器或交换器)。
将进行中事M存在数据处理系统中的每一个设备中包括的队列中。 主计算才几系统、虚拟和物理I/O适配器和所述结构中的i殳备都包括队列。 PCI管理器通过从队列复制事务和将它们存储到存储装置中来捕获与特定 虛拟适配器相关的进行中事务。优选地,存储装置位于物理适配器迁移存 储区中,尽管它可位于数据处理系统中的任何位置。当从队列复制这些事 务时,从这些事务的原始队列删除这些事务,从而它们不能被处理。
然后,PCI管理器获得特定虚拟适配器的配置信息。该配置信息可位 于其中包括虚拟适配器的源物理适配器中,或者可位于数据处理系统中的 其他位置的存储装置中。代替配置信息本身,可在源物理适配器中存储用 以指向配置信息位置的指针。
然后,PCI管理器分配虚拟适配器的配置信息,并将其与目的物理适 配器中可用的资源相比较。如果目的物理适配器包括足够支持特定虚拟适 配器的可用资源,则可通过对目的物理适配器的配置添加特定虚拟适配器 的配置的方式来迁移特定虛拟适配器。将所集装的数据从源1/Oi殳备准备 区复制到目的1/0设备准备区。然后,恢复处理需要从目的I/O设备准备 区向上述目的设备正确恢复数据。存在向源准备区的保存功能、向模板准 备区的复制、和通过恢复处理从目的准备区的恢复。
然后,PCI管理器通过从存储装置向原始存储进行中事务的队列复制
这些事务的方式来存储这些事务。对于进行中事务唯一例外的是,它们初 始存储在源虚拟适配器队列中。将从源虛拟适配器队列复制的任意进行中
事务恢复到目的虚拟适配器队列。然后,PCI管理器重启在目的物理适配 器中当前位于目的物理适配器上的特定虛拟适配器。PCI通过向特定虚拟
适配器发送设置为迁移比特的命令以开始执行事务方式重启特定虚拟适配 器。
然后,PCI管理器辨,放已经对特定虚拟适配器分配的源物理适配器上
的资源。物理适配器具有有限的一组真实的、固定的资源。在物理适配器 中包括的虚拟适配器共享该物理适配器资源。当释放虚拟适配器时,将其 使用的资源给回该特定物理适配器的资源池。如上所述,这种共享可以是
"硬的",意思是虚拟适配器仅获得对其所分配的;或者是"软的",意 思是允许虛拟设备获得对其分配的资源加上未用的共享。在"石更的"情况 下,当对于在该物理适配器上包括的虚拟适配器运行"释放资源"处理时, 将物理适配器的资源(例如,存储器、带宽和时间片)给回物理适配器上 的可用池。
特定虛拟适配器可以在其原始配置状态下迁移,或者可以在其实施和 包括在目的物理适配器中之前修改。如果在目的适配器中存在足够的物理 资源以支持在其原始状态下的虛拟适配器,则虛拟适配器可以在其原始状 态下迁移。在这种情况下,在虚拟适配器迁移之后其具有与在其迁移之前 相同的配置。因此,虚拟适配器在目的物理适配器上的配置与在源物理适 配器上的配置相同。
如果在目的适配器中不存在足够的物理资源以支持在其原始状态下的 虚拟适配器,则可修改虛拟适配器的配置。即使在目的适配器中存在足够 的可用资源时,系统管理员也可以在其迁移时,选择4务改虚拟适配器。
在迁移期间修改虚拟适配器的配置的情况下,在迁移之后虛拟适配器 具有不同的配置。例如,如果在源物理适配器中已对虚拟适配器授权了特 定带宽,但是该带宽在目的物理适配器中不可用,可修改虛拟适配器的配
置,从而一旦迁移到目的物理适配器时虚拟适配器将具有更小的带宽。
现在参照附图,具体地参照图1,才艮据本发明示例性实施例的优选实
施例示出分布式计算系统100的示图。图1中所示的分布式计算系统釆用 2个或更多根联合体(RC) 108、 118、 128、 138和139的形式,它们通过 I/O链路110、 120、 130、 142和143与I/O结构144连接,以及与才艮节点 (RN) 160-163的存储控制器104、 114、 124和134连接。
根联合体包括在根节点中。典型地,主计算机系统具有PCI到主桥功 能,其通常已知为根联合体。根联合体桥接在CPU总线(例如超传输)和 PCI总线之间。如果必要,可以在#^合体中执行其他功能,例如地址转 换。包含一个或多个,合体功能的多个主机称为多根系统。根联合体桥 接在CPU总线(例如超传输)和PCI总线之间。如果必要,可以在4Mi 合体中执行其他功能,例如地址转换。包含一个或多个+艮联合体功能的多 个主机称为多根系统。
根联合体包括在根节点中。才m合体是完整的计算机系统,例如服务
器计算机系统。这里,根联合体还称为主联合体。
根节点是完整的计算机系统,例如服务器计算机系统。这里,根节点 还称为主节点。
I/O结构通过链路151-158与IOA 145-150连接。IOA可以是单功能 IOA,例如145-146和149中的IOA,或者可以是多功能IOA,例如在 147-148和150中的IOA。此外,IOA可经由单链路连接至I/O结构,例 如145-148中的IOA,或通过用于冗余的多链路连接至I/O结构,例如在 149-150中的IOA。
RC 108、 118、 128、 138和139是RN 160-163的一部分。对于每一个 RN可以有多个RC,例如RN 163。除了RC之外,每一个RN还包括 一个或多个中央处理单元(CPU) 101-102、 111-112、 121-122、 131-132, 存储器103、 113、 123和133,存储控制器104、 114、 124和134,所述存 储控制器连接CPU、存储器和I/0 RC,并执行例如处理存储器的一致性 通信的这种功能。
RN可在它们的存储控制器连接在一起159,以形成一个一致性域并且 可用作单对称多处理(SMP)系统,或者可以成为具有单独一致性域的独 立节点,例如RN 162-163中。
配置管理器164在这里还称作PCI管理器。PCI管理器164可单独地 与I/O结构144连接,或者可以是RN 160-163中的一个RN的一部分。例 如,如图4-6所示,PCI管理器(例如PCI管理器466)可包括在计算机 系统402中。配置管理器配置I/0结构的共享资源,并对RN分配资源。
分布式计算系统100可使用各种商业可用的计算机系统来实现。例如, 分布式计算系统100可使用来自国际商业才几器^>司的IBM eServer iSeries Model 840来实现。这种系统可4吏用同样来自国际商业机器^^司的OS/400 操作系统支持逻辑分区。
本领域普通技术人员可理解,图1中所示的硬件可以改变。例如,除 了所示的硬件之外或代替所示的硬件,还可以使用其他外围设备,例如光 盘驱动器等。所示的实例并没有暗示对于本发明示例性实施例的结构限制。
现在,参照图2,描述可实现本发明示例性实施例的示例性逻辑分区 平台的框图。在逻辑分区平台200中的石更件例如可作为图1中的分布式计 算系统100来实现。逻辑分区平台200包括分区硬盘"0、操作系统202、 204、 206、 208和分区管理固件210。
操作系统202、 204、 206和208可以是单操作系统或在逻辑分区平台 200上同时运行的多个异构操作系统的多个副本。这些系统可使用对分区 管理固件(例如管理程序)的接口而设计的OSM00来实现。OSM00仅用 作在这些示例性实施例中的实例。也可以根据特定实现使用其他类型的操 作系统,例如AIX和Linux。
操作系统202、 204、 206和208位于分区203、 205、 207和209中。 管理程序软件是可用于实现分区管理固件210的软件实例,其来自国际商 业机器公司。固件是在不需要电力情况下保存其内容的存储芯片(例如, 只读存储器(ROM)、可编程ROM (PROM)、可擦除可编程ROM (EPROM)、电可擦除可编程ROM (EEPROM)和非易失性随^#取
存储器(非易失性RAM))中存储的"软件"。
此外,这些分区还包括分区固件211、 213、 215和217。分区固件211、 213、 215和217可使用来自国际商业机器公司的初始引导指令码、 IEEE-1275标准开放式固件和运行时抽象软件(RTAS)来实现。
当创建分区203、 205、 207和209时,通过平台固件210将引导指令 码的副本加载到分区203、 205、 207和209上。之后,将控制转移到引导 指令码,然后通过引导指令码加载开放式固件和RTAS。然后,对分区存 储器分派与分区关联的或分配给分区的处理器,以执行分区固件。
分区硬件230包括多个处理器232-238、多个系统存储单元240-246、 多个IOA 248-262、 NVRAM存储装置298和存储单元270。可将处理器 232-238、存储单元240-246、 NVRAM存储装置298和IOA 248-262中的 每一个或其一部分通过向多个分区中的一个分配的方式而分区给逻辑分区 平台200中多个分区中的一个,每一个被分区的资源对应于操作系统202、 204、 206和208中的一个。
分区管理固件210执行用于分区203、 205、 207和209的多个功能和 服务以创建和强制执行逻辑分区平台200的分区。分区管理固件210是与 底层硬件相同的固件实现的虚拟机器。因此,分区管理固件210允许通过 对逻辑分区平台200的硬件资源虚拟化的方式同时执行独立OS映像202、 204、 206和208。
服务处理器2卯可用于提供各种服务,例如在分区中平台错误的处理。 这些服务还用作向商家(例如国际商业机器公司)报告错误的服务代理。 可通过硬件管理控制台(例如硬件管理控制台280 )控制不同分区的操作。 硬件管理控制台280是系统管理员从中执行各种功能(包括向不同分区重 新分配资源)的单独分布式计算系统。
在逻辑分区(LPAR)的环境中,不允许一个分区中的资源或程序影 响另一个分区中的操作。此外,作为实用性,资源的分配需要细分。
图3是用于实现才艮据本发明示例性实施例的这里所示的任意数据处理 系统的数据处理系统框图。数据处理系统300可以是包括与系统总线306
连接的多个处理器302和304的对称多处理器(SMP)系统。可选择地, 可采用单处理器系统。在所示实例中,处理器304 AJ!艮务处理器。与系统 总线306连接的还有提供与本地存储器309的接口的存储控制器/高速緩存 308。 1/O总线桥接器310与系统总线306连接,并提供与I/O总线312的 接口 。如图所示,存储控制器/高速緩存308和I/O总线桥接器310可集成。
与I/O总线312连接的传统外围组件互连(PCI)总线桥接器314提 供与传统PCI本地总线316的接口 。多个I/O适配器(例如调制解调器318 ) 可连接至PCI总线316。典型地PCI总线实施可支持4个PCI扩展槽或附 加连接。可通过调制解调器318和通信适配器320提供与其他计算机的通 信链路。通信适配器320使得数据处理系统300能够经由通信链路380向 另 一个计算机系统发送消息和从其接收消息。
额外的PCI总线桥接器322和324提供用于额外PCI总线326和328 的接口 ,其中从所述PCI总线326和328可支持额外调制解调器或网络适 配器。这样,数据处理系统300允许与多个网络计算机的连接。
如图所示,存储器映射图形适配器330和硬盘332也可以直接或间接 连接至I/O总线312。
图4示出包括本发明示例性实施例的数据处理环境,即在根据本发明 示例性实施例从源物理适配器向目的物理适配器迁移特定虚拟适配器之 前,计算机系统利用PCI交换器的结构与适配器(例如i/o适配器)耦合 的数据处理环境。数据处理环境400包括计算机系统402和404。计算机 系统在这里还称为主节点。因此,例如,计算机系统402在这里还可称为 主节点402。
计算机系统402-404利用物理适配器412和414。计算机系统402-404 和物理适配器412和414经由结构416彼此通信。结构416包括多个PCI 桥接器/交换器,例如PCI桥接器/交换器418和420。结构416是符合PCI-E 标准的设备结构。
计算机系统402经由PCI交换器418中包括的端口 428与PCI交换器 418耦合。计算机系统404经由PCI交换器418中包括的端口 430与PCI
交换器418耦合。
物理适配器412经由PCI交换器420中包括的端口 432与PCI交换器 420耦合。物理适配器414经由PCI交换器420中包括的端口 434与PCI 交换器420耦合。
PCI交换器418经由PCI交换器418中包括的端口 436以及PCI交换 器420中包括的端口 438与PCI交换器420耦合。
PCI交换器418是PCI根交换器,而PCI交换器420不是PCI根交 换器。当PCI交换器与一个或多个主节点(例如计算机系统402或404中 的一个)直接连接时,该PCI交换器是PCI根交换器。
每一个计算机系统可被逻辑分区,如图2所示。例如,计算机系统402 包括逻辑分区A 422和逻辑分区B 424。计算机系统404包括逻辑分区C 426。
可对每一个物理适配器虛拟化,从而一个物理适配器可看成多个、单 独的和独立的适配器。例如,物理适配器412看成3个独立虛拟适配器, 虚拟适配器A-l 440、虛拟适配器B-l 442、和虚拟适配器C-l 444。将虚 拟适配器A-l 440分配给逻辑分区A 422。将虚拟适配器B-l 442分配给逻 辑分区B 424。将虛拟适配器C-l 444分配给逻辑分区C 426。
物理适配器414看成2个独立虚拟适配器,虚拟适配器A-2 446和虚 拟适配器C-2 448。将虛拟适配器A-2 446分配给逻辑分区A422。将虚拟 适配器C-2 448分配给逻辑分区C 426。
将物理适配器的配置存储在物理适配器中。例如,物理适配器配置450 是物理适配器412的配置,所以将物理适配器配置450存储在物理适配器 412中。在物理适配器412上提供迁移存储区,即框413,并将其用于将迁 移虛拟适配器所必须的状态进行集装。物理适配器配置452是物理适配器 414的配置,所以将物理适配器配置452存储在物理适配器414中。在物 理适配器414上提供迁移存储区,即框415,并将其用于将迁移虛拟适配 器所必须的状态进行集装。
如果通过将物理适配器表示为一个或多个虛拟适配器的方式对物理适
配器虛拟化,则也将一个或多个虛拟适配器的配置存储在物理适配器中。
例如,物理适配器配置450包括虚拟适配器A-l配置454、虚拟适配器 B-l配置456、和虚拟适配器C-l配置458。物理适配器配置452包括虚 拟适配器A-2配置460和虚拟适配器C-2配置462。
代替存储完整的配置,可在适当物理适配器的配置中存储指向实际存 储全部配置的位置的指针。例如,虛拟适配器A-l配置454可存储在系统 400中某处的存储装置中。在这种情况下,可在物理适配器450中存储指 针代替配置454。然后,指针可指向存储配置454的位置。
也可将每一个虛拟配置的副本保存在一个主机节点中。例如,可将虚
拟适配器配置464存储在计算;^系统402中。也可将虚拟适配器A-l配置 454、虛拟适配器B-l配置456、虛拟适配器C-l配置458、虛拟适配器A-2 配置460和虚拟适配器C-2配置462存储在虚拟适配器配置464中。
每一个虚拟适配器的配置包括迁移比特和资源重新分配比特。例如, 配置456包括迁移比特456a、资源重新分配比特456b、迁移比特456c、 和资源重新分配比特456d。
当特定虛拟适配器处于静态,即停止处理时,PCI管理器将设置在特 定虛拟适配器的配置中的迁移比特。当设置迁移比特时,其表示虛拟适配 器要开始迁移处理,以及虚拟适配器必须停止处理。虚拟适配器将看到在 其配置中的变化,并通过请求中断主机以暂停包括该虛拟适配器的物理适 配器的设备驱动器。这导致特定虚拟适配器处于静态。然后,将该虛拟适 配器从其源物理适配器向目的物理适配器迁移。
当重新配置目的物理适配器上的虛拟适配器时,作为向目的物理适配 器迁移的另一个虛拟适配器的结果,在目的物理适配器上的虚拟适配器必
须停止处理,即处于静态。在这种情况下,PCI管理将^:置资源重新分配
比特,以表示用于该虚拟适配器的资源将要被重新分配以及虛拟适配器必 须停止处理。然后,对目的物理适配器上的资源重新分配。
PCI管理器可以与计算机系统、适配器和结构中的每一个分开,如图 1所示,或者可包括在一个主节点中。例如,PCI管理器466可存储在计
算机系统402中。不管PCI管理器怎样实施,PCI管理器都包括存储装置。 例如,PCI管理器466包括存储装置466a。
在数据处理系统400中的每一个设备包括队列,队列用以保存该设备 已经接收的并且要处理的事务,或该设备期望发送到另一个设*是还没 有发送的事务。例如,计算机系统402包括发送/接收队列402a。计算机系 统404包括发送/接收队列404a。 PCI交换器418包括发il/接收队列418a。 PCI交换器420包括发送/接收队列420a。虚拟适配器440包括发送/接收 队列440a。虛拟适配器442包括发送/接收队列442a。虚拟适配器444包 括发送/接收队列444a。虚拟适配器446包括发i^/接收队列446a。虚拟适 配器448包括发送/接收队列448a。在这些队列中的任一个队列中存储的任 意事务是"进行中"事务。
图5示出包括本发明示例性实施例的数据处理环境,即在根据本发明 示例性实施例从源物理适配器向目的物理适配器迁移特定虚拟适配器之 后,在迁移之后没有重新配置虚拟适配器和物理适配器的情况下,计算机 系统利用PCI交换器的结构与适配器(例如I/O适配器)耦合的数据处理 环境。在迁移虚拟适配器之前,必须确定虚拟适配器是否要在迁移期间更 改、或重新配置。
如果在没有重新配置的情况下迁移虛拟适配器,则在目的物理适配器
中一定有足够的资源以对虚拟适配器授权。例如,可迁移虛拟适配器,从 而其在目的物理适配器上^f吏用的资源量与在源物理适配器上的虚拟适配器 使用的资源量相同。例如,在目的物理适配器上对虚拟适配器授权的带宽 与在源物理适配器上对虛拟适配器授权的带宽相同。
在迁移之后可重新配置虚拟适配器。在这种情况下,重新配置虚拟适 配器,以具有在目的物理适配器上可用的资源的优点。
已经将虛拟适配器A-l 440从物理适配器412迁移至物理适配器414。 在迁移虛拟适配器A-1 440之后,它的配置没有改变。由于虚拟适配器A-1 440的配置没有改变,所以刚好可以将虚拟适配器A-l配置454从物理适 配器配置450移动到物理适配器配置452。
此外,在迁移虛拟适配器A-1 440之后,虚拟适配器B-1 442、虛拟适 配器C-1 444、虚拟适配器A-2 446、和虛拟适配器C-2 448没有改变。
由于在迁移虚拟适配器440之后虚拟适配器B-l 442和虚拟适配器C-l 444的配置没有改变,所以在物理适配器412上的资源变为可用,并且可 分配给另一虛拟适配器。变为可用的这些资源是曾经分配给虚拟适配器 A-l 440的在物理适配器412中的资源。新释放的资源可保持未分配,可分 配给将要向物理适配器412添加的另一个虚拟适配器,或者可重新配置物 理适配器412,以对于虚拟适配器B-l 442、虚拟适配器C-l 444授4又这些 资源中的某些或所有,或在虚拟适配器B-l 442和虚拟适配器C-l 444之间 划分。
图6示出示出包括本发明示例性实施例的数据处理环境,即在才艮据本 发明示例性实施例从源物理适配器向目的物理适配器迁移特定虚拟适配器 之后,在迁移之后至少重新配置某些虚拟适配器和/或物理适配器的情况 下,计算机系统利用PCI交换器的结构与适配器(例如I/O适配器)耦合 的数据处理环境。
已经将虛拟适配器A-l从物理适配器412向物理适配器414迁移。在 迁移虚拟适配器A-1时,其配置改变。在图6所示的实例中,在迁移虛拟 适配器A-l之后,重新配置所有虚拟适配器。在迁移虚拟适配器A-l之后, 重新配置物理适配器412的资源,从而虚拟适配器B-l和C-l分别接收的 资源大于在迁移虛拟适配器A-l之前对它们先前授权的资源。因此,在迁 移虛拟适配器A-l之后,重新配置虛拟适配器B-l和C-l 。
在迁移之后,物理适配器412包括虚拟适配器B-l 642和虛拟适配器 C-l 644。物理适配器配置450包括虚拟适配器B-l配置656和虛拟适配器 C-l配置658。
在迁移之后,将物理适配器414分配给虛拟适配器A-l 640、虛拟适配 器A-2 646和虛拟适配器C-2 648。现在,物理适配器配置452包括虚拟 适配器A-l配置654、虚拟适配器A-2配置660和虚拟适配器C-2配置662。
图7A和7B示出高级流程图,其描述根据本发明示例性实施例从源物
理适配器向目的物理适配器迁移特定虚拟适配器。该处理从框700表示的 位置开始,之后进行框702,其示出系统管理员执行将特定虚拟适配器从 其源物理适配器向不同的目的物理适配器迁移的命令。接下来,框704示 出由系统管理员执行的命令使得PCI管理器开始执行。
然后,该处理进行框706,其示出PCI管理器使得特定虛拟适配器停 止执行事务。PCI管理器通过设置在虚拟适配器配置中的迁移比特来使得 特定虚拟适配器停止执行事务。这使得虚拟适配器看出对其配置的改变。 当虚拟适配器看出对其配置的改变时,虚拟适配器通过请求中断主;bL,以 暂停用于该虚拟适配器的设备驱动器。这导致特定虚拟适配器处于静态。 结果是,不对虛拟适配器上排队的事务进行服务。对主机端上的设备驱动 器暂停,从而也阻止了主机端上的事务。包含在交换队列中的事务被处理 和清空。尽管特定虛拟适配器停止处理,但是所有其他虚拟适配器、物理 适配器、主计算才几系统和结构可继续处理。
然后,处理进行框707,其示出确定是否设置迁移比特。迁移比特表 示迁移是否完成。如果确定没有设置迁移比特,则该处理返回框707。如 果确定设置了迁移比特,则源虚拟适配器处于静态,并且该处理进行框 708。
之后,框708表示PCI管理器捕获由该特定虛拟适配器产生的或指定 向该特定虛拟适配器发送的所有进行中事务。从虚拟适配器中包括的队列 复制这些事务。将所述事务从复制它们的队列删除,并将它们存储在处于 物理适配器框413和415中的迁移存储区中。可选择地,可将事务存储在 主机存储器中的迁移准备区中,或如果PCI管理器提供存储区,可将其存 储在PCI管理器。因此,将这些事务从它们的原始队列移动到存储装置。
接下来,框710示出PCI管理器获得对于该特定虚拟适配器的配置。 之后,框712示出PCI管理器分析目的物理适配器的现有配置。
然后,PCI管理器检查目的物理适配器的可用资源,以确定在目的物 理适配器中是否存在足够的可用资源,从而可以在不需要重新配置已经在 目的物理适配器中存在的虚拟适配器的情况下向目的物理适配器添加虚拟
适配器。然后,框714示出确定在目的物理适配器中是否存在足够的可用 资源,从而可以在不需要重新配置已经在目的物理适配器中存在的虛拟适 配器的情况下向目的物理适配器添加虚拟适配器。如果确定存在足够的资 源,则该处理进行框716,其示出PCI管理器通过向物理适配器配置添加 虛拟适配器配置的方式来配置目的物理适配器。
然后,该处理进行框718,其示出PCI管理器将捕获的进行中事务恢 复到目的物理适配器队列。由于虚拟适配器当前存在于目的物理适配器中, 所以将虛拟适配器存在于源物理适配器中时从迁移虚拟适配器队列复制的 事务复制到该虚拟适配器。然后,处理进行框726。
再参照框714,如果确定存在足够的资源,则进行框720的处理,其 示出PCI管理器通过设置在虛拟适配器配置中的资源重新分配比特的方式 使得目的物理适配器中的现有虚拟适配器停止处理。这4吏得虛拟适配器看 出对其配置的改变。当虚拟适配器看出对其配置的改变时,虚拟适配器通 过请求中断主机,以暂停包括该虚拟适配器的物理适配器的设备驱动器。 这导致物理适配器和包括特定虛拟适配器的其虛拟适配器处于静态。结果 是,不对虛拟适配器上排队的事务进行服务。对主机端上的设备驱动器暂 停,从而也阻止了主机端上的事务。包含在交换队列中的事务被处理和清

然后,处理进行框721,其示出确定是否设置重新分配比特。重新分 配比特表示重新分配是否完成。如果确定没有设置重新分配比特,则该处 理返回框721。如果确定设置了重新分配比特,则目的虚拟适配器处于静 态,并且该处理进行框722。
接下来,框722示出,如果需要,PCI管理器通过重新配置现有虚拟 适配器配置和改变特定虛拟适配器配置的方式来配置目的物理适配器。之 后,框724示出PCI管理器重启在目的物理适配器上的现有虚拟适配器。 该处理通过重设资源重新分配比特的方式重启。然后,适配器向其设备驱 动器用信号通知对于重启在其物理适配器上的所有虚拟适配器所必须的操 作。然后,处理进4亍框718,其示出PCI管理器将捕获的进行中事务恢复 到目的虛拟适配器队列。
然后,框726示出PCI管理器重启在目的物理适配器上的特定虚拟适 配器。通过重设迁移比特来重新开始该处理。然后,适配器向其设备驱动 器用信号通知对于重启在其物理适配器上的所有虛拟适配器所必须的操 作。接下来,框728示出PCI管理器释放由特定虚拟适配器使用的在源物 理适配器上已配置的资源。然后,如框730所示,该处理终止。
虛拟适配器组是在特定物理适配器上的虛拟适配器的集合。本领域普 通技术人员可理解,由图7A和7B所示的处理可执行多次,以从特定源物 理适配器向特定目的物理适配器迁移一组虚拟适配器。这样,可迁移虚拟 适配器组。
本发明可采用全部硬件实施例、全部软件实施例或包含硬件和软件元 素的实施例的形式。在优选实施例中,本发明以软件实现,其包括但不限 于固件、驻留软件、微码等。
此外,本发明可采用从计算机可用或计算机可读介质可访问的计算机 程序产品的形式,其中所述介质提供由计算机或任意指令执行系统使用或 与其连接的程序代码。为了这里说明的目的,计算机可用或计算机可读介 质可以是可包含、存储、通信、传播或传输由指令执行系统、装置或设备 使用或与其连接的程序的任意有形装置。
介质可以是电介质、磁介质、光学介质、电磁介质、红外介质或半导 体系统(或装置或设备)或传播介质。计算机可读介质的实例包括半导 体或固态存储器、磁带、可移动计算^l^盘、随才/M!"取存储器(RAM)、 只读存储器(ROM)、硬磁盘和光盘。当前的光盘实例包括压缩盘-只 读存储器(CD-ROM)、压缩盘-读/写(CD-RAV)和DVD。
适用于存储和/或执行程序代码的数据处理系统可包括通过系统总线 与存储元件直接或间接耦合的至少一个处理器。存储元件可包括在程序代 码的实际执行期间采用的本地存储器、大容量存储装置、和提供至少某些 程序代码的临时存储的高速緩存,以减少在执行期间必须从大容量存储装 置提取代码的次数。
输7W输出或I/0设备(包括但不限于键盘、显示器、定点设备等)可 直接或通过中间I/O控制器与系统耦合。
网络适配器还可以与系统耦合,以使得数据处理系统能够通过中间私 有网络或公共网络与其他数据处理系统或远程打印机或存储设^合。调 制解调器、线缆调制解调器和以太网卡仅是几个当前可用的网络适配器类型。
为了图示和说明的目的提出本发明的描述,这里的描述没有详尽或没 有以公开的方式限制本发明。对于本领域普通技术人员,许多修改和改变 是清楚的。可选择和描述实施例,以最好地说明本发明的原理、实际应用, 以及使得本领域普通技术人员能够理解具有各种改变的各个实施例的发 明,因为这些实施例满足于预期的特定用途。
权利要求
1. 一种在数据处理环境中的计算机实现的方法,所述数据处理环境包括多个主计算机系统,所述多个主计算机系统使用结构与多个适配器耦合,所述结构用于从源物理适配器向目的物理适配器迁移虚拟适配器,所述计算机实现的方法包括:使得所述虚拟适配器停止处理事务;捕获与所述虚拟适配器相关的所有进行中事务;通过从所述源物理适配器向所述目的物理适配器转移用于所述虚拟适配器的配置信息,向所述目的物理适配器迁移所述虚拟适配器;恢复所述进行中事务;和重启在所述目的物理适配器上的所述虚拟适配器,其中所述虚拟适配器包括在所述目的物理适配器中,以及所述虚拟适配器开始处理事务。
2, 根据权利要求l所述的计算机实现的方法,还包括 识别在所述源物理适配器上的已经向所述虚拟适配器分配的资源;和 在所述虛拟适配器转移到所述目的物理适配器之后,释放所识别的资源。
3. 根据权利要求l所述的计算机实现的方法,还包括 确定由所述虚拟适配器所需的物理适配器资源量; 确定所述资源量在所述目的物理适配器上是否可用;和 在确定所述资源量在所述目的物理适配器上可用的情况下,响应于所述虚拟适配器迁移到所述目的物理适配器的操作,按所述资源量向所述虚 拟适配器分配所述目的物理适配器的资源。
4. 根据权利要求3所述的计算机实现的方法,还包括 所述配置信息定义所述虚拟适配器的配置;在确定所述资源量在所述目的物理适配器上可用的情况下,通过^^改 所述配置信息,重新配置所述虚拟适配器;和通过在所述目的物理适配器中存储所修改的配置信息来迁移所述虚拟 适配器。
5. 根据权利要求l所述的计算机实现的方法,还包括 所述配置信息包括对于定义所述虚拟适配器的配置的指针。
6. 根据权利要求5所述的计算机实现的方法,还包括 将所述配置存储在结构管理器中。
7. 根据权利要求5所述的计算机实现的方法,还包括 在迁移所述虚拟适配器之前,将所述配置存储在结构管理器中以及所述源物理适配器中;和在迁移所述虚拟适配器之后,将所述配置存储在结构管理器中以及所 述目的物理适配器中。
8. 根据权利要求l所述的计算机实现的方法,还包括 所述结构包括多个设备;所述多个主计算机系统、所述多个适配器、和所述多个设备中的每一 个均包括用于存储进行中事务的队列;通过转移指定向所述虛拟适配器发送的或已经从所述虛拟适配器发送 的所有进行中事务,来捕获所有所述进行中事务,其中所述所有进行中事 务来自所述多个主计算机系统、所述多个适配器、和所述多个设备中的每 一个中的每一个所述队列。
9. 根据权利要求l所述的计算机实现的方法,还包括 所述结构是包括多个PCI Express设备的PCI Express交换结构。
10. —种在数据处理环境中的装置,所述数据处理环境包括多个主计 算机系统,所述多个主计算机系统使用结构与多个适配器耦合,所述结构 用于从源物理适配器向目的物理适配器迁移虛拟适配器,所述装置包括所述装置包括配置管理器;所述配置管理器4吏得所述虚拟适配器停止处理事务; 所述配置管理器捕获与所述虚拟适配器相关的所有进行中事务; 所述配置管理器通过从所述源物理适配器向所述目的物理适配器转移 用于所述虛拟适配器的配置信息,向所述目的物理适配器迁移所述虛拟适 配器;所述配置管理器恢复所述进行中事务;和所述配置管理器重启在所述目的物理适配器上的所述虛拟适配器,其 中所述虛拟适配器包括在所述目的物理适配器中,以及所述虚拟适配器开 始处理事务。
11. 根据权利要求10所述的装置,还包括所述配置管理器识别在所述源物理适配器上的已经向所述虛拟适配器 分配的资源;和所述配置管理器在所述虚拟适配器转移到所述目的物理适配器之后, 释i文所识别的资源。
12. 根据权利要求10所述的装置,还包括 所述配置管理器确定由所述虚拟适配器所需的物理适配器资源量; 所述配置管理器确定所述资源量在所述目的物理适配器上是否可用;和在确定所述资源量在所述目的物理适配器上可用的情况下,所述配置 管理器响应于所述虚拟适配器迁移到所述目的物理适配器的操作,按所述 资源量向所述虛拟适配器分配所述目的物理适配器的资源。
13. 根据权利要求12所述的装置,还包括 所述配置信息定义所述虛拟适配器的配置;在确定所述资源量在所述目的物理适配器上可用的情况下,所述配置 管理器通过^^改所述配置信息,重新配置所述虚拟适配器;和所述配置管理器通过在所述目的物理适配器中存储所修改的配置信息 来迁移所述虛拟适配器。
14. 根据权利要求10所述的装置,还包括 所述配置信息包括对于定义所述虛拟适配器的配置的指针。
15. 根据权利要求14所述的装置,还包括 将所述配置存储在管理所述结构的所述配置管理器中。
16. 根据权利要求14所述的装置,还包括在迁移所述虛拟适配器之前,将所述配置存储在管理所述结构的所述配置管理器中以及所述源物理适配器中;和在迁移所述虚拟适配器之后,将所述配置存储在所述配置管理器中以 及所述目的物理适配器中。
17. 根据权利要求10所述的装置,还包括 所述结构包括多个设备;所述多个主计算机系统、所述多个适配器、和所述多个设备中的每一 个均包括用于存储进行中事务的队列;所述配置管理器通过转移指定向所述虛拟适配器发送的或已经从所述 虛拟适配器发送的所有进行中事务,来捕获所有所述进行中事务,其中所 述所有进行中事务来自所述多个主计算机系统、所述多个适配器、和所述 多个设备中的每一个中的每一个所述队列。
18. 根据权利要求10所述的装置,还包括 所述结构是包括多个PCI Express设备的PCI Express交换结构。
19. 一种计算机程序产品,包括计算机可用介质,其包括在数据处理环境中从源物理适配器向目的物 理适配器迁移虛拟适配器的计算机可用程序代码,所述数据处理环境包括 多个主计算机系统,所述多个主计算机系统使用结构与多个适配器耦合, 所述计算机程序产品包括使得所述虚拟适配器停止处理事务的计算机可用程序代码; 捕获与所述虛拟适配器相关的所有进行中事务的计算机可用程序代码;通过从所述源物理适配器向所述目的物理适配器转移用于所述虚拟适 配器的配置信息,向所述目的物理适配器迁移所述虚拟适配器的计算机可 用程序代码;恢复所述进行中事务的计算机可用程序代码;和重启在所述目的物理适配器上的所述虚拟适配器的计算^L可用程序代 码,其中所述虛拟适配器包括在所述目的物理适配器中,以及所述虚拟适 配器开始处理事务。
20. 根据权利要求19所述的计算机程序产品,还包括 确定由所述虚拟适配器所需的物理适配器资源量的计算机可用程序代码;确定所述资源量在所述目的物理适配器上是否可用的计算机可用程序代码;和在确定所述资源量在所述目的物理适配器上可用的情况下,响应于所 述虛拟适配器迁移到所述目的物理适配器的操作,按所述资源量向所述虚 拟适配器分配所述目的物理适配器的资源的计算机可用程序代码。
21. —种包括程序代码装置的计算机程序,其中当在计算机上运行所 述程序时,所述程序代码装置适用于执行权利要求1至9的所有步骤。
全文摘要
公开一种计算机实现的方法、装置和计算机可用程序代码,用于在数据处理环境中从源物理适配器向目的物理适配器迁移虚拟适配器,在数据处理环境中多个主计算机系统共享多个适配器并通过PCI交换结构总线与那些适配器通信。首先使得虚拟适配器停止处理事务。然后,捕获与所述虚拟适配器相关的所有进行中事务。从所述源物理适配器向所述目的物理适配器转移用以定义虚拟适配器的配置信息。然后,将进行中事务恢复到目的虚拟适配器上的它们原始位置。然后,在所述目的物理适配器上重启所述虚拟适配器,从而所述虚拟适配器开始处理事务。
文档编号G06F9/46GK101385009SQ200780005066
公开日2009年3月11日 申请日期2007年1月29日 优先权日2006年2月9日
发明者D·弗赖穆特, M·维加, R·雷西奥, S·M·瑟伯, S·W·亨特, W·G·霍兰, W·T·博伊德 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1