在AIX V6.1工作负载分区(WPAR)上使用WAS

AIX V6.1 工作负载分区(WPAR)简介虚拟化近年来越来越受人关注,这是因为商业公司都在试图在降低能源消耗、充分利用机架的空间和减少数据中心的管理成本。大多数的虚拟化技术都支持 WebSphere Application Server ,而且不管是硬件的虚拟化还是软件的虚拟化, WebSphere Applicat...显示全部
AIX V6.1 工作负载分区(WPAR)简介

虚拟化近年来越来越受人关注,这是因为商业公司都在试图在降低能源消耗、充分利用机架的空间和减少数据中心的管理成本。大多数的虚拟化技术都支持 WebSphere Application Server ,而且不管是硬件的虚拟化还是软件的虚拟化, WebSphere Application Server 都提供了相当出色的性能和扩展性。

在过去的十几年里,IBM 一直是业界里硬件虚拟化的领军人物,以 Z/OS 和逻辑分区(LPAR)的 POWER 架构技术为代表。这项技术因为采用了硬件层面上的管理程序,可以轻松地将服务器的硬件分割成一个一个的虚拟系统。

随着 IBM AIX V6.1 版本在 2007 年底的发布,IBM 推出了一种全新的虚拟化技术,叫做工作负载分区(Workload Partition),工作负载分区提供了种基于软件的虚拟化解决方案,用来在一个单一的基于 AIX 的逻辑分区上创建和管理多个独位的 AIX 操作系统环境,它对硬件特性没有任何的依赖。

两种类型的工作负载分区简介

有两种类型的工作负载分区,分别是应用程序工作负载分区和系统工作负载分区。在介绍这两种类型的分区前,首先需要先介绍一个重要的概念:全局环境(Global Environment)。

全局环境(Global Environment)指的是直接安装在逻辑分区(LPAR)上的标准的 AIX 实例。对工作负载分区的管理,例如:创建、启动、停止和删除操作,都是在全局环境中进行的。全局环境中拥有逻辑分区的所有的资源,如:处理器、内存、网卡、等等,并且将这些资源分配给工作负载分区。工作负载分区之间彼此是互相隔离的,但是全局环境对所有的工作负载分区都是可见的。

系统工作负载分区(System WPAR)

系统工作负载分区看起来就像一个独立的 AIX 实例。每一个系统工作负载分区都拥有自己可读写的文件系统,尽管它也可能采用只读模式来共享全局环境的 /usr 和 /opt 文件系统。系统工作负载分区拥有独立的用户和用户组。工作负载分区的 root 用户仅在其工作负载分区中有拥有 root 权限,不会作用于全局环境。

前面提到系统工作负载分区可以共享全局环境的 /usr 和 /opt 文件系统,那么这样的工作负载分区就叫做共享系统工作负载分区。如果拥有独位的可读写的 /usr 和 /opt 文件系统,那么这样的工作负载分区就叫做非共享系统工作负载分区。这里需要强调一下,WebSphere Application Server 仅支持非共享系统工作负载分区。

应用程序工作负载分区(Application WPAR)

AIX 操作系统提供了应用程序工作负载分区的概念。这种轻量级的分区用提供了对应用程序及其资源之间的隔离。应用程序工作负载分区拥有自己的网络地址,但是不能通过网络登录,这是因为在这种类型的工作负载分区中没有网络进程在运行。尽管可以在应用程序负载分区之上进行资源的分配,但是应用程序负载分区却是共享全局环境的文件系统、用户和用户组。

如何创建应用程序工作负载分区和系统分区来承载 WebSphere Application Server

工作负载分区分为系统工作负载分区和应用程序工作负载分区。用于创建两种工作负载分区的命令是不同的:

    * 对于系统工作负载分区来说,使用 mkwpar 来创建一个新的虚拟 AIX。
    * 对于应用程序工作负载分区来说,通来 wparexec 来在一个工作负载分区中运行一个应用程序。

创建应用程序工作负载分区来承载 WebSphere Application Server

创建一个应用程序工作负载分区是非常简单的,因为唯一的一个必选参数,就是需要在工作负载分区中运行的应用程序的完整路径。

清单 1. wparexec 命令
                                 
wparexec – n

工作负载分区技术使得我们可能通过应用程序负载分区来运行应用服务器,但是如果应用程序服务器的概要文件是与全局环境的主机名关联,而不是与应用程序工作负载分区的主机名关联的话,在启动或停止应用服务器的时候,就会出现问题。

为了避免出现问题,我们需要这样做:

    * 通过概要文件管理工具或 manageprofile 命令来创建一个新的应用服务器概要文件,并且将它与一个网络上可以解析的主机名进行关联;
         1. 如果您是使用概要文件管理工具,请在创建概要文件时选择高级概要文件选项,并且在主机名一栏中填入应用程序概要文件的将要用到的主机名。
         2. 如查您是使用 manageprofile 命令,请使用 hostName 参数来指定概要文件主机名。
    * 创建应用程序工作负载分区来承载 WebSphere Application Server 的应用服务器 server1,
         1. 作为 root 用户,在全局环境中使用下面的命令来创建应用程序工作负载分区;

            清单 2. 创建应用程序工作负载分区来承载应用服务器                                         
            
             wparexec -n application_WPAR_name -- /usr/IBM/WebSphere
              /AppServer/profiles/AppSrv01/bin/startServer.sh server1

            注意: 在运行 wparexec 命令之前,要确保应用程序负载分区名字应该是一个网络上可以解析的。默认的情况下,应用程序负载分区的主机名就是应用程序负载分区的名字。
         2. 因为应用程序负载分区与全局环境在同一台机器上,确保应用程序负载分区的 IP 地址子网掩码与全局环境的 IP 地址子网掩码一样。例如:如果全局环境的 IP 地址是 129.160.0.x,那么应用程序负载分区 IP 地址应该是 129.160.0.y。这里假设子网掩码是 255.255.255.0。

当使用 wparexec 命令创建应用程序负载分区之后,与访应用程序负载分区绑定的应用服务器也随着应用程序负载分区的创建而启动了。

作为 root 用户,您可以在全局环境中执行下面的命令来删除应用程序负载分区:

清单 3. 删除应用程序负载分区示例

stopwpar application_WPAR_name

创建系统工作负载分区来承载 WebSphere Application Server

前面提到 WebSphere Application Server 只能安装在非共享的系统工作负载分区,所以我们需要先创建一个拥有可读写 /usr 和 /opt 目录的非共享的系统工作负载分区。

    * 以 root 用户身份,使用下面的命令,创建一个拥有可读写的 /usr 和 /opt 目录的系统工作负载分区:

      清单 4. 创建系统工作负载分区命令

       mkwpar -r -l -n sys_wpar_name
      
      注意
         1. 使用 – r 参数时需要注意,在运行 mkwpar 命令之前,系统工作负载分区的名字应该是一个网络上可以解析的。
         2. 使用 – l 参数时,全局环境中 /usr 和 /opt 目录下的所有数据都会被复制到新创建的工作负载分区的 /usr 和 /opt 目录中。如果在全局环境中已经安装了 WebSphere Application Server 到 /usr 目录中,那么这个时候您的系统工作负载分区中就存在一个 WebSphere Application Server 复本。请不要使用这个 WebSphere Application Server 复本,因为它不是通过标准的方式安装得到的,主机名还有其它的一些相关配置都是不正确的。可以使用 uninstall 命令来将卸载掉。
    * 作为 root 用户,通过下面的命令从全局环境中启动新建的系统工作负载分区:

      清单 5. 启动系统工作负载分区命令                                 
      
       startwpar sys_wpar_name

    * 因为您可能需要比 /waprs/sys_wpar_name/usr 默认值更大的硬盘空间来成功的安装 WebSphere Application Server, 所以您可以通过下面这个命令来增大系统工作负载分区的硬盘大小:

      清单 6. 增大系统工作负载分区的硬盘                                   
      
       smitty manfs > Enhanced Journaled File Systems >
       Change / Show Characteristics of an Enhanced Journaled File System >
       /wpars/your_wpar_name/usr
      
      增大 SIZE 这个参数 unit 数值,确保您至少有几个 G 的硬盘空间。
    * 如果您使用是 AIX V 6.1 TL3,SP1 或这之后的版本 AIX 操作系统,当您在系统工作负载分区安装 WebSphere Application Server 时,可能会遇到没有足够的空闲硬盘的错误。解决这个问题,您可以在运行安装程序之前,运行 export GLOBAL_AS_PATH=TRUE 这个 AIX 环境变量。在成功安装之后,再运行 export GLOBAL_AS_PATH=FALSE。
    * 使用 ./launchpad.sh 或 ./install 命令来从系统工作负载分区中安装 WebSphere Application Server

如何对工作负载分区的资源进行配置

工作负载分区对于资源的控制是基于工作负载管理(WLM)技术的,WLM 技术在 AIX 4.3.3 版本时就引入到 AIX 的内核中。因为工作负载分区的资源配置命令封装了 WLM 的细节,因此系统管理员并不需要精通 WLM 方面的知识,就可以对工作负载分区的资源配置。

对于 WebSphere Application Server 来说,最主要需要配置的资源就是 CPU 和内存。除此之外,您还可以对工作负载分区的进程、线程以及一个进程可以使用的虚拟内存等资源进行配置。如果您想了解这方面的内容,可以参考 AIX 6.1 的信息中心来获得相关信息。

工作负载分区中没有资源控制命令,您需要在全局环境执行工作负载分区的资源配置命令。您通过 – R 参数,在创建工作负载分(mkwpar,wparexec)分配资源;或是使用 chwpar 在运行时的更改资源分配;还可以通过 lswpar 命令来查看工作负载分区的资源的分配情况。

我们有两种方式来配置 CPU 和内存的分配:

    * share-based:每个工作负载分区都根据它在所有处于激活状态的工作负载分区中所占的份额比例来获得它所占比例的资源。它的默认值是 unlimited。

      需要注意的是采用这种资源分配方式的工作负载分区所使用的资源会根据它所分配到份额以及目前系统中正在处于激活状态的工作负载分区和它们所分配的资源份额而动态的变化着。
    * percentage-based:采用这种方式需要指定以下三个值:
         1. minimum%:工作负载分区可以获得的最少的资源量。如果工作负载分区使用的资源少于这个量,那么 WLM 会增大这个工作负载分区优先级以确保它可以使用更多的资源。它的默认值是 0%。
         2. soft maximum%:在存在资源争用的情况下,工作负载分区可以使用的资源最大量。如果没有资源争用的情况,那么可以超过这个最大值。它的默认值是 100%
         3. hard maximum%:工作负载分区所能使用的资源最大值,即使没有资源争用,或是该工作负载分区是系统里唯一处于激活状态的工作负载分区,它也不能使用多于此限额的资源。它的默认值是 100%

下面这三条重要规则,需要注意:

    * 所以处于激活状态的工作负载分区的 minimum% 之和不能超过 100%;
    * minimum% 不能超过 soft maximum%;
    * soft maximum% 不能超过 hard maximum%。

下面通过举例来说明如果配置 CPU 和内存资源。

您可以随时动态的更改资源配置,并且变化时实时生效的。

前面提到工作负载分区资源配置可以在:

    * 创建工作负载时通过使用 mkwapr 或 mkwpar 的 – R 参数来指定资源配置;
    * 在工作负载分区运行时,通过 chwpar 命令的 – R 参数来指定资源配置。

所有的资源配置可以通过命令或是 smitty wpar 中“Change/Show General Characteriestics”来进行配置。

CPU 资源配置

前面提到有两种方式来控制工作负载分区的 CPU 使用:share-based 和 percentage-based。

Share-based 方式就是您可以根据工作负载分区的相对重要性来给它们分配资源的使用量,这个量值通常也叫做目标值,因为这个量值是 WLM 试图分配给该工作负载分区的量。

例如,WPAR A 的份额是 5 份,而 WPAR B 的份额是 10 份,那么

总的份数 = 5 + 10 = 15

WPAR A = 5/15 = 33%

WPAR B = 10/15 = 67%

WLM 将试图分配把 CPU 资源的 33% 分配给 WPAR A ,而把 67% 的资源分配给 WPAR B

如果一个新的 WPAR C 加入到系统中来,并且它的份额是 15 的话:

总的份数 = 5 + 10 + 15 = 30

WPAR A = 5/30 = 17%

WPAR B = 10/30 = 33%

WPAR C = 15/30 = 50%

现在由于份额为 15 的 WPAR C 被加入到全局环境中来,WPAR A 和 WPAR B 的 CUP 资源的目标值变成了 17% 和 33%。

默认情况下,每一个工作负载分区的份额是不限的(unlimited),这意味着每一个工作负载分区可以用任意多的资源。建议您根据全局中环境中各个工作负载分区的重要性来显示的分配资源。

如果您想在运行时更改工作负载分区的资源份额,可以使用 chwpar – R shares_CPU 命令来更改。

清单 7. 更改 CPU 份额

# lswpar -R MySysWpar
=================================================================
MySysWpar - Active
=================================================================
Active: yes
RSet:
CPU Shares: unlimited
CPU Limits: 0%-100%,100%
Memory Shares: unlimited
Memory Limits: 0%-100%,100%
Per-Process Virtual Memory Limit: unlimited
Total Processes: unlimited
Total Threads: unlimited
# chwpar -R shares_CPU=10 MySysWpar
# lswpar -R MySysWpar
=================================================================
MySysWpar - Active
=================================================================
Active: yes
RSet:
CPU Shares: 10
CPU Limits: 0%-100%,100%
Memory Shares: unlimited
Memory Limits: 0%-100%,100%
Per-Process Virtual Memory Limit: unlimited
Total Processes: unlimited
Total Threads: unlimited

如果需要确保工作负载分区最低资源量或是限制其最大资源占用量,那么您需要使 percentage-based 资源控制。

清单 8. 更改 CPU 资源限制

# chwpar -R CPU=6%-30%,45% MySysWpar
# lswpar -R MySysWpar
=================================================================
MySysWpar - Active
=================================================================
Active: yes
RSet:
CPU Shares: 10
CPU Limits: 6%-30%,45%
Memory Shares: unlimited
Memory Limits: 0%-100%,100%
Per-Process Virtual Memory Limit: unlimited
Total Processes: unlimited
Total Threads: unlimited

在这个例子中,如果 MySysWpar 是系统里唯一的工作负载分区,它的 CPU 目标值是 10/10 = 100%。但是因为设定了 percentage-based 的资源限制,使得 CPU 的使用量为 6%-30%,45%,工作负载分区只能够使用 45% 的 CPU 资源

内存的资分配

同 CPU 资源控制一样,内存资源的控制也可以使用 share-based 和 percentage-based 方式。它们同 CPU 资源控制有同样的含义和使用方法。

清单 9. 更改内存的份额和使用限制

# chwpar -R shares_memory=20 MySysWpar
# lswpar -R MySysWpar
=================================================================
MySysWpar - Active
=================================================================
Active: yes
RSet:
CPU Shares: 10
CPU Limits: 6%-30%,45%
Memory Shares: 20
Memory Limits: 0%-100%,100%
Per-Process Virtual Memory Limit: unlimited
Total Processes: unlimited
Total Threads: unlimited
# chwpar -R memory=5%-100%,100% MySysWpar
# lswpar -R MySysWpar
=================================================================
MySysWpar - Active
=================================================================
Active: yes
RSet:
CPU Shares: 10
CPU Limits: 6%-30%,45%
Memory Shares: 20
Memory Limits: 5%-100%,100%
Per-Process Virtual Memory Limit: unlimited
Total Processes: unlimited
Total Threads: unlimited

结束语

本文向您介绍了如何在 AIX 6.1 的两种工作负载分区中使用 WebSphere Application Server 和相关的注意事项,以及如何对各个承载着 WebSphere Application Server 的工作负载分区进行资源分配。希望能对您今后在虚拟环境中使用 WebSphere Application Server 有一些借鉴意义。收起
参与10

查看其它 8 个回答suezhiguo的回答

suezhiguosuezhiguo技术经理陕西兆通利合数码有限公司
不错,学习下!
系统集成 · 2011-11-27
浏览1530

回答者

suezhiguo
技术经理陕西兆通利合数码有限公司
擅长领域: 服务器存储PowerHA

suezhiguo 最近回答过的问题

回答状态

  • 发布时间:2011-11-27
  • 关注会员:1 人
  • 回答浏览:1530
  • X社区推广