ABSTRACT
In this entry I will demonstrate how to migrate a Solaris Zone running
on T5220 server to a new T5220 server using ZFS as file system for
this Zone.
Introduction to Solaris Zones
Solaris Zones provide a new isolation primitive for the Solaris OS,
which is secure, flexible, scalable and lightweight. Virtualized OS
services look like different Solaris instances. Together with the
existing Solaris Resource management framework, Solaris Zones forms the
basis of Solaris Containers.
Introduction to ZFS
ZFS is a new kind of file system that provides simple administration,
transactional semantics, end-to-end data integrity, and immense
scalability.
Architecture layout :

Prerequisites :
The Global Zone on the target system must be running the same Solaris release as the original host.
To ensure that the zone will run properly, the target system must have
the same versions of the following required operating system packages
and patches as those installed on the original host.
Packages that deliver files under an inherit-pkg-dir resource
Packages where SUNW_PKG_ALLZONES=true
Other packages and patches, such as those for third-party products, can be different.
Note for Solaris 10 10/08: If the new host has later versions of the
zone-dependent packages and their associated patches, using zoneadm
attach with the -u option 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, and their associated patches, can vary from zone to zone.
This option also enables automatic migration between machine classes,
such as from sun4u to sun4v.
Create the ZFS pool for the zone
# zpool create zones c2t5d2
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
zones 298G 94K 298G 0% ONLINE -
Create a ZFS file system for the zone
# zfs create zones/zone1
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zones 130K 293G 18K /zones
zones/zone1 18K 293G 18K /zones/zone1
Change the file system permission
# chmod 700 /zones/zone1
Configure the zone
# zonecfg -z zone1
zone1: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:zone1> create -b
zonecfg:zone1> set autoboot=true
zonecfg:zone1> set zonepath=/zones/zone1
zonecfg:zone1> add net
zonecfg:zone1:net> set address=192.168.1.1
zonecfg:zone1:net> set physical=e1000g0
zonecfg:zone1:net> end
zonecfg:zone1> verify
zonecfg:zone1> commit
zonecfg:zone1> exit
Install the new Zone
# zoneadm -z zone1 install
Boot the new zone
# zoneadm -z zone1 boot
Login to the zone
# zlogin -C zone1
Answer all the setup questions
How to Validate a Zone Migration Before the Migration Is Performed
Generate the manifest on a source host named zone1 and pipe the output
to a remote command that will immediately validate the target host:
# zoneadm -z zone1 detach -n | ssh targethost zoneadm -z zone1 attach -n -
Start the migration process
Halt the zone to be moved, zone1 in this procedure.
# zoneadm -z zone1 halt
Create snapshot for this zone in order to save its original state
# zfs snapshot zones/zone1@snap
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zones 4.13G 289G 19K /zones
zones/zone1 4.13G 289G 4.13G /zones/zone1
zones/zone1@snap 0 - 4.13G -
Detach the zone.
# zoneadm -z zone1 detach
Export the ZFS pool,use the zpool export command
# zpool export zones
On the target machine
Connect the storage to the machine and then import the ZFS pool on the target machine
# zpool import zones
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
zones 298G 4.13G 294G 1% ONLINE -
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zones 4.13G 289G 19K /zones
zones/zone1 4.13G 289G 4.13G /zones/zone1<
zones/zone1@snap 2.94M - 4.13G -
On the new host, configure the zone.
# zonecfg -z zone1
You will see the following system message:
zone1: No such zone configured
Use 'create' to begin configuring a new zone.
To create the zone zone1 on the new host, use the zonecfg command with the -a option and the zonepath on the new host.
zonecfg:zone1> create -a /zones/zone1
Commit the configuration and exit.
zonecfg:zone1> commit
zonecfg:zone1> exit
Attach the zone with a validation check.
# zoneadm -z zone1 attach
The system administrator is notified of required actions to be taken if either or both of the following conditions are present:
Required packages and patches are not present on the new machine.
The software levels are different between machines.
Note for Solaris 10 10/08: Attach the zone with a validation check and
update the zone to match a host running later versions of the dependent
packages or having a different machine class upon attach.
# zoneadm -z zone1 attach -u
Solaris 10 5/09 and later: Also use the -b option to back out specified patches, either official or IDR, during the attach.
# zoneadm -z zone1 attach -u -b IDR246802-01 -b 123456-08
Note that you can use the -b option independently of the -u option.
Boot the zone
# zoneadm -z zone1 boot
Login to the new zone
# zlogin -C zone1
[Connected to zone 'zone1' console]
Hostname: zone1
All the process took approximately five minutes
For more information about Solaris ZFS and Zones









. 





