智能內(nèi)存復(fù)用
內(nèi)存復(fù)用的定義:
通過內(nèi)存復(fù)用技術(shù)將物理內(nèi)存虛擬出更多的內(nèi)存供虛擬機(jī)使用,使虛擬機(jī)內(nèi)存規(guī)格總和可以大于主機(jī)物理內(nèi)存。最終提高主機(jī)的虛擬機(jī)密度。
內(nèi)存復(fù)用的三種技術(shù)∶
1)內(nèi)存共享:虛擬機(jī)之間共享同一物理內(nèi)存空間,此時(shí)虛擬機(jī)僅對(duì)內(nèi)存做只讀操作。當(dāng)虛擬機(jī)需要對(duì)內(nèi)存進(jìn)行寫操作時(shí),開辟另一內(nèi)存空間,并修改映射。
2)內(nèi)存置換:虛擬機(jī)長時(shí)間未訪間的內(nèi)存內(nèi)容被置換到存儲(chǔ)(內(nèi)存置換盤)中,并建立映射,當(dāng)虛擬機(jī)再次訪間該內(nèi)存內(nèi)容時(shí)再置換回來。
3)內(nèi)存氣泡:Hypervisor 通過內(nèi)存氣泡將較為空閑的虛擬機(jī)內(nèi)存釋放給內(nèi)存使用率較高的虛擬機(jī)。從而提升內(nèi)存利用率。
內(nèi)存氣泡實(shí)現(xiàn)的原理和在虛擬機(jī)之問具體是如何操作?
Hypervisor對(duì)虛擬機(jī)進(jìn)行監(jiān)控,并主動(dòng)回收虛擬機(jī)暫時(shí)不用的物理內(nèi)存,分配給需要復(fù)用內(nèi)存的虛擬機(jī),內(nèi)存的回收和分配均為系統(tǒng)動(dòng)態(tài)執(zhí)行,虛擬機(jī)上的應(yīng)用無感知。
物理內(nèi)存上的0頁和虛擬機(jī)內(nèi)部0頁形成一個(gè)對(duì)應(yīng)關(guān)系。從而實(shí)現(xiàn)所有VM在調(diào)用0頁時(shí),調(diào)用的同一個(gè)物理內(nèi)存。
內(nèi)存復(fù)用限制?
嚴(yán)格意義來說沒有一個(gè)明確的限制,根據(jù)實(shí)際復(fù)用情況而定,官方要求一般不超過150%,最多不超過400%。實(shí)際企業(yè)業(yè)務(wù)場(chǎng)景下一般不打開內(nèi)存復(fù)用。
1)主機(jī)需要配置足夠的交換空間才能保證內(nèi)存復(fù)用功能的穩(wěn)定運(yùn)行。主機(jī)最大內(nèi)存復(fù)用率依賴于swap 空間大小配置。具體計(jì)算公式如下:
主機(jī)支持的最大內(nèi)存復(fù)用率=1+(主機(jī) swap空間大小-虛擬化域物理內(nèi)存大小和0.1)/虛擬化域物理內(nèi)存大小。
2)內(nèi)存交換分區(qū)默認(rèn)與HostOS同盤配置.默認(rèn)大小=主機(jī)物理內(nèi)存大小粕60%,最大支持150%的復(fù)用率,當(dāng)手動(dòng)配置時(shí)要求最小30G。
3)內(nèi)存復(fù)用與SR-IOV直通、GPU直通、SSD盤直通特性互斥。直通設(shè)備的虛擬機(jī)必須內(nèi)存獨(dú)占,內(nèi)存獨(dú)占后虛擬機(jī)的內(nèi)存不會(huì)被交換到交換空間。內(nèi)存復(fù)用(非100%內(nèi)存預(yù)留)的虛擬機(jī)不能直通設(shè)備。
注意:內(nèi)存復(fù)用的三個(gè)功能不能單獨(dú)使用,人為不可干預(yù),當(dāng)在集群中打開內(nèi)存復(fù)用的開關(guān),正常情況下內(nèi)存復(fù)用將啟動(dòng),三個(gè)技術(shù)之間由hypervisor互相協(xié)同,共同保證了內(nèi)存超分配的穩(wěn)定。
虛擬機(jī)內(nèi)存Qos :
提供虛擬機(jī)內(nèi)存智能復(fù)用功能,依賴內(nèi)存預(yù)留比。通過內(nèi)存氣泡等內(nèi)存復(fù)用技術(shù)將物理內(nèi)存虛擬出更多的虛擬內(nèi)存供虛擬機(jī)使用,每個(gè)虛擬機(jī)都能完全使用分配的虛擬內(nèi)存。該功能可最大程度的復(fù)用內(nèi)存資源,提高資源利用率,且保證虛擬機(jī)運(yùn)行時(shí)至少可以獲取到預(yù)留大小的內(nèi)存,保證業(yè)務(wù)的可靠運(yùn)行。
系統(tǒng)管理員可根據(jù)用戶實(shí)際需求設(shè)置虛擬機(jī)內(nèi)存預(yù)留。內(nèi)存復(fù)用的主要原則是:優(yōu)先使用物理內(nèi)存。
包含以下幾個(gè)參數(shù):
內(nèi)存預(yù)留∶虛擬機(jī)預(yù)留的最低物理內(nèi)存。預(yù)留的內(nèi)存被會(huì)虛擬機(jī)獨(dú)占。即,一旦內(nèi)存被某個(gè)虛擬機(jī)預(yù)留。即使虛擬機(jī)實(shí)際內(nèi)存使用量不超過預(yù)留量。其他虛擬機(jī)也無法搶占該虛擬機(jī)的空閑內(nèi)存資源;
內(nèi)存份額:適用資源復(fù)用場(chǎng)景,按比例分配內(nèi)存資源。如VM1和VM2的內(nèi)存份額分別是20480,40960,物理資源總共為3G內(nèi)存。那么在競(jìng)爭情況下VIM1使用的內(nèi)存為1G,VM2使用的內(nèi)存為2G。
內(nèi)存資源限領(lǐng):控制虛擬機(jī)占用物理內(nèi)存資源的上限。在開啟多個(gè)虛擬機(jī)時(shí),虛擬機(jī)之間會(huì)相互競(jìng)爭內(nèi)存資源,為了使虛擬機(jī)的內(nèi)存得到充分利用,盡量減少空閑內(nèi)存。用戶可以在創(chuàng)建虛擬機(jī)時(shí)設(shè)置虛擬機(jī)配置文件中的內(nèi)存上限參數(shù),使服務(wù)器分配給該虛擬機(jī)的內(nèi)存大小不超過內(nèi)存上限值。
注意:IT管理員可以對(duì)虛擬機(jī)設(shè)定資源的使用上限,包括CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤IOPS等,防止非關(guān)鍵應(yīng)用和惡意用戶爭搶共享資源。
集群計(jì)算資源調(diào)度:DRS、DPM
DRS ( Dynamic Resource Scheduler動(dòng)態(tài)資源調(diào)度)∶
根據(jù)智能負(fù)載均衡算法。周期性檢查集群內(nèi)主機(jī)的負(fù)載(CPU和內(nèi)存)情況,在不同的主機(jī)之間遷移虛擬機(jī),從而達(dá)到集群內(nèi)主機(jī)間的負(fù)載均衡目的,保證系統(tǒng)良好的用戶體驗(yàn)。
DPM ( Dynamic Power Management動(dòng)態(tài)電源管理)∶
動(dòng)態(tài)電源管理根據(jù)業(yè)務(wù)情況,智能地將部分物理機(jī)上下電,配置主機(jī)BMC參數(shù)之后,電源管理才生效,系統(tǒng)才可按照電源管理閾值對(duì)主機(jī)進(jìn)行調(diào)度。電源管理依賴于計(jì)算資源調(diào)度。因此電源管理只有在開啟計(jì)算資源調(diào)度。并且遷移閾值的設(shè)置不為"保守"時(shí)生效。
Drs閾值配置操作流程︰
集群——配置——計(jì)算資源調(diào)度配置——可以設(shè)置自動(dòng)化級(jí)別、閾值、調(diào)度基線。
虛擬機(jī)規(guī)則組∶
1)聚集虛擬機(jī)∶列出的虛擬機(jī)必須在同一主機(jī)上運(yùn)行。一個(gè)虛擬機(jī)只能被加入一條聚集虛擬機(jī)規(guī)則中。
2)互斥虛擬機(jī)∶列出的虛擬機(jī)必須在不同主機(jī)上運(yùn)行,一個(gè)虛擬機(jī)只能被加入一條互斥虛擬機(jī)規(guī)則中。
3)虛擬機(jī)到主機(jī):關(guān)聯(lián)一個(gè)虛擬機(jī)組和主機(jī)組并設(shè)置關(guān)聯(lián)規(guī)則。指定所選的虛擬機(jī)組的成員是否能夠在特定主機(jī)組的成員上運(yùn)行。
虛擬機(jī) HA
虛擬機(jī)HA定義:是一種高可用特性,當(dāng)物理機(jī)或虛擬機(jī)故障時(shí),會(huì)根據(jù)集群HA策略將宕掉的虛擬機(jī)在正常工作的主機(jī)上開啟,從而減少業(yè)務(wù)中斷時(shí)間。
虛擬機(jī)HA實(shí)現(xiàn)原理:VRM或者集群的Master節(jié)點(diǎn)檢測(cè)到某計(jì)算節(jié)點(diǎn)故障或者虛擬機(jī)故障,或者設(shè)定的預(yù)留資源得不到保障時(shí),主動(dòng)根據(jù)自身記錄的虛擬機(jī)信息,在正常的節(jié)點(diǎn)上重新啟動(dòng)故障虛擬機(jī)。
虛擬機(jī)HA流程:
1)當(dāng)VM故障或者物理節(jié)點(diǎn)故障,VRM查詢VM狀態(tài),發(fā)現(xiàn)VM故障。
2) VRM節(jié)點(diǎn)判斷VM有HA特性,則根據(jù)保存的VM信息(規(guī)格,卷等信息)選
擇可用的CNA主機(jī)啟動(dòng)VM;
3)CNA節(jié)點(diǎn)收到HA請(qǐng)求,根據(jù)VM規(guī)格,卷信息創(chuàng)建新的VM;啟動(dòng)過程中,
將VM之前的卷重新掛載,包括用戶卷。
虛擬機(jī)HA約束條件:
1)VM層面:安裝tools且運(yùn)行正常,沒有外設(shè)綁定;
2)FC層面:必須為共享存儲(chǔ)。目標(biāo)主機(jī)和源主機(jī)在同一集群且網(wǎng)絡(luò)相通,集群開啟HA功能。目標(biāo)端有足夠的資源開啟VM。
主機(jī)故障控制策略︰
VM集群內(nèi)恢復(fù);VM原主機(jī)恢復(fù);VM停止。
設(shè)置方法:集群——配置——HA配置——集群資源控制。
虛擬機(jī)HA屬性設(shè)置:虛擬機(jī)——選項(xiàng)———HA。
三種資源預(yù)留方式:
1)集群內(nèi)所有節(jié)點(diǎn)均預(yù)留資源
2)指定集群內(nèi)特定主機(jī)進(jìn)行HA
3)集群內(nèi)最多允許壞多少臺(tái)主機(jī)。
集群自治HA機(jī)制︰
即不依賴VRM實(shí)現(xiàn)虛擬機(jī)EA功能,而是在集群創(chuàng)建時(shí)自動(dòng)推選出Master節(jié)點(diǎn),由Master節(jié)點(diǎn)根據(jù)集群內(nèi)各slave節(jié)點(diǎn)和Master節(jié)點(diǎn)之間的管理心跳和存儲(chǔ)心跳來判斷是否需要啟動(dòng)虛擬機(jī)A機(jī)制(管理心跳是心跳包,存儲(chǔ)心跳通過在文件中寫數(shù)據(jù)來實(shí)現(xiàn)).根據(jù)需要由Master節(jié)點(diǎn)啟動(dòng)A機(jī)制;自治場(chǎng)景下,E啟動(dòng)的前提是管理心跳和存儲(chǔ)心跳都失效。用戶可以設(shè)置管理心跳走管理平面還是非管理平面??梢愿鶕?jù)各網(wǎng)絡(luò)平面的負(fù)荷來確定。
注意:并不是集群中打開 HA開關(guān),故障發(fā)生集群里的虛擬機(jī)就一定會(huì)執(zhí)行HA策略,還需要在集群配置中配置虛擬機(jī)替代項(xiàng)來選擇需要HA的虛擬機(jī)。
審核編輯:黃飛
-
cpu
+關(guān)注
關(guān)注
68文章
10804瀏覽量
210843 -
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
904瀏覽量
28018 -
CNA
+關(guān)注
關(guān)注
0文章
11瀏覽量
7080
原文標(biāo)題:FusionCompute集群知識(shí)點(diǎn)
文章出處:【微信號(hào):網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號(hào):網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論