2.2、云计算FusionCompute计算虚拟化
目標(biāo):描述計算虛擬化實現(xiàn)原理
區(qū)分三種內(nèi)存復(fù)用技術(shù)
描述FusionCompute中計算虛擬化功能特性
一、什么是虛擬化
虛擬化是一個抽象層,它打破了物理硬件和操作系統(tǒng)之間的硬性連接
虛擬化是云計算的基礎(chǔ)。簡單的說,虛擬化使得在一臺物理的服務(wù)器上可以跑多臺虛擬機(jī),虛擬機(jī)共享物理機(jī)的CPU、內(nèi)存、IO 硬件資源,但邏輯上虛擬機(jī)之間是相互隔離的。
在計算機(jī)方面,虛擬化一般指通過對計算機(jī)物理資源的抽象,提供一個或多個操作環(huán)境,實現(xiàn)資源的模擬、隔離或共享等。
本質(zhì)上,虛擬化就是由位于下層的軟件模塊,通過向上一層軟件模塊提供一個與它原先所期待的運行環(huán)境完全一致的接口的方法,抽象出一個虛擬的軟件或硬件接口,使得上層軟件可以直接運行在虛擬環(huán)境上。通過空間上的分割、時間上的分時以及模擬,虛擬化可將一份資源抽象成多份,亦可將多份資源抽象成一份。
二、CPU虛擬化
1、CPU的虛擬化
由單個CPU邏輯劃分成核心,每個核心可以通過超線程技術(shù)還提供每個核心兩個計算線程
2、超線程技術(shù)
“超線程”技術(shù)就是通過采用特殊的硬件指令,可以把兩個邏輯內(nèi)核模擬成兩個物理超線程芯片,在單處理器中實現(xiàn)線程級的并行計算,同時在相應(yīng)的軟硬件的支持下大幅度的提高運行效能,從而實現(xiàn)在單處理器上模擬雙處理器的效能。其實,從本質(zhì)上說,超線程是一種可以將CPU內(nèi)部暫時閑置處理資源充分“調(diào)動”起來的技術(shù)。
3、CPU單位和計算
CPU主頻:1.10GHz,也叫時鐘頻率,代表CPU運算速度或處理速度
總線頻率:代表CPU與內(nèi)存進(jìn)行數(shù)據(jù)交換速度
外 頻:CPU的基準(zhǔn)頻率,代表整塊主板的運行速度
CPU的頻率計算
當(dāng)有兩塊8核CPU,主頻為26GHz時
CPU的頻率=2(塊/路)*8(核)*2(線程)*2.6GHz=83.2GHz
4、CPU虛擬化技術(shù)可查看HCIA筆記
https://blog.csdn.net/weixin_43666279/article/details/107417311?utm_source=app
三、內(nèi)存虛擬化
內(nèi)存虛擬化,首先底層物理主機(jī)真實內(nèi)存需要分配給上層多個虛擬機(jī)或者應(yīng)用使用,那分配到的地址只有一個從0開始,而且地址空間不一定連續(xù)。所以在底層物理主機(jī)真實內(nèi)存上加上一層底層物理主機(jī)虛擬地址,把內(nèi)存映射給各個虛擬機(jī)或者應(yīng)用使用,讓應(yīng)用或者虛擬機(jī)認(rèn)為自己分配到的是從0開始,地址空間連續(xù)的內(nèi)存(HPA->HVA)
虛擬機(jī)拿到物理主機(jī)虛擬內(nèi)存后,認(rèn)為這些就是屬于自己的真實硬件內(nèi)存(GPA),它要分配給上層應(yīng)用去使用,也要進(jìn)行內(nèi)存的虛擬化映射給上層應(yīng)用來使用,而上層應(yīng)用也會認(rèn)為自己拿到了從0開始,地址空間連續(xù)的內(nèi)存(GPA->GVA)
通過內(nèi)存映射實現(xiàn)HPA->HVA->GPA->GVA
1、內(nèi)存虛擬化
把物理機(jī)真實的內(nèi)存統(tǒng)一管理,包裝成多個虛擬機(jī)的內(nèi)存給若干個虛擬機(jī)使用。KVM通過內(nèi)存虛擬化共享物理系統(tǒng)內(nèi)存,動態(tài)分配給虛擬機(jī)
2、KVM內(nèi)存虛擬化
KVM中,虛機(jī)的物理內(nèi)存即為qemu-kvm進(jìn)程所占用的內(nèi)存空間。KVM使用CPU 輔助的內(nèi)存虛擬化方式。在Intel平臺,其內(nèi)存虛擬化的實現(xiàn)方式為EPT (Extended Page Tables)技術(shù)。
3、影子頁表
Intel的CPU提供了EPT (Extended Page Tables,擴(kuò)展頁表)技術(shù),直接在硬件上支持GVA->GPA->HPA的地址轉(zhuǎn)換,從而降低內(nèi)存虛擬化實現(xiàn)的復(fù)雜度,也進(jìn)一步提升內(nèi)存虛擬化性能。
4、虛擬機(jī)訪問物理真實內(nèi)存的流程
CPU先訪問虛擬地址,虛擬地址去TLB表中查找,TLB表中放的是用于經(jīng)常讀寫的物理地址,如果里面有對應(yīng)的映射地址,就直接返回結(jié)果;如果沒有就要去頁表中的物理虛擬地址中查找對應(yīng)映射關(guān)系的物理真實地址。
四、I/O虛擬化
1、I/O虛擬化需要解決兩個問題
設(shè)備發(fā)現(xiàn):
需要控制各虛擬機(jī)能夠訪問的設(shè)備;
訪問截獲:
通過I/O端口或者M(jìn)MIO對設(shè)備的訪問;
I/O虛擬化可以被看作是位于服務(wù)器組件的系統(tǒng)和各種可用I/O處理單元之間的硬件中間件層,使得多個guest可以復(fù)用有限的外設(shè)資源。
設(shè)備虛擬化(I/O虛擬化)的過程,就是模擬設(shè)備的這些寄存器和內(nèi)存,截獲Guest OS對IO端口和寄存器的訪問,通過軟件的方式來模擬設(shè)備行為。
2、I/O虛擬化方式
在QEMU/KVM中,客戶機(jī)可以使用的設(shè)備大致可分為三類:
模擬設(shè)備:完全由 QEMU 純軟件模擬的設(shè)備
Virtio 設(shè)備:實現(xiàn) VIRTIO API 的半虛擬化設(shè)備
PCI 設(shè)備直接分配 (PCI device assignment)
3、I/O虛擬化三種方式的優(yōu)缺點
①、全模擬
優(yōu)點:對硬件平臺依賴性低,可以方便模擬流行和較老久設(shè)備;兼容性高,不需要宿主機(jī)和虛擬機(jī)額外的支持
缺點:IO路徑比較長,VM-EXIT次數(shù)很多,性能較差
一般適用于IO性能要求不高的場景或者模擬一些老舊遺留設(shè)備
②、Virtio 半虛擬化
優(yōu)點:實現(xiàn)Virtio API,減少VM-EXIT次數(shù),提高客戶機(jī)IO執(zhí)行效率,比普通模擬IO效率高很多
缺點:兼容性較差,需要客戶機(jī)與Virtio相關(guān)驅(qū)動的支持
IO頻繁時,CPU使用率較高
③、PCI直接分配
優(yōu)點:較少VM-EXIT陷入Hypervisor,提高IO性能,克服兼容性差和CPU使用率高的問題
缺點:可添加PCI和PCI-E的設(shè)備有限
五、FusionCompute計算虛擬化管理
1、虛擬機(jī)生命周期管理
創(chuàng)建/刪除/回收,關(guān)閉/啟動/下電,暫停/恢復(fù),休眠/喚醒,重啟/強制重啟,克隆,遷移/異構(gòu)CPU熱遷移,快照,備份/恢復(fù),磁盤遷移
2、虛擬資源管理
數(shù)據(jù)中心、集群、主機(jī)、虛擬機(jī)分層管理 ,虛擬機(jī)文件夾邏輯分組管理.,虛擬機(jī)分權(quán)管理,主機(jī)組,模板管理
3、虛擬資源配置管理
虛擬機(jī)資源(CPU 、內(nèi)存、磁盤、網(wǎng)卡、外設(shè)等在線離線調(diào)整),GPU 直通SRIOV,虛擬機(jī)啟動策略\時鐘策略、VNC鍵盤管理,虛擬機(jī)光驅(qū),虛擬機(jī)USB,內(nèi)存復(fù)用\QoS,CPU 超分\QoS,MUMA 調(diào)度支持
六、計算虛擬換功能特性
1、兼容性行業(yè)特殊操作系統(tǒng)(Tools)
兼容一個新的操作系統(tǒng),需要廠商提供配套的PV驅(qū)動程序,華為具備PV驅(qū)動開發(fā)能力。FusionCompute除了兼容主流的Windows、Linux操作系統(tǒng)之外,還兼容國產(chǎn)中標(biāo)操作系統(tǒng) (特定的版本可能需要定制驅(qū)動)
PV驅(qū)動:虛擬機(jī)虛擬化驅(qū)動,安裝在GUEST os 里,調(diào)優(yōu)。 對應(yīng)VMware tools
2、集群(虛擬化集群管理VRM主備)
技術(shù)特點與價值:每個邏輯集群支持128物理機(jī),適用于高性能、大規(guī)模業(yè)務(wù)群部署,降低冗余物理機(jī)比例
每邏輯集群支持8,000臺虛擬機(jī) ,適合桌面云等規(guī)模大、性能要求不高業(yè)務(wù)部署
高可用性設(shè)計,VRM (虛擬化部署或者物理部署)主備部署,保證系統(tǒng)可用性
3、GPU
GPU虛擬化:通過虛擬化技術(shù),把一個物理GPU虛擬成多個虛擬GPU給虛擬機(jī)使用,GPU虛擬化&直通的型號:P4/P40/M60/V100
GPU直通:通過直通技術(shù),把一個物理GPU直接分配給虛擬機(jī)使用,僅支持GPU直通的型號:P100
4、熱添加
vRAM ,vCPU 不僅支持離線添加/刪除,支持在線添加平臺支持在虛擬機(jī)運行情況下調(diào)整CPU和內(nèi)存規(guī)格,虛擬機(jī)不需要重啟即可生效。
應(yīng)用價值
根據(jù)虛擬機(jī)的需求,靈活調(diào)整其配置
縱向擴(kuò)展有效保證單個虛擬機(jī)QoS
與橫向擴(kuò)展有機(jī)結(jié)合,保證集群QoS
注:系統(tǒng)會根據(jù)虛擬機(jī)OS的能力默認(rèn)開啟或關(guān)閉熱添加功能。支持主流Linux系統(tǒng)虛擬機(jī)在線調(diào)整CPU和內(nèi)存;支持主流Windows系統(tǒng)虛擬機(jī)在線調(diào)整內(nèi)存,在線調(diào)整CPU需要重啟才能生效。
5、主機(jī)內(nèi)存超分配
①、內(nèi)存共享,寫時復(fù)制
內(nèi)存共享:虛擬機(jī)之間共享同一物理內(nèi)存空間 (藍(lán)色),此時虛擬機(jī)僅對內(nèi)存做只讀操作
寫時復(fù)制:當(dāng)虛擬機(jī)需要對內(nèi)存進(jìn)行寫操作時 (橙色),開辟另一內(nèi)存空間,并修改映射
②、內(nèi)存置換
內(nèi)存置換:虛擬機(jī)長時間未訪問的內(nèi)存內(nèi)容被置換到存儲中,并建立映射,當(dāng)虛擬機(jī)再次訪問該內(nèi)存內(nèi)容時再置換回來(將外部存儲(部分硬盤空間)虛擬成內(nèi)存,比如Linux中的swap分區(qū))
③、內(nèi)存氣泡
內(nèi)存氣泡:Hypervisor通過內(nèi)存氣泡將較為空閑的虛擬機(jī)內(nèi)存釋放給內(nèi)存使用率較高的虛擬機(jī),從而提升內(nèi)存利用率
華為虛擬化平臺,通過智能復(fù)用以上三種技術(shù)將內(nèi)存復(fù)用比提升至150%,領(lǐng)先C等友商;同等內(nèi)存資源條件下,虛擬機(jī)密度提升150%,降低50%的硬件 (內(nèi)存)采購成本
內(nèi)存復(fù)用技術(shù)開啟之后,是三種技術(shù)一起使用,不存在單獨一項的使用
6、NUMA親和性調(diào)度
NUMA技術(shù)會將CPU及旁邊內(nèi)存綁定形成一個Node節(jié)點。系統(tǒng)會根據(jù)虛擬機(jī)配置、NUMA高級參數(shù)物理主機(jī)NUMA配置自動計算虛擬機(jī)NUMA拓?fù)浣Y(jié)構(gòu)并設(shè)置虛擬機(jī)NUMA與物理機(jī)NUMA親和性,使虛擬機(jī)內(nèi)存訪問性能達(dá)到最優(yōu)
Host NUMA在BIOS界面中開啟或關(guān)閉
Guest NUMA在FusionCompute的集群資源控制中開啟或關(guān)閉,只能分配一個Node中的資源
7、虛擬機(jī)HA實現(xiàn)
1、VM 故障或計算節(jié)點故障;
2、管理節(jié)點查詢VM狀態(tài),發(fā)現(xiàn)VM故障;
3、此時管理節(jié)點判斷VM有HA屬性,則根據(jù)保存的VM信息(規(guī)格、卷),選擇可用的CNA 啟動 VM;
4、CNA 節(jié)點收到 HA 請求,根據(jù)VM規(guī)格、卷信息啟動新的 VM;
5、啟動過程中,將 VM 之前的卷重新掛載,包括用戶卷。
七、拓展
1、虛擬機(jī)熱遷移原理
支持在不影響用戶使用或中斷服務(wù)的情況下在服務(wù)器之間實時遷移虛擬機(jī),從而無需為進(jìn)行計劃內(nèi)服務(wù)器維護(hù)而安排應(yīng)用中斷。
①、熱遷移條件
Ⅰ、虛擬機(jī)
虛擬機(jī)處于運行中的狀態(tài);不能跟主機(jī)綁定;不能掛載(不是安裝哈)光驅(qū)、Tools等外設(shè)設(shè)備;最多同時能遷移8臺虛擬機(jī)
Ⅱ、主機(jī)
目標(biāo)主機(jī)不能處于維護(hù)模式;目標(biāo)主機(jī)需要用有足夠的CPU和內(nèi)存資源;遷移過程中不能將源主機(jī)和目標(biāo)主機(jī)下電或重啟;源主機(jī)和目的主機(jī)的CPU類型種類盡量保持一致,如果低代數(shù)往高代數(shù)遷移時可以支持的(因為高代數(shù)的CPU包含有低代數(shù)的CPU指令),如果高代數(shù)往低代數(shù)遷移,需要開啟集群IMC特性(因為高代數(shù)有些指令,低代數(shù)可能沒有)。IMC特性只針對Intel CPU做調(diào)整
Ⅲ、存儲
使用共享存儲
Ⅳ、網(wǎng)絡(luò)
目的主機(jī)關(guān)聯(lián)需遷移虛擬機(jī)所在的DNS(因為不同DNS之間時存在物理隔離的);源和目的主機(jī)網(wǎng)絡(luò)要互通
②、遷移過程:
1)將虛擬機(jī)配置信息傳送到目標(biāo)主機(jī)上創(chuàng)建空虛擬機(jī)
2)傳送虛擬機(jī)內(nèi)存(迭代遷移)將虛擬機(jī)遷移時的初始內(nèi)存及內(nèi)存變更分片同步到機(jī)上。
3)暫停源虛擬機(jī)并傳送狀態(tài)在原主機(jī)上暫停虛擬機(jī)將最后的變更內(nèi)存?zhèn)鞯侥繕?biāo)主機(jī)
4)恢復(fù)目標(biāo)虛擬機(jī),在目標(biāo)主機(jī)上恢復(fù)虛擬機(jī),并在原主機(jī)上停止虛擬機(jī)。
2、名詞解釋
①、動態(tài)資源調(diào)度
指FusionCompute提供各種虛擬化資源池,包括計算,存儲,網(wǎng)絡(luò)資源池,可以根據(jù)策略實現(xiàn)對這些資源的調(diào)度和管理
具體包括:DRS(計算資源調(diào)度自動化,負(fù)載均衡),FusionCompute的計算集群,配合基于VIMS文件系統(tǒng)的共享存儲;DRS算法實時監(jiān)控集群中每個計算節(jié)點的資源使用情況,引用VMOTION功能,智能遷移負(fù)荷高節(jié)點上虛擬機(jī)到資源充足的節(jié)點上;均衡各節(jié)點資源使用并保障業(yè)務(wù)有充足資源可用。因此,DRS是實現(xiàn)自動負(fù)載均衡的基礎(chǔ)
DPM(動態(tài)節(jié)能調(diào)度,分布式電源管理),電源管理自動化功能會周期性地檢查集群中服務(wù)器的資源使用情況,如果集群中資源利用率不足,則會將多余的主機(jī)下電節(jié)能,下電前會將虛擬機(jī)遷移至其他主機(jī);如果集群資源過度利用,則會將離線的主機(jī)上電,以增加集群資源,減輕主機(jī)的負(fù)荷
②、資源動態(tài)調(diào)整
用戶會根據(jù)其負(fù)載均衡動態(tài)調(diào)度虛擬機(jī)的資源使用,包括離線/在線調(diào)整vcpu數(shù)量,內(nèi)存大小,增加/刪除網(wǎng)卡,掛載虛擬機(jī)磁盤
③、資源動態(tài)管控
指QoS,當(dāng)虛擬機(jī)搶占物理資源時,為保證關(guān)鍵業(yè)務(wù)的運行,可控制虛擬機(jī)的資源使用情況,包括CPU QoS,內(nèi)存QoS,磁盤QoS(磁盤IO上限),網(wǎng)絡(luò)QoS(接收發(fā)送流量整形)
總結(jié)
以上是生活随笔為你收集整理的2.2、云计算FusionCompute计算虚拟化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: client-go实战之二:RESTCl
- 下一篇: IIS 405 Method Not A