虛擬機緩存資源管理方法和系統(tǒng)的制作方法
【技術領域】
[0001] 本發(fā)明涉及計算機領域,特別涉及一種虛擬機緩存資源管理方法和系統(tǒng)。
【背景技術】
[0002] 隨著虛擬化技術的廣泛應用,IT資源將成為像水電一樣可運營的基礎設施,虛擬 化與云計算技術正在引領IT技術的發(fā)展方向,越來越多的企業(yè)采用虛擬化與云計算技術 來構建新一代IT系統(tǒng),以提升IT系統(tǒng)的資源利用率,并在保證服務級別水平的前提下降低 成本;同時幫助業(yè)務更加具有敏捷性,加速新業(yè)務的上線時間。
[0003] 然而,由于使用共享存儲來確保系統(tǒng)的可遷移、高可靠、動態(tài)負載均衡等高級特 性,虛擬機的使用成本居高不下。虛擬化與云計算技術的廣泛應用也給后端的存儲系統(tǒng)提 出更加嚴峻的挑戰(zhàn)。如:需要存儲系統(tǒng)能夠承載更多的業(yè)務、更高的性能與可靠性、更好的 擴展性、保證關鍵業(yè)務服務級別水平并降低成本等。為了使云計算服務能提供更加廣泛的 服務,更高的性價比成為了核心需求,其中,如何有效降低虛擬機存儲的資源成本,是目前 需要克服的技術重點。
[0004] 虛擬機技術給服務器帶來更高的利用率、給業(yè)務帶來更便捷的部署,降低了 TC0, 因而在眾多行業(yè)得到了廣泛的應用。與此同時,虛擬機應用給存儲帶來以下挑戰(zhàn),例如由于 采用共享存儲方式部署虛擬機,單個卷上可能承載幾十或上百的虛擬機,導致卷10呈現(xiàn)更 多的隨機特征,這對傳統(tǒng)的Cache技術提出挑戰(zhàn);此外,由于單個卷承載多個虛擬機業(yè)務, 要求存儲系統(tǒng)具備協(xié)調(diào)虛擬機訪問競爭,保證對QoS要求高的虛擬機獲取到資源實現(xiàn)性能 目標。伴隨著x86服務器技術的快速發(fā)展,基于X86服務器的分布式存儲技術成為了解決 該問題的主要方式之一。
[0005] 基于X86服務器的分布式存儲資源池化主要是指通過在X86服務器上部署分布式 存儲軟件,對外提供塊(FC/ISCSI)、文件(NFS/CIFS)以及對象(Restful)等數(shù)據(jù)訪問接口, 形成存儲的資源池化。以VMware公司提供的vSAN為例,通過使用服務器中的基于閃存的 設備(如SSD盤)和磁盤(HDD)組合,提供集群式的分布式文件存儲。閃存設備主要作為 數(shù)據(jù)的緩存,磁盤作為數(shù)據(jù)存儲的載體,當虛擬機數(shù)據(jù)寫入時,系統(tǒng)先將數(shù)據(jù)寫到閃存上, 再由閃存復制或移動到磁盤上,通過該功能,可以實現(xiàn)小文件的合并寫入,有利于提高系統(tǒng) 的磁盤10能力。但系統(tǒng)讀取數(shù)據(jù)時,先在閃存上查找所需數(shù)據(jù),如果沒有找到,再到磁盤上 進行查找,有利于熱點數(shù)據(jù)的快速讀寫,提高系統(tǒng)性能。且不同于內(nèi)存的緩存功能,在服務 器下電后,閃存上的熱點數(shù)據(jù)仍能得到保留。
[0006] 然而,如上文所述,由于系統(tǒng)承載的虛擬機數(shù)量通常較大,所呈現(xiàn)的10需求具有 很大的隨機性,所以對系統(tǒng)的讀寫資源需求及10分配方法有著多樣化、差異化的需求,而 按照vSAN的30 %讀緩存和70 %寫緩存的固定比例,雖然可能具有一定的統(tǒng)計依據(jù),但實際 上并不一定能很好滿足資源池化環(huán)境下多虛擬機的存儲需求。例如,在某系統(tǒng)中基于虛擬 機的需求,如果統(tǒng)計下來,結果是所有虛擬機平均需要90 %的隨機讀,而需要10 %的順序 寫緩存,則可以該比例提供讀緩存的比例,而不是固定比例。
[0007] 隨著虛擬化技術的不斷成熟,計算資源已經(jīng)逐步實現(xiàn)了池化和統(tǒng)一管理,而存儲 資源由于軟硬件設備的緊耦合等特性,無法實現(xiàn)統(tǒng)一管理,存儲系統(tǒng)比較分散,同時,X86服 務器上的本地存儲不能達到充分利用,利用相關技術實現(xiàn)存儲資源池化和統(tǒng)一管理,采用 更加適配用戶虛擬機資源需求的緩存分配方法,對充分利用現(xiàn)有存儲設備,提升資源利用 率,提高運維管理水平都具有十分重要的意義。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明實施例提供一種虛擬機緩存資源管理方法和系統(tǒng)。通過直接適配本地存儲 系統(tǒng)的緩存策略,可有效提高虛擬機的緩存效率和輸入輸出能力。
[0009] 根據(jù)本發(fā)明的一個方面,提供一種虛擬機緩存資源管理方法,包括:
[0010] 當新虛擬機加入系統(tǒng)后,收集所述新虛擬機的實際使用存儲量、需要的讀寫緩存 比例;
[0011] 根據(jù)所述新虛擬機的實際使用存儲量、需要的讀寫緩存比例,確定所述新虛擬機 需要的讀緩存資源Rnew和寫緩存資源Wnew ;
[0012] 獲取為已加入系統(tǒng)的虛擬機分配的讀緩存資源R和寫緩存資源W,其中
N為已加入系統(tǒng)的虛擬機數(shù)量,Ri和Wi分別為分配給已加入系 統(tǒng)的第i個虛擬機的讀緩存資源和寫緩存資源;
[0013] 根據(jù)讀緩存資源R和寫緩存資源W確定當前的讀緩存調(diào)整門限和寫緩存調(diào)整門 限;
[0014] 判斷讀緩存資源Rnew是否小于讀緩存調(diào)整門限,寫緩存資源Wnew是否小于寫緩 存調(diào)整門限;
[0015] 若讀緩存資源Rnew和寫緩存資源Wnew均小于相應的門限,則從保留資源中取出 大小為Rnew的讀緩存資源和大小為Wnew的寫緩存資源以分配給所述新虛擬機;
[0016] 從讀緩存資源R中回收大小為Rnew的讀緩存資源,從寫緩存資源W中回收大小為 Wnew的寫緩存資源,并將回收的資源作為保留資源。
[0017] 在一個實施例中,根據(jù)所述新虛擬機的實際使用存儲量、需要的讀寫緩存比例,確 定所述新虛擬機需要的讀緩存資源Rnew和寫緩存資源Wnew的步驟包括:
[0018] 將所述新虛擬機的實際使用存儲量上浮m%,以得到所述新虛擬機的使用容量A, 其中m為預定的上浮值;
[0019] 將所述新虛擬機的使用容量A與需要的讀緩存比例相乘,以得到所述新虛擬機需 要的讀緩存資源Rnew ;
[0020] 將所述新虛擬機的使用容量A與需要的寫緩存比例相乘,以到所述新虛擬機需要 的寫緩存資源Wnew。
[0021] 在一個實施例中,根據(jù)讀緩存資源R和寫緩存資源W確定當前的讀緩存調(diào)整門限 和寫緩存調(diào)整門限的步驟包括:
[0022] 將讀緩存資源R和預定的調(diào)整變化比例η%相乘,以確定當前的讀緩存調(diào)整門限;
[0023] 將寫緩存資源W和預定的調(diào)整變化比例η%相乘,以確定當前的寫緩存調(diào)整門限。
[0024] 在一個實施例中,從讀緩存資源R中回收大小為Rnew的讀緩存資源,從寫緩存資 源W中回收大小為Wnew的寫緩存資源的步驟包括:
[0025] 從已加入系統(tǒng)的第i個虛擬機的讀緩存資源Ri中回收大小為Cri的讀緩存資源, 其中Cri = RnewXRi/R,以便對第i個虛擬機的讀緩存資源進行更新;
[0026] 從已加入系統(tǒng)的第i個虛擬機的寫緩存資源Wi中回收大小為Cwi的寫緩存資源, 其中Cwi = WnewXWi/W,以便對第i個虛擬機的寫緩存資源進行更新。
[0027] 在一個實施例中,若讀緩存資源Rnew不小于讀緩存調(diào)整門限,或者寫緩存資源 Wnew不小于寫緩存調(diào)整門限,則按照預先設定的壓縮比例,對已加入系統(tǒng)的虛擬機的讀緩 存資源和寫緩存資源進行壓縮,并將回收的資源作為保留資源;
[0028] 按照預先設定的壓縮比例,對所述新虛擬機的讀緩存資源Rnew、寫緩存資源Wnew 進行壓縮,以得到所述新虛擬機的讀緩存分配資源Rd和寫緩存分配資源Wd ;
[0029] 從保留資源中取出大小為Rd的讀緩存資源和大小為Wd的寫緩存資源以分配給所 述新虛擬機。
[0030] 根據(jù)本發(fā)明的另一方面,提供一種虛擬機緩存資源管理系統(tǒng),包括信息收集單元、 緩存資源確定單元、已分配資源獲取單元、門限確定單元、判斷單元、資源分配單元和資源 回收單元,其中:
[0031] 信息收集單元,用于當新虛擬機加入系統(tǒng)后,收集所述新虛擬機的實際使用存儲 量、需要的讀寫緩存比例;
[0032] 緩存資源確定單元,用于根據(jù)所述新虛擬機的實際使用存儲量、需要的讀寫緩存 比例,確定所述新虛擬機需要的讀緩存資源Rnew和寫緩存資源Wnew ;
[0033] 已分配資源獲取單元,用于獲取為已加入系統(tǒng)的虛擬機分配的讀緩存資源R和寫 緩存資源W,其中
彳已加入系統(tǒng)的虛擬機數(shù)量,Ri和Wi分別為 分配給已加入系統(tǒng)的第i個虛擬機的讀緩存資源和寫緩存資源;
[0034] 門限確定單元,用于根據(jù)讀緩存資源R和寫緩存資源W確定當前的讀緩存調(diào)整門 限和寫緩存調(diào)整門限;
[0035] 判斷單元,用于判斷讀緩存資源Rnew是否小于讀緩存調(diào)整門限,寫緩存資源Wnew 是否小于寫緩存調(diào)整門限;
[0036] 資源分配單元,用于根據(jù)判斷單元的判斷結果,若讀緩存資源Rnew和寫緩存資源 Wnew均小于相應的門限,貝U從保留資源中取出大小為Rnew的讀緩存資源和大小為Wnew的 寫緩存資源以分配給所述新虛擬機;
[0037] 資源回收單元,用于從讀緩存資源R中回收大小為Rnew的讀緩存資源,從寫緩存 資源W中回收大小為Wnew的寫緩存資源,并將回收的資源作為保留資源。
[0038] 在一個實施例中,緩存資源確定單元具體將所述新虛擬機的實際使用存儲量上浮 m%,以得到所述新虛擬機的使用容量A,其中m為預定的上浮值;將所述新虛擬機的使用容 量A與需要的讀緩存比例相乘,以得到所述新虛擬機需要的讀緩存資源Rnew ;將所述