AIX WPAR tips and tricks
Here’s some handy tips and tricks for managing WPARs in your AIX environment.
- How to share a global file system with a WPAR.
- In the Global.
root@750lpar11]/ # uname -W
0
- Global File System that you want to share with the WPAR (750wpar2).
[root@750lpar11]/ # df -g /cg
Filesystem GB blocks Free %Used Iused %Iused Mounted on
/dev/cglv 1.98 0.30 85% 64 1% /cg
[root@750lpar11]/ # lswpar
Name State Type Hostname Directory RootVG WPAR
--------------------------------------------------------------
750wpar1 A S 750wpar1 /wpars/750wpar1 yes
750wpar2 A S 750wpar2 /wpars/750wpar2 yes
- Create "namefs" file system from the Global. /cg file system will be mounted under /stuff in the WPAR.
[root@750lpar11]/ # crfs -v namefs -A yes -d /cg -m /wpars/750wpar2/stuff -u 750wpar2
[root@750lpar11]/ # lsfs /wpars/750wpar2/stuff
Name Nodename Mount Pt VFS Size Options Auto Accounting
/cg -- /wpars/750wpar2/stuff namefs -- -- no no
root@750lpar11]/ # grep -p /wpars/750wpar2/stuff /etc/filesystems
/wpars/750wpar2/stuff:
dev = /cg
vfs = namefs
mount = true
type = 750wpar2
account = false
- Mount the file system, in the Global.
[root@750lpar11]/ # mount /wpars/750wpar2/stuff
root@750lpar11]/ # mount | grep stuff
/cg /wpars/750wpar2/stuff namefs Jun 23 10:27 rw
- In the WPAR.
[root@750wpar2]/stuff # uname -W
8
[root@750wpar2]/stuff # df -g /stuff
Filesystem GB blocks Free %Used Iused %Iused Mounted on
Global 1.98 0.30 85% 64 1% /stuff
- Don't remove the ipv6 address from the global LPAR or else you may not be able to start your WPARs.
[root@gibopvc1]/ # chdev -l lo0 -a netaddr6=''
lo0 changed
[root@gibopvc1]/ # stopwpar -Fv p8wpar1
Stopping workload partition 'p8wpar1'.
Stopping workload partition subsystem 'cor_p8wpar1'.
0513-044 The cor_p8wpar1 Subsystem was requested to stop.
Shutting down all workload partition processes.
WPAR='p8wpar1' CID=1
sysV mq ID=2097153 key=0x4107001c uid=0 gid=9
sysV sem ID=5242893 key=0x62023457 uid=0 gid=0
Unmounting all workload partition file systems.
Umounting '/wpars/p8wpar1/etc/objrepos/wboot'.
Umounting '/wpars/p8wpar1/opt'.
Umounting '/wpars/p8wpar1/usr'.
Umounting '/wpars/p8wpar1'.
Return Status = SUCCESS.
[root@gibopvc1]/ #
[root@gibopvc1]/ # startwpar -v p8wpar1
Starting workload partition 'p8wpar1'.
Mounting all workload partition file systems.
Mounting '/wpars/p8wpar1'.
Mounting '/wpars/p8wpar1/etc/objrepos/wboot'.
Mounting '/wpars/p8wpar1/opt'.
Mounting '/wpars/p8wpar1/usr'.
Loading workload partition.
startwpar: 0960-231 ATTENTION: '/usr/lib/wpars/loadwpar' failed with return code 13.
startwpar: 0960-244 Error loading workload partition.
Unmounting all workload partition file systems.
Umounting '/wpars/p8wpar1/usr'.
Umounting '/wpars/p8wpar1/opt'.
Umounting '/wpars/p8wpar1/etc/objrepos/wboot'.
Umounting '/wpars/p8wpar1'.
Return Status = FAILURE.
[root@gibopvc1]/ #
[root@gibopvc1]/ # chdev -l lo0 -a netaddr6='::1'
lo0 changed
[root@gibopvc1]/ #
[root@gibopvc1]/ #
[root@gibopvc1]/ # startwpar -v p8wpar1
Starting workload partition 'p8wpar1'.
Mounting all workload partition file systems.
Mounting '/wpars/p8wpar1'.
Mounting '/wpars/p8wpar1/etc/objrepos/wboot'.
Mounting '/wpars/p8wpar1/opt'.
Mounting '/wpars/p8wpar1/usr'.
Loading workload partition.
en1 net default: gateway 10.1.1.10
Exporting workload partition devices.
Exporting workload partition kernel extensions.
Starting workload partition subsystem 'cor_p8wpar1'.
0513-059 The cor_p8wpar1 Subsystem has been started. Subsystem PID is 9896106.
Verifying workload partition startup.
Return Status = SUCCESS.
[root@gibopvc1]/ #
- Follow this procedure if you are unable to clogin to a WPAR because root logins are not allowed.
[root@750lpar11]/ GLOBAL # uname -W
0
[root@750lpar11]/ GLOBAL # clogin 750wpar1
Remote logins are not allowed for this account.
[root@750lpar11]/ GLOBAL # chroot /wpars/750wpar1 /usr/bin/ksh
750lpar11 : / # chuser rlogin=true root
750lpar11 : / # exit
[root@750lpar11]/ GLOBAL # clogin 750wpar1
750wpar1 : / # oslevel -s
5300-12-09-1341
750wpar1 : / # uname -W
4
- How back up your WPAR to a NIM master.
Backing up WPAR to NIM master over NFS mounted file system.
--------------------------------------------------------------------------------------
[root@750lpar11]/ GLOBAL # mount nimmast:/export/images/wpars /mnt
[root@750lpar11]/ GLOBAL # savewpar -if /mnt/750wpar1-savewpar-image
Creating information file (/image.data) for 750wpar1-savewpar-image.
Creating list of files to back up
Backing up 92766 files......................
92766 of 92766 files backed up (100%)
0512-038 savewpar: Backup Completed Successfully.
############################################################################
Backing up WPAR with NIM.
--------------------------------------
On the NIM master, check the Global LPAR is already configured as a NIM client.
# nim -o showlog 750lpar11
BEGIN:Thu Jan 30 17:25:47 2014:013017254714
Command line is:
/usr/sbin/installp -acNgXY -e /var/adm/ras/nim.installp -f \
/tmp/.workdir.12583118.12255434_1/.genlib.installp.list.12255434-d \
/tmp/_nim_dir_11862198/mnt0
+-----------------------------------------------------------------------------+
Pre-installation Verification...
+-----------------------------------------------------------------------------+
...etc...
Installation Summary
--------------------
Name Level Part Event Result
-------------------------------------------------------------------------------
openssh.man.en_US 6.0.0.6100 USR APPLY SUCCESS
END:Thu Jan 30 17:25:51 2014:013017255114
# lsnim -l 750lpar11
750lpar11:
class = machines
type = standalone
connect = nimsh
platform = chrp
netboot_kernel = 64
if1 = 10_1_50 750lpar11 FAFAC00EF002
cable_type1 = N/A
Cstate = ready for a NIM operation
prev_state = not running
Mstate = currently running
cpuid = 00F603CD4C00
Cstate_result = success
Check that the WPAR hostname/IP can be resolved from the NIM master.
# host 750wpar2
750wpar2 is 10.1.50.44
# host 10.1.50.44
750wpar2 is 10.1.50.44
Define the WPAR in the NIM database. Where 750lpar11 is the Global partition NIM client name and 750wpar2 is the WPAR name.
# nim -o define -t wpar -a mgmt_profile1="750lpar11 750wpar2" -a if1="find_net 750wpar2 0" 750wpar2
Verify that the NIM master can now query the status of the WPAR.
# nim -o lswpar 750wpar2
Name State Type Hostname Directory RootVG WPAR
--------------------------------------------------------------
750wpar2 A S 750wpar2 /wpars/750wpar2 yes
# lsnim -l 750lpar11
750lpar11:
class = machines
type = standalone
connect = nimsh
platform = chrp
netboot_kernel = 64
if1 = 10_1_50 750lpar11 FAFAC00EF002
cable_type1 = N/A
Cstate = ready for a NIM operation
prev_state = not running
Mstate = currently running
cpuid = 00F603CD4C00
Cstate_result = success
manages = 750wpar2
# lsnim -l 750wpar2
750wpar2:
class = machines
type = wpar
connect = shell
platform = chrp
if1 = 10_1_50 750wpar2 0
mgmt_profile1 = 750lpar11 750wpar2
Cstate = ready for a NIM operation
prev_state = managed system defined but not yet created
Mstate = currently running
Backup the WPAR from the NIM master.
#
nim -o define -t savewpar -a server=master -a
location=/export/mksysb/cg/750wpar2-savewpar-image -a source=750wpar2 -a
mk_image=yes 750wpar2-savewpar-image
Creating list of files to back up.
.
Backing up 64560 files..........
64560 of 64560 files (100%)
0512-038 savewpar: Backup Completed Successfully.
- Moving a Rootvg Versioned Workload Partition (VWPAR) to Another Disk
"I
tested in the lab, for a versioned wpar you can use it more like a
regular LPAR - extend a disk into rootvg, mirror on it, unmirror from
the old one, reduce out and rmdev. No bosboot or bootlist needed.
There is no bootset in a versioned wpar for some reason.”
Example - 5.3 versioned wpar, rootvg with rootvg on hdisk11 from global env.
global environment:
add a new disk (hdisk10) to the vwpar:
# chwpar -D devname=hdisk10 rootvg=yes 53rvg
chwpar: 0960-721 The workload partition's rootvg must be extended with
the new disk(s). Please run extendvg inside the workload partition prior
to stopping or rebooting it.
In the versioned wpar:
# clogin 53rvg
# cfgmgr
# extendvg rootvg hdisk1
# mirrorvg rootvg hdisk1
# unmirrorvg rootvg hdisk0
# reducevg rootvg hdisk0
# rmdev -dl hdisk0
# exit (go back to global env)
Now in the global deallocate the old rootvg disk.
# chwpar -K -D devname=hdisk11 53rvg
Now you can shut down and start the wpar, it will boot from the other disk.
# stopwpar 53rvg
# startwpar 53rvg
Apparently bootset commands don't work with a versioned rootvg wpar:
# lswpar -Br 53rvg
Name Device Name Virtual Device RootVG Bootset
--------------------------------------------------------
# chwpar -B devname=hdisk10 rootvg=yes 53rvg
chwpar: 0960-808 Cannot add bootsets to versioned workload partitions.
6.Moving a Rootvg Workload Partition (WPAR) to Another Disk
Technote (FAQ)
Question
I have a rootvg WPAR that is on one disk, is there a method to move it to a new disk?
Answer
There
may be an occasion where you have created a rootvg WPAR on a specific
disk and you want to move the entire WPAR to another disk. One example
might be that the original disk is from an older storage enclosure, and
you wish to move the WPAR to newly purchased storage, connected to the
system.
You can do this by means of an alternate bootset.
Similar to how using the alt_disk_copy command in a global LPAR will
create a copy of rootvg on another disk, an alternate bootset is a copy
of a WPAR's rootvg on another disk.
The
example in this technote will use a rootvg wpar that is on a single
disk (hdisk11), and has private /opt and /usr filesystems (AKA a
"detached" WPAR). This was initially created using these options:
# mkwpar -D devname=hdisk11 rootvg=yes -l -n rootvgwpar
# startwpar rootvgwpar
1. List the bootsets for the rootvg WPAR (-Br) we are interested in:
# lswpar -Br rootvgwpar
Name Device Name Virtual Device RootVG Bootset
-------------------------------------------------------------
rootvgwpar hdisk11 hdisk0 yes 0
So we can see that hdisk11 is being used for the rootvg in the WPAR, as internal hdisk0.
2a. Now we allocate a new unused disk to the WPAR, and set a bootset on it in the same action:
# chwpar -B devname=hdisk9 rootvgwpar
Creating a bootset for WPAR rootvgwpar. Please wait...
After this is finished we can see that a new bootset has been created on hdisk9:
# lswpar -Br rootvgwpar
Name Device Name Virtual Device RootVG Bootset
-------------------------------------------------------------
rootvgwpar hdisk9 hdisk1 no 1
rootvgwpar hdisk11 hdisk0 yes 0
2b. If we log in to the WPAR we'll see a rootvg and an alternate rootvg:
# clogin rootvgwpar
# lspv
hdisk0 c7a96733e1ebfc rootvg active
hdisk1 c7a9673433f0a7 altvg.1
3. From the global environment again, we can set the bootlist for the WPAR to boot from the bootset on the new disk:
# chwpar -b bootlist=1 rootvgwpar
check that it was set properly:
# lswpar -b rootvgwpar
Name Bootlist
---------------------
rootvgwpar ف
4. Reboot the wpar on the new bootset.
# rebootwpar rootvgwpar
Stopping workload partition rootvgwpar.
Stopping workload partition subsystem cor_rootvgwpar.
0513-044 The cor_rootvgwpar Subsystem was requested to stop.
stopwpar: 0960-261 Waiting up to 600 seconds for workload partition to halt.
Shutting down all workload partition processes.
Unmounting all workload partition file systems.
Starting workload partition rootvgwpar.
Mounting all workload partition file systems.
Loading workload partition.
Exporting workload partition devices.
Exporting workload partition kernel extensions.
Starting workload partition subsystem cor_rootvgwpar.
0513-059 The cor_rootvgwpar Subsystem has been started. Subsystem PID is 8323226.
Verifying workload partition startup.
If we look at the bootsets we'll see that the 2nd disk now has rootvg officially on it:
# lswpar -Br rootvgwpar
Name Device Name Virtual Device RootVG Bootset
-------------------------------------------------------------
rootvgwpar hdisk9 hdisk0 yes 1
rootvgwpar hdisk11 hdisk1 no ـ
That bootset also believes hdisk9 is "hdisk0" for it, and the other disk
is hdisk1. Notice the bootset ID has not changed, bootset 0 is still on
(global) disk hdisk11 and bootset 1 on (global) disk hdisk9.
If we log into the WPAR we can see this:
# lspv
hdisk0 c7a9673433f0a7 rootvg active
hdisk1 c7a96733e1ebfc altvg.0
The volume group "altvg.0" is our original rootvg.
5. At this point if everything is looking good, we can remove the original bootset from the global environment:
# chwpar -K -B bootset=0 rootvgwpar
# lswpar -Br rootvgwpar
Name Device Name Virtual Device RootVG Bootset
-------------------------------------------------------------
rootvgwpar hdisk9 hdisk0 yes 1
# lswpar -D rootvgwpar | grep disk
rootvgwpar disk hdisk9 yes EXPORTED
rootvgwpar disk hdisk11 no EXPORTED
6. Now we can remove the original rootvg disk:
# chwpar -K -D devname=hdisk11 rootvgwpar
7. Remember to run cfgmgr to put the disk in an Available state again so it can be used by another WPAR or volume group:
# lsdev -xc disk -l hdisk11
hdisk11 Defined 00-01-02 MPIO IBM 2076 FC Disk
# cfgmgr
# lsdev -xc disk -l hdisk11
hdisk11 Available 00-01-02 MPIO IBM 2076 FC Disk