虚拟化
IBM Virtualization Engine(虚拟引擎)是一组系统技术和服务的集合,可以帮助聚集资源池,并可以访问这些分布在异构的分布式环境中的资源的一个逻辑视图。Virtualization Engine 系统技术是可选的(eServer i5 服务器除外,在这种服务器上,虚拟化是一个集成的特性),其中包含了很多创新技术,例如逻辑分区、微分区、动态逻辑分区、虚拟存储和虚拟以太网。在 eServer BladeCenter JS20 中没有虚拟化技术。
Linux on POWER 平台目前可以支持的 Virtualization Engine 技术有:
" 逻辑分区(LPAR)
" 微分区
" 动态逻辑分区(动态 LPAR)
" 共享处理器池
" 虚拟存储
" 虚拟磁盘
" CD-ROM、磁带和 DVD-ROM
" 虚拟以太网(VLAN)
逻辑分区(LPAR)
逻辑分区可以让多个操作系统同时共存于一个硬件平台中。系统资源进行了划分,这样分区之间就不能彼此进行交互。使用硬件管理终端(HMC)可以管理系统中的 LPAR。
微分区
微分区可以让 Linux 的分区小至处理器的 1/10,并以处理器的 1/100 进行增长。
动态逻辑分区(Dynamic LPAR)
动态 LPAR 可以动态添加或删除运行 2.6 版本的内核的 Linux 分区中的处理器和 I/O 插槽,而不用重新启动系统。这种技术在 eServer OpenPower、eServer p5 和 eServer i5 上都是使用 POWER Hypervisor 固件实现的,它提供了硬件资源管理、分区和根据需要扩充容量 (Capacity Upgrade on Demand,CUoD)的功能。目前还不支持动态内存迁移的功能。动态 LPAR 在使用可用资源和根据变化的业务需求而动态匹配资源方面提供了更好的灵活性。
共享处理器池
共享处理器池是一组物理处理器,它们可以提供强大的处理能力,并在多个逻辑分区之间进行共享。所有的分区在使用共享处理器时至少要配置使用 0.10 的处理单元。所支持的逻辑分区的最大个数取决于服务器型号中的处理器的个数;系统的限制为 254。图 1 可以认为是一个使用共享处理器池的环境的例子。

图 1. 共享处理器
图 1 给出了一个虚拟的 4 路机器的配置,它可以运行 i5/OS 或 AIX 5L。它还有 3 个额外的逻辑分区,假设第二个分区是一个事务型的服务器,正在处理金融事务;我们再假设这个事务型的应用需要与 AIX 5L 或 i5/OS 进行交互,从而向数据库中存储信息,或从数据库中检索信息。标记为 "Report" 的分区是这个事务服务器的姊妹应用,其作用是生成金融报告。为了负载均衡的目的,公司已经将将这个事务分区和报表分区划分开来,因为事务服务器是对响应时间非常敏感的,而生成报告的应用则可以在非峰值期间完成。最后一个分区是公司的开发和测试分区。这个分区用作工程师的开发空间。注意处理器是如何根据任务负载的情况进行划分的。
共享处理池中的分区可以有一种共享的 capped(有上限) 或 uncapped(无上限) 模式。所谓 capped 分区是指这个逻辑分区永远都不能超过分配给自己的处理能力。共享处理池中任何尚未使用的处理资源都只能由 uncapped 分区使用。
在定义一个分区的配置文件(profile)时,您可以指定一个分区到底是 capped 还是 uncapped 的。在定义分区时,您还可以设置它可以使用的处理器的最大值和最小值。
图 2 对这个例子进行了一些扩展,它增加了处理器的最大值和最小值:

图 2. 根据任务负载动态移动处理器资源
可以按需移动处理器的优点在这个假想的例子中得到了充分的证明。正如图 2 所示的一样,事务型服务器分配了 1.5 个处理器(这是最小值)。它还可以根据需要消耗第二个处理器的另外一半的处理能力以及第三个处理的全部处理能力。如果假设报表程序是在非峰值时运行的,此时系统可能具有更多的空闲时间,那么报表分区以及该分区上的应用程序就可以消耗最多两个虚拟的处理器,但是不能小于一个处理器的 3/4。对于测试分区来说也是如此。假设工程师需要编辑程序。如果编译是在系统中具有空闲处理能力时进行的,那么测试分区就可以消耗 3 个虚拟处理器,这样可以更快地完成编译过程。
uncapped 分区这种利用当前未使用的处理资源的能力是由 POWER Hypervisor 启用的。与动态的 LPAR 不同,这个特性在 2.4 和 2.6 内核中都是支持的。这些例子中,处理器共享实例是根据系统空闲部分进行的,因此其他分区可以使用这些可用的资源;然而,当然也有些时候会发生这样的情况:多个分区同时需要更多处理资源。现在考虑这样一个例子:报表和事务型服务器都因为出现峰值的任务负载而同时需要更多处理资源。对于您的业务来说,事务型服务器及时响应是非常关键的,因此您可能希望事务型服务器在报表分区之前使用这些虚拟的处理资源。这是一个很好的例子,它说明了在哪些时候为处理资源设置权重非常重要。uncapped 分区的权重是一个数字,范围从 0 到 255,您可以为共享处理池中的每个 uncapped 分区都设置这个权重值。通过设置 uncapped 权重,任何可用而目前尚未使用的处理能力都可以按照所设置的 uncapped 权重值的比例分发到各个逻辑分区上。uncapped 权重默认为 128。
在事务型服务器和报表服务都处于峰值时,就可以设置权重来判断应该怎样分配处理器。例如,图 3 显示为事务服务器设置的权重为 2 个处理器单元,为报表服务器设置的权重为 1 个处理器单元。这意味着在峰值每个处理器单元都是可用的,POWER Hypervisor 会为事务服务器分配两个处理器单元,为报表服务器分配一个处理器单元。

图 3.