Memory & CPU Capping Solaris Zone

Zone merupakan virtualisasi OS instance di sistem operasi solaris, dengan zone anda bisa mempunyai beberapa OS solaris instance dalam satu mesin. keunggulan zone adalah low overhead virtualization dan resource management pool. anda dapat membagi-bagi resource cpu & memory dan mendedikasikannya untuk sebuah zone. Pada tulisan ini saya akan membagikan tips bagaimana management resource pada zone dengan membagi-bagi resource memory dan cpus untuk solaris zone. berikut konfigurasi yang akan saya buat :

Note : untuk membuat raid 1 (mirror) dan raid 5 saya tidak jelaskan disini karena keterbatasan waktu dan space… LoL 😛

Mesin   : SUN T5140
Core    : 2 x 4 cores cpu
Memory  : 32Gb 
Hardisk : 
- 2 x 146Gb
- 3 x 300Gb 

Global Zone : 
-------------

Raid 1 2x146Gb. (disk 0, disk1)
Total Memory = 32Gb 
hostname = Globalzone
ip : 172.27.254.174/24
gw : 172.27.254.254

/ 	s0	remaining
swap 	64Gb 


Containers:
----------
Raid 5 600Gb. 3x300Gb (disk2, disk3, disk4)

~>hostname : dbzone
ip : 10.25.130.161/24
gw : 10.25.130.254
Memory 	   = 16Gb
Swap	   = 32Gb
Processor  = 3 cores	
/zones/dbzone
/ 400gb
	
~>hostname : appzone	
ip : 10.25.122.151/24
gw : 10.25.122.254
Memory 	   = 4Gb
Swap	   = 8Gb
Processor  = 2 cores	
/zone/appzone
/ 100gb
	
~>hostname : wbzone
ip : 10.25.112.133/24
gw : 10.25.112.254
Memory 	   = 4Gb
Swap	   = 8Gb
Processor  = 1 cores	
/zone/wbzone
/ 100Gb (remaining)

1. Buat permissionnya jadi 700 :

# chmod 700 /zones/dbzone
# chmod 700 /zones/appzone 
# chmod 700 /zones/wbzone

2. membuat zone db zone :

# zonecfg -z dbzone
bpgcimb03: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:dbzone> create
zonecfg:dbzone> set zonepath=/zones/dbzone
zonecfg:dbzone> set autoboot=true
zonecfg:dbzone> add net
zonecfg:dbzone:net> set physical=nxge1
zonecfg:dbzone:net> set address=10.25.130.161/24
zonecfg:dbzone:net> set defrouter=10.25.130.254
zonecfg:dbzone:net> end
zonecfg:dbzone> add capped-cpu
zonecfg:dbzone:capped-cpu> set ncpus=3
zonecfg:dbzone:capped-cpu> end
zonecfg:dbzone> add capped-memory
zonecfg:dbzone:capped-memory> set physical=16G
zonecfg:dbzone:capped-memory> set swap=32G
zonecfg:dbzone:capped-memory> end
zonecfg:dbzone> add attr
zonecfg:dbzone:attr> set name=comment
zonecfg:dbzone:attr> set type=string
zonecfg:dbzone:attr> set value="DB Zone"
zonecfg:dbzone:attr> end

hasilnya :

zonecfg:dbzone> info
zonename: dbzone
zonepath: /zones/dbzone
brand: native
autoboot: true
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: shared
hostid:
inherit-pkg-dir:
        dir: /lib
inherit-pkg-dir:
        dir: /platform
inherit-pkg-dir:
        dir: /sbin
inherit-pkg-dir:
        dir: /usr
net:
        address: 10.25.130.161/24
        physical: nxge1
        defrouter: 10.25.130.254
capped-cpu:
        [ncpus: 3.00]
capped-memory:
        physical: 16G
        [swap: 32G]
attr:
        name: comment
        type: string
        value: "DB Zone"
rctl:
        name: zone.cpu-cap
        value: (priv=privileged,limit=300,action=deny)
rctl:
        name: zone.max-swap
        value: (priv=privileged,limit=34359738368,action=deny)

3. Installasi Zone :

# zoneadm -z dbzone install
Preparing to install zone <dbzone>.
Creating list of files to copy from the global zone.
Copying <2995> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1177> packages on the zone.
Initializing package <211> of <1177>: percent complete: 17%

4. setelah proses diatas selesai, anda dapat mem-boot zone tersebut :

# zoneadm -z dbzone boot

5. Login ke zone dari Global zone, anda juga dapat login melalui ssh.

# zlogin -C dbzone

untuk pertama kali login, anda harus mengisikan prompt yang diminta seperti password untuk root, language, dll.

6. Melihat zone yang sudah terinstall :

# zoneadm list -cv
ID NAME       STATUS     PATH                 BRAND    IP
0 global      running    /                  native   shared
1 dbzone      running    /zones/dbzone      native   shared
2 appzone     running    /zones/appzone     native   shared
3 wbzone      running    /zones/wbzone      native   shared

Note : untuk membuat zone yang lainnya sama langkahnya seperti membuat dbzone.
More resource :
1. http://hub.opensolaris.org/bin/view/Community+Group+zones/WebHome
2. http://hub.opensolaris.org/bin/view/Project+rm/WebHome
3. http://www.oracle.com/technetwork/systems/containers/index.html
4. http://blogs.sun.com/robertlor/entry/virtualization_and_resource_management_in

Advertisements