Ive written about multibos before, here and here. But recently I started experimenting with multibos mksysb migration. A customer asked me how this worked and apart from a high-level view I wasnt able to provide any real world experience, so I thought Id give it a try. What follows is just a brain dump from my quick test.
First of all this isnt really a migration. It just simply populates a second instance of AIX with a higher-version. It doesnt really migrate (or merge) your existing configuration into the second instance. So Im not sure how useful this feature really is right now.
Starting with 5.3 TL9 you can add a 6.1 TL2 (or above) instance. This is done with the new M flag. You must be running with the 64bit kernel.
This isnt really a migration because it populates the second instance using a
mksysb based on the new release.
In 6.1 TL2 a new flag (-M) was added to the mksysb command which allows you to
create a mksysb for use with multibos. It creates a backup of BOS (/, /usr,
/var, /opt).
bos.alt_disk_install.boot_images must be installed.
To preview the multibos migration
multibos M <location of mksysb> -spX
To perform the multibos migration
multibos M <location of mksysb> -sX
It is not advised to run in this environment for an extended period of time.
There could be problems if tfactor or maps are used. Be aware that 6.1 specific
attributes may not be reflected in the standby instance.
So in my lab environment I have two AIX LPARs. One is running AIX 6.1 and the other running AIX 7.1.
First I take a mksysb (with the M flag) of the AIX 7.1 system to a file. This file will be called by multibos to populate the second instance.
aix7[/] > mksysb -Mie /data/aix7-mksysb
Creating information file (/image.data) for rootvg.
Creating list of files to back up.
Backing up 71643 files.....
71643 of 71643 files (100%)
0512-038 mksysb: Backup Completed Successfully.
aix7[/] > ls -ltr /data
total 4276112
drwxr-xr-x 2 root system 256 Feb 21 20:59 lost+found
-rw-r--r-- 1 root system 2189363200 Feb 21 21:06 aix7-mksysb
I copied this file over to my AIX 6.1 system. This was the system that was to be migrated. The next step was to perform a preview of the multibos operation.
root@aix6 /# multibos -sXp -M /data/aix7-mksysb
Initializing multibos methods ...
Initializing log /etc/multibos/logs/op.alog ...
Gathering system information ...
+-----------------------------------------------------------------------------+
Preview
+-----------------------------------------------------------------------------+
Verifying operation parameters ...
Validating install images location ./aix7-mksysb
Processing preview information ...
ACTIVE LV: hd4
STANDBY LV: bos_hd4
TYPE: jfs2
ACTIVE FS: /
STANDBY FS: /bos_inst
ACTION: Setup
STATE: mounted
ACTIVE LV: hd2
STANDBY LV: bos_hd2
TYPE: jfs2
ACTIVE FS: /usr
STANDBY FS: /bos_inst/usr
ACTION: Setup
STATE: mounted
ACTIVE LV: hd9var
STANDBY LV: bos_hd9var
TYPE: jfs2
ACTIVE FS: /var
STANDBY FS: /bos_inst/var
ACTION: Setup
STATE: mounted
ACTIVE LV: hd10opt
STANDBY LV: bos_hd10opt
TYPE: jfs2
ACTIVE FS: /opt
STANDBY FS: /bos_inst/opt
ACTION: Setup
STATE: mounted
ACTIVE LV: hd5
STANDBY LV: bos_hd5
TYPE: boot
ACTIVE FS: None
STANDBY FS: None
ACTION: Setup
STATE: closed
ACTIVE LV: hd8
STANDBY LV: bos_hd8
TYPE: jfs2log
ACTIVE FS: None
STANDBY FS: None
ACTION: Setup
STATE: open
Log file is /etc/multibos/logs/op.alog
Return Status = SUCCESS
With a successful preview out of the way, I initiated the real multibos operation.
# multibos -sX -M /data/aix7-mksysb
Gathering system information ...
+-----------------------------------------------------------------------------+
Setup Operation
+-----------------------------------------------------------------------------+
Verifying operation parameters ...
Validating install images location ./aix7-mksysb
New volume on /data/aix7-mksysb:
Cluster size is 51200 bytes (100 blocks).
The volume number is 1.
The backup date is: Mon Feb 21 21:05:39 CST 2011
Files are backed up by name.
The user is root.
x 13007 ./image.data
x 168589 ./tmp/vgdata/rootvg/backup.data
The total size is 181596 bytes.
The number of restored files is 2.
+-----------------------------------------------------------------------------+
Logical Volumes
+-----------------------------------------------------------------------------+
Creating standby BOS logical volume bos_hd5
Creating standby BOS logical volume bos_hd4
Creating standby BOS logical volume bos_hd2
Creating standby BOS logical volume bos_hd9var
Creating standby BOS logical volume bos_hd10opt
Creating standby BOS logical volume bos_hd8
+-----------------------------------------------------------------------------+
File Systems
+-----------------------------------------------------------------------------+
Creating all standby BOS file systems ...
Creating standby BOS file system /bos_inst on logical volume bos_hd4
Creating standby BOS file system /bos_inst/usr on logical volume bos_hd2
Creating standby BOS file system /bos_inst/var on logical volume bos_hd9var
Creating standby BOS file system /bos_inst/opt on logical volume bos_hd10opt
+-----------------------------------------------------------------------------+
Mount Processing
+-----------------------------------------------------------------------------+
Mounting all standby BOS file systems ...
Mounting /bos_inst
Mounting /bos_inst/usr
Mounting /bos_inst/var
Mounting /bos_inst/opt
+-----------------------------------------------------------------------------+
BOS Files
+-----------------------------------------------------------------------------+
Including files for file system /
Including files for file system /usr
Including files for file system /var
Including files for file system /opt
Copying files using backup/restore utilities ...
New volume on /data/aix7-mksysb:
Cluster size is 51200 bytes (100 blocks).
The volume number is 1.
The backup date is: Mon Feb 21 21:05:39 CST 2011
Files are backed up by name.
The user is root.
x 6086 ./bosinst.data
x 11 ./tmp/vgdata/rootvg/image.info
x 13007 ./image.data
x 168589 ./tmp/vgdata/rootvg/backup.data
x 0 ./
x 47 ./.profile
x 63 ./.rhosts
x 13192 ./.sh_history
x 0 ./.ssh
x 1647 ./.ssh/authorized_keys
x 0 ./.topasrecrc
x 0 ./.topasrecrc/topasrec.lock
x 141722 ./.topasrecrc/topasrec.log1
x 0 ./.topasrecrc/topasrec.log2
x 108 ./.vi_history
x 0 ./admin
x 0 ./audit
x 8 ./bin
x 0 ./cdat
x 59 ./cdat/cdat.xml
x 0 ./cg
x 0 ./cgps
x 0 ./dev
x 0 ./dev/.SRC-unix
x 0 ./dev/IPL_rootvg
x 0 ./dev/__pv17.0.10617024
x 0 ./dev/__vg10
x 0 ./dev/audit
.....BLAH.....
x ./dev/zero
Creating standby BOS boot image on boot logical volume bos_hd5
254+0 records in.
254+0 records out.
179+1 records in.
177+1 records out.
saving to '/dev/bos_hd5'
44 CuDv objects to be saved
130 CuAt objects to be saved
21 CuDep objects to be saved
7 CuVPD objects to be saved
351 CuDvDr objects to be saved
2 CuPath objects to be saved
0 CuPathAt objects to be saved
0 CuData objects to be saved
Number of bytes of data to save = 18716
Compressing data
Compressed data size is = 6393
bi_start = 0x400
bi_size = 0x1677200
bd_size = 0x1657200
ram FS start = 0x8c3570
ram FS size = 0xd93abe
sba_start = 0x1657600
sba_size = 0x20000
sbd_size = 0x0
Checking boot image size:
new save base byte cnt = 0x18fd
Wrote 6397 bytes
Successful completion
+-----------------------------------------------------------------------------+
Mount Processing
+-----------------------------------------------------------------------------+
Unmounting all standby BOS file systems ...
Unmounting /bos_inst/opt
Unmounting /bos_inst/var
Unmounting /bos_inst/usr
Unmounting /bos_inst
+-----------------------------------------------------------------------------+
Bootlist Processing
+-----------------------------------------------------------------------------+
Verifying operation parameters ...
Setting bootlist to logical volume bos_hd5 on hdisk0.
ATTENTION: firmware recovery string for standby BLV (bos_hd5):
boot /vdevice/v-scsi@30000016/disk@8100000000000000:4
ATTENTION: firmware recovery string for standby BLV (bos_hd5):
boot /vdevice/v-scsi@30000017/disk@8100000000000000:4
ATTENTION: firmware recovery string for active BLV (hd5):
boot /vdevice/v-scsi@30000016/disk@8100000000000000:2
ATTENTION: firmware recovery string for active BLV (hd5):
boot /vdevice/v-scsi@30000017/disk@8100000000000000:2
Log file is /etc/multibos/logs/op.alog
Return Status = SUCCESS
Now that the second instance had been created, I thought Id try to start a multibos shell and access the AIX 7.1 environment. I didnt think this would work but I tried my luck anyway!
root@aix6 /# multibos -S
Initializing multibos methods ...
Initializing log /etc/multibos/logs/op.alog ...
Gathering system information ...
+-----------------------------------------------------------------------------+
Multibos Shell Operation
+-----------------------------------------------------------------------------+
Verifying operation parameters ...
+-----------------------------------------------------------------------------+
Mount Processing
+-----------------------------------------------------------------------------+
Mounting all standby BOS file systems ...
Mounting /bos_inst
Mounting /bos_inst/usr
Mounting /bos_inst/var
Mounting /bos_inst/opt
+-----------------------------------------------------------------------------+
Multibos Root Shell
+-----------------------------------------------------------------------------+
Starting multibos root shell ...
multibos: 0565-110 Cannot start multibos shell due to incompatible levels of active and standby BOS.
+-----------------------------------------------------------------------------+
Mount Processing
+-----------------------------------------------------------------------------+
Unmounting all standby BOS file systems ...
Unmounting /bos_inst/opt
Unmounting /bos_inst/var
Unmounting /bos_inst/usr
Unmounting /bos_inst
Log file is /etc/multibos/logs/op.alog
Return Status: FAILURE
Upon checking my bootlist output, I noticed (as expected) that the list now contained two extra entries for bos_hd5. These were the boot logical volume entries for the second instance. If I was to boot from this LV Id be booting into AIX 7.1. Cool.
root@aix6 /# bootlist -m normal -o
hdisk0 blv=bos_hd5
hdisk0 blv=bos_hd5
hdisk0 blv=hd5
hdisk0 blv=hd5
So at this point, Id created a second instance of AIX running 7.1. My current version of (running) AIX was AIX 6.1. All I had to do now was reboot the LPAR and let it restart as an AIX 7.1 system.
root@aix6 /# oslevel -s
6100-01-05-0920
root@aix6 / # shutdown Fr
The LPAR rebooted successfully and I found I was now running AIX 7.1, just as Id hoped.
aix6[/] > oslevel -s
7100-00-01-1037
If I wanted to go back to AIX 6.1, I would change my bootlist setting again and restart the LPAR.
aix6[/] > bootlist -m normal -o
hdisk0 blv=bos_hd5 pathid=0
hdisk0 blv=bos_hd5 pathid=1
hdisk0 blv=hd5 pathid=0
hdisk0 blv=hd5 pathid=1
aix6[/] > bootlist -m normal hdisk0 blv=hd5 pathid=0 hdisk0 blv=hd5 pathid=1 hdisk0 blv=bos_hd5 pathid=0 hdisk0 blv=bos_hd5 pathid=1
aix6[/] > bootlist -m normal -o
hdisk0 blv=hd5 pathid=0
hdisk0 blv=hd5 pathid=1
hdisk0 blv=bos_hd5 pathid=0
hdisk0 blv=bos_hd5 pathid=1
aix6[/] > shutdown Fr
root@aix6 /# oslevel -s
6100-01-05-0920
Now that Ive actually tried this method of migration, Im not sure Id actually use it in its current form.
Although the migration keeps my hostname and IP address, the file systems are not shared between instances. Most of the target systems configuration is not retained. For example, any user accounts I create on my AIX 6.1 system would also need to be created on the existing AIX.7.1 system which I used to create the AIX 7.1 mksysb image. It reminds me a little of a preservation install.
More information on multibos:
http://www.aixmind.com/?p=1192