Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1502084
  • 博文数量: 3500
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 43870
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-03 20:31
文章分类

全部博文(3500)

文章存档

2008年(3500)

我的朋友

分类:

2008-05-04 23:26:53

一起学习
假设和许多其他的公司一样,您已经使用 Solaris 已经十多年的时间了,您刚刚启动了一个从 Solaris 10 到 AIX(R) 6.1 的大型服务器整合和迁移项目。虽然许多命令都非常类似,但是您需要了解如何使用分区和虚拟化。IBM(R) 和 Sun 服务器在分区方面有哪些区别呢?并且,为了从 containers 进行成功的转换,您需要了解哪些有关工作负载分区 (WPAR) 的内容呢?WPAR 和 zones 之间的相似之处和区别之处分别是什么,以及创建 zones 和 WPAR 的过程有哪些不同?最后,您可以在 IBM System p(TM) 中进行哪些使用 Sun 服务器无法完成的操作呢?这些都是本文中所要解决的问题,其目的是使得您的转换工作更加容易。
zonecfg:testzone> export create -b set zonepath=/home/zones/myzone set autoboot=false set ip-type=shared add inherit-pkg-dir set dir=/lib end add inherit-pkg-dir set dir=/platform end add inherit-pkg-dir set dir=/sbin end add inherit-pkg-dir set dir=/usr end add net set address=192.168.0.22 set physical=e1000g0 end

对于上述的内容,您将更改一些变量的配置,设置您的安装区域路径和配置文件(请参见清单 2)。


清单 2. 更改一些变量的配置
zonecfg:testzone>

zonecfg:testzone> set zonepath=/zones/testzone

zonecfg:testzone> commit

zonecfg:testzone> export -f /testzone.cfg

现在,您已经做好进行安装的准备(请参见清单 3)。


清单 3. 安装
root[ksh]@ezqspc18# zoneadm -z testzone install

WARNING: skipping network interface 'e1000g0' which may not be present/plumbed \

    in the global zone.

Preparing to install zone .

Creating list of files to copy from the global zone.

Copying <7231> files to the zone.

Initializing zone product registry.

Determining zone package initialization order.

Preparing to initialize <1580> packages on the zone.

Initializing package <367> of <1580>: percent complete: 23%

在大约 17 分钟后,将完成此次安装(请参见清单 4)。


清单 4. 安装完成
Initialized <1580> packages on zone.

Zone  is initialized.

The file  contains a log \

    of the zone installation.

root[ksh]@ezqspc18#

接下来,您需要启动这个区域(请参见清单 5)。


清单 5. 启动区域
root[ksh]@ezqspc18# zoneadm -z testzone boot

WARNING: skipping network interface 'e1000g0' which may not be present/plumbed \

    in the global zone.

root[ksh]@ezqspc18#

此时,您可以使用zlogin从全局环境进行登录:

zlogin -C testzone

在登录之后,您将看到连接的屏幕,但除此之外没有任何其他内容:

Connected to zone 'testzone' console]

在大约五分钟之后,您将接收到下一条消息。您将不会立即得到一个登录提示,但也不要惊慌。在第一次进行这项操作时,您需要对环境进行进一步的配置,这需要输入您的终端类型、加上主机名和网络信息(请参见清单 6)。


清单 6. 进一步配置您的环境
Select a Language



  0. English



Please make a choice (0 - 0), or press h or ? for help: 0

What type of terminal are you using?

 1) ANSI Standard CRT

 2) DEC VT52

 3) DEC VT100

 4) Heathkit 19

 5) Lear Siegler ADM31

 6) PC Console

 7) Sun Command Tool

 8) Sun Workstation

 9) Televideo 910

 10) Televideo 925

 11) Wyse Model 50

 12) X Terminal Emulator (xterms)

 13) CDE Terminal Emulator (dtterm)

 14) Other

Type the number of your choice and press Return: 3

Creating new rsa public/private host key pair

Creating new dsa public/private host key pair

Configuring network interface addresses:.

? Host Name ????????????????????????????????????????????????????



  Enter the host name which identifies this system on the network.  The name

  must be unique within your domain; creating a duplicate host name will cause

  problems on the network after you install Solaris.



  A host name must have at least one character; it can contain letters,

  digits, and minus signs (-).



    Host name



System identification is completed.

rebooting system due to change(s) in /etc/default/init



[NOTICE: Zone rebooting]



System identification is completed.



rebooting system due to change(s) in /etc/default/init



[NOTICE: Zone rebooting]

SunOS Release 5.10 Version Generic_120011-14 64-bit

Copyright 1983-2007 Sun Microsystems, Inc.  All rights reserved.

Use is subject to license terms.

Hostname: testzone



testzone console login: Jan 13 15:57:10 testzone sendmail[25411]: 

My unqualified host name (localhost) unknown; sleeping for retry

此时,您应该可以验证该 zone 已经启动(请参见清单 7)。


清单 7. 验证区域已经启动
#hostname

Testzone

您可以进一步查看全局环境的 zone 划分信息(请参见清单 8)。


清单 8. 全局环境的区域划分信息
root[ksh]@ezqspc18# zoneadm list -v

  ID NAME             STATUS     PATH                           BRAND    IP

   0 global           running    /                              native   shared

   1 testzone         running    /zones/testzone                native   shared

root[ksh]@ezqspc18#

df命令(使用-Z标志)显示了文件系统输出,包括 zone (请参见清单 9)。


清单 9. 带-Z标志的df命令
root[ksh]@ezqspc18# df -kZ

Filesystem            kbytes    used   avail capacity  Mounted on

/dev/dsk/c0t0d0s0    60502476 11620301 48277151    20%    /

/devices                   0       0       0     0%    /devices

ctfs                       0       0       0     0%    /system/contract

proc                       0       0       0     0%    /proc

mnttab                     0       0       0     0%    /etc/mnttab

swap                 16904432    1376 16903056     1%    /etc/svc/volatile

objfs                      0       0       0     0%    /system/object

fd                         0       0       0     0%    /dev/fd

swap                 16903568     512 16903056     1%    /tmp

swap                 16903104      48 16903056     1%    /var/run

/platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap1.so.1

        60502476 11620301 48277151    20%    /platform/sun4u-us3/lib/libc_psr.so.1

/platform/sun4u-us3/lib/sparcv9/libc_psr/libc_psr_hwcap1.so.1

     60502476 11620301 48277151    20%    /platform/sun4u-us3/lib/sparcv9/libc_psr.so.1

/zones/testzone/dev  60502476 11620301 48277151    20%    /zones/testzone/root/dev

/lib                 60502476 11620301 48277151    20%    /zones/testzone/root/lib

/platform            60502476 11620301 48277151    20%    /zones/testzone/root/platform

/sbin                60502476 11620301 48277151    20%    /zones/testzone/root/sbin

/usr                 60502476 11620301 48277151    20%    /zones/testzone/root/usr

proc                       0       0       0     0%    /zones/testzone/root/proc

ctfs                       0       0       0     0%  /zones/testzone/root/system/contract

mnttab                     0       0       0     0%    /zones/testzone/root/etc/mnttab

objfs                      0       0       0     0%    /zones/testzone/root/system/object

swap            16903248     192 16903056     1%    /zones/testzone/root/etc/svc/volatile

/zones/testzone/root/platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap1.so.1

                     60502476 11620301 48277151    20% \

       /zones/testzone/root/platform/sun4u-us3/lib/libc_psr.so.1

/zones/testzone/root/platform/sun4u-us3/lib/sparcv9/libc_psr/libc_psr_hwcap1.so.1

                     60502476 11620301 48277151    20% \

       /zones/testzone/root/platform/sun4u-us3/lib/sparcv9/libc_psr.so.1

fd                         0       0       0     0%    /zones/testzone/root/dev/fd

swap                 16903056       0 16903056     0%    /zones/testzone/root/tmp

swap                 16903056       0 16903056     0%    /zones/testzone/root/var/run

root[ksh]@ezqspc18#

WPAR

WPAR 是在单个 AIX 映像中创建的虚拟化 OS 环境(只在 AIX 6.1 中受到支持)。每个分区都是一个安全的、并且隔离的环境,其中的每个进程在自己的映像中执行。尽管可以在没有经过分区的完全物理服务器中创建它们,但通常在 LPAR 中创建它们。承载分区的 AIX OS 部分称为全局环境。与 Solaris 类似,您可以在不由 WPAR 承载的全局环境(在具有 WPAR 的 LPAR 中)中运行应用程序。全局环境拥有 LPAR 的所有物理资源(CPU、RAM、网络和磁盘 I/O),并将 CPU 和内存资源分配给每个 WPAR。在全局环境中,您可以查看和控制在 WPAR 中运行的所有进程,包括它的文件系统。从 WPAR 之外运行的任何其他进程来看,所有的 WPAR 都是完全自包含的(具有私有的执行环境),并且还可以使用专门的网络地址。有两种类型的 WPAR:应用程序工作负载分区和系统工作负载分区。系统 WPAR 很接近于 AIX 的完整版本,并且类似于稀疏、或者满填充根 zone。每个 WPAR 都具有它自己专门的可写文件系统。在启动一个 WPAR 时,实际上将为该 WPAR 创建一个 init 进程,该进程将产生需要它的一些其他进程(inetdcron)。系统 LPAR 具有共享只读 /usr/ 和 /opt 文件系统的缺省选项;因此,从这个意义来看,它们也非常类似于稀疏和完全根 zone。

应用程序 WPAR 是虚拟化 OS 环境的真正的轻量级版本,与完整的应用程序相比,它更适合于执行进程。这种类型的分区可以共享全局环境的文件系统,但它不拥有任何专门的存储。虽然它可以运行应用程序守护进程,但它并没有运行任何守护进程,如inetd或者cron。它也不允许对这个专门的环境进行远程访问。应用程序 WPAR 只是一些临时对象;在启动进程时创建它们,在应用程序分区中的最后一个进程结束时销毁它们。它们可以共享全局环境中的所有内容,在某种意义上,可以将它们看作是一种隔离地运行进程的包装。

对于 AIX 管理员来说,WPAR 的优点是在无需创建和管理新的 AIX 分区的情况下创建新环境的灵活性。而且它们允许整合应用程序,并且横向扩展工作环境,例如,开发和测试。现在,每个应用程序都可以在一个 WPAR 中执行,而不是创建独立的 LPAR。WPAR 对于硬件没有任何依赖关系,您甚至可以在不支持 IBM PowerVM Editions(以前的 IBM 高级 POWER 虚拟化)的 POWER4 系统中使用它们。从理论上讲,一个 LPAR 中最多可以执行 8192 个 WPAR(与 Solaris 相同);然而,从实践的角度来看,其他的 AIX 限制使得无法达到这个极限。使用一种名为 Relocative Software Packages 的软件安装新方法,实际上您可以在一个 AIX 映像中安装相同应用程序的多个版本,然后在独立的 WPAR 中启动该应用程序的每个版本。

在升级或者修补 LPAR 时,需要理解它如何影响在该 LPAR 中定义的各个 WPAR。因此,在产品之外使用多种测试环境变得更加重要。而且,系统管理员现在必须管理更多的文件系统;因为 WPAR 在全局环境中创建了更多的文件系统,每个 WPAR 至少拥有四个专门的文件系统(/、/home、/tmp 和 /var)。从应用程序的观点来看(类似于 Solaris 区域),大多数应用程序都应该是即时可用的;然而,需要使用系统设备的应用程序可能会出现问题。在 WPAR 中,不支持物理设备。尽管可以使用某种方式导出设备,但要求不可导出设备的应用程序仍然受到限制,只能在全局环境中运行。WPAR 还支持一种称为动态应用程序迁移的重要的 AIX 6.1 创新。它允许将某个 LPAR 中执行的、由 WPAR 承载的应用程序临时移动到另一个 LPAR 中,而不会带来任何停机时间。

创建并管理 WPAR

在这个部分中,您将创建并配置 IBM WPAR(系统和应用程序)。您的工作环境是使用一个 CPU 的 LPAR 分区的 p570,CPU 为 1654 MHz 的 POWER5。

系统 WPAR

首先,您将运行mkwpar命令,该命令首先将创建 WPAR 并安装文件系统(请参见清单 10)。


清单 10. 运行mkwpar命令
lpar13ml16fd_pub[/] > mkwpar -n tstsystemWPAR

mkwpar: Creating file systems...

 /

 /home

 /opt

 /proc

 /tmp

 /usr

 /var

当该进程完成时,它通过安装所需的所有文件集来实现此次安装(请参见清单 11)。


清单 11. 安装所需的文件集
bos.rte.serv_aid            6.1.0.1         ROOT        COMMIT      SUCCESS

vac.C                       9.0.0.2         ROOT        COMMIT      SUCCESS

Workload partition testsystemWPAR created successfully.

mkwpar: 0960-390 To start the workload partition, execute the following as root: 

startwpar [-v] testsystemWPAR

lpar13ml16fd_pub[/] >

这个过程用时不到三分钟,包括 217 个文件集的安装。

让我们来查看一下 WPAR 的状态(请参见清单 12)。


清单 12. 检查 WPAR 的状态
lpar13ml16fd_pub[/] > lswpar

Name            State  Type  Hostname        Directory

-------------------------------------------------------------------

MyTestWpar1     A      S     MyTestWpar1     /wpars/MyTestWpar1

MyTestWpar2     A      S     MyTestWpar2     /wpars/MyTestWpar2

testsystemWPAR  D      S     testsystemWPAR  /wpars/testsystemWPAR

lpar13ml16fd_pub[/] >

您所安装的 WPAR 现在处于已定义(defined)的状态。要激活它,可以使用startwpar命令(请参见清单 13)。


清单 13. 使用startwpar命令
lpar13ml16fd_pub[/] > startwpar -v testsystemWPAR

Starting workload partition testsystemWPAR.

Mounting all workload partition file systems.

Mounting /wpars/testsystemWPAR

Mounting /wpars/testsystemWPAR/home

Mounting /wpars/testsystemWPAR/opt

Mounting /wpars/testsystemWPAR/proc

Mounting /wpars/testsystemWPAR/tmp

Mounting /wpars/testsystemWPAR/usr

Mounting /wpars/testsystemWPAR/var

Loading workload partition.

$corral_t = {

              'name' => 'testsystemWPAR',

              'wlm_cpu' => [

                             undef,

                             undef,

                             undef,

                             undef

                           ],

              'path' => '/wpars/testsystemWPAR',

              'hostname' => 'testsystemWPAR',

              'wlm_procVirtMem' => [

                                     -1,

                                     undef

                                   ],

              'wlm_mem' => [

                             undef,

                             undef,

                             undef,

                             undef

                           ],

              'key' => 4,

              'vips' => [],

              'wlm_rset' => undef,

              'opts' => 4,

              'id' => 0

            };

Exporting workload partition devices.

Starting workload partition subsystem cor_testsystemWPAR.

0513-059 The cor_testsystemWPAR Subsystem has been started. Subsystem PID is 237720.

Verifying workload partition startup.

Return Status = SUCCESS.

lpar13ml16fd_pub[/] >

您可以使用不带任何标志的标准df命令,进一步显示相关的信息(请参见清单 14)。


清单 14. 使用df命令显示输出信息
df -k

/dev/fslv13        131072    128660    2%        5     1% /wpars/testsystemWPAR/home

/opt               262144    119808   55%     3048    11% /wpars/testsystemWPAR/opt

/proc                   -         -    -         -     -  /wpars/testsystemWPAR/proc

/dev/fslv14        131072    128424    3%        9     1% /wpars/testsystemWPAR/tmp

/usr              3538944    158348   96%    91414    69% /wpars/testsystemWPAR/usr

/dev/fslv15        131072    117088   11%      370     2% /wpars/testsystemWPAR/var

需要说明的是,为了增强对 WPAR 的支持,还对某些 AIX 命令经过了优化。vmstat就是一个示例。这个输出(运行于全局环境中)将输出所有处于运行状态的 WPAR 中的数据(请参见清单 15)。


清单 15. 输出所有处于运行状态的 WPAR 的数据
lpar13ml16fd_pub[/] > vmstat -@ ALL 1 5



System configuration: lcpu=2 mem=2048MB drives=0 ent=0.25 wpar=3



wpar  kthr    memory              page              faults              cpu

----- ----- ----------- ------------------------ ------------ --------------------------

       r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa    pc    rc

System  0  0 264810 112840   0   0   0   0    0   0 849  104 250  0 32 67  0  0.10  39.4

Global  0  0     -     -     0   0   0   0    0   0   -    - 249  1 99  -  -  0.08  32.8

MyTestWpar1  0  0     -      0   0   0   0    0   0   -    -   1 54 46  -  -  0.00   0.1

MyTestWpar2  0  0     -      0   0   0   0    0   0   -    -   0  0  0  -  -  0.00   0.0

testsystemWPAR  0  0     -   0   0   0   0    0   0   -    -   0  0  0  -  -  0.00   0.0

----------------------------------------------------------------------------------------

ifconfighostnamenetstatps进行了优化,以便在全局环境和 WPAR 中运行。还有一些其他的命令无法支持 WPAR,如mpstatsar

应用程序 WPAR

您可能还记得,应用程序 WPAR 定义为允许进程或者应用程序在其中运行的 WPAR,非常类似于包装。它是临时的,应用程序结束时它将会结束。要创建它,您需要使用wparexec命令。清单 17显示了在创建和运行应用程序 WPAR 时lswpar的输出(如清单 16所示)。在这个示例中,创建 WPAR 大约需要花费六秒钟的时间,此外还需要大约一秒钟来运行该命令。


清单 16. 使用wparexec创建应用程序 WPAR
lpar13ml16fd_pub[/usr/bin] > wparexec /usr/bin/w applWPARStarting workload partition w.

Mounting all workload partition file systems.

Loading workload partition.

  01:18PM   up 2 days,   1:02,  2 users,  load average: 0.01, 0.09, 0.16

User     tty          login@       idle      JCPU      PCPU what

Shutting down all workload partition processes.

清单 17显示了lswpar命令的输出。


清单 17. lswpar 的输出
lpar13ml16fd_pub[/] > lswpar

Name            State  Type  Hostname        Directory

-------------------------------------------------------------------

MyTestWpar1     A      S     MyTestWpar1     /wpars/MyTestWpar1

MyTestWpar2     A      S     MyTestWpar2     /wpars/MyTestWpar2

testsystemWPAR  A      S     testsystemWPAR  /wpars/testsystemWPAR

tstsystemWPAR   D      S     tstsystemWPAR   /wpars/tstsystemWPARw               T      A     w               /

在该进程完成之后,很快 WPAR 将不再存在(请参见清单 18)。


清单 18. WPAR 不再存在
lpar13ml16fd_pub[/] > lswpar

Name            State  Type  Hostname        Directory

-------------------------------------------------------------------

MyTestWpar1     A      S     MyTestWpar1     /wpars/MyTestWpar1

MyTestWpar2     A      S     MyTestWpar2     /wpars/MyTestWpar2

testsystemWPAR  A      S     testsystemWPAR  /wpars/testsystemWPAR

tstsystemWPAR   D      S     tstsystemWPAR   /wpars/tstsystemWPAR

lpar13ml16fd_pub[/] >

尽管应用程序 WPAR 是非常有限的,但它们有一定存在的意义,并且可以在测试进程和小型应用程序方面为系统管理员提供了更好的灵活性。

简要比较

这个部分将介绍 Sun 区域和 IBM WPAR 之间的一些重要区别。您可以回顾一个比较 OS 虚拟化概念和命令的表格。

动态应用程序迁移

动态应用程序迁移(AIX 6.1 的一种特性),允许您移动正在运行的 WPAR,而不中断任何用户的操作,并且它是 zone 和 WPAR 之间的一个最重要的功能或者特性区别。在 Solaris 中无法进行这项操作。要在 Solaris 中执行类似的操作,您必须附接和取下一个挂起的区域,因为 Solaris 系统管理员不能在多个服务器之间转移正在运行的工作负载。这种特性还允许对多个系统进行工作负载平衡。在进行这项工作中,通过允许操作员将工作负载转移到负载较少的系统,它还可以帮助节省数据中心的成本。

易用性

对于 zone 来说,要创建它,您需要使用几个命令,并且作为启动过程的一部分,您还必须完成进一步配置迭代。对于 WPAR 来说,安装就像运行一个命令那样简单。配置也更简单。

速度

系统 WPAR 的创建在三分钟之内就完成了;然而,创建 zone 的过程花费了我近半个小时,包括执行更多的命令。

应用程序 WPAR

尽管 Solaris 提供了两种类型的 zone ,但它们都等价于 AIX 中的系统 WPAR。Solaris 不支持应用程序 WPAR(它可以在 10 秒内创建)。

隔离性

zone 只提供了内存和处理器隔离,而 WPAR 则包含进程和分页隔离。

工作负载分区管理器

工作负载分区管理器是 IBM Systems Director 的一个组成部分,并且支持动态应用程序迁移。它是一个独立的可安装程序,与 Sun 所提供的工具相比,它是一种具有更好的可管理性的工具。在其他特性中,它包括 WPAR 的交叉系统管理和基于策略的自动化应用程序迁移。

双重打击

因为分区和虚拟化相互配合,所以 IBM 显然提供了更好的分区产品(使用其基于 LPAR 的技术),现在 IBM PowerVM Editions 实现了这种方式。与 zone 和 DSD 或者 zone 和 LDom 的结合相比,LPAR 和 WPAR 的结合是一个更好的组合,并且可以更加紧密地集成在一起。值得一提的是,LDom 只能在运行 Solaris 10 的单芯片解决方案(Suns UltraSPARC T1 或者 UltraSPARC T2 处理器)中运行,无法像 System p 服务器那样具有伸缩性;无法使用多芯片 SMP。Dynamic Systems Domain 建立在硬件分区的基础之上(为 DSD 分配的浮点计算资源的粒度受到主板的限制),并且实际上不提供任何虚拟化功能。

成熟性

公平地说,因为基于容器的技术存在的时间比 WPAR 长,所以相比之下,这种产品更加成熟、而且应该更加稳定。尽管认证并不是必需的,但经过 ISV 认证的、运行于区域中的应用程序要比运行于 WPAR 中的应用程序要更多一些。还应该注意一点,尽管没有认证 Oracle RAC 能够在这两者之一的实现中运行,但 Oracle 经过认证可以在这两者中运行。

表 1提供了 Solaris 和 AIX 之间 OS 虚拟化命令和概念的比较。


表 1. WPAR 和区域的命令和概念的对比
类型(描述)Solaris(zone)AIX (WPAR)
主要的 OS 映像全局 zone全局环境
创建命令zonecfg & zoneadm(两个命令都需要)mkwpar(系统)& wparexec(应用程序)
类型稀疏根区域、完全根区域系统 WPAR、应用程序 WPAR
查看信息zoneadm list -vlswpar
登录zloginclogin
文件系统信息df -kZdf -k

总结

本文介绍了 SUN 和 IBM 平台中的分区和虚拟化。描述、创建和比较了 zone 和 WPAR 中的各个组成部分。迁移到 AIX 的 Solaris 管理员应该发现创建 WPAR 更加简单和快捷。AIX 6.1 中最新的创新(在 Solaris 和区域中并不存在),包括动态应用程序迁移,允许您将正在运行的 WPAR 迁移到另一个 LPAR,而不产生任何中断。使用工作负载分区管理器,您还应该发现对分区具有更强的可管理性。而且,进行前期研究以确定应用程序 WPAR 可以在何种情况下帮助您运行和测试应用程序,这还将有助于您充分地利用这个重要的特性。使用系统管理接口工具 (SMIT),即 IBM 前端接口,您可以运行许多 WPAR 命令。事实上,正在向 AIX 过渡的所有 Solaris 管理员都已经开始真正喜欢上这个工具了。

下载本文示例代码


从 Solaris 过渡到 AIX从 Solaris 过渡到 AIX从 Solaris 过渡到 AIX从 Solaris 过渡到 AIX从 Solaris 过渡到 AIX从 Solaris 过渡到 AIX从 Solaris 过渡到 AIX从 Solaris 过渡到 AIX从 Solaris 过渡到 AIX从 Solaris 过渡到 AIX从 Solaris 过渡到 AIX从 Solaris 过渡到 AIX
阅读(257) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~