wpar的具体功能和介绍,这里我就不详细些了,相信会看这个博客的人都基本上有点概念了。
下面只是个人的一点见解。
wpar的大概念可以看做windows里的沙盒系统,概念上类似于VMware的虚拟机。如果有VMware的经验理解wpar会快一点。
wpar作为一个AIX的内置功能,非常少有人在实际生产,运行环境中使用。因为使用的少,相对的技术资料也不是很充足,网上很多帖子上的介绍都比较笼统,基本上都是一些比较基础的知识点。笔者因为工作需要,开始研究wpar的实施和实际生产中的作用。结合我项目中碰到的问题和一些实施的细节,打算写点有实际使用意义的东西出来。
以下开始正片。
提示:如果想了解wpar,请至少看完wpar的创建需求。
1. Wpar的创建需求
如果在网上搜索一下会发现许多千奇百怪的wpar创建命令,其中最简单就是“mkwpar -n wparname”但是这样创建的wpar完全没有实际
使用的意义。因为这种采用了默认参数创建的wpar会使用系统中root vg的磁盘资源,而wpar的资源管理也是wpar在实际使用中最让人头疼的问题。一个创建时资源分配不合理的wpar会对后期运维带来很大的麻烦。
实际生产中,我们要创建的wpar是一个“需要安装数据库,应用中间件的系统”,所以我们需要的wpar最好是和正常AIX系统“一样”,有独立的文件系统,有rootvg,有独立网卡等等,这些其实wpar都能做到,后面我会一一详述。
2. Wpar的准备2.1. 操作系统版本
Wpar本省的操作系统版本和主操作系统版本对应,所以请准备好正确的主操作系统版本。AIX6上的wpar版本比较成熟,AIX7上又有很多新特性,选择版本请按实际需要选择。
具体特性就不展开了,需要的自己查红皮书=。=毕竟太多了。
2.2. 外置磁盘
理论上用单独的内置磁盘创建wpar应该也是可以的,但是我没有成功过。所以放弃我放弃选择内置盘,统一在设计系统方案的时候选择外置磁盘。
2.3. 独立网卡
这个不是必选项,看具体实施环境的需要和设计。wpar支持虚拟网络,可以在主网卡通过做“桥接”来连到外网。如何单独分配网口,后面会详述。
2.4. 设计wpar资源
Wpar的CPU、内存可以通过百分比的方式来来共享主系统的资源,这个需要前期设计。
这个是第二个部分,后面还有维护管理和备份管理。
希望对大家有帮助,有问题和意见请及时PM我或者留言。
1. Wpar实施流程
1.1. 安装主系统
主系统的安装和正常安装操作系统一致。按照正常的安装即可。我在项目中使用的是AIX 6108 。只是项目应用程序需要6.1系统而已,实际安装系统版本请按照自己的项目决定。
1.2. 创建wpar
我们创建的wpar需要独立的文件系统和rootvg。这里我们通过-l和-D 参数来实现。
例子
mkwpar -h p550a01 -n p550a01 -l -D devname=hdisk2 devtype=disk rootvg=yes -O
-h 指定hostname
-n 指定wpar 名
-l 指定独立的文件系统
-D 指定外置盘和独立的rootvg
输入lswpar 可以看到创建的wpar rootvg 属性为yes。
[bhp710b01][root][/home/mxin/mon]#lswpar
Name State Type Hostname Directory RootVG WPAR
-----------------------------------------------------------------------
bhcdtestwpar A S bhp710b02 /wpars/bhcdtestwpar yes
1.3. 配置网络1.3.1. 增加一个网络IP
例子
chwpar -N interface=en1 address=162.168.10.11 netmask=255.25 5.255.0 p550a01
注意这里没有网关,网关配在了主系统上。
1.3.
2. 删除一个网络IP
例子
chwpar -K -N address=x.x.x.x wparname
1.3.3. 增加独立网卡
如果需要一个独立网卡,首先需要激活该网口,再在interface这里指定独立网口,如果没有激活网口,chwpar时无法创建wpar的网卡。
1.3.3.1. 通过 smit chinet将网口修改成Up状态。
Change / Show a Standard Ethernet
Interface
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Field s]
Network Interface Name en6
INTERNET ADDRESS (dotted decimal) []
Network MASK (hexadecimal or dotted decimal) []
Current STATE up
+
Use Address Resolution Protocol (ARP)? yes
+
BROADCAST ADDRESS (dotted decimal) []
Interface Specific Network Options
('NULL' will unset the option)
rfc1323 []
tcp_mssdflt []
tcp_nodelay []
tcp_recvspace []
tcp_sendspace []
Apply change to DATABASE only no
1.3.3.
2. 在该网口上增加IP
例子
chwpar -N interface=en3 address=162.168.10.71 netmask=255.25 5.255.0 p550a01
查看wpar的网络属性,增加IP成功。
[p550a01][root][/usr/local/bin]#netstat -in
Name Mtu Network Address Ipkts Ierrs Opk ts Oerrs Coll
en1 1500 link#2 0.d.60.51.9.4a 84
6 0 605 0 0
en1 1500 162.168.10 162.168.10.11 84
6 0 605 0 0
lo0 16896 link#1 2002 0 2 006 0 0
lo0 16896 127 127.0.0.1 2002 0 2 006 0 0
lo0 16896 ::1%1 2002 0 2 006 0 0
[p550a01][root][/usr/local/bin]#netstat -in
Name Mtu Network Address Ipkts Ierrs Opk ts Oerrs Coll
en1 1500 link#2 0.d.60.51.9.4
a 8 0 5 0 0
en1 1500 162.168.10 162.168.10.1
1 8 0 5 0 0
en3 1500 link#3 0.2.55.af.29.b
6 0 0 0 0 0
en3 1500 162.168.10 162.168.10.7
1 0 0 0 0 0
lo0 16896 link#1 2002 0 2 006 0 0
lo0 16896 127 127.0.0.1 2002 0 2 006 0 0
lo0 16896 ::1%1 2002 0 2 006 0 0
[p550a01][root][/usr/local/bin]#
1.4. 分配资源
资源可以按权重或者百分比的方式分配给wpar,需要自己计算一下,按百分比算比较简单。
chwpar -R active=yes CPU=10%-20%,40% memory=10%-20%,40% p550 a01
active指定启动wpar时启动资源配置
CPU,内存百分比配置。
[p550a][root][/]#lswpar -R p550a01
============================================================= ====
p550a01 - Active
============================================================= ====
Active: yes
Resource Set:
CPU Shares: unlimited
CPU Limits: 0%-100%,100%
Memory Shares: unlimited
Memory Limits: 0%-100%,100%
Per-Process Virtual Memory Limit: unlimited
Total Virtual Memory Limit: unlimited
Total Processes: unlimited
Total Threads: unlimited
Total PTYs: unlimited
Total Large Pages: unlimited
Max Message Queue IDs: 100%
Max Semaphore IDs: 100%
Max Shared Memory IDs: 100%
Max Pinned Memory: 100%
[p550a][root][/]#chwpar -R active=yes CPU=10%-20%,40% memory= 10%-20%,40% p550a01
[p550a][root][/]#lswpar -R p550a0
1
============================================================= ====
p550a01 - Active
============================================================= ====
Active: yes
Resource Set:
CPU Shares: unlimited
CPU Limits: 10%-20%,40%
Memory Shares: unlimited
Memory Limits: 10%-20%,40%
Per-Process Virtual Memory Limit: unlimited
Total Virtual Memory Limit: unlimited
Total Processes: unlimited
Total Threads: unlimited
Total PTYs: unlimited
Total Large Pages: unlimited
Max Message Queue IDs: 100%
Max Semaphore IDs: 100%
Max Shared Memory IDs: 100%
Max Pinned Memory: 100%
1.5. 启动wpar
启动命令
startwpar wparname
1.6. 登录wpar
在主系统上clogin wparname,如果配置好了IP,也可以通过telnet 登录。
1.7. Wpar系统配置1.7.1. 修改环境变量
Wpar继承了主系统的部分物理系统参数和配置,但是没有继承/etc/profi le和/etc/environment,还有/etc/security/limits等配置文件。
也可以说基本上就是个新的/etc文件系统。
特别是/etc/environment,因为wpar会继承主系统安装的软件,但是不会继承PATH和用户,需要重新配置一下环境变量。不要傻呼呼的发现主系统装过的软件在wpar里找不到命令,就再装一次。
1.7.
2. 从新设定文件系统大小
chfs -a size=2G /
……
……
不详述是个管理员都知道。
1.7.3. 创建soft_ins文件系统
这里我特意提一下创建文件系统的配置,如果没有rootvg属性的wpar 是不能用smit命令在wpar里创建文件系统的,需要在主系统创建文件系统在mount给wpar。这也是挡住很多管理员的一个地方,因为wpar 的磁盘管理会非常不方便。但是按照我的步骤,创建了rootvg的wpar可以和正常操作系统一样,在wpar内就能通过s mit lv和smit fs创建文件系统。非常方便。
smitty lv 建立soft_inslv (jfs2)
smitty fs 建立/soft_ins
mount /soft_ins
确认:
df -k|grep soft_ins
1.7.4. 创建用户和组
Wpar有独立的用户管理,创建的用户和主系统无关。
1.7.5. 软件安装
Wpar继承了主系统的软件配置,如果主系统安装好的软件wpar都能使用。也能通过smit installp安装新的软件。
这个是最后一个部分,我打算把写的东西再里一下出个文档。希望对大家有帮助,有问题和意见请及时PM我或者留言。
1. Wpar的维护1.1. Wpar加盘
加盘是所有系统都有的需求,一般的做法是把做法是在主系统做LV再建文件系统mo unt给wpar。但这样的操作方法会对后期管理造成问题,因为这样处理的空间后期管理会非常混乱,如果不是熟悉的管理员会对系统的卷管理造成干扰。
我们这里推荐的方法是直接增加外置存储,再把外置盘挂给wpar。
1.1.1. 给主系统挂外置盘
不多介绍都会的。
1.1.
2. 将外置盘挂给wpar
例子中我们的wpar创建在了hdisk2上,hdisk3是外置磁盘。
[p550a][root][/]#lspv
hdisk0 00c8354dd772ed74 rootvg activ e
hdisk1 00c8354d0065d7c7 Non
e
hdisk3 00ccecfb3b661848 Non
e
[p550a][root][/]#lswpar
Name State Type Hostname Directory RootVG WPAR
------------------------------------------------------------
p550a01 A S p550a01 /wpars/p550a01 yes
我们现在将外置磁盘挂给了指定的wpar,再次查看主系统发现已经看不到hdisk3。
[p550a][root][/]#chwpar -D devname=hdisk3 devtype=disk p550a01
[p550a][root][/]#lspv
hdisk0 00c8354dd772ed74 rootvg activ e
hdisk1 00c8354d0065d7c7 None
1.1.3. 登录wpar扫盘
在wpar中输入cfgmgr,扫到新加的磁盘。
[p550a01][root][/]#lspv
hdisk0 00ccecfb31c8a830 rootvg activ e
[p550a01][root][/]#lspv
hdisk0 00ccecfb31c8a830 rootvg activ e
[p550a01][root][/]#cfgmgr
[p550a01][root][/]#lspv
hdisk0 00ccecfb31c8a830 rootvg activ
e
hdisk1 00ccecfb3b661848 None
1.1.4. 建立vg
在wpar中和正常AIX系统一样通过smit vg创建系统vg。
-。-图片不太好传,反正smit的命令大家很熟的。
[p550a01][root][/]#lspv
hdisk0 00ccecfb31c8a830 rootvg activ
e
hdisk1 00ccecfb3b661848 datavg activ
e
[p550a01][root][/]#lsvg datavg
VOLUME GROUP: datavg VG IDENTIFIER: 00ccecfb00004c0000 0001484f15165a
VG STATE: active PP SIZE: 128 megabyte(s) VG PERMISSION: read/write TOTAL PPs: 799 (102272 megaby tes)
MAX LVs: 256 FREE PPs: 779 (99712 megabyt es)
LVs: 1 USED PPs: 20 (2560 megabyte s)
OPEN LVs: 0 QUORUM: 2 (Enabled) TOTAL PVs: 1 VG DESCRIPTORS: 2
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 1 AUTO ON: yes
MAX PPs per VG: 32512
MAX PPs per PV: 1016 MAX PVs: 32
LTG size (Dynamic): 256 kilobyte(s) AUTO SYNC: no
HOT SPARE: no BB POLICY: relocatable
PV RESTRICTION: none INFINITE RETRY: no
[p550a01][root][/]#
1.1.5. 建立LV和文件系统
在wpar中和正常AIX一样通过smit lv创建LV。
在wpar中和正常AIX一样通过smit fs创建文件系统。
[p550a01][root][/]#df -g
Filesystem GB blocks Free %Used Iused %Iused Mounted on
Global 0.12 0.09 32% 3065 14% /
/dev/hd4 0.12 0.09 32% 3065 14% /
/dev/hd2 9.00 2.98 67% 100684 13% /usr
/dev/hd10opt 2.00 1.30 36% 13793 5% /opt
/dev/hd11admin 0.12 0.12 2% 5 1% /admin
/dev/hd1 0.12 0.12 2% 13 1% /home
/dev/hd3 0.12 0.11 10% 58 1% /tmp
/dev/hd9var 0.12 0.04 67% 3045 23% /var
/dev/lv00 0.12 0.12 4% 18 1% /var/adm/csd
/dev/testlv 0.62 0.62 1% 4 1% /test
Global 0.12 0.12 2% 95 1% /etc/objrepos/wboot Global - - - - - /proc
[p550a01][root][/]#mount /db2data
[p550a01][root][/]#df -g
Filesystem GB blocks Free %Used Iused %Iused Mounted on
Global 0.12 0.09 32% 3065 14% /
/dev/hd4 0.12 0.09 32% 3065 14% /
/dev/hd2 9.00 2.98 67% 100684 13% /usr
/dev/hd10opt 2.00 1.30 36% 13793 5% /opt
/dev/hd11admin 0.12 0.12 2% 5 1% /admin
/dev/hd1 0.12 0.12 2% 13 1% /home
/dev/hd3 0.12 0.11 10% 58 1% /tmp
/dev/hd9var 0.12 0.04 67% 3045 23% /var
/dev/lv00 0.12 0.12 4% 18 1% /var/adm/csd
/dev/testlv 0.62 0.62 1% 4 1% /test
Global 0.12 0.12 2% 95 1% /etc/objrepos/wboot Global - - - - - /proc
/dev/db2data_lv 2.50 2.50 1% 4 1% /db2data
1.2. Wpar的备份
Wpar可以在通过savewpar命令来创建备份。
savewpar -f /soft_ins/p550a01_bak p550a01
1.3. Wpar的恢复
Wpar通过restwpar命令来恢复系统。
restwpar -n myclonewpar -h myclonewpar -r -M "-N address=192.168.21.131" -d /wp ars/myclonewpar -U -f /tmp/wpar.bak
虽然我找到了克隆wpar的方法,但是一直没有测试成功,就不放出来误导人了。大概意思就是要导出wpar备份中的inst.image,然后通过修改这个文件配置,再创建wpar的时候让系统在指定位置恢复wpar。顺便吐槽下我找的红皮书,关键的 "vi inst.image"步骤改修改啥,居然跳过了。
不过我的测试中,克隆时一直无法正确读取我修改的inst.image。系统始终要在我原想创建wpar的位置恢复wpar。
2. 总结
wpar最大的优势是方便和便宜(免费的),但wpar比起VIO来说最大的问题是后期管理。特别是你会在主系统上看到wpar的文件系统,非常的“乱”。
虽然IBM 有推出自己的wpar manage但是不是很直观,一般系统管理员也不喜欢在系统上装额外的管理软件。
而且一般方法创建的的wpar如果没有建立rootvg的话,只能通过主系统来管理wpar 的文件系统,非常的麻烦和不直观。
总之wpar作为一个AIX虚拟化非主流的选择,起存在有一定的价值,毕竟比起VIO来说不需要额外的配置,改造一个系统也很方便,基本不需要修改硬件环境和额外的花费就能让你拥有“多个AIX环境”