服務(wù)器的虛擬化已經(jīng)越來越多的為企業(yè)所采納,同時(shí)對虛擬化環(huán)境中服務(wù)器的集中監(jiān)控,也成為企業(yè)IT管理標(biāo)準(zhǔn)配置。這種情況下,如何從已經(jīng)監(jiān)控得到的海量數(shù)據(jù)中分析虛擬化環(huán)境計(jì)算資源的使用情況,成為IT管理者最關(guān)心的問題,同時(shí)也是企業(yè)IT投資的重要參考依據(jù)。本文以ITM(IBM Tivoli Monitoring)對VMware 虛擬化環(huán)境的監(jiān)控?cái)?shù)據(jù)為基礎(chǔ),從以下幾個(gè)方面,介紹如何獲取和分析計(jì)算資源的利用率:
·闡述如何配置VMware VI Agent屬性組收集虛擬化環(huán)境監(jiān)控?cái)?shù)據(jù)到數(shù)據(jù)倉庫。
·介紹ITM數(shù)據(jù)倉庫中VMware VI監(jiān)視代理相關(guān)數(shù)據(jù)表格。
·虛擬機(jī)和虛擬化服務(wù)器計(jì)算資源利用率相關(guān)數(shù)據(jù)分析。
1. 配置VMware VI Agent屬性組收集虛擬化環(huán)境監(jiān)控?cái)?shù)據(jù)到數(shù)據(jù)倉庫
本節(jié)以一個(gè)典型ITM監(jiān)控VMware虛擬化環(huán)境下的方案為例,介紹如何配置監(jiān)控?cái)?shù)據(jù)的收集。圖1是一個(gè)典型的ITM監(jiān)控環(huán)境部署方案(關(guān)于如何部署ITM監(jiān)控VMware虛擬化環(huán)境,請參考IT168上的文章: 應(yīng)用IBM Tivoli實(shí)現(xiàn)虛擬化環(huán)境的監(jiān)控)。在這里主要關(guān)注TEPS(Tivoli Enterprise Portal Server) 和數(shù)據(jù)倉庫TDW(Tivoli Data Warehouse)。Tivoli Enterprise Portal 提供了歷史數(shù)據(jù)收集和報(bào)告功能,配置并啟動(dòng)了歷史數(shù)據(jù)收集后,可將數(shù)據(jù)復(fù)制到Tivoli 數(shù)據(jù)倉庫長期存儲(chǔ)。通過“歷史收集配置”窗口,可以為各個(gè)屬性組配置歷史數(shù)據(jù)收集,并指定要從哪些受管系統(tǒng)收集數(shù)據(jù)、收集數(shù)據(jù)的頻率、短期內(nèi)數(shù)據(jù)的存儲(chǔ)位置以及是否將數(shù)據(jù)長期保存到數(shù)據(jù)倉庫。
▲圖1 ITM監(jiān)控部署典型架構(gòu)
首先以管理員sysadmin的身份登錄到門戶服務(wù)器TEPS,在工具欄內(nèi)選擇“History Configuration … (Ctrl + H)”,出現(xiàn)如圖2所示的歷史數(shù)據(jù)配置界面。
▲圖2 監(jiān)控歷史記錄配置界面
歷史數(shù)據(jù)配置頁面的左側(cè)列表,顯示了所有已安裝的監(jiān)視代理程序。選擇“VMware VI agent”應(yīng)用,右側(cè)會(huì)顯示此應(yīng)用所包含的所有屬性組的信息。如圖3所示:
▲圖3 配置VMware VI Agent歷史數(shù)據(jù)界面
對于VMware虛擬化環(huán)境收集利用率數(shù)據(jù),主要配置有關(guān)CPU和內(nèi)存的屬性組如下:
· KVM_SERVER à“服務(wù)器”屬性組:ESX 服務(wù)器的基本信息
· KVM_SERVER_CPU à“服務(wù)器CPU”屬性組:服務(wù)器的CPU利用率信息
· KVM_SERVER_MEMORY à“服務(wù)器內(nèi)存”屬性組:服務(wù)器的內(nèi)存利用率信息
· KVM_VIRTUAL_MACHINES à“虛擬機(jī)”屬性組:服務(wù)器上運(yùn)行的虛擬機(jī)的基本信息
· KVM_VM_CPU à“VM CPU”屬性組:虛擬機(jī)的CPU利用率信息
· KVM_VM_MEMORY à“VM 內(nèi)存”屬性組:虛擬機(jī)的內(nèi)存利用率信息
在摘要區(qū)域,選擇要收集的所有時(shí)間段的復(fù)選框:每年、每季度、每月、每周、每日和每小時(shí)。在修剪區(qū)域,選擇要修剪的所有時(shí)間段的復(fù)選框:每年、每季度、每月、每周、每日和每小時(shí)。在相應(yīng)的字段中,指定要保留數(shù)據(jù)的天數(shù)、月數(shù)或年數(shù)。單擊應(yīng)用以保存選中的屬性組的配置。這樣就可以將歷史數(shù)據(jù)保存到ITM數(shù)據(jù)倉庫。
[page]
2. ITM數(shù)據(jù)倉庫中VMware VI監(jiān)視代理相關(guān)數(shù)據(jù)表格介紹
ITM監(jiān)控?cái)?shù)據(jù)收集到數(shù)據(jù)倉庫后,針對不同的收集頻率,會(huì)存儲(chǔ)到不同的數(shù)據(jù)庫表中。不同頻率的監(jiān)控?cái)?shù)據(jù),可以根據(jù)不同的需求進(jìn)行分析。下面以虛擬機(jī)CPU數(shù)據(jù)信息為例,列出了對應(yīng)數(shù)據(jù)表和存儲(chǔ)內(nèi)容。數(shù)據(jù)庫中表的顯示如圖4中所示。
· KVM_VM_CPU_H:每小時(shí)
· KVM_VM_CPU_D:每日
· KVM_VM_CPU_W:每周
· KVM_VM_CPU_M:每月
· KVM_VM_CPU_Q:每季度
· KVM_VM_CPU_Y:每年
▲圖4 ITM數(shù)據(jù)倉庫中虛擬機(jī)CPU相關(guān)數(shù)據(jù)表
下面詳細(xì)介紹虛擬機(jī)和主機(jī)利用率分析中所需要考慮的屬性,同時(shí)對于每個(gè)屬性,都從不同的角度進(jìn)行記錄(如最小CPU利用率:MIN_CPU_Utilization和平均CPU利用率:AVG_CPU_Utilizaiton),在這里從某一天天的平均利用率的角度進(jìn)行分析。
虛擬機(jī)CPU “利用率”屬性是指CPU利用率的百分比,計(jì)算方法是用戶時(shí)間除以已用時(shí)間、就緒時(shí)間和等待時(shí)間之和,一般取每天的平均利用率數(shù)據(jù),在數(shù)據(jù)庫表KVM_VM_CPU_D中字段名稱為“AVG_Utilization”。
虛擬機(jī)內(nèi)存“主機(jī)利用率”屬性是指在上一個(gè)數(shù)據(jù)采樣時(shí)間間隔內(nèi),虛擬機(jī)所用內(nèi)存的百分比(平均值),是MemoryHostUsage除以MemoryTotalSize的百分比,在數(shù)據(jù)庫表KVM_VM_MEMORY_D中字段名稱是“AVG_Host_Util”。
服務(wù)器CPU“利用率”屬性記錄虛擬化主機(jī)的CPU利用率,數(shù)據(jù)庫表KVM_SERVER_CPU_D中字段名稱是“AVG_CPU_Utilization”。
服務(wù)器內(nèi)存“利用率”屬性記錄虛擬化主機(jī)物理內(nèi)存的利用率,即所有物理內(nèi)存除以已安裝的物理內(nèi)存所得的百分比,數(shù)據(jù)庫表KVM_SERVER_MEMORY_D中字段名稱是“AVG_Memory_Utilization”。
除了上面的利用率數(shù)據(jù)字段外,還有兩個(gè)重要的字段需要注意。
· “SHIFTPERIOD”是 “輪班和休假周期”的標(biāo)志位。如果啟用輪班,根據(jù)數(shù)據(jù)倉庫中配置的高峰期和非高峰期,小時(shí)輪班表中為1或2,日輪班表中相對應(yīng)的值是1和2,與日摘要值相對應(yīng)的是-1。如果不啟用輪班,缺省是-1。如果未啟用休假周期,缺省為-1。在按照天的數(shù)據(jù)中,這個(gè)字段的值為“-1”。
“WRITETIME”記錄的是數(shù)據(jù)寫入時(shí)間,格式為“1120907000000000”。字段中第二,三位為年份的最后兩位,接下來是兩位月和兩位的日。上面的例子代表的是2012年9月7日的數(shù)據(jù)。
[page]WITH temp1
AS (SELECT concat('20',(substr(a.WRITETIME,2,6))) as Date, a."VM_Name" AS VM_NAME, a."AVG_Host_Util" AS AVG_Host_UtilFROM ITMUSER.KVM_VM_MEMORY_D AS a
WHERE a.SHIFTPERIOD =-1AND a.WRITETIME ='1120923000000000'ORDER BY a."VM_Name"),
temp2
AS (SELECT concat('20',(substr(b.WRITETIME,2,6))) as Date, b."VM_Name" AS VM_NAME, AVG(b."AVG_Utilization") AS AVG_CPU_UtilFROM ITMUSER.KVM_VM_CPU_D AS b
WHERE b.SHIFTPERIOD =-1AND b.WRITETIME ='1120923000000000'GROUP BY b.WRITETIME, b."VM_Name", b."AVG_Utilization")
SELECT temp1.Date,
temp1.VM_NAME,
temp1.AVG_Host_Util,
temp2.AVG_CPU_Util
FROM temp1
LEFT OUTER JOIN temp2
ON ( temp1.VM_NAME = temp2.VM_NAME )
▲圖5 虛擬機(jī)CPU/內(nèi)存利用率查詢結(jié)果
[page]
▲圖6 虛擬機(jī)CPU/內(nèi)存利用率分析
從上圖中可以看到,大部分的虛擬機(jī)的CPU利用率都比較低,同時(shí)有些特殊的情況,比如內(nèi)存利用率過高但是CPU利用率很低。對于這些虛擬機(jī),可以進(jìn)行進(jìn)一步的分析如何對他們合理分配資源,以提高利用率。
3.2 虛擬化服務(wù)器利用率
對于虛擬化服務(wù)器的利用率情況,我們采用類似虛擬機(jī)的方法來分析。下面的查詢語句所得到的查詢結(jié)果如圖7中所示。
WITH temp1
AS(SELECT concat('20',(substr(b.WRITETIME,2,6))) as Date, b."Server_Hostname" AS Server_Name, AVG(b."AVG_CPU_Utilization") as CPU_Utilization FROM itmuser.kvm_server_cpu_d b
WHERE b.shiftperiod =-1AND b.writetime ='1120923000000000' GROUP BY b.writetime, b."Server_Hostname"),
temp2 AS(SELECT concat('20',(substr(a.WRITETIME,2,4))) as Date, a."Server_Hostname" AS Server_Name, a."AVG_Memory_Utilization" as Memory_Utilization FROM itmuser.kvm_server_memory_d a
WHERE a.shiftperiod =-1AND a.writetime ='1120923000000000' )SELECT temp1.Date,
temp1.Server_NAME,
temp1.CPU_Utilization,
temp2.Memory_Utilization
FROM temp1
LEFT OUTER JOIN temp2
ON ( temp1.Server_NAME = temp2.Server_NAME )[page]
▲圖7 虛擬服務(wù)器CPU/內(nèi)存利用率查詢結(jié)果
▲圖8 虛擬服務(wù)器CPU/內(nèi)存利用率分析
從圖8中可以看到,大部分的虛擬服務(wù)器的CPU利用率都很低,也就是說整個(gè)虛擬化環(huán)境中CPU并不是計(jì)算資源的瓶頸,但是也有幾臺(tái)是CPU利用率很高同時(shí)內(nèi)存利用率很低,這些機(jī)器是需要進(jìn)一步的分析如何對他們合理分配資源。
4. 總結(jié)
本文主要以VMware虛擬化環(huán)境為例,討論了ITM監(jiān)控解決方案中虛擬機(jī)和虛擬化主機(jī)的CPU,內(nèi)存利用率數(shù)據(jù)的獲得和分析。這里的利用率數(shù)據(jù)是基于歷史記錄中某一天的數(shù)據(jù),如果綜合考慮某一段時(shí)間的利用率情況,就可以生成虛擬機(jī)和服務(wù)器主機(jī)的利用率的發(fā)展趨勢,從而可以用來衡量IT部門在計(jì)算資源利用率的提高方面所取得的成效。
基于ITM監(jiān)控?cái)?shù)據(jù)的VMware虛擬化環(huán)境資源利用率的分析,不僅可以考慮CPU,內(nèi)存的數(shù)據(jù),還可以包含硬盤,網(wǎng)絡(luò)等方面,在ITM數(shù)據(jù)倉庫中對應(yīng)的屬性組分別是“VM磁盤”屬性組(KVM_VM_DISK_D),“VM 網(wǎng)絡(luò)”屬性組(KVM_VM_NETWORK_D),“服務(wù)器磁盤”屬性組(KVM_SERVER_DISK_D)和“服務(wù)器網(wǎng)絡(luò)”屬性組(KVM_SERVER_NETWORK_D)。更多的VMware虛擬化環(huán)境中屬性相關(guān)信息,可以參考VMware VI Agent 監(jiān)視代理用戶手冊的 “屬性參考”部分。
ITM同時(shí)還可以支持其他虛擬化環(huán)境的數(shù)據(jù)收集,下面簡單列出了部分有關(guān)屬性組的信息供參考:
· KVM虛擬化環(huán)境:KV1_HOST_CPU,KV1_HOST_MEMORY,KV1_VIRTUAL_MACHINES
· Citrix Xen虛擬化環(huán)境:KXI_HOST_CPU,KXI_HOST_VMS,KXI_HOST_DETAILS
· Hyper-v虛擬化環(huán)境:KHV_HYPER_V_VIRTUAL_MACHINE_SUMMARY,KHV_PROCESSOR, KHV_MEMORY,KHV_DISK,KHV_HYPER_V_VIRTUAL_SWITCH
5. 參考資料
IBM網(wǎng)站和Tivoli軟件信息中心提供了豐富的有關(guān)ITM和Monitoring for Virtual Servers的安裝、配置和部署的文檔,用戶可以從下面的鏈接獲得需要的幫助信息。