|Mandalika's scratchpad||[ Work blog @Oracle | My Music Compositions ]|
Live migrate (evacuate) all kernel zones from a host system onto other systems temporarily or permanently with the help of new sysadm(8) utility. In addition, it is possible to evacuate all zones including kernel zones that are not running and native solaris zones in the installed state.
If the target host (that is, the host the zone will be migrated to) meets all evacuation requirements, set it as destination host for one or more migrating kernel zones by setting the SMF service property evacuation/target.
svccfg -s svc:/system/zones/zone:<migrating-zone> setprop evacuation/target=ssh://<dest-host>
Put the source host in maintenance mode using sysadm utility to prevent non-running zones from attaching, booting, or migrating in zones from other hosts.
sysadm maintain <options>
Migrate the zones to their destination host(s) by running sysadm's evacuate subcommand.
sysadm evacuate <options>
Complete system maintenance work and end the maintenance mode on source host
sysadm maintain -e
Optionally bring back evacuated zones to the source host
Please refer to Evacuating Oracle Solaris Kernel Zones for detailed steps.
Starting with the release of Solaris 11.4, zoneadm's move subcommand can be used to change the zonepath without moving the Solaris zone installation. In addition, the same command can be used to move a zone from:
Live Zone Reconfiguration (LZR) is the ability to make changes to a running Solaris native zone configuration permanently or temporarily. In other words, LZR avoids rebooting the target zone.
Solaris 11.3 already has support for reconfiguring resources such as dedicated cpus, capped memory and automatic network (anets). Solaris 11.4 extends the LZR support to ZFS datasets.
With the release of Solaris 11.4, privileged users should be able to add or remove ZFS datasets dynamically to and from a Solaris native zone without the need to reboot the zone.eg.,
# zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / solaris shared 1 tstzone running /zonepool/tstzone solaris excl Add a ZFS filesystem to the running zone, tstzone # zfs create zonepool/testfs # zonecfg -z tstzone "info dataset" # zonecfg -z tstzone "add dataset; set name=zonepool/testfs; end; verify; commit" # zonecfg -z tstzone "info dataset" dataset: name: zonepool/testfs alias: testfs # zoneadm -z tstzone apply zone 'tstzone': Checking: Modifying anet linkname=net0 zone 'tstzone': Checking: Adding dataset name=zonepool/testfs zone 'tstzone': Applying the changes # zlogin tstzone "zfs list testfs" cannot open 'testfs': filesystem does not exist # zlogin tstzone "zpool import testfs" # zlogin tstzone "zfs list testfs" NAME USED AVAIL REFER MOUNTPOINT testfs 31K 1.63T 31K /testfs Remove a ZFS filesystem from the running zone, tstzone # zonecfg -z tstzone "remove dataset name=zonepool/testfs; verify; commit" # zonecfg -z tstzone "info dataset" # zlogin tstzone "zpool export testfs" # zoneadm -z tstzone apply zone 'tstzone': Checking: Modifying anet linkname=net0 zone 'tstzone': Checking: Removing dataset name=zonepool/testfs zone 'tstzone': Applying the changes # zlogin tstzone "zfs list testfs" cannot open 'testfs': filesystem does not exist # zfs destroy zonepool/testfs #
A summary of LZR support for resources and properties in native and kernel zones can be found in this page.