|Skip Navigation Links|
|Exit Print View|
|Oracle Solaris 11.1 Administration: Oracle Solaris Zones, Oracle Solaris 10 Zones, and Resource Management Oracle Solaris 11.1 Information Library|
The zonecfg and zoneadm commands can be used to migrate an existing non-global zone from one system to another. The zone is halted and detached from its current host. The zonepath is moved to the target host, where it is attached.
The following requirements apply to zone migration:
You must remove all inactive BEs on the source system before migration.
The global zone on the target system must be running an Oracle Solaris 11 release that is equal to or higher than the original source host.
To ensure that the zone will run properly, the target system must have the same or later versions of the required operating system packages as those installed on the original source host.
Other packages, such as those for third-party products, can be different.
If the new host has later versions of the zone-dependent packages, using zoneadm attach with the -u or -U options updates those packages within the zone to match the new host. The update on attach software looks at the zone that is being migrated and determines which packages must be updated to match the new host. Only those packages are updated. The rest of the packages can vary from zone to zone. Any packages installed inside the zone but not installed in the global zone are ignored and left as-is.
If a storage object contains any preexisting partitions, zpools, or UFS file systems, the attach fails and an error message is displayed. To continue the attach operation and overwrite any preexisting data, use the -x option to zoneadm attach.
-x force-zpool-import -x force-zpool-create=zpoolname -x force-zpool-create=zpoolname1,zpoolname2,zpoolname3 -x force-zpool-create-all
This option is similar to the zpool create -f command.
The -x force-zpool-create=zpoolname option can be used one or more times.
The zoneadm detach process creates the information necessary to attach the zone on a different system. The zoneadm attach process verifies that the target machine has the correct configuration to host the zone.
Because there are several ways to make the zonepath available on the new host, the actual movement of the zonepath from one system to another is a manual process that is performed by the global administrator.
When attached to the new system, the zone is in the installed state.
You must be the global administrator or a user with appropriate authorizations in the global zone to perform this procedure.
This example describes how to create an archive of a zone and then attach that archive to another system. It assumes that the administrators on the source and target hosts are able to access a shared NFS server for temporary file storage. In the event that shared temporary space is not available, other means, such as scp secure copy, a remote file copy program, can be used to copy the files between the source and target machines. The scp program requests passwords or passphrases if they are needed for authentication.
host1# zoneadm -z my-zone shutdown
host1# zoneadm -z my-zone detach
The detached zone is now in the configured state. The zone will not automatically boot when the global zone next boots.
host1# mkdir /net/server/zonearchives/my-zone host1# zonecfg -z my-zone export > /net/server/zonearchives/my-zone/my-zone.zonecfg
host1# zfs list -H -o name /zones/my-zone rpool/zones/my-zone host1# zfs snapshot -r rpool/zones/my-zone@v2v host1# zfs send -rc rpool/zones/my-zone@v2v | gzip > /net/server/zonearchives/my-zone/my-zone.zfs.gz
Use of compression is optional, but it is generally faster because less I/O is performed while writing and subsequently reading the archive. For more information, see Oracle Solaris 11.1 Administration: ZFS File Systems.
host2# zonecfg -z my-zone -f /net/server/zonearchives/my-zone/my-zone.zonecfg
You will see the following system message:
my-zone: No such zone configured Use 'create' to begin configuring a new zone.
host2# zonecfg:my-zone> info zonename: my-zone zonepath: /zones/my-zone autoboot: false pool: net: address: 192.168.0.90 physical: bge0
For example, the network physical device is different on the new host, or devices that are part of the configuration might have different names on the new host.
host2# zonecfg -z my-zone zonecfg:my-zone> select net physical=bge0 zonecfg:my-zone:net> set physical=e1000g0 zonecfg:my-zone:net> end
zonecfg:my-zone> commit zonecfg:my-zone> exit
host2# zoneadm -z my-zone install -p -a /net/server/zonearchives/my-zone/my-zone.zfs.gz
In this release, you can also attach the zone, performing the minimum updates required to allow the attach to succeed. If updates are allowed, catalogs from publishers are refreshed during a zoneadm attach.
host2# zoneadm -z my-zone attach -u -a /net/server/zonearchives/my-zone/my-zone.zfs.gz
host2# zoneadm -z my-zone install -U -p -a /net/server/zonearchives/my-zone/my-zone.zfs.gz
In this release, you can also attach the zone, updating all packages in the zone to the latest version that is compatible with the global zone.
host2# zoneadm -z my-zone install -U -a /net/server/zonearchives/my-zone/my-zone.zfs.gz
host2# zoneadm -z my-zone attach -a /net/server/zonearchives/my-zone/my-zone.zfs.gz
Note - The -a and -d options to the attach subcommand might be removed in a future release of Oracle Solaris. Use of the install subcommand is recommended.
If a storage object contains any preexisting partitions, zpools, or UFS file systems, the install fails and an error message is displayed. To continue the installation and overwrite any preexisting data, use the -x option to zoneadm install.