- 论坛徽章:
- 0
|
Solaris 可以通过 Solaris Containers/zone,支持在一个Solaris中创建N多独立的Solaris运行环境,即zone,虚拟化OS,可整合N多服务器于1个Solaris中,但如何避免像 LPAR一样,因为一个OS实例shutdown或死掉了,自己带的CPU也不能给其他的OS实例使用,而可继续给剩下的OS实例用?在下试了一下在Solaris中设置公平共享调度(Fair Share Scheduing - FSS)于zone中:
1.激活Solaris Resource Manager的资源组功能:
#pooladm -e
2.创建CPU组cpu-set,0到2个CPU:
poolcfg -dc 'create pset cpu-pset ( uint pset.min=0; uint pset.max=2)'
3.创建资源组rpool
# poolcfg -dc 'create pool rpool'
4.关联CPU组与资源组:
# poolcfg -dc 'associate pool rpool (pset cpu-pset)'
5.送一个真实的CPU到CPU组中,资源组及算建立:
# poolcfg -dc 'transfer to pset sun-pset (cpu 0)'
6.在Solaris中创建虚拟的OS实例shop:
# zonecfg -z shop //建立OS实例shop
zonecfg:shop>; create
zonecfg:shop>; set zonepath=/diskarray/shop //给实例分配文件系统
zonecfg:shop>; set autoboot=true //在OS启动时自动启动
zonecfg:shop>; set pool=sun-pool //给实例分配资源组
zonecfg:shop>; add net
zonecfg:shop:net>; set physical=ce0
zonecfg:shop:net>; set address=10.1.1.17/24 //给实例分配IP
zonecfg:shop:net>; end
zonecfg:shop>; add rctl //分配FSS
zonecfg:shop:rctl>; set name=zone.cpu-shares //动态分50%资源
zonecfg:shop:rctl>; add value (priv=privileged,limit=50,action=none)
zonecfg:shop:rctl>; end
zonecfg:shop>; commit
zonecfg:shop>; export
zonecfg:shop>; exit
# zoneadm -z shop install
# zoneadm -z shop ready
# zoneadm -z shop boot
# zlogin -C shop
...
shop console login:
7.多建几个实例加载负载,可见各个zone中CPU公平共享CPU资源,如一些宕了,
剩下的动态共享全部CPU:
# mpstat 1
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
0 165 3 303 401 299 901 8 18 24 0 2246 5 5 0 89
0 8 0 202 406 305 34 0 0 0 0 61 0 0 0 100
0 225 1 202 404 302 72 19 4 1 0 388 96 3 0 1
0 775 0 238 409 308 105 32 9 0 0 1235 90 10 0 0 |
|