Kernel Zone Evacuation Example

This section annotates the evacuation of two kernel zones.

Example 6-6 Complete Process for Evacuating Kernel Zones

List the zones with verbose output to determine status

root@global:~# zoneadm list -v
ID NAME             STATUS      PATH                       BRAND       IP
 0 global           running     /                          solaris     shared
17 kzone2           running     -                          solaris-kz  excl
18 kzone1           running     -                          solaris-kz  excl
19 my-ngz           running     /system/zones/my-ngz       solaris     excl

Set the evacuation/target SMF property for zones restarter service
to specify migrated zones' destination and refresh the zones restarter service

root@global:~# svccfg -s system/zones/zone
svc:/system/zones/zone> setprop evacuation/target=ssh://global2
svc:/system/zones/zone> exit 
root@global:~# svcprop -p "evacuation/target" svc:/system/zones/zone  
ssh://global2
root@global:~# svcadm refresh svc:/system/zones

Put the system in maintenance mode with a message

root@global:~# sysadm maintain -s -m "Updating to new release"
root@global:~# sysadm maintain -l 
TYPE   USER     DATE               MESSAGE
admin  root     2016-03-16 17:57   Updating to new release

Evacuate the zones with verbose output

root@global :~# sysadm evacuate -v 
sysadm : preparing 3 zone(s) for evacuation ... 
sysadm : initializing migration of kzone1 to global2 ... 
sysadm : initializing migration of kzone2 to global2 ... 
sysadm : evacuating 2 zone(s) ... 
sysadm : migrating kzone1 to global2 ... 
sysadm : migrating kzone2 to global2 ... 
sysadm : evacuation failed . 
sysadm : kzone1: evacuated to ssh://global2 
sysadm : kzone2: evacuated to ssh://global2 
sysadm : my-ngz: evacuation skipped: cannot evacuate solaris-brand zones

List evacuated zones

root@global :~# sysadm evacuate -l 
ZONENAME STATE      DEST           ERROR 
kzone1   EVACUATED  ssh://global2   - 
kzone2   EVACUATED  ssh://global2   - 
my-ngz   SKIPPED    -              cannot evacuate solaris-brand zones 

root@global :~# zoneadm -z  my-ngz shutdown

Perform maintenance such as updating the system

root@global :~# pkg update ... 
root@global :~# reboot ...

End maintenance mode

root@global :~# sysadm maintain -e

Return evacuated zones

root@global:~# sysadm evacuate -rv 
sysadm:   preparing 2 zone(s) for return...
sysadm:   initializing return of kzone1
sysadm:   initializing return of kzone2
sysadm:   returning 2 zone(s) ...
sysadm:   migrating kzone2
sysadm:   migrating kzone1
sysadm:   return completed successfully.
sysadm:   kzone1: returned
sysadm:   kzone2: returned

Check evacuation status

root@global:~# sysadm evacuate -l 
sysadm:   no active evacuation

Check zone status

root@global:~# zoneadm list -cv
  ID NAME             STATUS      PATH                 BRAND      IP    
   0 global           running     /                    solaris    shared
   3 kzone2           running     -                    solaris-kz excl  
   4 kzone1           running     -                    solaris-kz excl