原文地址:http://www.ibm.com/developerworks/cn/aix/aix6/newfeatures/wpar1.html与 IBM POWER 平台由硬件方式实现的逻辑分区(LPAR)功能不同,WPAR 是 AIX 6 内核在软件层面实现的虚拟化方案。WPAR 使得多个“系统环境”可以共享一个 AIX 操作系统,彼此之间由内核保证隔离。承载所有这些被隔离开的“系统环境”的 AIX 操作系统称之为全局环境,一个“系统环境”即 WPAR,它既可以包括一个完整的 AIX 环境(称之为系统 WPAR),也可以仅仅包括应用程序的进程(称之为应用 WPAR)。要注意的是,WPAR 和 LPAR 具有各自的特点,是针对不同的用户需求而设计的,它们之间是互相补充,相辅相成的关系。一个 IBM POWER 服务器上可以同时运行有多个 LPAR 和 WPAR。下图较清晰的解释了系统平台,WPAR,LPAR 之间的关系。 上图为一个 system p 的系统平台,该平台被分割成多个 LPAR,每个 LPAR 上可以运行一个操作系统实例。LPAR 上可运行的系统包括 Linux,AIX 和 VIOS。在运行 AIX6 的 LPAR 中,我们又可以运行和管理一个或多个 WPAR。计划和考虑WPAR 是基于 OS 在软件层的实现的虚拟化解决方案。作为 POWER 平台硬件虚拟化的一个补充,其应用优势与应用范围综合来看有以下这么几点:分配计算资源拥有更小更精确的粒度,占用资源较少,部署更简单,适合用于整合细小的 IT 应用。保护硬件投资,WPAR 可以让基于 POWER4,POWER5 的硬件平台,支持更灵活的动态 WPAR 虚拟化解决方案。采用 WPAR 技术就意味着需要更少的操作系统实例,减少了操作系统与软件包维护与管理。WPAR 支持跨服务器的虚拟化解决方案,通过 WPAR 技术可以轻松的将应用从一个服务器切换到另一台服务器。更灵活的利用整个服务群集的资源。(LPAR 在 POWER6 平台上也支持跨服务器虚拟化技术)高可用与灾难恢复功能,WPAR 提供的 Checkpoint 功能,可以将正在运行的程序保存成系统快照镜像文件,用户可以随时从镜像的时间点继续运行程序。这种功能特别适合于高性能计算等运行时间较长的应用程序。与 HACMP 高可用机制略有不同,WPAR 提供的是镜像点(point-in-time)的高可用保护。我们结合应用需要与 WPAR 的应用优势来综合考虑,到底采用底层的 LPAR 虚拟化分区技术,还是 WPAR 虚拟化分区技术。考虑好是否采用 WPAR 技术,接下来要考虑的就是使用哪一种 WPAR 方式。WPAR 有两种类型,一是应用 WPAR,另一种是系统 WPAR。应用 WPAR 是一种简单的 WPAR 方式,它与 AIX 全局环境共享文件系统和服务进程,可以简单的把应用 WPAR 看作是一个包含所有应用程序进程的一个容器。这个容器保证了应用程序进程与外界的隔离。系统 WPAR 提供了一个虚拟的 AIX 系统环境,它有自己的初始化进程,譬如独立的 inetd 后台服务监控进程。它还有独立的用户、组权限管理、独立的网络地址,以及支持远程登录的功能。除了部分文件系统与 AIX 系统共享以外,系统 WPAR 也有独立的文件系统空间,我们可以认为系统 WPAR 就是一个缩减版的 AIX 系统环境。应用 WPAR 与系统 WPAR 各自的特点我们用下表来为大家做一个参照。系统 WPAR应用 WPAR为多个相互关联的应用提供的隔离环境,有独立的 AIX 服务进程。类似于传统的 AIX 环境。为单个独立的应用服务进程提供隔离环境。WPAR 需要被定义,并支持启动,关闭,重启等操作。WPAR 创建后,即可通过 lswpar 命令查询到 WPAR 的状态。WPAR 状态只是临时性的,随着应用的启动而生成,随着应用的关闭而消失。被关闭的应用 WPAR 无法使用 lswpar 命令列出。具有自己独立的文件系统资源,独立的初始化进程,独立的用户管理与权限控制。独立的 IP 地址,并支持远程登录。与 AIX 全局环境共享资源系统 WPAR 的创建。创建和删除 WPAR创建一个最简单的系统 WPAR,只需要使用命令“mkwpar –n ”即可。WPAR 的创建也支持使用 smit 命令(smit mkwpar)。我们接下来将使用 mkwpar 命令创建一个系统 WPAR,名称为 mywpar01,使用 -N 指定 ip 地址为 192.168.21.136. ip 绑定在网卡 en0 上,为了能够独立的安装软件,我们使用 -M 参数指定使用了独立的文件系统,还使用 -A 参数指定系统启动时 WPAR 分区自动启动。完整的命令如下:mkwpar -N interface=en0 address=192.168.21.136 netmask=255.255.0.0 -A -M directory=/vfs=jfs2 size=5G -M vfs=directory directory=/var -M vfs=directory directory=/tmp -Mvfs=directory directory=/home -M vfs=directory directory=/usr -M vfs=directorydirectory=/opt -n mywpar01mkwpar: Creating file systems... / /home /opt /proc /tmp /usr /varMounting all workload partition file systems.x ./usrx ./libx ./adminx ./admin/tmp..( 省略若干行 )Workload partition mywpar01 created successfully.mkwpar: 0960-390 To start the workload partition, execute the following as root: startwpar [-v] mywpar01我们可以使用 lswpar 来检查我们所常见的 WPAR 状态。# lswparName State Type Hostname Directory-------------------------------------------------mywpar01 D S mywpar01 /wpars/mywpar01我们看到我们已经创建好了 mywpar01,其状态为 D(defined 定义好的),类型为 S(System 系统 WPAR)。应用 WPAR 的创建。应用 WPAR 的创建较为简单,只须使用 wparexec 命令来执行应用程序即可。请注意应用程序需使用绝对路径调用。例如我们使用应用 WPAR 来执行 vmstat 程序# wparexec /usr/bin/vmstat 5//5 为 vmstat 的参数Starting workload partition 'vmstat'.Mounting all workload partition file systems.Loading workload partition.vmstat configuration: @lcpu=4 @mem=1024MB @ent=0.30kthr memory page faults cpu----- ----------- ------------------------ ------------ ----------------------- @ @ @ @ @ r b avm fre re pi po fr sr cy in sy cs us sy id wa pc ec 0 0 140685 73170 0 0 0 0 0 0 18 1262 1 2 98 - - 0.00 0.4 0 0 140686 73169 0 0 0 0 0 0 7 9 1 1 99 - - 0.00 0.5我们此时再执行 lswpar,就可以看到现在多了一个应用 WPAR,它的名称是 vmstat,状态是 A(活动的)。wparexec 除了可以用来启动一个可执行程序外,也可用来启动一个脚本从而在 WPAR 中运行多个程序。# lswparName State Type Hostname Directory-------------------------------------------------mywpar01 D S mywpar01 /wpars/mywpar01vmstat A A vmstat /WPAR 的删除应用 WPAR 中所有进程退出后,WPAR 即自动删除了,无需手动操作,系统 WPAR 的删除可参照下列步骤:确认系统 WPAR 处于 Defined 状态。只有 Defined 状态下的 WPAR 才能执行正常的删除操作。确认不再需要该 WPAR。执行 rmwpar 删除 WPAR,如 rmwpar mywpar01。对于损坏的 WPAR,可以使用 rmwpar –F 强行删除 WPAR。启动和停止 WPAR系统 WPAR 支持启动,关闭,重启等操作,启动 mywpar01:# startwpar mywpar01Starting workload partition 'mywpar01'.Mounting all workload partition file systems.Loading workload partition.Exporting workload partition devices.Starting workload partition subsystem 'cor_mywpar01'.0513-059 The cor_mywpar01 Subsystem has been started. Subsystem PID is 499778.Verifying workload partition startup.# lswparName State Type Hostname Directory-------------------------------------------------mywpar01 A S mywpar01 /wpars/mywpar01我们通过 lswpar 看到 mywpar01 状态已经变成 Active 了。接下来我们重启 WPAR,重启系统 WPAR 可以登录到 WPAR 中然后使用 shutdown –Fr 命令像重启操作系统一样重启 WPAR,也可以使用 rebootwpar 命令来实现。# rebootwpar -N mywpar01// 加上 -N 参数则立即重启,否则将等待 600 秒Stopping workload partition 'mywpar01'.Stopping workload partition subsystem 'cor_mywpar01'.0513-006 The Subsystem, cor_mywpar01, is currently stopping its execution.stopwpar: 0960-242 Waiting for workload partition to halt.Shutting down all workload partition processes.Unmounting all workload partition file systems.Starting workload partition 'mywpar01'.Mounting all workload partition file systems.Loading workload partition.Exporting workload partition devices.Starting workload partition subsystem 'cor_mywpar01'.0513-059 The cor_mywpar01 Subsystem has been started. Subsystem PID is 446548.Verifying workload partition startup.#下面我们使用命令 stopwpar 来停止 mywpar01:# stopwpar -N mywpar01 // 加上 -N 参数立即关闭,否则将等待 600 秒。Stopping workload partition 'mywpar01'.Stopping workload partition subsystem 'cor_mywpar01'.0513-006 The Subsystem, cor_mywpar01, is currently stopping its execution.stopwpar: 0960-242 Waiting for workload partition to halt.Shutting down all workload partition processes.Unmounting all workload partition file systems.登录和操作 WPAR登录到系统 WPAR 可以有 2 种方式,一是在 AIX 全局环境下使用 clogin 命令进入 WPAR,另外则是通过 WPAR 的 IP 直接用 telnet 的方式登录。# telnet 192.168.21.136// 使用 telnet 方式Trying...Connected to 192.168.21.136.AIX Version 6Copyright IBM Corporation, 1982, 2007.login:// 使用 clogin 方式# clogin mywpar01******************************************************************************* Welcome to AIX Version 6.1! ** ** Please see the README file in /usr/lpp/bos for information pertinent to ** this release of the AIX Operating System. ********************************************************************************Last login: Thu Feb 28 17:36:26 2008 on /dev/pts/0 from 10.172.192.6# hostnamemywpar01系统 WPAR 的操作命令风格与 AIX 环境一样,接下来您就可以在 WPAR 安装运行程序了安装应用软件在默认的情况下,系统 WPAR 与 AIX 全局环境共享 /usr 和 /opt 目录,并只有只读的权限,WPAR 用户无法写入,所以安装软件必须在 AIX 全局环境下进行。如果你一定要在 WPAR 中独立安装软件,则必须在创建系统 WPAR 时使用参数 -M 声明使用独立的 /usr 和 /opt 文件系统分区,具体参数使用方法可参考上文中创建删除 WPAR 部分。我们之前创建的系统 WPAR 有独立的 /usr 和 /opt 分区,所以接下来可直接演示在系统 WPAR 中安装一个 apache Web 应用。Apache 是一个 rpm 的安装包,我们将使用 rpm 命令来安装,AIX 其他的安装软件的方式如 smit、installp 也都能正常在系统 WPAR 环境下使用。# df// 请注意 opt 与 /usr 是根分区下的一个目录,有读写权限。Filesystem 512-blocks Free %Used Iused %Iused Mounted on/dev/fslv12 10485760 5983800 43% 42637 6% //proc - - - - - /proc# rpm -ivh expat-1.95*expat ################################################### rpm -ivh apache-1.3.31-1.aix5.1.ppc.rpmapache ###################################################cd /opt/freeware/apache/share/htdocs// 进入 apache 放置网页的目录#echo "this is a test page for WPAR http service" > index.html // 生成一个简单的页面,打开后显示“this is a test page for WPAR http service”。# /opt/freeware/apache/sbin/apachectl start// 启动 http 服务/opt/freeware/apache/sbin/apachectl start: httpd started启动 http 服务后,我们可以通过系统 WPAR 的 IP 地址访问其 WEB 服务,我们用 IE 浏览器来验证。请注意我们刚才创建 WPAR 时指定的 IP 地址为 192.168.21.136,我们可以通过 http://192.168.21.136 来访问我们刚才生成的一个页面。 至此,我们已经演示了一个基本的 WPAR 的创建,管理与应用整个全过程。暂停和恢复 WPAR挂起和恢复 WPAR 是在服务器间动态移动 WPAR 的基础,挂起 WPAR 也即将当前时刻的 WPAR 运行状态使用快照的方式保存下来,恢复过程则是从快照文件读取 WPAR 状态信息,继续运行 WPAR。这是 WPAR 的高级功能之一,需要安装 WPAR agent,这部分内容将在续篇中详细说明。备份和还原 WPAR备份 wpar 非常简便,我们不但可以备份 Defined 状态的系统 WPAR,也可以备份活动的 WPAR。备份 WPAR 使用 savewpar 命令,使用 -f 指定备份设备或备份的文件位置。# savewpar -f /tmp/mywpar01.bak mywpar01 // 备份完全独立分区的 WPAR 需要较大的空间Creating information file (/image.data) for mywpar01.Creating list of files to back up ..Backing up 43993 files.................43993 of 43993 files backed up (100%)0512-038 savewpar: Backup Completed Successfully.# savewpar -f /tmp/wpar.bak mychkwpar// 备份与全局环境共享 /usr,/opt 目录的分区只需要极少的空间Creating list of files to back upBacking up 7 files7 of 7 files backed up (100%)0512-038 savewpar: Backup Completed Successfully.在还原 WPAR 过程中,如果原 WPAR 仍然存在,则需要加 -F 参数关闭并删除原 WPAR,然后按照备份的 WPAR 重新创建 WPAR 并还原。如原 WPAR 已被删除,则还原过程相当于按照备份文件重建 WPAR。# restwpar -F -f /tmp/wpar.bakNew volume on /tmp/wpar.bak: Cluster 51200 bytes (100 blocks). Volume number 1 Date of backup: Wed Mar 5 21:43:12 2008 Files backed up by name User rootx 2848 ./.savewpar_dir/wpar.specx 399 ./.savewpar_dir/image.datax 125796 ./.savewpar_dir/backup.data total size: 129043 files restored: 3Stopping workload partition 'mychkwpar'.Stopping workload partition subsystem 'cor_mychkwpar'.0513-044 The cor_mychkwpar Subsystem was requested to stop.Shutting down all workload partition processes.Unmounting all workload partition file systems.rmwpar: Removing file system /wpars/mychkwpar/var.rmwpar: Removing file system /wpars/mychkwpar/usr.rmwpar: Removing file system /wpars/mychkwpar/tmp.rmwpar: Removing file system /wpars/mychkwpar/proc.rmwpar: Removing file system /wpars/mychkwpar/opt.rmwpar: Removing file system /wpars/mychkwpar/home.rmwpar: Removing file system /wpars/mychkwpar.mkwpar: Creating file systems... / /home….( 省略若干 )syncroot: Processing root part installation status.syncroot: ATTENTION, Root part is currently synchronized, but there are otherWorkload partition mychkwpar created successfully.mkwpar: 0960-390 To start the workload partition, execute the following as root: \ startwpar [-v] mychkwpar克隆 WPAR,我们很快发现可以利用还原 WPAR 的功能快速的复制 WPAR。还可以将备份文件拷贝到其他的服务器上,实现快速的应用部署。要注意的是我们在克隆 WPAR 的时候需要定义新的主机和 IP 地址。restwpar -n myclonewpar -h myclonewpar -r -M "-N address=192.168.21.131"-d /wpars/myclonewpar -U -f /tmp/wpar.bak//Restwpar 的基本参数:-n 定义新 WPAR 名,-h 定义新 WPAR 主机名,-r 复制域名解析相关文件,-M 为 mkwpar 传递参数,-d 指定 wpar 创建位置,-f 指定还原设备或文件。New volume on /tmp/wpar.bak: Cluster 51200 bytes (100 blocks). Volume number 1 Date of backup: Wed Mar 5 21:43:12 2008 Files backed up by name User rootx 2848 ./.savewpar_dir/wpar.specx 399 ./.savewpar_dir/image.datax 125796 ./.savewpar_dir/backup.data total size: 129043files restored: 3。。。(省略若干)Workload partition myclonewpar created successfully.WPAR 的状态在文章最后向大家介绍一下 WPAR 的多种状态,系统管理员在使用 lswpar 命令时可以查看到 WPAR 的状态信息。下表给出了各种状态的说明。状态标志说明DefinedD规格参数已定义,但是处于停止、未启动的状态。ActiveAWPAR 已启动激活,正在正常运行的状态PausedP完成一次 checkpointing,WPAR 已经被保存下来后的一种等待状态,等待用户发出继续或者停止运行命令。BrokenBWPAR 出现故障,无法正常工作并且恢复操作也失败。TransitionalT当前 WPAR 正在从一个状态切换到另一个的一种临时状态FrozenF主要见于 HPC 或分布式应用中,WPAR 被冻结,管理员可以检查是否正确的执行了 checkpointing,但是又不用真正去执行暂停操作进入到 Paused 状态。LoadedL对于支持动态迁移的 WPAR,当其完全移动到在目标系统上又还未启动进入 Active 状态前的状态。参考资料学习本系列的第 1 部分:在本文中,我们介绍了 AIX 6.1 在系统基础功能,存储、I/O 和文件系统方面的新功能和增强。本系列的第 2 部分:在本文中,我们介绍了网络,性能,虚拟化和可管理性方面的变化。本系列的第 3 部分:本文为最后一篇,向您介绍了关于可用性、安全性以及开发方面的一些新的特性和功能。本系列的第 5 部分:在本文中,我们将会介绍 IBM Workload Partition Manager(简称WPAR Manager)的安装和使用,以及如何使用 WPAR Manager 进行 WPAR 的动态迁移(Live Application Mobility)。AIX 6 资源中心:你可以从这里找到更多和 AIX 6 相关的资源。p 系列主机虚拟化专题 :在这里,我们为您整理了与 p 系列主机虚拟化相关的内容,从概念、应用和新兴技术等方面向您介绍这个高级技术的方方面面。希望您能通过对这些内容的学习和了解,对虚拟化技术有一个全面的认识,并且能够应用到您的实际工作中去。相关 IBM 红皮书资源:Introduction to Workload Partition Management in IBM AIX Version 6.1IBM AIX Version 6.1 Differences GuidePowerVM Live Partition Mobility on IBM System p访问 developerWorks AIX and UNIX 专区 以获取提高您的技能所需的资源。您是 AIX 和 UNIX 新手吗?请访问 “AIX and UNIX 新手入门”页 以了解更多信息。浏览 技术书店 ,以了解有关这些技术主题及其他技术主题的相关书籍。讨论播客 :收听播客并与 IBM 技术专家保持同步。访问 developerWorks 博客 ,从而加入到 developerWorks 社区 中来。AIX 5L——技术论坛AIX for Developers 论坛集群系统管理IBM Support Assistant性能工具——技术虚拟化——技术更多“AIX and UNIX”论坛 09-10 17:57