Monday, February 16, 2009

Zone clone using a snapshot

Create a new vnic;
[root] deckard:/root # dladm create-vnic -l etherstub0 vnic3
[root] deckard:/root # dladm show-vnic
LINK OVER SPEED MACADDRESS MACADDRTYPE VID
vnic2 etherstub0 0 2:8:20:ee:ac:53 random 0
vnic3 etherstub0 0 2:8:20:94:cf:4e random 0
vnic0 etherstub0 0 2:8:20:8c:67:2e random 0
vnic1 etherstub0 0 2:8:20:f1:50:d7 random 0

Create a new zone;
[root] deckard:/root # zonecfg -z zone3 -f zone3cfg

Now create a clone of our original zone snapshot;
[root] deckard:/root # zoneadm -z zone3 clone -s tank/zones/zone1@SUNWzone1 zone1
WARNING: read-write lofs file system on '/export/home' is configured in both zones.
WARNING: read-write lofs file system on '/data/tmp' is configured in both zones.
Cloning snapshot tank/zones/zone1@SUNWzone1
sys-unconfig started Mon Feb 16 21:29:28 2009
rm: /a/etc/vfstab.sys-u: No such file or directory
grep: can't open /a/etc/dumpadm.conf
sys-unconfig completed Mon Feb 16 21:29:29 2009
[root] deckard:/root # zoneadm -z zone3 boot
[root] deckard:/root # zlogin -C zone3
...and configure

Cloning a zone

[root] deckard:/root # zonecfg -z zone1 export -f /root/zone1cfg
[root] deckard:/root # cp zone1cfg zone2cfg
[root] deckard:/root # vi zone2cfg
Edit zone2cfg file - change the zonepath and physical net.
[root] deckard:/root # zonecfg -z zone2 -f zone2cfg
[root] deckard:/root # zoneadm list -cip
0:global:running:/::native:shared
10:zone1:running:/tank/zones/zone1:7f37ddf4-7439-4892-872d-9a9c6a409376:native:shared
-:zone2:configured:/tank/zones/zone2::native:shared
[root] deckard:/root # zoneadm -z zone1 halt
[root] deckard:/root # zoneadm -z zone2 clone zone1
WARNING: read-write lofs file system on '/export/home' is configured in both zones.
WARNING: read-write lofs file system on '/data/tmp' is configured in both zones.
Cloning snapshot tank/zones/zone1@SUNWzone1
Instead of copying, a ZFS clone has been created for this zone.
sys-unconfig started Mon Feb 16 14:50:26 2009
rm: /a/etc/vfstab.sys-u: No such file or directory
grep: can't open /a/etc/dumpadm.conf
sys-unconfig completed Mon Feb 16 14:50:26 2009
[root] deckard:/root # zoneadm list -cip
0:global:running:/::native:shared
-:zone1:installed:/tank/zones/zone1:7f37ddf4-7439-4892-872d-9a9c6a409376:native:shared
-:zone2:installed:/tank/zones/zone2:12033bd6-fd7e-6014-a801-f10850b5677c:native:shared
[root] deckard:/root # zoneadm -z zone2 boot
[root] deckard:/root # zlogin -C zone2
And configure the zone

Zone creation

Just to save me looking it up next time, here's how I created a non-sparse zone.
(For a sparse zone omit the "remove inherit-pkg-dir" lines);

[root] deckard:/root # zonecfg -z zone1
zone1: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:zone1> create
zonecfg:zone1> set zonepath=/tank/zones/zone1
zonecfg:zone1> set ip-type=exclusive
zonecfg:zone1> add net
zonecfg:zone1:net> set physical=vnic1
zonecfg:zone1:net> end
zonecfg:zone1> remove inherit-pkg-dir dir=/lib
zonecfg:zone1> remove inherit-pkg-dir dir=/platform
zonecfg:zone1> remove inherit-pkg-dir dir=/sbin
zonecfg:zone1> remove inherit-pkg-dir dir=/usr
zonecfg:zone1> add fs
zonecfg:zone1:fs> set dir=/data/tmp
zonecfg:zone1:fs> set type=lofs
zonecfg:zone1:fs> set special=/data/tmp
zonecfg:zone1:fs> end
zonecfg:zone1> add fs
zonecfg:zone1:fs> set dir=/export/home
zonecfg:zone1:fs> set type=lofs
zonecfg:zone1:fs> set special=/export/home
zonecfg:zone1:fs> end
zonecfg:zone1> info
zonename: zone1
zonepath: /tank/zones/zone1
brand: native
autoboot: false
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: exclusive
fs:
dir: /export/home
special: /export/home
raw not specified
type: lofs
options: []
fs:
dir: /data/tmp
special: /data/tmp
raw not specified
type: lofs
options: []
net:
address not specified
physical: vnic1
defrouter not specified
zonecfg:zone1> commit
[root] deckard:/root # zoneadm list -cip
0:global:running:/::native:shared
-:zone1:configured:/tank/zones/zone1::native:shared
[root] deckard:/root # zfs create tank/zones/zone1
[root] deckard:/root # chmod 700 /tank/zones/zone1
[root] deckard:/root # zoneadm -z zone1 verify
[root] deckard:/root # zoneadm -z zone1 install
cannot create ZFS dataset tank/zones/zone1: dataset already exists
Preparing to install zone .
Creating list of files to copy from the global zone.
Copying <275019> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1732> packages on the zone.
Initialized <1732> packages on zone.
Zone is initialized.
Installation of these packages generated errors:
Installation of <3> packages was skipped.
Installation of these packages generated warnings:
The file
contains a log of the zone installation.
[root] deckard:/root # zoneadm -z zone1 ready
[root] deckard:/root # zoneadm -z zone1 boot
[root] deckard:/root # zlogin -C zone1