WPAR 是在 AIX 6.1 中实现的一项大胆创新,它能虚拟化操作系统而不无需在 IBM System p 分区服务器上创建完整的 LPAR。WPAR 能提供类似的分离层,但可以避免完整系统镜像的开销。LPAR 需要有自己的操作系统镜像和一定数量的物理资源。尽管这些资源中有很大部分可以虚拟化,但仍然需要为系统分配一些物理资源。而且,需要为每个 LPAR 安装补丁包和技术升级包。每个 LPAR 都需要有自己的存档策略和灾难恢复策略。而且创建 LPAR 还需要花费一点时间;需要在 AIX 之外完成,例如通过 Hardware Management Console (HMC) 或者 Integrated Virtualization Manager (IVM)。
WPAR 是很容易管理的,它可以从 AIX 命令行或通过 SMIT 创建,而 LPAR 则无法这样做。到目前为止,LPARs 最大的劣势是不断增长的管理开销,和过度耗用 CPU 和 RAM 资源的潜在威胁。换句话说,当分区帮助您加强和虚拟化一台计算机的硬件时,使用 WPAR 技术的操作系统虚拟化则更进一步,能够让您进行更精细的资源管理。它是通过共享 OS 镜像来实现的,而且显然更高效地利用了 CPU、RAM 和 I/O 资源。
WPAR 不会代替 LPAR,WPAR 只是一个补充,而且它能够通过操作系统虚拟化进一步虚拟化应用程序工作负载。WPAR 能够让新应用程序部署得更快,当然这只是一个附带收益。在 AIX 7.1 中,可以创建支持 AIX 7.1 或 AIX 5.2 环境的 WPAR,从而可以在新的 AIX 7.1 环境中更加容易地增强老的服务器。另一方面,了解 WPAR 有哪些限制也非常重要。例如,每一个 LPAR 对于在 LPAR 中创建的所有 WPAR 来说都是一个单点故障。如果 LPAR 出现问题(或者是计划的系统中断,诸如此类),那么所有底层的 WPAR 也会受到影响。
在这一节,我们将进一步定义不同类型的工作负载分区,并讨论应该使用 WPAR 的场景。
如之前所讨论,WPAR 是在单个 AIX 镜像中创建的虚拟操作系统环境。在 AIX 7.1 中,您也可以创建 AIX 5.2 特定的 WPAR 用以运行旧的应用程序环境,与 LPAR相比,WPAR 的系统开销更小。虽然他们是自包含的,也就是说,每个 WPAR 都有自己私有的执行环境,其中有文件系统和网络地址,但仍然可以在全局环境中运行。全局环境(实际的 LPAR)具有逻辑分区的所有物理资源。还有一点需要注意,全局环境能看到特定的 WPAR 中运行的所有进程。
有两种类型的 WPAR:系统工作负载分区和应用程序负载分区。系统 WPAR 更接近于完整版的 AIX。系统 WPAR 有它自己专门的、完全可写文件系统以及自己的 inetd 和 cron。应用程序 WPAR 是虚拟 OS 环境的轻量级版本。它们功能十分有限,只能运行应用程序进程,无法运行系统守护程序如 inetd 和 cron。甚至无法定义对此环境的远程访问。这些只是临时对象;当应用程序分区的最后进程结束时,它们会取消集成,就这点来说,它更适合执行进程而不是整个应用程序。总地来说,WPAR 并不依赖于实际的硬件,甚至可以将它用到不支持 IBM PowerVM(以前称作 APV)的 POWER4 系统上。对于 AIX 管理员来说,WPAR 的巨大优势就是创建新环境的同时无需创建和管理新 AIX 分区的灵活性。我们来看一些需要使用 WPAR 的场景。
在 AIX 7.1 中也可以运行 AIX 5.2 分区。这与 AIX 7.1 WPAR 在结构上是相同的,但应用程序是在使用 AIX 5.2 系统库和命令的环境中执行的。AIX 5.2 WPAR 一般都是系统而非应用程序 WPAR。使用 AIX 5.2 WPAR 能让您在更新的硬件上运行 AIX 5.2 应用程序。它所支持的 AIX 5.2 环境支持 AIX 5.2 的 TL10 和SP2。
WPAR 是按需定制的,可在测试和/或 QA 以及开发环境下使用,或在特别控制的环境中运行隔离的应用程序。也可用于 AIX 5.2 分区和在本机 AIX 7.1 级无法执行的应用程序。
从 AIX 6.1.6 (TL6) 和 AIX 7.1 开始,添加了大量能提升 WPAR 性能的增强特性,其中包括对 CPU、RAM 控制和管理的提升,以及网络支持。很多大型组织至少有三个应用程序环境,其中包括开发、测试和生产。有些多达五个环境,其中还包括演示/培训和压力/集成环境。我们举一个常见的三层应用程序环境的例子:Web、应用程序服务器和数据库服务器。而在 LPAR 中,有 5 个独立的环境,那么您将需要创建 15 个 LPAR。这就是 WPAR 能发挥最大价值的地方。在这样的环境中,您只要创建 5 个 LPAR。如何做呢?
在下列表 1 中,有 5 个不同的环境,包括一个 Web 服务器、一个应用程序服务器和一个数据库服务器。如果想要隔离环境,唯一的方法就是通过逻辑分区。这需要创建 15 个逻辑分区。在今天的技术水平来说,给每个应用程序分配空间是很常见的。这么做也能保证您能尽可能模拟您的环境。有了 WPAR,我们能够实现这一点,而又不必分离 AIX 镜像。
1.Dweb01 | 4.Trweb01 | 7.Tstweb01 | 10.Ppweb-01 | 13.Pweb01 |
2.Dapp01 | 5.Trapp01 | 8.Tstweb01 | 11.Ppapp01 | 14.Papp01 |
3.Dora01 | 6.Traora01 | 9.Tstora01 | 12.Ppora01 | 15.Pora01 |
下列表 2 显示如何完成的。每个环境都有自己的 LPAR,每个 LPAR 中创建了三个 WPAR。现在想象一下,如果我们有四个 Web 服务器、两个应用程序服务器和两个数据库服务器来支持该环境。那么维护这些环境,确保是最新的 OS 版本,以及对每个进行合理的备份和管理,那将是一个噩梦。WPAR 能显著地简化管理该环境的总体工作量,同时尽量减少将物理资源分配给逻辑分区的花费。
Dwparweb01 | 2.Trwparweb01 | 3.Tstwparweb01 | 4.Ppweb-01 | 5.Pweb01 |
1.Dwaparapp01 | 2.Trwpapp01 | 3.Tstwparapp01 | 4.Ppapp01 | 5.Papp01 |
1.Dwparora01 | 2.Trwparora01 | 3.Tstwparora01 | 4.Ppwparora01 | 5.Pora01 |
WPAR 还支持创建沙箱 环境,在其环境中试用和测试应用程序,不会妨碍或影响主机或生产环境,这是 WPAR 理想的使用方法。这环境只能由系统管理员使用。在这里,管理员能够安装新软件、测试新补丁、安装新技术级,并可以自由分解系统,而不会影响业务。不幸的是,当需要部署新应用程序时,第一个要放弃的环境就是沙箱环境。有了 WPAR,您可以迅速创建它能发挥作用的隔离环境。有了 WPAR 代替 LPAR,创建沙箱的过程变得更高效,而且不需要指定专门的设备。
几秒钟之内就可以创建应用程序 WPAR。这里还有什么更好的方法能更快地排除应用程序或出错进程的故障吗?由于这些都是临时资源,一旦终止就会销毁,从而简化了对这些分区的管理。
如果您需要迁移并增强老的 AIX 5.2 应用程序以运行于支持 AIX 7.1 的更新的 POWER 环境,那么您可以使用 AIX 5.2 Workload Partition。它提供了与完整的 AIX 5.2 安装版一样的功能,但附加了与标准 WPAR 一样的资源隔离和控制,以及整个版本化操作系统环境。
版本 WPAR 也有一样的限制。特别是,如前所述,无法在多个 WPAR 版本化环境下共享文件系统。这意味着如果需要在多个应用程序之间共享基于文件的资源,那么必须在相同的 WPAR 环境中运行。
您还应该知道,版本化环境中的命令和系统库是对应的版本化 WPAR,但也有一些例外。AIX 5.2 WPAR 中的文件系统、逻辑卷和系统性能命令是主机 AIX 7.1 操作系统的。还要注意,要确保使用这些命令的所有应用程序都知道 7.1 命令及其环境。使用以下命令可以获得 AIX 7.1 替代的命令列表:ODMDIR=/usr/lib/objrepos odmget overlay | awk '$1=="path" {print $3}'
。
在这一节,我们将讨论不使用 WPAR 的情形和场景。
如前所述,全局环境能看到中央 LPAR 的 WPAR 进程。如果您运行的是安全性很高的系统,那么从安全角度看,这可能是一个问题。还有,LPAR 的 root 管理员现在能访问工作负载分区,这可能会影响到应用程序所要求的安全性。
LPAR 中的每个 WPAR 都使用相同的 LPAR 系统资源。在架构系统以及对系统进行压力测试时都要小心。例如,如果新版本部署后,您在预生产系统上运行性能基准,并且您在测试数据库时有一些开发人员使用应用程序服务器,那么这只要通过在一个 LPAR 中共享相同资源即可完成。您的团队都应该知道,现在相同的产品会有相互竞争的资源。
如果您处于一个很难拆分系统的环境中,需要注意当进行 LPAR 上的性能维护时,定义的每个 WPAR 都会受到影响。同时,如果有系统问题,并且 AIX 崩溃,那么每个 WPAR 都会无法使用。从这个角度看,没有 WPAR 的 LPAR 能提供更高的环境可用性,尽管成本有点高。
关于生产环境,我还是非常保守的。我喜欢在生产环境中在各自的逻辑分区中运行每一层。我这么做是因为我喜欢 LPAR 所提供的粒度和完整的 OS 隔离,无需担心多个环境(Web、应用程序和数据库)。
WPAR 中不支持物理设备。虽然可以导出设备,但对于需要非导出设备的应用程序来说,这会是一个大问题。这种情况下,只能限制在全局环境下运行。还要知道,WPAR 无法访问内核信息,也不能安装内核扩展或访问父 LPAR 提供的内核扩展。
在这一节中,我们将创建、配置和管理系统和应用程序的 WPAR。
mkwpar
命令可以创建 WPAR,安装文件系统和软件,并准备好系统(参见 清单 1 )。它还会通过将各个包安装和复制到新配置的系统中来同步已安装软件的根部分。
l488pp008_pub[/] > mkwpar -n prod01 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 x ./audit ... rsct.core.hostrm 3.1.0.0 ROOT APPLY SUCCESS rsct.core.hostrm 3.1.0.1 ROOT APPLY SUCCESS rsct.core.lprm 3.1.0.0 ROOT APPLY SUCCESS rsct.core.microsensor 3.1.0.0 ROOT APPLY SUCCESS rsct.core.microsensor 3.1.0.1 ROOT APPLY SUCCESS rsct.opt.storagerm 3.1.0.0 ROOT APPLY SUCCESS rsct.opt.storagerm 3.1.0.1 ROOT APPLY SUCCESS rsct.core.gui 3.1.0.0 ROOT APPLY SUCCESS syncroot: Error synchronizing installp software. syncroot: Returns Status = FAILURE Workload partition prod01 created successfully. mkwpar: 0960-390 To start the workload partition, execute the following as root: startwpar [-v] prod01 |
根据所您使用的系统类型,创建 WPAR 会需要几分钟时间。请注意,新的 WPAR 不是默认启动的,您必须手动启动。
要创建版本 WPAR,必须安装 AIX 5.2 来创建系统镜像。这意味着您可以使用现有的 AIX 5.2 安装作为新 WPAR 的基础。然后,将镜像和相关的安装文件与 WPAR 系统合并。该新 WPAR 系统应该有一个可识别的网络名称。基本的顺序如下:
# mksysb -i /mksysb_images/install52
,其中 install52 是镜像名称。# mkwpar -n NEWWPAR -C -B /mksysb_images/install52
。余下的安装部分与创建新 WPAR 类似,除了使用 AIX 5.2 系统镜像作为基础,安装 AIX 5.2 系统包作为 WPAR 外层。
要检查已安装和已创建的 WPAR 的状态,使用 lswpar
命令(参见 清单 2 )。
l488pp008_pub[/] > lswparName State Type Hostname Directory RootVG WPAR ---------------------------------------------------------- dev01 D S dev01 /wpars/dev01 no dev02 D S dev02 /wpars/dev02 no prod01 D S prod01 /wpars/prod01 no |
本例中,仍然是处于所谓的已定义状态(defined state)。我们将需要使用 startwpar
命令来激活(参见 清单 3 )。
l488pp008_pub[/] > startwpar dev01 Starting workload partition dev01. Mounting all workload partition file systems. Loading workload partition. Exporting workload partition devices. Exporting workload partition kernel extensions. Starting workload partition subsystem cor_dev01. 0513-059 The cor_dev01 Subsystem has been started. Subsystem PID is 10944524. Verifying workload partition startup. |
您可以通过使用 -v
命令行选项获得更详细的启动信息(参见 清单 4 )。
l488pp008_pub[/] > startwpar -v dev02 Starting workload partition dev02. Mounting all workload partition file systems. Mounting /wpars/dev02 Mounting /wpars/dev02/home Mounting /wpars/dev02/opt Mounting /wpars/dev02/proc Mounting /wpars/dev02/tmp Mounting /wpars/dev02/usr Mounting /wpars/dev02/var Loading workload partition. Exporting workload partition devices. Exporting workload partition kernel extensions. Starting workload partition subsystem cor_dev02. 0513-059 The cor_dev02 Subsystem has been started. Subsystem PID is 4325380. Verifying workload partition startup. Return Status = SUCCESS. |
要登录到 WPAR,使用 clogin 登录到 WPAR 控制台(参见 清单 5 )。
l488pp008_pub[/] > clogin dev02 ******************************************************************************* * * * * * Welcome to AIX Version 7.1! * * * * * * Please see the README file in /usr/lpp/bos for information pertinent to * * this release of the AIX Operating System. * * * * * ******************************************************************************* |
我们运行一些标准的 AIX 命令(参见 清单 6 )。
# hostname dev02 # w 10:27AM up 4 mins, 1 user, load average:0.02, 0.04, 0.02 User tty login@ idle JCPU PCPU what root Global 10:26AM 0 0 0 - # whoami root # ps -ef UID PID PPID C STIME TTY TIME CMD root 3342404 10092676 0 10:23:40 - 0:00 /usr/sbin/qdaemon root 4063250 10092676 0 10:23:43 - 0:00 /usr/sbin/rsct/bin/IBM.ERrmd root 1 0 0 10:23:23 - 0:00 /etc/init root 4915238 1 0 10:23:27 - 0:00 /usr/lib/errdemon root 5505276 10092676 0 10:23:37 - 0:00 /usr/sbin/syslogd root 6881446 10092676 0 10:23:40 - 0:00 /usr/sbin/sshd root 7864346 10092676 0 10:23:39 - 0:00 /usr/sbin/clcomd -d root 8323154 10092676 0 10:23:39 - 0:00 /usr/sbin/rpc.lockd -d 0 root 8388772 10092676 0 10:23:38 - 0:00 /usr/sbin/portmap root 8847552 10092676 0 10:23:38 - 0:00 /usr/sbin/inetd root 9437406 10092676 0 10:23:38 - 0:00 sendmail: accepting connections root 9699392 10092676 0 10:23:40 - 0:00 /usr/sbin/writesrv root 10092676 1 0 10:23:32 - 0:00 /usr/sbin/srcmstr root 10551520 10092676 0 10:23:43 - 0:00 /usr/sbin/rsct/bin/IBM.AuditRMd root 10682446 11468936 0 10:26:48 ?0:00 -ksh root 10879004 10092676 0 10:23:38 - 0:00 /usr/sbin/biod 6 root 11272336 1 0 10:23:39 - 0:00 /usr/sbin/cron root 11403500 10682446 4 10:27:21 ?0:00 ps -ef root 11468936 1 0 10:26:48 ?0:00 clogin dev02 root 12779662 10092676 0 10:23:40 - 0:00 /usr/sbin/rsct/bin/rmcd -a IBM.LPCommands -r |
系统管理员能使用 SRC 或命令行从 WPAR 启动或停止进程,就像从全局环境中一样。作为全局 (LPAR) 系统管理员,您会注意到 LPAR 除了列出主机文件系统之外,还会单独列出 WPAR 文件系统。如果有多个 WPAR,那么每个 WPAR 都会有几组文件系统。WPAR 有多个文件系统。WPAR 环境是在 /wpars 之下创建,每个 WPAR 都有一个目录;例如,WPAR dev02 的文件系统被加载到 /wpars/dev02 目录下(参见下列 清单 7 )。
l488pp008_pub[/] > df -k Filesystem 1024-blocks Free %Used Iused %Iused Mounted on /dev/hd4 262144 69728 74% 10121 37% / /dev/hd2 2621440 204132 93% 45222 48% /usr /dev/hd9var 393216 59720 85% 9389 39% /var /dev/hd3 524288 515228 2% 115 1% /tmp /dev/hd1 131072 130684 1% 9 1% /home /dev/hd11admin 131072 130708 1% 5 1% /admin /proc - - - - - /proc /dev/hd10opt 393216 139972 65% 8022 21% /opt /dev/livedump 262144 261776 1% 4 1% /var/adm/ras/livedump 192.168.1.11:/stage/middleware 157286400 90154220 43% 71844 1% /stage/middleware 192.168.1.11:/userdata/20009539 10485760 10402864 1% 24 1% /home/u0009539 /dev/fslv04 131072 99120 25% 2285 10% /wpars/dev01 /dev/fslv05 131072 128660 2% 5 1% /wpars/dev01/home /opt 393216 139972 65% 8022 21% /wpars/dev01/opt /proc - - - - - /wpars/dev01/proc /dev/fslv06 131072 128424 3% 10 1% /wpars/dev01/tmp /usr 2621440 204132 93% 45222 48% /wpars/dev01/usr /dev/fslv07 131072 110148 16% 349 2% /wpars/dev01/var /dev/fslv08 131072 99112 25% 2287 10% /wpars/dev02 /dev/fslv09 131072 128660 2% 5 1% /wpars/dev02/home /opt 393216 139972 65% 8022 21% /wpars/dev02/opt /proc - - - - - /wpars/dev02/proc /dev/fslv10 131072 128424 3% 10 1% /wpars/dev02/tmp /usr 2621440 204132 93% 45222 48% /wpars/dev02/usr /dev/fslv11 131072 110148 16% 349 2% /wpars/dev02/var |
清单 8 显示了 WPAR 的视图。
# hostname dev02 # df -k Filesystem 1024-blocks Free %Used Iused %Iused Mounted on Global 131072 99112 25% 2287 10% / Global 131072 128660 2% 5 1% /home Global 393216 139972 65% 8022 21% /opt Global - - - - - /proc Global 131072 128424 3% 10 1% /tmp Global 2621440 204132 93% 45222 48% /usr Global 131072 110148 16% 349 2% /var |
让我们把注意力放回到全局环境中。通过 SMIT 创建文件系统。WPAR 不能创建文件系统或存储卷组,您应该从全局环境 (LPAR) 中创建。必须保证指定了文件系统(包括 WPAR 路径)的完整路径(参见 图 1 )。
图 2 显示文件系统已成功创建。
成功创建后,我们将对文件系统作一些小的修改:需要对加载组显式定义,让它能匹配新 WPAR 组(参见 图 3 )。请注意,如果使用命令行来创建文件系统,这一步不是必需的。
现在,让我们回到 WPAR,我们将在这里创建加载点,并加载新创建的文件系统(参见 清单 9 )。
# mkdir src # pwd / # mount src /src # df -k # df -kFilesystem 1024-blocks Free %Used Iused %Iused Mounted on Global 131072 99080 25% 2286 10% / Global 131072 128660 2% 5 1% /home Global 393216 139972 65% 8022 21% /opt Global - - - - - /proc Global 131072 128424 3% 10 1% /tmp Global 2621440 204132 93% 45222 48% /usr Global 131072 110140 16% 350 2% /var /src 131072 99080 25% 2286 10% /src # |
请注意,您不能从 WPAR,只能从全局环境增加 f/s 的大小。请注意,您不能在 WPAR 内部支持 NFS 文件系统,但可以在 WPAR 内部加载 NFS 共享。
请注意,WPAR 中没有物理设备。当备份 WPAR 环境的时候,需要从全局环境中使用 savewpar
命令来实现备份(参见 清单 10 )。
l488pp008_pub[/] > savewpar -f /admin/dev02.snapshot dev02 Creating information file (/image.data) for dev02. Creating list of files to back up. Backing up 2865 files 2865 of 2865 files (100%) 0512-038 savewpar:Backup Completed Successfully. |
备份 WPAR 通常比完整备份要简单得多,因为只要保存数量有限的文件。我们可以使用 restwpar
命令来恢复。
您可以在 WPAR 中,使用命令行或从 SMIT 来维护唯一的用户和组。在 WPAR 中配置的用户是唯一的,并且与主机 LPAR 是完全分离的。您应该知道此环境的根用户无法访问全局环境,只能访问 WPAR。
在使用 AIX 6.1 TL6 或 AIX 7.1 的 WPAR 中,您还可以在使用 Role Based Access Control (RBAC) 时访问域支持。
让我们将注意放回到全局环境中。在下列 清单 11 中可以清楚看到,用户不是在全球环境中,而只是在特定的 WPAR 中创建的。
lpar5ml162f_pub[/wpars/devpayrollWPAR01/wpars] > lsuser test 3004-687 User "test" does not exist.lpar5ml162f_pub[/wpars/devpayrollWPAR01/wpars] > |
需要注意的是,有一个名为 WPAR 管理器的图形工具,它是基于 Java® 的,可以对 WPAR 进行集中管理。
对于此工具进行详细介绍已超出本文范围,但应该稍微看一看,因为使用它可以增强管理整理环境的能力。它将会帮助您利用创新成果,如 Workload Partition Manager 和 WPAR Mobility。Workload Partition Manager 可以进行资源优化,让您在整个托管系统中更高效地分配工作负载。WPAR Mobility 可以从一个正在运行的分区从一个框架转移到另一个,这增加了计划中断时的工作负载可用性。
应用程序 WPAR 是定义为允许应用程序和/或进程在其中运行的 WPAR,与包装器一样。WPAR 是一个完整独立的环境,像系统 WPAR 一样,但它只用于执行的应用程序存活期间。应用程序 WPAR 是临时的,而非永久的对象,在应用程序和/或进程结束时也将结束。可以使用 wparexec
命令来创建,如 清单 12 所示。
清单 12. 使用 wparexec
命令创建应用程序 WPAR
l488pp008_pub[/] > wparexec -n temp1 /usr/bin/ls Starting workload partition temp1. Mounting all workload partition file systems. Loading workload partition. .Xauthority .topasrecrc bosinst.data hello.f mnt smit.script usr .config .vi_history dev home nb.cpp smit.transaction var .mozilla .vnc esa image.data opt stage wpars .profile a.out etc iost.cpp pconsole tftpboot .rhosts admin export lib proc tmp .sh_history audit hello lost+found sbin u .ssh bin hello.c lpp smit.log unix Shutting down all workload partition processes. l488pp008_pub[/] > |
当然,它是用来运行比简单目录清单复杂得多的完整应用程序,但您可以看到如何快速轻松使用临时 WPAR。
本文介绍了 WPAR 并讨论了其使用环境。我们介绍了很多要使用 WPAR 的场景。我们还讨论了 WPAR,包括 AIX 5.2 WPAR 的安装、配置和管理,以及与全局 (LPAR) 环境的关系。我们添加了用户,创建了文件系统并备份了 WPAR。我们还介绍了一些工具,例如 WPAR 管理器,它可以用来帮助管理 WPAR 环境。我们介绍了各种类型的可用 WPAR,以及应用程序 WPAR 与系统 WPAR 相比的限制。我们还介绍了一些不建议使用 WPAR 的场景。底线是 WPAR 是 AIX 6.1 和 AIX 7.1 重要的创新,如果合理使用,能增加有效管理系统的能力,并降低业务的成本。
本文转载于developerWorks,原文在这里