亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3911 | 回復: 0
打印 上一主題 下一主題

用Container實現Solaris 10上的動態(tài)資源分配 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-01-20 10:38 |只看該作者 |倒序瀏覽

本文介紹了在Solaris 10中如何運用虛擬化技術來實現動態(tài)CPU資源管理。
關鍵字:Solaris 10, Container, 資源管理,resource management, CMT
Solaris 10中提供了一項強大的虛擬化技術:Container(容器),通過使用Container,我們可以在一個操作系統(tǒng)實例中虛擬出多個運行環(huán)境(Zone),每個Zone有自己的文件系統(tǒng)和網絡地址,各個Zone中運行的應用互相不影響,從而實現應用級的隔離,并提高了安全性。如下圖所示, 在一個Solaris 10 的操作系統(tǒng)中,劃分了3個Container,分別運行App Server, Web Server和Database Server。


Container的使用非常簡單,通常只需要5-10分鐘的配置即可,所以Container的虛擬化技術得到了廣泛的應用。
資源管理的作用
在缺省的情況下,各個Container都可以看見物理機器上的所有CPU 和內存,也就是說物理機上的所有CPU和內存在各個Container中是共享的。在實際運用中,往往需要對各個Container使用的資源加以指定,以便確保一些關鍵應用的資源。另外一種場景是需要動態(tài)調節(jié)各個Container中的資源,例如,在月末做報表時,希望臨時給數據庫的Zone多分配一些CPU資源,在月末壓力高峰之后,就可以恢復成原來的CPU資源。動態(tài)資源調整(Dynamic Reconfiguration)的功能在中高端服務器上(如E25K,M4000-M9000等)可由硬件實現,在其他中低端類型的服務器中,我們可以用Container 來實現。
Container
Solaris 10 的Container 包括兩層功能:Zone和Resource Management(RM)。Zone是指隔離的虛擬運行環(huán)境,RM是以前版本的Solaris就有的功能,可以結合Zone來動態(tài)分配資源。本文以T5220為例子加以說明,在實際中對所有運行Solaris10的多處理器機器都適用,包括X86機器。T5220 有一個UltraSPARC T2處理器,可以擁有8個核心(cores),每個核心有8個硬件線程,因此,T5220可以擁有64個硬件線程,在操作系統(tǒng)中可以看到有64個物理CPU,如
# psrinfo
0       on-line   since 04/08/2009 14:22:42
1       on-line   since 04/08/2009 14:22:45
2       on-line   since 04/08/2009 14:22:45
3       on-line   since 04/08/2009 14:22:45
4       on-line   since 04/08/2009 14:22:45
5       on-line   since 04/08/2009 14:22:45
6       on-line   since 04/08/2009 14:22:45
( 略去部分輸出)
61      on-line   since 04/08/2009 14:22:45
62      on-line   since 04/08/2009 14:22:45
63      on-line   since 04/08/2009 14:22:45
創(chuàng)建Zone
1.創(chuàng)建Zone:
# mkdir –p /export/home/zones/zone1
# zonecfg -z zone1
zone1: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:zone1>create
zonecfg:zone1>set zonepath=/export/home/zones/zone1
zonecfg:zone1>set autoboot=true   
zonecfg:zone1>add net
zonecfg:zone1:net>set address=192.168.0.1  
zonecfg:zone1:net>set physical=e1000g0      
zonecfg:zone1:net>end
zonecfg:zone1>verify
zonecfg:zone1>commit
zonecfg:zone1>exit
2. 查看配置的zone:
# ls -l /etc/zones/*xml  可以看到zone1.xml的配置文件
# zoneadm list –cv 可以看到剛剛配置好的zone
3.安裝zone:
# zoneadm –z zone1 install
4. 檢查zone狀態(tài)可以看到zone1 的狀態(tài)為installed:
# zoneadm list –cv
5. 啟動zone:
# zoneadm –z zone1 boot
6.首次啟動需要初始化服務和配置,可用命令登陸console監(jiān)控:
# zlogin -C  zone1
7. 系統(tǒng)會出現配置界面,如主機名,命名服務等。完成配置后,zone會重新啟動,
即可完成系統(tǒng)的啟動。
8.如果在zone1里面運行psrinfo命令,可以看到64個CPU,也就是說,
global zone和local zone里面的CPU目前是共享的,下一步我們可以
把zone里的資源進一步限定。
CPU資源分配
假定我們需要給這個zone分配8個CPU資源(即一個core),可以用以下資源管理命令: 1.先檢查資源管理服務是否啟用:
# svcs -a | grep pool
disabled       Jan_03   svc:/system/pools:default
disabled       Jan_03   svc:/system/pools/dynamic:default
如果顯示disabled,則需要啟用:
# svcadm enable pools
# svcadm enable pools/dynamic
# svcs -a | grep pool
online       Jan_03   svc:/system/pools:default
online       Jan_03   svc:/system/pools/dynamic:default
2. 啟動資源管理功能和生成基本配置文件 :
# pooladm -e
# pooladm -s
3. 創(chuàng)建資源池(pool):
# poolcfg -dc ‘create pool pool1’
4. 創(chuàng)建CPU集(pset), 包括8個CPU,其中pset.min和pset.max限定了CPU的個數:
# poolcfg -dc ‘create pset pset1 ( uint pset.min=8; uint pset.max=8 )’
5. 指定特定的CPU到CPU集中,此步驟可選,如果不指定CPU編號,則系統(tǒng)自動分配CPU。
為了使T5220的分區(qū)具有較好的性能,我們把同一個core中的CPU分配到同一個CPU集中:
# poolcfg -dc ‘transfer to pset pset1 ( cpu 0; cpu 1; cpu 2; \
cpu 3; cpu 4; cpu 5; cpu 6; cpu 7)’
6.把資源池pool1和CPU集pset1作關聯(lián):
# poolcfg -dc ‘associate pool pool1 ( pset pset1 )’
7.保存配置到文件(save):
# pooladm -s
8.查看當前CPU資源的配置,可以看到pool1已經關聯(lián)上pset1,
pset1中有8個CPU(id:0-7),而缺省的pset_default中只有56個CPU 了:
# pooladm
system default
        string  system.comment
        int     system.version 1
        boolean system.bind-default true
        string  system.poold.objectives wt-load
        pool pool_default
                int     pool.sys_id 0
                boolean pool.active true
                boolean pool.default true
                int     pool.importance 1
                string  pool.comment
                pset    pset_default
        pool pool1
                int     pool.sys_id 2
                boolean pool.active true
                boolean pool.default false
                int     pool.importance 1
                string  pool.comment
                pset    pset1
        pset pset1
                int     pset.sys_id 1
                boolean pset.default false
                uint    pset.min 8
                uint    pset.max 8
                string  pset.units population
                uint    pset.load 0
                uint    pset.size 8
                string  pset.comment
                cpu
                        int     cpu.sys_id 5
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 4
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 7
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 6
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 1
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 0
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 3
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 2
                        string  cpu.comment
                        string  cpu.status on-line
        pset pset_default
                int     pset.sys_id -1
                boolean pset.default true
                uint    pset.min 1
                uint    pset.max 65536
                string  pset.units population
                uint    pset.load 807
                uint    pset.size 56
                string  pset.comment
                cpu
                        int     cpu.sys_id 13
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 12
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 15
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 14
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 9
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 8
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 11
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 10
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 21
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 20
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 23
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 22
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 17
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 16
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 19
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 18
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 29
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 28
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 31
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 30
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 25
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 24
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 27
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 26
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 53
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 52
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 55
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 54
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 49
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 48
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 51
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 50
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 61
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 60
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 63
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 62
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 57
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 56
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 59
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 58
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 37
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 36
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 39
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 38
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 33
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 32
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 35
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 34
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 45
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 44
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 47
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 46
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 41
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 40
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 43
                        string  cpu.comment
                        string  cpu.status on-line
                cpu
                        int     cpu.sys_id 42
                        string  cpu.comment
                        string  cpu.status on-line
配置Zone的CPU資源
此時,如果在Zone1中運行psrinfo命令,會發(fā)現只有56個CPU了(8-63),原因是zone1缺省情況下使用了pool_default這個資源池。我們用zonecfg命令,把pool1分配給zone1: # zonecfg -z zone1
zonecfg:zone1>set pool=pool1
zonecfg:zone1>commit
zonecfg:zone1>exit
# zoneadm –z zone1 reboot
在Zone1重新啟動后,我們在這個zone里可以看到只有8個CPU了:
Zone1# psrinfo
0       on-line   since 04/08/2009 14:22:42
1       on-line   since 04/08/2009 14:22:45
2       on-line   since 04/08/2009 14:22:45
3       on-line   since 04/08/2009 14:22:45
4       on-line   since 04/08/2009 14:22:45
5       on-line   since 04/08/2009 14:22:45
6       on-line   since 04/08/2009 14:22:45
7       on-line   since 04/08/2009 14:22:45
動態(tài)分配CPU資源
如果需要改變zone1的CPU資源的分配配置,例如需要增加CPU到16個,可以通過重新配置pset1來實現,注意,這個操作可以在不停止zone 的情況下進行: 1)先取消原來pset1的配置:
# poolcfg –dc ‘destroy pset pset1’
2)此時zone1中的CPU數恢復到64個,我們再用命令創(chuàng)建一個包含16個CPU的pset1,
命令和前述的過程差不多:
# poolcfg -dc 'create pool pool1'
# poolcfg -dc 'create pset pset1 ( uint pset.min=16; uint pset.max=16 )'
# poolcfg -dc 'transfer to pset pset1 ( cpu 0; cpu 1; cpu 2; cpu 3;\
cpu 4; cpu 5; cpu 6; cpu 7)'
# poolcfg -dc 'transfer to pset pset1 ( cpu 8; cpu 9; cpu 10; cpu 11; \
cpu 12; cpu 13; cpu 14; cpu 15)'
# poolcfg -dc 'associate pool pool1 ( pset pset1 )'
# pooladm –s
3)這時,在zone1中的CPU數目改為16個。
這樣,我們就在Solaris 10中實現了通常由硬件實現的CPU資源動態(tài)管理功能。


本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/23363/showart_2154381.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP