20.12.11

Solaris 10: Containers

Containers are are terms used in Solaris for virtual machines, parang yung tutorial ko lang sa Vservers for Gentoo only difference is this one is for Sun Solaris.

1. Create ZFS file-system for zones

# zfs create rpool/export/zones
# zfs list

NAME USED AVAIL REFER MOUNTPOINT
rpool 39.1G 94.8G 96K /rpool
rpool/ROOT 5.79G 94.8G 21K legacy
rpool/ROOT/s10s_u9wos_14a 5.79G 94.8G 4.59G /
rpool/ROOT/s10s_u9wos_14a/var 1.20G 94.8G 1.20G /var
rpool/dump 16.0G 94.8G 16.0G -
rpool/export 803M 94.8G 23K /export
rpool/export/home 803M 94.8G 803M /export/home
rpool/export/zones 21K 94.8G 21K /export/zones
rpool/swap 16.5G 111G 16K -

2. To create new zone run “zonecfg –z ” command.

The output would be like this:

# zonecfg -z zone1

zone1: No such zone configured
Use 'create' to begin configuring a new zone.

zonecfg:zone1> create
zonecfg:zone1>
zonecfg:zone1> set zonepath=/export/zones/zone1
zonecfg:zone1> set autoboot=true
zonecfg:zone1> set ip-type=exclusive
zonecfg:zone1>
zonecfg:zone1> add net
zonecfg:zone1:net> set physical=nxge0
zonecfg:zone1:net> end
zonecfg:zone1>
zonecfg:zone1> add net
zonecfg:zone1:net> set physical=e1000g1
zonecfg:zone1:net> end
zonecfg:zone1>
zonecfg:zone1> add device
zonecfg:zone1:device> match=/dev/nxge0
zonecfg:zone1:device> end
zonecfg:zone1>
zonecfg:zone1> add device
zonecfg:zone1:device> match=/dev/e1000g1
zonecfg:zone1:device> end
zonecfg:zone1>
zonecfg:zone1> add capped-memory
zonecfg:zone1:capped-memory> set physical=2G
zonecfg:zone1:capped-memory> end
zonecfg:zone1>
zonecfg:zone1> add rctl
zonecfg:zone1:rctl> set name=zone.cpu-shares
zonecfg:zone1:rctl> add value (priv=privileged,limit=20,action=none)
zonecfg:zone1:rctl> end
zonecfg:zone1>
zonecfg:zone1> add rctl
zonecfg:zone1:rctl> set name=zone.max-lwps
zonecfg:zone1:rctl> add value (priv=privileged,limit=1000,action=deny)
zonecfg:zone1:rctl> end
zonecfg:zone1>
zonecfg:zone1> add rctl
zonecfg:zone1:rctl> set name=zone.max-swap
zonecfg:zone1:rctl> add value (priv=privileged,limit=1073741824,action=deny)
zonecfg:zone1:rctl> end
zonecfg:zone1>
zonecfg:zone1> info

zonename: zone1
zonepath: /export/zones/zone1
brand: native
autoboot: true
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: exclusive
hostid:
[max-lwps: 1000]
[cpu-shares: 20]
inherit-pkg-dir:
dir: /lib
inherit-pkg-dir:
dir: /platform
inherit-pkg-dir:
dir: /sbin
inherit-pkg-dir:
dir: /usr
net:
address not specified
physical: nxge0
defrouter not specified
net:
address not specified
physical: e1000g1
defrouter not specified
device
match: /dev/nxge0
device
match: /dev/e1000g1
capped-memory:
physical: 2G
[swap: 1G]
rctl:
name: zone.cpu-shares
value: (priv=privileged,limit=20,action=none)
rctl:
name: zone.max-lwps
value: (priv=privileged,limit=1000,action=deny)
rctl:
name: zone.max-swap
value: (priv=privileged,limit=1073741824,action=deny)

zonecfg:zone1> verify
zonecfg:zone1> commit

zonecfg:zone1> exit
#

3. To install zone run “zoneadm -z install” command


# zoneadm -z zone1 install

A ZFS file system has been created for this zone.
Preparing to install zone .
Creating list of files to copy from the global zone.
Copying <2985> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1174> packages on the zone.

Initializing package <0> of <1174>: percent complete: 0%        
Initializing package <1> of <1174>: percent complete: 0%        
Initializing package <2> of <1174>: percent complete: 0%        
Initializing package <3> of <1174>: percent complete: 0%        
Initializing package <4> of <1174>: percent complete: 0%        
Initializing package <5> of <1174>: percent complete: 0%        
Initializing package <6> of <1174>: percent complete: 0%        
Initializing package <7> of <1174>: percent complete: 0%        
Initializing package <8> of <1174>: percent complete: 0%        
Initializing package <9> of <1174>: percent complete: 0%        
Initializing package <10> of <1174>: percent complete: 0%        
Initializing package <11> of <1174>: percent complete: 0%        
Initializing package <12> of <1174>: percent complete: 1%        
Initializing package <13> of <1174>: percent complete: 1%        
Initializing package <14> of <1174>: percent complete: 1%        
Initializing package <15> of <1174>: percent complete: 1%        
Initializing package <16> of <1174>: percent complete: 1%        
Initializing package <17> of <1174>: percent complete: 1%        
Initializing package <18> of <1174>: percent complete: 1%        
Initializing package <19> of <1174>: percent complete: 1%        
Initializing package <20> of <1174>: percent complete: 1%        
Initializing package <21> of <1174>: percent complete: 1%        
Initializing package <22> of <1174>: percent complete: 1%        
Initializing package <23> of <1174>: percent complete: 1%        
Initializing package <24> of <1174>: percent complete: 2%        
Initializing package <25> of <1174>: percent complete: 2%        
Initializing package <26> of <1174>: percent complete: 2%        
Initializing package <27> of <1174>: percent complete: 2%        
Initializing package <28> of <1174>: percent complete: 2%        
Initializing package <29> of <1174>: percent complete: 2%        
Initializing package <30> of <1174>: percent complete: 2%        
Initializing package <31> of <1174>: percent complete: 2%        
Initializing package <32> of <1174>: percent complete: 2%        
Initializing package <33> of <1174>: percent complete: 2%        
Initializing package <34> of <1174>: percent complete: 2%        
Initializing package <35> of <1174>: percent complete: 2%        
 

.
.

Initializing package <1162> of <1174>: percent complete: 98%        
Initializing package <1163> of <1174>: percent complete: 99%        
Initializing package <1164> of <1174>: percent complete: 99%        
Initializing package <1165> of <1174>: percent complete: 99%        
Initializing package <1166> of <1174>: percent complete: 99%        
Initializing package <1167> of <1174>: percent complete: 99%        
Initializing package <1168> of <1174>: percent complete: 99%        
Initializing package <1169> of <1174>: percent complete: 99%        
Initializing package <1170> of <1174>: percent complete: 99%        
Initializing package <1171> of <1174>: percent complete: 99%        
Initializing package <1172> of <1174>: percent complete: 99%        
Initializing package <1173> of <1174>: percent complete: 99%        
Initialized <1174> packages on zone.                               
Zone is initialized.
Installation of <1> packages was skipped.
The file contains a log of the zone installation.


I removed some of the output 2% to 97% less space... :D


7.To connect zone console run “zlogin -C ” command.
 
# zlogin -C zone1
[Connected to zone 'zone1' console]
Hostname: zone1
Loading smf(5) service descriptions:   1/157 .......... 157/157
Reading ZFS config: *done.

What type of terminal are you using?
....
..


8. Fill up information required for hostaname, IP adrees etc...

9. To disconnect zone console type “~.” Keyboard combination.

# zlogin -C zone1
[Connected to zone 'zone1' console]
Zone1 console login: ~.
[Connection to zone 'zone1' console closed]
[15:55:33 root@JUICESEEP_BOX:/ ]#


10. To cleanly shutdown the zone, run “zlogin shutdown” command. 


 

0 comments: