分享

在 IBM 集成虚拟化管理器上进行 Linux 分区的 DLPAR 操作,第 1 部分

 soulhiking 2012-05-18

在 IBM 集成虚拟化管理器上进行 Linux 分区的 DLPAR 操作,第 1 部分

背景知识介绍

冯 苗涛 (fengmt@cn.ibm.com), 软件工程师, EMC

简介: 动态逻辑分区(DLPAR)是 IBM System p 服务器上的一种虚拟化特性,该特性允许用户在分区运行的时候动态调整分区的资源分配,使得系统资源得到更为有效的利用,并且不影响应用或者服务的正常运行。集成虚拟化管理器(IVM)是一种与 HMC 类似的用于管理 System p 服务器的平台,也同样支持 DLPAR,不过与 HMC 上的 DLPAR 存在不少差异。本系列文章介绍 IVM 上 Linux 逻辑分区的 DLPAR,分成四个部分。本文是第一部分,介绍了 IVM 和 Linux 对 DLPAR 的支持情况、Linux 分区上 DLPAR 环境的准备过程、以及 IVM 上 Linux 分区 DLPAR 的基本过程等背景知识。

 
IBM System p 服务器从 POWER5 开始支持动态逻辑分区(Dynamic Logical Partitioning,简称 DLPAR)虚拟特性,该特性允许用户在分区运行的时候动态调整分区的资源分配,这种调整在分区运行的时候随即生效,不需要重启操作系统。这使得用户可以根据工作负载来动态调整系统的资源分配,使得资源得到最有效的使用,并且不影响客户的应用或服务的不间断运行。除了 System p 平台的硬件和固件外,DLPAR 还需要分区操作系统的支持。 Linux 是一种开放源码的操作系统,以其开放性、稳定性和高效性等特点得到越来越多用户的青睐。它支持多种硬件平台,能够运行在 System p 服务器上并提供 DLPAR 功能,这使得 System p 上的 Linux 用户可以利用 DLPAR 这一重要的虚拟化特性来优化业务的运行。

HMC(Hardware Management Console)是用户熟知的 System p 服务器管理平台,它提供了简单有效的 DLPAR 操作界面,包括图形界面和命令行界面两种方式,用户可以通过该界面对 Linux 分区进行处理器、内存和适配器 DLPAR 等操作。 IVM(Integrated Virtualization Manager)- 集成虚拟化管理器是 System p 上的类似于 HMC 的另外一种管理平台,在设计和操作方式上与 HMC 存在较大差别。那么 IVM 是否也支持 Linux 分区的 DLPAR 操作,IVM 上 Linux 分区 DLPAR 的基本执行过程究竟是怎样的,用户如何通过 IVM 进行 DLPAR 操作,IVM 和 HMC 上的 DLPAR 又有哪些不同呢?本系列文章将逐一解答这些问题。

本系列文章介绍了 IVM 上 Linux 逻辑分区的 DLPAR 操作,分成四个部分:第一部分介绍了 IVM 对 DLPAR 功能支持的变化过程、主流的 Linux 发行版本对 DLPAR 的支持情况、Linux 分区上 DLPAR 环境的准备过程、以及 IVM 上 Linux 分区 DLPAR 的基本过程等背景知识;第二部分介绍了处理器和内存的 DLPAR 操作;第三部分介绍了虚拟适配器和物理适配器的 DLPAR 操作,并比较了 IVM 和 HMC 上 DLPAR 的联系和区别;第四部分介绍了虚拟磁盘和光学设备的动态调整,这种动态调整虽然不是真正意义上的 DLPAR,但是可以起到相同的效果,使得用户能够方便的动态调整这些资源。为了更加直观有效的讲解 IVM 上 Linux 分区的 DLPAR 操作过程,使读者能够更好的理解和掌握这些内容,本系列文章使用实例贯串全文。本文是本系列文章的第一部分。

虽然本系列文章所面向的读者是 System p 上的 Linux 用户,但是由于 AIX 和 Linux 上的 DLPAR 在原理和操作方面都非常类似,因此 AIX 用户也可以从中获益。为了更好的阅读本系列文章,要求读者对 IVM 的基本原理和操作界面有初步的认识,了解 DLPAR 的基本原理,并熟悉 HMC 上的 DLPAR 操作和 Linux 的使用。读者可以通过阅读本文所提供的参考资料 1、2、3 和 4 了解或熟悉这些方面的相关知识。如果读者有 IVM、DLPAR 和 Linux 方面的配置和使用经验,则能更好的理解和掌握本系列文章所描述的内容。

IVM 和 Linux 对 DLPAR 的支持

IVM 简介

在 IBM System p 上,IVM 是与 HMC 类似的另外一种服务器管理方式,同样可以进行 AIX 或者 Linux 分区的创建、编辑和删除,分区状态的控制,虚拟网络和存储的创建、分配和删除,DLPAR,动态分区迁移(Live Partition Mobility)等操作,同样提供了图形操作界面(基于 Web 的 UI)和命令行操作界面。

既然有了 HMC 这种通用的 System p 服务器管理方式,为什么还要提供 IVM 呢?首先,虽然 HMC 被设计成能够有效管理各种 System p 机型的管理方案,但是却使得该方案显得比较复杂和过剩,对于某些简单的应用(比如用户仅购买了一个低端的 System p 机器,并且只需要对它进行简单的分区划分和使用,而不需要 HMC 所提供的管理多台服务器的功能或者多台 HMC 管理同一服务器的冗余功能等)而言,一个能够实现快速部署和降低学习代价的管理方案更适合用户的需求。其次,HMC 是独立于 System p 服务器之外的一台机器,用户需要单独付费购买,对于购买低端服务器的用户来说,HMC 的价格还是占了相当大的比重,因此在这种情况下该管理方案并不能给用户带来很好性价比。最后,HMC 不能管理刀片服务器,如果需要对刀片服务器进行分区划分和管理,那么 HMC 就无能为力了。

为了解决上述 HMC 的缺点,IBM 提供了 IVM 这种简化的管理方式(如图 1 所示),可以说,IVM 是一个简化版的 HMC 。为了支持分区管理,VIOS(Virutal I/O Server)不仅能够为其它分区提供虚拟资源,还增加了 IVM 这个功能部件。由此可见,IVM 不是独立的,而只是 VIOS 的一个组成部分。在 IVM 管理下,整台服务器被划分成几个分区,包括一个 VIOS 和其它几个分区(称为客户分区)。基于 Web 的 UI(图 1 中 Web Browser 部分)是由 IVM 中的“ Web Server ”部件提供的,用户通过浏览器连接到 VIOS 就可以使用该界面了;用户还可以使用 telnet 或者 ssh(图 1 中 Telnet/SSH 部分)登陆到 VIOS,通过 VIOS 提供的“ Command Shell ”来使用命令行界面。用户通过图形或者命令行界面发出操作指令后,IVM 或 VIOS 根据操作的类型进行命令分发。如果是跟虚拟资源管理相关的操作(比如创建或分配虚拟磁盘等),那么就由 VIOS 提供的“ VIOS CLI ”进行处理;如果是跟分区管理相关的操作(比如创建或删除分区),则由 IVM 提供的“ LPAR CLI ”进行处理。 IVM 通过 VMC(Virtual Management Channel)这个虚拟设备与 POWER Hypervisor 进行通信,对分区进行管理或控制。由于 VMC 只能与它所在的服务器上的 Hypervisor 进行通信,因此每个 IVM 只能管理一台服务器。同时,由于 IVM 的市场定位和功能的局限性,通常它只用于中低端服务器,而高端服务器仍然由 HMC 进行管理。


图 1:集成虚拟化管理器
集成虚拟化管理器

IVM 功能的变化

IVM 作为 VIOS 上类似于 HMC 的一个部件,其功能随着开发过程的进行在不同的 VIOS 版本中不断得到增强。图 2 显示了这一变化过程,图中主要列出了跟 DLPAR 相关的一些变化。

VIOS 对 IVM 功能的支持并非与生俱来的,而是从版本 1.2 才开始的。这时候的 IVM 主要关注一些基本的分区管理功能,如分区的创建和删除,分区定义的修改和状态的控制,虚拟网络和虚拟存储的创建、分配和删除等,但是不支持 DLPAR 和客户分区端的物理适配器(Physical Adapter)等功能。

从版本 1.3.0.0 开始,IVM 开始支持处理器和内存等资源的 DLPAR 。不过在该版本之前,IVM 已经支持 VIOS 上资源的动态调整,从而支持分区的创建、修改和删除等操作,比如在创建分区的时候,IVM 需要在 VIOS 上为该分区创建相应的虚拟 SCSI 服务器端适配器(Virtual SCSI Server Adapter),如果 IVM 不支持 VIOS 上资源的动态调整的话,那么就没办法在 VIOS 运行的时候使新的分区配置马上生效(由于 VIOS 在 IVM 这种管理方式下的特殊性,如果没有特别指定,本系列文章所讨论的内容都是针对客户分区而言的)。 IVM 对处理器和内存的 DLPAR 和适配器的 DLPAR 在实现机制上存在较大差别,对后者的支持并没有包含在版本 1.3.0.0 中,而是到版本 1.5 之后才开始支持的。至此,IVM 支持对所有分区(包括 VIOS、AIX 客户分区和 Linux 客户分区)上各种资源(处理器、内存和适配器等)的 DLPAR 操作。

IVM 对客户分区物理适配器的支持是从版本 1.5 开始的,与适配器 DLPAR 的支持同步出现。在此之前,IVM 只支持虚拟适配器 - 虚拟网卡和虚拟 SCSI 等,虚拟资源的使用提高了系统资源的利用率,但是却降低了分区的性能。对物理适配器的支持使得系统管理员能够在系统资源相对充足的情况下将物理适配器和磁盘等直接分配给分区来使用,从而提高分区的性能,同时满足不同客户对系统配置的不同需求。


图 2:IVM 功能的逐步增强
IVM 功能的逐步增强

Linux 对 DLPAR 的支持

在 IBM System p 上,DLPAR 的类型有处理器 DLPAR、内存 DLPAR 和适配器 DLPAR 等。与 AIX 类似,Linux 也支持 DLPAR,但是不同的 Linux 发行版本对 DLPAR 的支持情况不尽相同。图 3 列举了两个主流的 Linux 产商 Redhat 和 Novell/SuSE 所发行的 Linux 企业版本 RHEL(Red Hat Enterprise Linux)和 SLES(SUSE LINUX Enterprise Server)中的若干版本对 DLPAR 的支持情况:RHEL4/5 和 SLES9/10 均支持处理器和适配器的增加、减少和移动等 DLPAR 操作;而对内存 DLPAR 的支持是逐步增强的,RHEL4 和 SLES9 不支持任何类型的内存 DLPAR,RHEL5 和 SLES10 开始支持内存的动态增加,但是不支持内存的动态减少和移动,这两种内存 DLPAR 操作有望在将来的版本中得到支持。


图 3:RHEL 和 SLES 对 DLPAR 的支持
RHEL 和 SLES 对 DLPAR 的支持

Linux 分区 DLPAR 环境的准备

通过上面一节的讨论,我们已经知道了 IVM 上的 Linux 分区支持 DLPAR 操作。要使用 DLPAR,首先必须准备 DLPAR 所需的环境。在 IVM 上准备 Linux 分区的 DLPAR 环境需要经过以下几个步骤:

  1. 在选配了 APV(Advanced Power Virtualization)特性的 System p 机器上安装和配置 IVM,包括虚拟网络和磁盘存储等资源的配置
  2. 定义 Linux 分区
  3. 激活 Linux 分区,安装 Linux 操作系统
  4. 在 Linux 上安装 DLPAR 所需的工具包
  5. 确认 Linux 分区的 DLPAR 能力

因为本系列文章所讨论的是 DLPAR,并假设读者对 IVM 和 Linux 有一定的了解和使用经验,因此就不再具体讨论 IVM 和 Linux 的安装和配置了(步骤 1 和 3)。如果读者需要了解这方面的相关知识,请翻阅参考资料 IBM 红皮书《 Integrated Virtualization Manager on IBM System p5 》(参考资料 1),以及 Redhat 或 Novell 官方网站上提供的相关文档(参考资料 2 和 3)。

定义 Linux 分区

本系列文章将以实际的例子来讲解如何在 IVM 上进行 Linux 分区的 DLPAR 操作。 IVM 被安装在一个基于 POWER6 的 IBM JS22 刀片服务器上,该系统包含 3 个分区:uli14 是分区标识为 1 的 VIOS,版本为 1.5.1.1-FP-10.1 ;而 uli13lp1 和 uli13lp2 是两个 Linux 客户分区,标识分别是 2 和 3(如图 4 所示),其中 uli13lp2 是本系列文章所使用的实验系统,安装了 SLES10 Service Pack 2 。在本系列文章中,我们将基于该实验系统以实例来详细讲解 IVM 上 Linux 分区各种资源的 DLPAR 操作。


图 4:IVM 所管理的分区
IVM 所管理的分区

分区 uli13lp2 使用的是共享处理器模式,处理单元数的最小值、已分配值和最大值分别是 0.1、0.2 和 0.4,而虚拟处理器数的最小值、已分配值和最大值分别是 1、2 和 4(如图 5 所示:uli13lp2 分区属性页面中的“处理”标签)。最小和最大值的不同为 DLPAR 操作提供了可能,整个系统剩余 1.5 个处理器单元(如图 4 所示)可供处理器 DLPAR 使用。


图 5:uli13lp2 的处理器配置
uli13lp2 的处理器配置

分区 uli13lp2 已分配的内存为 1GB,而分区定义中内存的最小和最大值分别为 128MB 和 1GB + 256MB(如图 6 所示:uli13lp2 分区属性页面中的“内存”标签)。从图中还可以看到,该系统的逻辑内存块(Logical Memory Block)的大小被设置成 32MB,用户必须以该大小的整数倍为步长对内存进行 DLPAR 。整个系统仍然剩余 608MB 内存(如图 4 所示)供 DLPAR 使用。


图 6:uli13lp2 的内存配置
uli13lp2 的内存配置

分区 uli13lp2 使用了一个虚拟以太网适配器(如图 7 所示的适配器 1:uli13lp2 分区属性页面中的“以太网”标签),网卡被连接到 VLAN(虚拟以太网)1,该 VLAN 通过 VIOS 上插槽 U78A5.001.WIH1106-P1-T7 中的物理网卡连接到外部网络,与其它系统进行通信。该分区还有一个空闲的虚拟以太网适配器(适配器 2)可以增加,如果用户需要更多的虚拟网卡,可以点击“创建适配器”按钮进行添加。


图 7:uli13lp2 的虚拟以太网适配器
uli13lp2 的虚拟以太网适配器

分区 uli13lp2 还占用了一个虚拟磁盘,该磁盘是由逻辑卷组 rootvg 中的逻辑卷 clientlv01 提供的,大小为 1.5GB,作为该分区的系统盘(如图 8 所示:uli13lp2 分区属性页面中的“存储”标签)。整个系统还剩余一个虚拟磁盘可以使用,即 rootvg 中大小为 256MB 的逻辑卷 clientlv02,用户可以把该磁盘分配给需要它的分区来使用。


图 8:uli13lp2 的虚拟磁盘
uli13lp2 的虚拟磁盘

由于本系列文章的例子中所使用的 VIOS 版本为 1.5.1.1-FP-10.1,因此 IVM 支持物理适配器的分配。 IVM 在分区属性页面中增加了“物理适配器”标签(如图 9 所示),用户可以通过该页面来查看和修改逻辑分区上物理适配器的分配。从图 9 可以看出,当前分区 uli13lp2 不占用任何物理适配器,整个系统中也没有任何空闲的物理适配器可供分区使用。


图 9:uli13lp2 的物理适配器
uli13lp2 的物理适配器

安装 DLPAR 工具包

要使 DLPAR 正常工作,必须安装 IBM 所提供的 DLPAR 工具包(见参考资料 5)。工具包中所提供的工具或守护进程如 RMC(Resource Monitoring and Control)负责与 IVM 进行通信,协同进行 DLPAR 操作,并执行客户分区端的资源动态调整等操作。关于如何在 Linux 上安装 DLPAR 工具包,请翻阅参考资料 4 中“安装 Linux 对动态 LPAR 的支持”一节,或者参考资料 5 中所提供的说明,这里不再赘述。

清单 1 中所列的是 uli13lp2 上安装的 DLPAR 工具包,“ Package Name ”列显示的是工具包的名称,“ Installed ”列显示的是安装上的工具包的版本,而“ In Repository ”列则是当前最新的工具包版本。由于工具包一直处于开发更新之中,而且不同的 Linux 版本所需要安装的包也不尽相同,因此这里所显示的信息与参考资料 4 中表 1 所列举的或者读者在其它地方看到的工具包的名称或版本可能存在一些差异。


清单 1:uli13lp2 上安装的 DLPAR 工具包
Operating System:     Novell/SuSE 
 Version:             10 
 HMC/IVM Managed?   yes 

 Package Name                   Installed            In Repository 
 ------------                   ----------           ------------- 
 librtas                         1.3.4-0              1.3.4-0 
 libvpd                          1.4.1-1              1.4.1-1 
 lsvpd                           1.4.0-1              1.4.0-1 
 powerpc-utils                  1.0.6-0              1.0.6-0 
 powerpc-utils-papr            1.1.1.8-0            1.1.1.8-0 
 servicelog                     0.2.9-0              0.2.9-0 
 diagela                         2.2.3-0              2.2.3-0 
 sysdiag                         0.2.2-0              0.2.2-0 
 IBMinvscout                    2.2-5                 2.2-5 
 rdist                           6.1.5-792.1          6.1.5-792.1 
 src                              1.3.0.2-07305       1.3.0.2-07305 
 rsct.core.utils               2.5.0.1-07305        2.5.0.1-07305 
 rsct.core                       2.5.0.1-07305       2.5.0.1-07305 
 csm.core                        1.7.0.1-57           1.7.0.1-57 
 csm.client                      1.7.0.1-57          1.7.0.1-57 
 devices.chrp.base.ServiceRM  2.2.0.0-6           2.2.0.0-6 
 DynamicRM                       1.3.4-0              1.3.4-0 
 ibm-lop-utils                  0.1.2-2              0.1.2-2

确认 DLPAR 能力

即使安装了 DLPAR 工具包后也不意味着 DLPAR 就能够顺利进行,因为 DLPAR 还依赖于 IVM 和 Linux 系统以及各种相关进程的正常运行。比如可能某些守护进程在运行时意外退出,导致 IVM 和 Linux 分区不能正常通信;再如分区可能在安装完工具包后的某个时候被关闭了,这时候 DLPAR 也不能正常运行。 IVM 上有几种查看和确认 Linux 分区 DLPAR 能力(DLPAR Capability)的方法,分为图形界面方式和命令行方式。

图形界面查看方式

在分区的属性页面中,IVM 为 DLPAR 提供了相应的属性区域 - “动态逻辑分区(DLPAR)”(如图 10 所示),包括以下 5 个域:

  • 分区主机名或 IP 地址
  • 分区的 RMC 通信状态,包括“不活动”和“活动”等状态
  • 内存 DLPAR 功能是否打开,包括“否”,“未知”和“是”等状态
  • 处理器 DLPAR 功能是否打开,可能的状态与内存 DLPAR 相同
  • I/O 适配器 DLPAR 功能是否打开,可能的状态也与内存 DLPAR 相同

图 10 显示了安装 DLPAR 工具包之前 uli13lp2 的 DLPAR 能力属性。分区主机名或 IP 地址域显示了 uli13lp2 的 IP 地址;因为此时 RMC 守护进程还未运行,因此分区通信状态为不活动状态;而各种资源的 DLPAR 能力就像预期的那样,处于未激活的状态。


图 10:安装工具包前 uli13lp2 的 DLPAR 能力属性
安装工具包前 uli13lp2 的 DLPAR 能力属性

在成功安装完工具包并等候 RMC 与 IVM 建立握手后,再次打开分区属性页面,用户可以看到如图 11 所示的 DLPAR 能力。可以看到,分区通信状态已经处于活动状态,但是由于打开该属性页面的时候 IVM 并没有扫描分析该分区的 DLPAR 能力,因此各种资源的 DLPAR 能力处于一个未知的状态。

IVM 提供了“检索功能”按钮,用户可以通过该按钮通知 IVM 扫描、分析并提取当前分区的 DLPAR 能力。按下该按钮后,用户需要等待一段时间,之后 IVM 完成扫描和分析,显示出分区的 DLPAR 能力。在本文的例子中,DLPAR 所需的环境已经准备妥当,因此各种资源的 DLPAR 能力均处于激活状态(如图 12 所示)。


图 11:安装工具包后 uli13lp2 的 DLPAR 能力属性
安装工具包后 uli13lp2 的 DLPAR 能力属性

图 12:点击“检索功能”后 uli13lp2 的 DLPAR 能力属性
点击“检索功能”后 uli13lp2 的 DLPAR 能力属性

需要注意的是,即使在 DLPAR 正确设置的情况下,分区也并非能够对各种类型的资源做 DLPAR 操作,因为这还要取决于分区上所安装的 Linux 操作系统对 DLPAR 的支持情况(如图 3 所示)。以 RHEL4 为例,假设分区所安装的操作系统是 RHEL4,在安装工具包前,内存 DLPAR 能力的状态是“否”;在安装完工具包后,该状态变成“未知”;而在扫描完成后,该状态变成预期中的“否”,表明 RHEL4 并不支持内存 DLPAR 。在本文例子中,由于我们安装的是 SLES10 Service Pack 2,因此处理器和适配器的 DLPAR 能力的状态都是“是”,虽然不支持内存的动态减少操作,但是由于增加操作是允许的,因此内存的 DLPAR 能力的状态也是“是”。

命令行查看方式

从图 1 可以看到,IVM 中图形界面的操作最终还是被分发到命令行中去执行。那么 IVM 和 Linux 究竟提供了什么命令行方式去查看分区的 DLPAR 能力,而图形界面的操作又是对应到哪种命令行方式呢?清单 2 和 4 显示了两种方式,分别在 VIOS 和 Linux 分区上执行:

  • 命令 lssyscfg 是 IVM 上查看分区 DLPAR 能力的通用方式,不论客户分区处于什么样的状态,该方式都能正常使用。 dlpar_proc_capable、dlpar_mem_capable 和 dlpar_io_capable 分别表示处理器、内存和适配器的 DLPAR 能力,输出值 1 表明该资源类型的 DLPAR 处于激活状态,否则表示不支持或未激活。该方式是图形方式的后端,用户可以通过对比 IVM 进行分区 DLPAR 能力扫描操作前后应用程序日志的变化得到这一结论。清单 3 显示了 HMC 上相应的查看方式即命令 lspartition,DCaps 域表示了分区的 DLPAR 能力,输出值的具体含义在这里就不介绍了。通过对比可以看到,lssyscfg 仅适用于 IVM,而 lspartition 仅适用于 HMC 。
  • Linux 分区上的 drmgr 方式则要看该命令是否支持 --capabilities 选项,并且只能在分区系统正常运行的情况下才能使用。在本文例子所用的 SLES10 SP2 中,命令 drmgr 由 DLPAR 工具包中的 powerpc-utils-papr 提供,该 RPM 包从版本 1.1.1.6-0 开始支持 --capabilities 选项,即支持该查看方式。该方式的优点是:不论 Linux 分区是由 IVM 还是 HMC 来管理,这种查看方式都适用。清单 5 显示了在 HMC 管理下的 RHEL5 U2 分区上使用该方式的一个结果。

清单 2:在 IVM 的 VIOS 上用 lssyscfg 来查看
$ lssyscfg -r lpar --filter lpar_names=uli13lp2  \ 
 -F dlpar_proc_capable,dlpar_mem_capable,dlpar_io_capable 
 1,1,1 
 $ lspartition -dlpar 
 rksh: lspartition:  not found. 
 $


清单 3:在 HMC 上用 lspartition 来查看
hscroot@sqh11lte:~> lssyscfg -m fsp-venus -r lpar --filter lpar_names=venuslp3  \ 
 -F dlpar_proc_capable,dlpar_mem_capable,dlpar_io_capable 
 An invalid attribute was entered.  The invalid attribute is dlpar_proc_capable. 
 Please correct your entry and retry the command. 
 hscroot@sqh11lte:~> lspartition -dlpar | grep -A 1 venuslp3 
 <#15> Partition:<3*9119-595*02569EC, venuslp3.upt.austin.ibm.com, 9.3.111.206> 
       Active:<1>, OS:<Linux, 2.6.18-92.el5>, DCaps:<0x7f>,  \ 
       CmdCaps:<0x9, 0x9>, PinnedMem:<0> 
 hscroot@sqh11lte:~>


清单 4:在 IVM 的 Linux 分区上用 drmgr 来查看
uli13lp2:~ # rpm -qf `which drmgr` 
 powerpc-utils-papr-1.1.1.8-0 
 uli13lp2:~ # drmgr --capabilities 
 cpu_dlpar=yes,mem_dlpar=yes,slot_dlpar=yes,phb_dlpar=yes,hea_dlpar=yes, \ 
 pmig=yes,cpu_entitlement=yes,mem_entitlement=yes 
 uli13lp2:~ #


清单 5:在 HMC 管理的 Linux 分区上用 drmgr 来查看
[root@venuslp3 ~]# rpm -qf `which drmgr` 
 powerpc-utils-papr-1.1.1.6-0 
 [root@venuslp3 ~]# drmgr --capabilities 
 cpu_dlpar=yes,mem_dlpar=yes,slot_dlpar=yes,phb_dlpar=yes, \ 
 hea_dlpar=yes,pmig=no,cpu_entitlement=yes 
 [root@venuslp3 ~]#

DLPAR 的基本过程

IVM 从版本 1.3.0.0 开始支持处理器和内存 DLPAR,与 HMC 使用命令 chhwres 不同,此时 IVM 不提供命令 chhwres,而是使用 chsyscfg 进行 DLPAR,但是该命令只能用于处理器和内存 DLPAR,而不能用于适配器 DLPAR 。从版本 1.5 开始,IVM 增加了命令 chhwres 用于支持适配器 DLPAR,不仅如此,该命令还可以用于处理器和内存 DLPAR 。至此,用户可以使用命令 chsyscfg 或 chhwres 进行处理器和内存 DLPAR,使用 chhwres 进行适配器 DLPAR 。那么,处理器和内存 DLPAR 与适配器 DLPAR 分别是如何进行的,它们的基本运作过程之间存在什么差别呢?还有,使用 chsyscfg 和 chhwres 进行处理器和内存 DLPAR 是否存在不同呢?

为了更好的讨论 IVM 上 DLPAR 的基本过程,先来看看分区的 profile 和属性(Properties)。在 HMC 上,profile 描述了分区期望得到资源,用户可以使用 chsyscfg 来修改 profile ;分区属性则描述了分区当前拥有的资源,用户可以使用 chhwres 来动态调整分区的资源分配;用户对分区 profile 和属性的修改之间不互相影响,也就是说,profile 中资源描述的变化不会马上应用到分区属性,用户需要通过关闭然后重新激活分区的方式来使新的 profile 生效,分区属性的变化也不会影响 profile 的资源描述,当分区关闭后,通过 DLPAR 产生的资源分配的变化不再起作用。但是在 HMC 上截然不同的两个概念在 IVM 上却显得不分彼此:首先,IVM 仅提供了如图 10 所示的页面来修改分区的 profile 和执行 DLPAR 操作;其次,用于修改分区 profile 的命令 chsyscfg 也可用于 DLPAR ;最后,有 IVM 上的 DLPAR 操作经验的读者可能发现,DLPAR 产生的资源分配变化在分区关闭后仍旧可以在图 10 所示的页面中看到。实际上,IVM 并不存在分区 profile 的概念,命令 chsyscfg 和 chhwres 都直接修改分区的属性,分区关闭后分区的属性仍然有效,并在下次分区激活时得到应用,这样上述现象就变得很自然了。即便没有 profile,IVM 还是提供了与之相关的命令(比如 lssyscfg 等)与 HMC 保持兼容,以方便用户的使用,同时用户还可能在这些命令的参考手册中看到 profile 这个词。

图 13 描述了 IVM 上 DLPAR 的基本过程。处理器和内存各存在两个值:暂挂值(Pending)和当前值(Run Time),前者描述了用户期望得到的资源数量,后者表示分区当前占用的资源数量。命令 chsyscfg 和 chhwres 只修改暂挂值而不修改当前值,而暂挂值到当前值的应用或同步则是由 DLPAR Manager 守护进程来执行的,其中包括逻辑分区上处理器和内存的 vary on/off 操作。既然命令 chsyscfg 和 chhwres 是等效的,并且已经有了 chsyscfg,命令 chhwres 为何还要提供相同的处理器和内存 DLPAR 功能呢?目的是为了与 HMC 保持兼容,使得用户能够使用相同的命令行在 IVM 和 HMC 执行 DLPAR 操作。适配器则不存在暂挂值的概念,命令 chhwres 直接修改分区属性中的适配器信息,并在 DLPAR 能力激活的情况下在逻辑分区上 vary on/off 适配器,从而实现 DLPAR ;命令 chsyscfg 仅修改分区属性中的适配器信息,而不执行 vary on/off 操作,用户可以在分区上手工执行 vary on/off 操作来使 chsyscfg 的修改生效,从而达到 DLPAR 相同的效果。由于适配器 DLPAR 不依赖于 DLPAR Manager,因此如果这个过程中产生错误,用户可以马上看到错误信息;而处理器和内存 DLPAR 中,资源动态调整的错误只能在 DLPAR Manager 执行同步操作时才能发现并报告给用户。


图 13:IVM 上 DLPAR 的基本过程
IVM 上 DLPAR 的基本过程

图 14 描述了基于 DLPAR Manager 的处理器和内存 DLPAR 更加详细的执行过程。命令 chsyscfg 和 chhwres 完成暂挂值的修改后唤醒阻塞中的 DLPAR Manager,然后命令结束; DLPAR Manager 被唤醒后执行暂挂值到当前值的同步,同步完成后该守护进程重新阻塞直到下一次被唤醒。 DLPAR Manager 的执行过程如图 14 右部所示,从该过程中我们可以看到同步所依赖的条件。首先,如果某个分区属于工作负载组(Partition Workload Group),并且该组包含多于 1 个逻辑分区,那么 DLPAR Manager 不同步该分区,而是由工作负载组的管理软件自行处理。其次,分区应该处于运行状态,否则,DLPAR Manager 仅把当前值修改成暂挂值,而不执行 vary on/off 操作。还有,分区的 RMC 连接应该处于活跃状态,这样 IVM 才能与之协作完成资源的动态调整。最后,资源的暂挂值和当前值应该处于不一致的状态。当这些条件满足后,DLPAR Manager 就修改当前值为暂挂值,并协同分区的 RMC 守护进程等进行资源的 vary on/off 操作(当然,前提是分区支持该资源的动态调整)。至此,一个完整的处理器和内存 DLPAR 过程就完成了。


图 14:基于 DLPAR Manager 的处理器和内存 DLPAR
基于 DLPAR Manager 的处理器和内存 DLPAR

小结

本系列文章介绍了 IBM 集成虚拟化管理器 — IVM 上 Linux 逻辑分区的 DLPAR,本文是其中的第一部分,介绍了 IVM 对 DLPAR 功能支持的变化过程、主流的 Linux 发行版本对 DLPAR 的支持情况、Linux 分区上 DLPAR 环境的准备过程、以及 IVM 上 Linux 分区 DLPAR 的基本过程等背景知识。由于篇幅的限制,本文没有涉及处理器、内存、适配器、虚拟磁盘和光学设备等各种资源的 DLPAR 操作过程,这些内容将在本系列文章的后续篇章中分别介绍。

声明:本文仅代表作者个人之观点,不代表 IBM 公司之观点。

IBM 和 System p 是国际商业机器公司在美国和/或其他国家或地区的商标或注册商标。


参考资料

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多