WPAR(工作负载分区)是 IBM® AIX® 610 中附带的许可程序产品。本文将向您介绍 WPAR 的相关概念及其配置。通过学习本文中的示例,您将能够在系统和应用程序 WPAR 中实现 DB2® 的安装和配置。
概述
WPAR 是一个独立的运行环境,在标准的 AIX 计算机中它拥有自己的 init 进程。对于最终用户来说,WPAR 就好像是一台独立的 AIX 计算机,因为它拥有自己的一组进程,这一点与标准的 AIX 计算机非常类似。本文将重点介绍下面几个概念,这些概念对于在 WPAR 中设置 DB2 环境是很有价值的:
◆WPAR 的类型(系统和应用程序 WPAR)
◆创建系统 WPAR
◆在 WPAR 中安装和配置 DB2
本文所提供的说明和技巧可以在安装和配置 DB2、Oracle、IDS、WebSphere® application Server 和 SAP 等各种产品时为 WPAR 用户提供帮助。
WPAR 的类型
WPAR 可以分为系统 和应用程序 WPAR 两类。
◆系统 WPAR 是标准 AIX 计算机(我将称之为“全局环境”)中拥有自己的执行环境的一个进程。它为最终用户提供了所有标准的(/、/usr、/opt、/var、/etc、/tmp 和 /home)文件系统。系统 WPAR 可以采用只读模式共享全局环境中的 /usr 或者 /opt、或者可以使用自己的 /usr 或者 /opt 文件系统。可以采用三种不同的方式来配置系统 WPAR 中的文件系统:使用共享的 /usr 和 /opt(即 namefs 类型),使用私有的 /usr 和 /opt,以及使用所谓的“远程”根文件系统(它们配置为 NFS 类型,可能是 nfsv3 和 nfsv4,并从 NFS 服务器挂载)。
◆应用程序 WPAR 同样是全局环境计算机中拥有自己的执行环境的一个进程,并且使用全局环境中的所有文件系统。应用程序 WPAR 使用启动脚本进行启动,并且在启动脚本完成其执行过程后结束。例如:
wparexec -n "application wpar name" "absolute path of the script to be
executed with arguments if any"
# wparexec -n appwpar /usr/bin/sleep 10
Starting workload partition appwpar.
Mounting all workload partition file systems.
Loading workload partition.
[ ----Script will start execution here---- ]
Shutting down all workload partition PRocesses.
该示例将启动 Appwpar,并执行给定的脚本。在这个示例中,所进行的操作是睡眠 10 秒。应用程序 WPAR 将在睡眠 10 秒之后自行终止。
如何创建系统 WPAR?
根据为系统 WPAR 分配文件系统的方式的不同,下面给出了三种不同的创建系统 WPAR 的方法:
◆使用共享 /usr 的系统 WPAR
◆使用私有 /usr 的系统 WPAR
◆使用远程或 NFS 导出文件系统的系统 WPAR
使用共享 /usr 的系统 WPAR
在这种 WPAR 中,系统 WPAR 共享全局环境的 /usr 和 /opt。可以使用下面的命令创建这种共享的系统 WPAR: mkwpar -n shared_wpar
下图显示了全局环境和共享的系统 WPAR 之间的文件系统映射。
图 1. 全局环境中的共享 WPAR
共享的 WPAR 中的文件系统
# lsfs|grep shared_wpar
/dev/fslv00 -- /wpars/shared_wpar jfs2
/dev/fslv01 -- /wpars/shared_wpar/home jfs2
/opt -- /wpars/shared_wpar/opt namefs
/proc -- /wpars/shared_wpar/proc namefs
/dev/fslv02 -- /wpars/shared_wpar/tmp jfs2
/usr -- /wpars/shared_wpar/usr namefs
/dev/fslv03 -- /wpars/shared_wpar/var jfs2
使用私有 /usr 的系统 WPAR
在这种 WPAR 中,将为系统 WPAR 单独地创建 /usr 和 /opt。全局环境为创建 /usr 和 /opt 文件系统提供了所需的逻辑卷(请参见图 2)。可以使用下面的命令创建私有的系统 WPAR: mkwpar -l -N interface=en0 address="IP" netmask=255.255.255.192
broadcast=9.2.60.255 -n "wpar name having DNS entry"
在创建 DB2 实例时,需要为系统 WPAR 指定 IP 和 DNS 名称,以便 DB2 对其进行探测。下图显示了全局环境和私有的系统 WPAR 之间的文件系统映射。
图 2. 全局环境中的私有 WPAR
私有 WPAR 中的文件系统
# lsfs|grep private_wpar
/dev/fslv04 -- /wpars/private_wpar jfs2
/dev/fslv05 -- /wpars/private_wpar/home jfs2
/dev/fslv06 -- /wpars/private_wpar/opt jfs2
/proc -- /wpars/private_wpar/proc namefs
/dev/fslv07 -- /wpars/private_wpar/tmp jfs2
/dev/fslv08 -- /wpars/private_wpar/usr jfs2
/dev/fslv09 -- /wpars/private_wpar/var jfs2
使用远程或 NFS 导出文件系统的系统 WPAR
在这种 WPAR 中,所有的文件系统都来自于 NFS 服务器,该服务器使用 mknfsexp 命令导出文件系统。下图显示了全局环境和远程的系统 WPAR 之间的文件系统映射。
图 3. 全局环境中的远程 WPAR
远程 WPAR 中的文件系统
# lsfs|grep remote_wpar
/remote_wpar janet01 /wpars/remote_wpar nfs
/remote_wpar/opt janet01 /wpars/remote_wpar/opt nfs
/proc -- /wpars/remote_wpar/proc namefs
/remote_wpar/tmp janet01 /wpars/remote_wpar/tmp nfs
/remote_wpar/usr janet01 /wpars/remote_wpar/usr nfs
/remote_wpar/var janet01 /wpars/remote_wpar/var nfs
可以使用下面的命令创建远程 WPAR:
/usr/sbin/mkwpar -A -F -s -r -n remote_wpar -f remote_wpar.cf
remote_wpar.cf 是用于创建 remote_wpar WPAR 的规范文件。
remote_wpar.cf 中包含以下条目:
#cat remote_wpar.cf
network:
interface = en0
netmask = 255.255.255.192
address = 9.2.65.91
general:
privateusr=yes
mount:
dev = /remote_wpar
directory = /
vfs = nfs
host = janet01
mount:
dev = /remote_wpar/usr
directory = /usr
vfs = nfs
host = janet01
mount:
dev = /remote_wpar/opt
directory = /opt
vfs = nfs
host = janet01
mount:
dev = /remote_wpar/var
directory = /var
vfs = nfs
host = janet01
mount:
dev = /remote_wpar/home
directory = /home
vfs = nfs
host = janet01
mount:
dev = /remote_wpar/tmp
directory = /tmp
vfs = nfs
host = janet01
这里,janet01 是提供远程系统 WPAR 所需文件系统的 NFS 服务器。
下面的示例介绍了如何在 NFS 服务器中创建并导出 /remote_wpar/* 文件系统:
文件系统的创建
crfs -v jfs2 -g ${VG} -m /remote_wpar -A yes -a size=${SZ}
crfs -v jfs2 -g ${VG} -m /remote_wpar/usr -A yes -a size=${SZ}
crfs -v jfs2 -g ${VG} -m /remote_wpar/opt -A yes -a size=${SZ}
crfs -v jfs2 -g ${VG} -m /remote_wpar/var -A yes -a size=${SZ}
crfs -v jfs2 -g ${VG} -m /remote_wpar/home -A yes -a size=${SZ}
crfs -v jfs2 -g ${VG} -m /remote_wpar/tmp -A yes -a size=${SZ}
这里的 VG 代表卷组 (Volume Group),而 SZ 则表示文件系统的大小。
这个示例介绍了如何导出文件系统:
mknfsexp -d /remote_wpar -B -a 0 -v 3 -t rw -r *.ibm.com
mknfsexp -d /remote_wpar/usr -B -a 0 -v 3 -t rw -r *.ibm.com
mknfsexp -d /remote_wpar/opt -B -a 0 -v 3 -t rw -r *.ibm.com
mknfsexp -d /remote_wpar/var -B -a 0 -v 3 -t rw -r *.ibm.com
mknfsexp -d /remote_wpar/home -B -a 0 -v 3 -t rw -r *.ibm.com
mknfsexp -d /remote_wpar/tmp -B -a 0 -v 3 -t rw -r *.ibm.com
前面的步骤是设置各类系统 WPAR 所必需的。要创建 DB2 环境,您可以使用这三种类型中的任何一种。以下给出了一些可能的配置:
◆要在缺省目录(/opt 是缺省目录)中安装 DB2,您需要一个私有系统 WPAR 或者远程系统 WPAR。
◆要在某非缺省位置安装 DB2,您可以使用前面介绍的系统 WPAR 类型中的任何一种。
在系统 WPAR 中安装和设置 DB2:
下面的内容介绍了在系统 WPAR 中安装和配置 DB2 的方法:
1.创建一个系统 WPAR(私有的或者远程的)。DB2 需要较大的 /usr、/opt 和 /home 目录。如果出现故障,您可能需要增加它们的大小。
2.启动系统 WPAR: startwpar remote_wpar
3.使用 clogin 或者 telnet 登录到 remote_wpar。
4.安装 DB2。这与您在常规的 AIX 计算机(全局环境)中所进行的安装操作非常类似。
A.复制 DB2 映像或者挂载一个包含可用 DB2 映像的目录。
mount "ImageServer":/DB2Images /mnt on your System WPAR
cd /mnt/"DB2 path"
B.运行 db2_install(这里,我们需要选择 DB2 的安装路径。如果您希望将其安装到非缺省位置,那么可以更改这个路径。)
5.列出所有的 DB2 文件集。 lslpp -l |grep db2 lists
6.创建一个 DB2 实例,以便再次确认该安装。 mkuser test
mkuser testfc
/DB2 Installation Dir/instance/db2icrt -a SERVER -s ESE -w 64 -u testfc test
7.现在,系统 WPAR 中的 DB2 已经准备就绪,可以用来运行 DB2 应用程序了。
这个部分描述了在系统 WPAR 中设置 DB2。下面的部分将介绍如何在应用程序 WPAR 中设置 DB2。
在应用程序 WPAR 中安装和设置 DB2
如前所述,应用程序 WPAR 仅使用来自全局环境的所有文件系统。
1.在全局环境中安装 DB2。在这个阶段中,不需要创建 DB2 实例。
2.使用 wparexec 命令创建应用程序 WPAR,并将 createdb2instance 脚本作为启动脚本传递给 wparexec 命令: wparexec -N interface=en0 address="IP" netmask=255.255.255.192 broadcast=9.2.60.255
-n "App WPAR name having DNS entry" /"absolutePath"/createdb2instance
createdb2instance 是用于创建 DB2 实例的脚本。我们需要以这种方式创建 DB2 实例,以便 DB2 能够从当前执行环境(正是应用程序 WPAR 环境)中获得 IP 和主机名。
#cat createdb2instance:
mkuser test
mkuser testfc
/"DB2 Installation Dir"//instance/db2icrt -a SERVER -s ese -w 64 -u testfc test
3.在执行 createdb2instance 脚本之后,我们可以得出:
◆应用程序 WPAR 已存在。
◆DB2 实例(在这个示例中为 test)已存在于全局文件系统中。
◆DB2 实例(即 test)内部包含了应用程序 WPAR 的 IP 和 DNS 名称。
4.在这个阶段中,我们在全局环境中安装了 DB2,以及具有应用程序 WPAR 引用的 DB2 实例。
5.现在,我们可以在应用程序 WPAR 及其 DB2 实例中启动我们的应用程序了。 wparexec -N interface=en0 address="IP" netmask=255.255.255.192 broadcast=9.2.60.255
-n "App WPAR having DNS entry" /"absolutePath"/somedb2application
这里的 somedb2application 是一个 DB2 应用程序,它使用在应用程序 WPAR 中创建的 DB2 实例。
结束语
本文介绍了如何创建各种类型的 WPAR,以及如何在 WPAR 中安装 DB2。本文所提供的说明和技巧可以在安装和配置 DB2、Oracle、IDS、WebSphere Application Server 和 SAP 等各种产品时为 WPAR 用户提供帮助。
以下是使用 WPAR 和 DB2 时需要注意的几个重点内容:
◆WPAR 名称应该具有 IP 以及相关联的 DNS 条目
◆具有 WPAR IP 和 DNS 名称的 /etc/hosts 条目
◆选择用于 DB2 安装的系统 WPAR 的类型