内容


System p 中的虚拟化

Comments

引言

您可以使用逻辑分区来承载各种不同的操作系统,通过在分区中分配操作系统和应用程序所需的硬件资源,您就可以创建这些分区。System p™ 中的虚拟化为不同的逻辑分区之间提供了严格的隔离。虚拟化具有一个重要的特性,在对逻辑分区进行动态配置和重新配置时,无需重新启动整个物理计算机,也不会影响到其他分区。对于微分区( Micro-Partitioning)™ 和虚拟 I/O 的支持是 POWER5™ 特定的新功能。

为了对虚拟化、硬件、固件和操作系统提供支持,我们需要必要的支持。对虚拟化的硬件支持包括在 POWER5 中引入一些新的寄存器,以及对中断控制硬件的设计。POWER Hypervisor 是在 POWER5 中实现虚拟化的一个固件组件。本文介绍了 POWER Hypervisor 的作用,以及它如何在一个分区的环境中提高性能。同步多线程(Simultaneous Multi-Threading)是 POWER5 中的一个特性,它支持独立的指令流、或者线程,以便在同一个物理处理器中进行同步地执行。AIX® 操作系统提供了某些特性以支持虚拟化,包括各种分区性能监视命令。本文还讨论了在 System p 中虚拟化的硬件、固件和操作系统支持。

什么是虚拟化呢?

在计算的世界中,虚拟化是对物理资源进行抽象的一种机制。它提供一种逻辑的方式,以便查看物理资源、它们的组织独立性、实现或者地理位置。

准虚拟化的介绍

准虚拟化 是一种在 System p 中实现的虚拟化,它定义了名为 Hypervisor 的新层。该层位于硬件之上,并且使用称为 hypervisor 调用的硬件,通过一组低层的例程进行操作。操作系统通过这些 Hypervisor 调用为 Hypervisor 提供了接口。

逻辑分区

System p 中的准虚拟化是通过进行逻辑分区来实现的。逻辑分区不同于物理分区,后者以物理边界对资源和硬件进行划分以创建相应的分区。在进行物理分区时,每个分区可能运行相同的操作系统、或者相同操作系统的不同版本。I/O 资源、处理器和内存并不在多个分区之间进行共享,因此,它们是完全隔离的。

在进行逻辑分区时,通常使用一些物理处理器、内存和 I/O 设备来创建逻辑分区。对于要分配给一个分区的资源数量,并没有具体规定(尽管在建立一个分区时,存在必须分配的最少资源)。因此,物理处理器、内存和 I/O 可以分配给一个或多个分区。每种资源可以采取任何比例来进行分配。某些资源可以在所有的分区中共享,如电源供应。可以创建的分区的总数依赖于系统处理器模型和可用的资源。

一个分区,也称为 LPAR,可以与其他分区进行通信,就好像每个分区都是一台独立的计算机一样。可以独立地激活和重新启动各个分区(独立于其他的分区)。

图 1. 逻辑分区
逻辑分区
逻辑分区

每个逻辑分区都可以运行一个独立的操作系统、或者相同操作系统的不同版本,但是在不同的分区之间,软件是相互隔离的。如果一个分区中的操作系统出了故障,在其他分区中运行的操作系统不会受到任何影响。类似地,一个分区中运行的应用程序不会对在其他分区中运行的应用程序产生任何影响。

所有的分区都共同使用整个物理内存空间。然而,每个分区都有它自己的内存空间,这对性能不会有任何影响。可以通过独立的地址映射机制来维护地址的隔离。

可以在不同的分区之间动态地分配和重新分配资源,而不会影响其他分区,也无需重新启动这些分区。对软件而言,对物理资源所做的更改和重新分配也可能是透明的。在执行应用程序期间,当为一个逻辑分区分配物理 CPU 失败的时候,这种透明性的意义非常重大。对正在 CPU 中运行的应用程序而言,对出现问题的 CPU 的替换是透明的。

POWER Hypervisor 的介绍

POWER Hypervisor 也称为来自 POWER5 的 phyp,是在 System p 中实现准虚拟化的重要组件。它是一个全局固件映像,位于分区内存之外的物理地址零处的第一个物理内存块中。在启动系统的时候,它将获得控制权,并收集相关的信息(该系统中提供了多少内存、I/O 和其他资源)。POWER Hypervisor 拥有并控制系统的全局资源,并且它负责建立逻辑分区,并定义分区的边界。它将跟踪分配给分区的资源,并在各个分区之间提供隔离。

POWER Hypervisor 使用全局分区页表执行虚拟内存管理,并管理分区尝试访问超出其分配限制之外的内存的请求。我们将在后面的部分中更详细地讨论 POWER Hypervisor 的功能,包括调度和内存管理。

分区特定的固件支持

分区特定的固件实例负责处理特定于该分区的固件活动。它可以在分区中定位操作系统映像,将启动映像加载到内存中,并为启动传输控制。它还可以生成特定于该分区的设备树。因此,操作系统可以识别它拥有的设备,并使用这些设备。每个设备树仅包含分配给这个分区的设备。

分区特定的固件提供了一组特定于 AIX 和 System p 的服务,称为运行时抽象服务(Run-Time Abstraction Services,RTAS)。固件通过这些服务对硬件的特定属性进行抽象。操作系统将调用这些服务,而不是直接地操作硬件。从而减少了在硬件更改时为每个平台修改操作系统的需要。对硬件的后续更改将仅影响 RTAS 服务。

专用的和共享的分区

使用逻辑分区的概念,您可以在 System p 中创建两种类型的分区。即专用的分区和共享的分区。

正如在逻辑分区部分中指出的一样,在准虚拟化中,将对物理处理器进行逻辑上的划分。其结果是得到三类基于分区类型的处理器,即专用处理器、共享处理器和虚拟处理器。本文还介绍了与处理器执行相关的 Hypervisor 的作用。

当整个物理处理器专用于单个逻辑分区的时候,将其称为专用的处理器。而在多个逻辑分区之间共享的物理处理器则称为共享的处理器。换句话说,在共享处理器模式中,对一个逻辑分区仅仅分配物理处理器的一部分。所分配的这部分物理处理器称为虚拟处理器。

每个虚拟处理器的容量可以从物理处理器的 10% 到整个物理处理器。可以采用 0.01 处理单元的容量增量来定义处理能力。1.00 处理单元的能力与一个物理处理器相等。

专门的分区由专门的物理处理器组成,而在共享的分区中,将在一组分区之间共享物理处理器的处理能力。

在共享一个处理器的时候,应该确定为该分区所分配的处理单元的数目,以及将处理能力分布到多个分区的分区数目。一个系统可以包含共享同一组处理器的多个分区,并在它们之间划分处理容量。

可以考虑下面的示例,以帮助理解专门的处理器和共享的处理器。假定有四个物理处理器:

  • P1
  • P2
  • P3
  • P4

P1 和 P2 是专用的处理器,而 P3 和 P4 是共享的处理器。

处理器对 P1 和 P2 以及 P3 和 P4 都拥有 2.0 的处理单元。您可以将 P1 和 P2 分配给 LPAR1 分区,同时您可以在 LPAR2 和 LPAR3 分区之中共享 P3 和 P4。

LPAR2 和 LPAR3 提供了从 0.1 到 2.0 的处理单元。P3 和 P4 的组合能力属于一个共享池。也就是说,LPAR2 和 LPAR3 总的处理周期属于该共享池。可以共享的最大容量是 2.0。必须为每个分区分配的最小容量是 0.1。

为 LPAR2 分配0.5 处理单元的虚拟处理器。剩余的 1.5 单元则分配给 LPAR3,LPAR3 有两个虚拟处理器。LPAR3 中的每个虚拟处理器都有 0.75 的处理能力。

图 2 描述了这个示例。

图 2. 虚拟处理器
虚拟处理器
虚拟处理器

根据分区中应用程序的用途为该分区分配相应的处理能力。

对于共享的分区类型,我们将所分配的物理处理器容量称为有权使用的容量。

有两类分区模式:有上限的 (capped) 和无上限的 (uncapped)。如果共享的分区已经使用了分配给它的所有容量,那么它可以通过 Hypervisor 调用,使用共享池中的空闲周期、或者还没有使用的周期。如果共享的分区配置为无上限的,那么这种情况是可能的。

如果共享的分区配置为有上限的,那么它不能使用共享池中的任何空闲周期、或者还没有使用的周期。在缺省情况下,所有的专用分区都是有上限的。

Hypervisor 在共享池中存储虚拟处理器的整个处理周期。它负责在特定的物理处理器中分配虚拟处理器。在分配的过程中所使用的两个 Hypervisor 调用是 hcede 和 hconfer。

如果所分配的虚拟处理器在分配周期结束之前完成了它的工作,那么操作系统将调用 hcede Hypervisor 调用,以便将将剩余的周期交还给 Hypervisor。Hypervisor 可以使用这些周期来完成它自己的某些任务,如分配或者内存管理。如果虚拟处理器在同一周期中获得了新的工作,那么 Hypervisor 会返回未使用的周期。

hconfer 是操作系统在共享分区中使用的一个 Hypervisor 调用,用以将一个虚拟处理器的某些处理器周期交换给同一个分区中的另一个特定的虚拟处理器,它能够判断出第二虚拟处理器需要使用第一个虚拟处理器所拥有的多余周期。例如,假定一个虚拟处理器持有一个锁,并且它没有足够的周期来释放这个锁。如果另一个虚拟处理器需要这个锁,并且拥有多余的周期,那么它通过这个调用将剩余周期交换给第一个处理器。

如果某些专用分区有未使用的处理器容量,那么它可以将这些未使用的容量贡献给共享池,以便使用专门分区的系统能够获取更好的性能和更高的 CPU 使用率。专门的分区提供了一个属性和贡献标记(可以对它们进行相应的设置),用于确定该分区是否可以将其未使用的周期贡献给共享池。

从 POWER5 开始,Hypervisor 可以从专用的分区强制地窃取周期以进行 Hypervisor 的工作。尽管 Hypervisor 通常在分区中的处理器处于空闲状态时才进行窃取,但它也可能在另一种情况下窃取周期,即当分区中的处理器等待某种 Hypervisor 活动完成的时候。如果所窃取的空闲周期不足以完成 Hypervisor 的工作,那么它还可以在处理器处于忙碌状态的时候挪用周期。这种周期的窃取操作与处理器贡献的启用以及任何分区设置无关。

同步多线程

处理器的类型或者数目,以及它们的能力都不能单独地决定系统的性能。可用硬件资源的有效使用率在系统性能中起到了重要的作用。

这一点是广为认可的,因此在 POWER5 系统中引入了同步多线程。

为了讨论同步多线程,您需要了解单线程执行过程在处理器中的正常执行。请参见下面的图 3

图 3. 处理器的执行
处理器的执行
处理器的执行

其中,FX、FP 和 BRX 是不同的硬件执行单元。在硬件级别中,物理处理器是作为不同的执行单元进行组织的,例如定点和浮点操作单元。单个线程将通过这些执行单元中的其中一个来执行。

在同步多线程中,在同一个物理处理器的不同硬件单元中,同步地执行来自同一个分区的两个独立的指令流(线程)。在硬件级别中,通过使用流水线操作来完成这个任务。

同步多线程可以确保同步地利用所有不同的单元。在 POWER5 中,对于每个处理器,您最多可以拥有两个同步多线程的线程。物理处理器将负责处理这两个线程之间的同步问题。

图 4 显示了同步多线程环境中处理器周期的一个执行示例。

图 4. 同步多线程环境中的处理器周期
同步多线程环境中的处理器周期
同步多线程环境中的处理器周期

更多的硬件更改

除了到目前为止已经描述过的更改之外,在这一部分中还将详细介绍用于实现逻辑分区的附加硬件更改。

中断控制器硬件

图 5 描述了对称多处理系统(SMP 系统)中的中断控制器硬件。

图 5. SMP 系统中的中断控制器硬件
SMP 系统中的中断控制器硬件
SMP 系统中的中断控制器硬件

中断控制器硬件可以将中断发送到任何 CPU。它将根据一些相关的因素(如最佳性能),选择将中断发送到哪个 CPU。

在分区的系统中,无法将中断发送到任何处理器。中断控制器硬件需要确定中断源,以及应该接收该中断的分区。图 6 显示了在分区的环境中如何处理中断的一个示例。

图 6. 分区的环境中的中断
分区的环境中的中断
分区的环境中的中断

通过为每个分区提供一个中断队列,可以实现这个任务。在 POWER5 系统中,一共有 16 个中断队列。在分区设置期间,固件会将各个 CPU 与中断队列关联起来。在适配器设置期间,可以指定特定于该适配器的队列。因此,特定的适配器将关联于特定的逻辑分区。

寄存器

在 POWER4 中,引入了下列新的硬件寄存器,用于实现逻辑分区。

实模式偏移——RMO 寄存器

为每个分区引入了 RMO 寄存器,以便引用分区的内存空间中的逻辑零。

在分区的环境中,整个物理内存在所有的分区之间共享,并且 Hypervisor 位于物理零位置。实地址就是当禁用了虚拟地址到物理地址的转换时所生成的地址。通过计算机状态寄存器(Machine Status Register,MSR)中的各个位,可以说明实寻址模式,在配置虚拟内存管理器(Virtual Memory Manager,VMM)之前运行系统启动代码、以及处理中断的时候,都将使用实寻址模式。

当每个分区采用实模式访问内存的时候,它需要引用偏移量零。RMO 寄存器设计用于每个分区,并且可以帮助每个分区引用地址零、以及内存中有效的且唯一的地址。它包含分区的内存槽相对于物理零的偏移值。在采用实模式访问内存时,物理处理器会将 RMO 寄存器的值与分区特定的实地址相加,以使得它能够引用物理内存中的实地址。操作系统并没有意识到这个转换工作。同一个分区中的所有处理器在 RMO 寄存器中都包含相同的值。

实模式限制——RML 寄存器

这个寄存器用于限制分区在实模式中可以访问的内存量。同一个分区中的所有处理器在 RML 寄存器中都包含相同的值。

逻辑分区标识——LPI 寄存器

这个寄存器包含一个说明为该分区分配的处理器的值。同一个分区中的所有处理器在 LPI 寄存器中都包含相同的值。

处理器使用率资源——PUR 寄存器

为了对处理器使用率进行精确的度量,引入了一个称为 PUR 的新寄存器。

出于贡献或者共享的原因,为虚拟处理器分配的周期可能不同于实际使用的周期。所以,如果根据分配给 CPU 的周期来度量物理处理器的使用率,将不是十分精确的。因此,在 POWER5 中引入了 PUR 寄存器,用于存储各个虚拟处理器实际使用的周期。当两个线程正在使用同一个处理器时,与在同步多线程情况下一样,这个寄存器用于计算每个线程在相同的时间段内实际使用了多少物理处理器。AIX 性能监视命令可以使用 PUR 寄存器来计算处理器的使用率。

Hypervisor 递减器——HDECR

Hypervisor 递减器,是 POWER5 中引入的一种硬件工具,它为 Hypervisor 提供了定时的中断。它独立于任何分区,并且 Hypervisor 可以将其用于分派的目的。

I/O 虚拟化

应该使用有限数目的物理 I/O 适配器来处理逻辑分区中的 I/O。通过 I/O 虚拟化,将使其成为可能。POWER5 系统支持使用物理设备、虚拟 I/O 设备、或者两者兼有的分区。同时还支持物理设备的插槽级分区。可以将系统中的外围设备互连(Peripheral component interconnect,PCI)插槽单独地分配给一个逻辑分区。Hypervisor 可以确保每个逻辑分区仅能够访问分配给它的 PCI 插槽,而不能访问其他 PCI 设备,即使它们处于相同的总线。

通过虚拟 I/O 服务器,可以在软件中实现虚拟适配器。虚拟 I/O 服务器是显式创建的逻辑分区。它连接到物理设备,并将资源分配给各个逻辑分区。在这种情况下,Hypervisor 并不拥有 I/O 设备,并且新的 I/O 设备的引入、或者对现有设备的更改都不会对其产生影响。

虚拟 I/O 服务器将逻辑 I/O 设备分配给分区,如虚拟 SCSI 磁盘和虚拟以太网。虚拟 SCSI 磁盘可能是整个物理磁盘,也可能是其中的一部分,并且对于客户端分区来说,看起来就如同实际的磁盘。类似地,以太网适配器也是共享的,通过虚拟 I/O 服务器可以将虚拟以太网提供给不同的分区。它类似于高带宽的以太网连接,支持多种协议,并且可用于在分区之间进行通信。

图 7 显示了一个包含分区和虚拟 I/O 服务器的 POWER 系统。

图 7. 包含分区和虚拟 I/O 服务器的 Power 系统
包含分区和虚拟 I/O 服务器的 Power 系统
包含分区和虚拟 I/O 服务器的 Power 系统

虚拟化管理

从 POWER5 开始,提供了两个用户界面工具,硬件管理控制台(Hardware Management Console,HMC)和集成的虚拟化管理器(Integrated Virtualization Manager,IVM),它们可用于进行逻辑分区的操作管理。

HMC

HMC 是一台服务器计算机,它提供了一个图形用户界面工具,以管理多个 POWER 系统。在物理上连接到 HMC、并由 HMC 进行管理的服务器系统,称为托管的系统。

HMC 通过向 Hypervisor 和操作系统发送消息来管理系统。它将执行一些影响整个托管系统的任务,如开启和关闭系统、帮助配置和激活分区。HMC 可以创建并存储逻辑分区配置文件,其中定义了分配给一个分区的物理处理器、内存和 I/O 资源。通过选择相应的逻辑分区配置文件,它可以帮助启动、停止和重新设置一个分区。它显示了一个虚拟操作员面板,其中包括系统和分区的内容及状态。HMC 还可以作为动态重新配置分区的控制点。

每个分区中并不包含物理控制台。HMC 为每个分区提供了一个虚拟控制台。操作系统可以使用虚拟控制台作为各种处理工作(如安装工作、对崩溃故障进行的恢复工作,以及执行启动相关的操作)的控制台。对于调试来说,它是很有价值的,它允许调试器中断操作系统代码、并检查硬件寄存器。

IVM

存在许多较小的环境,在这些环境中设计了一些较小的分区,可能是出于测试的目的、或者是针对某些特定的需求。在这样的设置中,并不需要 HMC 所提供的复杂的功能。IVM 是经过简化的、低成本的解决方案,它继承了某些 HMC 特性。IVM 仅管理一个服务器系统,并且不需要像 HMC 那样使用一台独立的计算机。

IVM 是虚拟 I/O 服务器的一种扩展。当使用 IVM 对一个系统进行管理时,不需要对该系统进行分区。在该系统中,将虚拟 I/O 作为第一个操作系统进行安装。然后将其用于配置逻辑分区、分区的启动和关闭功能、以太网和存储适配器的管理,以及一些基本的系统管理功能。对虚拟 I/O 服务器进行配置,使其拥有所有的物理 I/O 资源,并为其他的逻辑分区提供虚拟化功能。可以使用浏览器接口来完成各种管理活动。

对逻辑分区的 AIX 优化

这个部分描述了 AIX 提供的一些特殊特性,这些特性可以帮助 System p 系统实现虚拟化。

虚拟处理器区域

AIX 为每个虚拟处理器维护一个区域,我们将这些区域称为虚拟处理器区域(Virtual Processor Area,VPA)。VPA 是操作系统和 Hypervisor 之间的一个双向通信区,用于传递所需的、有关虚拟处理器的信息。VPA 提供了一个空闲标志,操作系统在空闲的时候将该标志置位,以便向 Hypervisor 说明其状态。

在出现上下文切换的情况下(如虚拟处理器将其周期交换给另一个虚拟处理器的时候),必须保存整个程序的可见处理器状态。如果不这样做的话,就需要在虚拟处理器上下文切换的过程中保存该虚拟处理器中使用的所有资源。为了实现虚拟处理器上下文切换成本的最小化,操作系统将告诉 Hypervisor 是否正在使用某些资源。操作系统将对 VPA 中与所使用的资源相对应的字段进行设置,并在 VPA 中维护它们的浅副本。

Hypervisor 调用只能够在 Hypervisor 模式中执行,就如同系统调用只能够在内核模式中执行一样。AIX 操作系统通过 Hypervisor 调用 (hcall) 请求 Hypervisor 模式。

处理器使用 MSR 中的 HV 位实现从内核模式到 Hypervisor 模式的转换。HV 位以及问题状态位 (Problem State Bit) 可以指出,处理器是否处于 Hypervisor 模式。

虚拟内存管理器的更改

对于分区的环境,虚拟内存管理器 (VMM) 经历了较大的更改。与传统的非分区环境不同的是,内存不再是一个连续空间。

整个物理内存被划分为若干块,这些块称为物理内存块 (PMB)。逻辑内存则划分为逻辑内存块 (LMB)。在 POWER5 中,PMB 和 LMB 的大小都是可变的。分配给一个分区的 PMB 不需要是连续的。某些 PMB 用于 Hypervisor 的特殊用途,并且不会将它们分配给任何分区。将 PMB 映射到 LMB,如下面的图 8 所示。

图 8. PMB 映射
PMB 映射
PMB 映射

Hypervisor 可以访问整个内存空间,并且通过全局分区页表来维护分配给分区的内存。它可以确保该分区不会对另一个分区的内存进行访问。全局分区页表由不同分区的 PMB 到 LMB 的映射组成。操作系统不能直接地访问这个 Hypervisor 资源,可以使用 Hypervisor 调用读取全局页表、或者向全局页表写入一个新的条目。

当关闭地址转换时,分区将采用实模式访问内存。

当开启地址转换时,VMM 将请求 Hypervisor 将虚拟地址转换为正确的逻辑地址。Hypervisor 使用全局分区页表将虚拟地址转换为系统范围的物理地址。操作系统并不清楚 Hypervisor 内部的地址转换。在获得系统范围的物理地址 (PMB) 之后,Hypervisor 将它转换为分区相应的有效逻辑地址 (LMB)。

执行监视命令

AIX 提供了各种内存、I/O 和分区性能监视命令。接下来是关于这些命令的简要介绍:

lparstat
这个命令将显示与逻辑分区相关的参数和 Hypervisor 信息。它还列出了各个逻辑分区的使用率统计信息,包括在不同模式(用户、系统、空闲和等待)中有权使用的容量百分比。该命令将为共享的处理器显示相关的信息,如虚拟上下文切换、池中可用的物理处理器、所获得的有权使用的容量百分比、有上限的或者无上限的模式。

mpstat
这个命令将显示每个逻辑处理器的统计信息,如联机逻辑处理器的数目、页面错误、线程调度统计信息、在不同模式(用户、系统、空闲和等待)中的物理处理器使用率、逻辑 CPU 切换和 CPU 有权使用的容量百分比。

vmstat
通过这个命令可以报告虚拟内存统计信息。它将报告关于内核线程、虚拟内存、磁盘、自陷和 CPU 活动的统计信息。

iostat
通过观察与平均传输速度相关的物理磁盘活动时间,这个命令可用于监视 I/O 设备的加载。对于调整系统配置以便在物理磁盘和适配器之间平衡 I/O 来说,这些统计信息是非常有价值的。

sar
sar 命令是一个记帐系统,它可以提供整个系统活动的统计信息。它将对主要的系统资源进行监视。sar 命令可以提供某些关键信息,包括下面的信息:

  1. 文件访问系统例程的使用(说明几个系统文件访问例程每秒被调用多少次)
  2. 传输、访问和缓存(内核块缓冲区缓存)命中率的缓冲区活动
  3. 各个块设备(不包括磁带驱动器)的活动
  4. 内核进程活动
  5. 消息和信号量活动
  6. 所选择的处理器的每个处理器的统计信息
  7. 进程、内核线程、索引节点和文件表的状态
  8. 系统切换活动
  9. 终端设备活动

topas
topas 命令将报告本地系统中相关活动的所选择的统计信息。该命令使用 curses 库以用户友好的格式,在 80 x 25 字符的显示器中显示其输出。

结束语

根据分区的目的和应用程序的需求,在对 System p 进行逻辑分区时,可以以共享的方式、或者专门的方式使用分配给分区的资源。

我们在虚拟化的实现中详细介绍了 Hypervisor 的功能。Hypervisor 的功能包括资源分配、分区管理、处理器调度和虚拟内存管理。

本文介绍了 System p 中引入一些新的寄存器,以及它们的功能。本文指出,应该使用有限数量的设备来管理所有分区的 I/O。通过由虚拟 I/O 服务器实现的虚拟适配器,可以完成这个任务。

对分区进行操作管理需要使用到各种工具。本文介绍了两种工具,即 HMC 和 IVM。

通过内存管理层 (VMM) 中的更改,AIX 提供了对虚拟化的支持。OS 为每个虚拟处理器维护一个称为虚拟处理器区域 (VPA) 的区域。它还引入了一些新的性能监视命令,这些命令可以帮助对分区进行监视和管理。

致谢

我们在此衷心地感谢 Saravanan Devendran 花费大量时间对本文进行了仔细审阅,并提供了许多宝贵的意见,同时还要感谢 Arun Anbalagan 一直以来的支持和鼓励。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=272502
ArticleTitle=System p 中的虚拟化
publish-date=12032007