一个人总要走陌生的路,看陌生的风景,听陌生的歌,然后在某个不经意的瞬间,你会发现,原本费尽心机想要忘记的事情真的就这么忘记了--2007年2月 古之成大事者,不唯有超世之才,亦唯有坚韧不拔之志也!--2013年
分类: AIX
2013-09-29 20:42:16
原文地址: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 平台硬件虚拟化的一个补充,其应用优势与应用范围综合来看有以下这么几点:
我们结合应用需要与 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
我们接下来将使用 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 -M vfs=directory directory=/home -M vfs=directory directory=/usr -M vfs=directory directory=/opt -n mywpar01 mkwpar: Creating file systems... / /home /opt /proc /tmp /usr /var Mounting all workload partition file systems. x ./usr x ./lib x ./admin x ./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 状态。
# lswpar Name 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.30 kthr 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 中运行多个程序。
# lswpar Name State Type Hostname Directory ------------------------------------------------- mywpar01 D S mywpar01 /wpars/mywpar01 vmstat A A vmstat / |
WPAR 的删除
应用 WPAR 中所有进程退出后,WPAR 即自动删除了,无需手动操作,系统 WPAR 的删除可参照下列步骤:
对于损坏的 WPAR,可以使用 rmwpar –F 强行删除 WPAR。
启动和停止 WPAR
系统 WPAR 支持启动,关闭,重启等操作,启动 mywpar01:
# startwpar mywpar01 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 499778. Verifying workload partition startup. # lswpar Name 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 6 Copyright 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 # hostname mywpar01 |
系统 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.rpm apache ################################################## #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,我们可以通过 来访问我们刚才生成的一个页面。
至此,我们已经演示了一个基本的 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 up Backing up 7 files 7 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.bak 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 root x 2848 ./.savewpar_dir/wpar.spec x 399 ./.savewpar_dir/image.data x 125796 ./.savewpar_dir/backup.data total size: 129043 files restored: 3 Stopping 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 other Workload 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 root x 2848 ./.savewpar_dir/wpar.spec x 399 ./.savewpar_dir/image.data x 125796 ./.savewpar_dir/backup.data total size: 129043 files restored: 3 。。。(省略若干) Workload partition myclonewpar created successfully. |
WPAR 的状态
在文章最后向大家介绍一下 WPAR 的多种状态,系统管理员在使用 lswpar 命令时可以查看到 WPAR 的状态信息。下表给出了各种状态的说明。
状态 | 标志 | 说明 |
---|---|---|
Defined | D | 规格参数已定义,但是处于停止、未启动的状态。 |
Active | A | WPAR 已启动激活,正在正常运行的状态 |
Paused | P | 完成一次 checkpointing,WPAR 已经被保存下来后的一种等待状态,等待用户发出继续或者停止运行命令。 |
Broken | B | WPAR 出现故障,无法正常工作并且恢复操作也失败。 |
Transitional | T | 当前 WPAR 正在从一个状态切换到另一个的一种临时状态 |
Frozen | F | 主要见于 HPC 或分布式应用中,WPAR 被冻结,管理员可以检查是否正确的执行了 checkpointing,但是又不用真正去执行暂停操作进入到 Paused 状态。 |
Loaded | L | 对于支持动态迁移的 WPAR,当其完全移动到在目标系统上又还未启动进入 Active 状态前的状态。 |
参考资料
学习
讨论