B站視頻
虛擬化技術(shù):計(jì)算虛擬化、存儲(chǔ)虛擬化、網(wǎng)絡(luò)虛擬化。
一、計(jì)算虛擬化介紹
- 計(jì)算虛擬化的分類及作用
1、 CPU虛擬化:保障CPU資源的合理調(diào)度以及VM上的指令能夠正常高效的運(yùn)行。
2、 內(nèi)存虛擬化:保障內(nèi)存空間的合理分配、管理、隔離以及高效可靠的使用。
3、 I/O虛擬化:保障VM的IO操作隔離與正常高效地執(zhí)行。
- 常見(jiàn)的計(jì)算服務(wù)架構(gòu)
虛擬化只是底層硬件與上層OS/app解耦,提供可靈活分配地技術(shù)資源池地底層技術(shù)。要想實(shí)現(xiàn)虛擬機(jī)的創(chuàng)建與管理,需要與其他組件(鏡像、調(diào)度、存儲(chǔ)、網(wǎng)絡(luò)等)協(xié)同工作才能完成,并提供完整的計(jì)算服務(wù)。
- OpenStack Nova(開(kāi)源)
開(kāi)源的云平臺(tái),通過(guò)不同同組件提供計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)等多種云服務(wù)。其中計(jì)算服務(wù)由Nova組件提供,通過(guò)nova-API與其他組件通信,通過(guò)nova-compute對(duì)接不同的虛擬層提供計(jì)算虛擬化服務(wù)
Nova架構(gòu):
- 阿里云ECS架構(gòu)(廠商私有)
云服務(wù)器ECS是阿里云提供的基于KVM虛擬化(上一節(jié)提到的全虛擬化<=>混合虛擬化)的彈性計(jì)算服務(wù),建立在阿里云飛天(Apsara)分布式操作系統(tǒng)上,實(shí)現(xiàn)計(jì)算資源的即開(kāi)即用和彈性伸縮。
請(qǐng)求的主要調(diào)用流程:OpenAPI --> 業(yè)務(wù)層 --> 控制系統(tǒng) --> 宿主機(jī)服務(wù)。
- 騰訊云CVM架構(gòu)
云服務(wù)器CVM(Cloud Virtual Machine)是騰訊提供的基于KVM虛擬化的彈性計(jì)算服務(wù),建立在騰訊云分布式資源管理調(diào)度系統(tǒng)vStation上(有自己的分布式系統(tǒng))。
請(qǐng)求調(diào)用流程為:API Server --> vStation --> 服務(wù)器集群。
二、CPU虛擬化
在物理機(jī)(宿主機(jī))中通過(guò)進(jìn)程或線程這種純軟件的方式模擬出假的CPU。
通過(guò)CPU虛擬化可以將一個(gè)物理CPU發(fā)給不同的虛擬機(jī)使用,但物理CPU核數(shù)要大于虛擬CPU總核數(shù),因?yàn)樘摂M出來(lái)的每顆CPU實(shí)際上就是一個(gè)線程或進(jìn)程,虛擬CPU過(guò)多時(shí),需要進(jìn)行線程/進(jìn)程的切換,浪費(fèi)時(shí)間。
- CPU虛擬化的計(jì)算
總資源 = 服務(wù)器CPU個(gè)數(shù) * 單個(gè)CPU的核數(shù)kernel * 線程(超線程為2,單線程為1,一般為超線程)
eg. 某個(gè)服務(wù)器有四個(gè)主頻為3.0GHz的CPU,每個(gè)CPU四核,超線程。
∴ 服務(wù)器總共可以虛擬出來(lái)的VCPU = 4 * 4 * 2 = 32個(gè);
∴ 總資源為 32 * 3.0GHz = 96GHz。
一般多個(gè)虛擬機(jī)之間可以復(fù)用一個(gè)物理CPU,因此單臺(tái)服務(wù)器上的虛擬機(jī)可以使用的VCPU大于總的VCPU數(shù)量。
- CPU Qos(服務(wù)質(zhì)量)
CPU服務(wù)質(zhì)量,用來(lái)控制虛擬機(jī)使用CPU資源的大小。
主要分為三類:份額、預(yù)留、限額。
(1) CPU資源限額:控制虛擬機(jī)占用物理資源使用的上限;
(2) CPU資源份額:定義了多臺(tái)虛擬機(jī)在競(jìng)爭(zhēng)物理CPU資源時(shí),需要按比例分配計(jì)算資源;
(3) CPU預(yù)留資源:定義了多臺(tái)虛擬機(jī)在競(jìng)爭(zhēng)物理CPU時(shí),每臺(tái)虛擬機(jī)最低分配的計(jì)算資源。
在分配時(shí),最先看預(yù)留,再看份額,最后看限額。
eg. 一個(gè)2.8GHz的單物理機(jī),三臺(tái)VM:A、B、C,份額分別是:1000、2000、4000,預(yù)留為:700MHz、0MHz、0MHz。思考:滿CPU運(yùn)行時(shí)每臺(tái)資源。
解:先看預(yù)留:A有預(yù)留700MHz,B、C沒(méi)有預(yù)留
∴ A = 700MHz;
再看份額,由于A有預(yù)留,已經(jīng)分配,因此不看A,剩下B、C比例為2 : 4 = 1 : 2;
∴ B = (2.8GHz - 700MHz) * (1/3) = 700MHz;
C = (2.8GHz - 700MHz) * (2/3) = 1.4GHz;
- NUMA(Non Uniform Memory Access Architecture)
非統(tǒng)一內(nèi)存訪問(wèn)體系結(jié)構(gòu),提高物理服務(wù)器性能的一種技術(shù)。
原理:將物理服務(wù)器的CPU和內(nèi)存資源分到多個(gè)node上,由于node內(nèi)部可以獨(dú)立工作,node內(nèi)的內(nèi)存訪問(wèn)效率最高。NUMA則保證了一個(gè)VM上的VCPU盡量分配到同一個(gè)node中的物理CPU上,如果一臺(tái)VM的VCPU跨node訪問(wèn)內(nèi)存的話,訪問(wèn)的延時(shí)會(huì)增加。
保證VM1只占用CPU1,而不會(huì)占用CPU1的一部分再占用CPU2的一部分。
三、內(nèi)存虛擬化
目標(biāo):保障內(nèi)存空間合理分配、管理以及隔離、高效地運(yùn)行。
內(nèi)存虛擬化抽象了物理內(nèi)存(32位機(jī)尋址空間2^32,64位機(jī)尋址空間2^64)。底層有機(jī)制將虛擬地址根據(jù)頁(yè)表映射成相應(yīng)的物理地址。
- 內(nèi)存虛擬化類型
1、全虛擬化 <==> 影子頁(yè)表技術(shù)SPT(Shadow Page Table)
為每個(gè)VM維護(hù)一個(gè)SPT,記錄虛擬化內(nèi)存與物理地址內(nèi)存的映射關(guān)系。VMM將SPT提交給CPU的內(nèi)存管理單元MMU(地址轉(zhuǎn)換單元)進(jìn)行地址轉(zhuǎn)換,VM的頁(yè)表無(wú)需改動(dòng)。
VM的頁(yè)表固定,分配的物理內(nèi)存也固定。
2、半虛擬化 <==> 頁(yè)表寫入法
為每個(gè)VM創(chuàng)建一個(gè)頁(yè)表并向VMM注冊(cè)。VM運(yùn)行過(guò)程中VMM不斷管理和維護(hù)該頁(yè)表,確保VM能直接訪問(wèn)到合適的地址。
VM頁(yè)表不固定,可動(dòng)態(tài)修改,也可動(dòng)態(tài)伸縮(物理內(nèi)存不夠可再分配,然后修改VM頁(yè)表)。
3、硬件輔助內(nèi)存虛擬化 <==> Intel擴(kuò)展頁(yè)表EPT(Extend Page Table) 和 AMD嵌入頁(yè)表NPT(Nested Page Table)全虛擬化和半虛擬化都增加了一個(gè)頁(yè)表,相當(dāng)于增加了一個(gè)中間商,效率不高
EPT/NPT是MMU的一個(gè)擴(kuò)展,CPU硬件的一個(gè)特性(自帶的,嵌入了CPU),通過(guò)硬件方式實(shí)現(xiàn)GuestOs物理內(nèi)存 --> HostOS物理內(nèi)存的地址轉(zhuǎn)換,比上述開(kāi)銷低、性能高。
- 內(nèi)存復(fù)用
在服務(wù)器物理內(nèi)存一定的情況下,通過(guò)綜合運(yùn)用內(nèi)存復(fù)用單項(xiàng)技術(shù)(內(nèi)存氣泡、內(nèi)存共享、內(nèi)存交換)對(duì)內(nèi)存進(jìn)行分時(shí)復(fù)用。
通過(guò)內(nèi)存復(fù)用,使得虛擬機(jī)內(nèi)存規(guī)格總和大于服務(wù)器內(nèi)存規(guī)格總和,提高服務(wù)器中虛擬機(jī)密度。(邏輯意義上6G --> 9G)
內(nèi)存復(fù)用Qos:
(1) 內(nèi)存預(yù)留:VM預(yù)留最低的物理內(nèi)存;
(2) 內(nèi)存份額:適用資源復(fù)用場(chǎng)景,按比例分配內(nèi)存資源。
常見(jiàn)內(nèi)存復(fù)用技術(shù):
1、內(nèi)存氣泡
虛擬化層將較空閑的VM內(nèi)存,分配給內(nèi)存使用較高的虛擬機(jī),提高物理內(nèi)存利用率。但所有VM使用的分配內(nèi)存總量不能超過(guò)該服務(wù)器的物理內(nèi)存總量。
內(nèi)存的回收和分配由虛擬化層實(shí)現(xiàn),虛擬機(jī)上的應(yīng)用無(wú)感知。
2、內(nèi)存交換
將外部存儲(chǔ)虛擬成內(nèi)存給VM使用(其中存儲(chǔ)的是不常用的),將VM上長(zhǎng)時(shí)間未訪問(wèn)的數(shù)據(jù)存放到外部存儲(chǔ)上,建立映射關(guān)系。VM再次訪問(wèn)這些數(shù)據(jù)時(shí),通過(guò)映射關(guān)系再與內(nèi)存上的數(shù)據(jù)進(jìn)行交換。
3、內(nèi)存共享
VM對(duì)共用的內(nèi)存(共享數(shù)據(jù)內(nèi)容為0的內(nèi)存頁(yè))做只讀操作,當(dāng)有寫操作時(shí),運(yùn)用寫時(shí)復(fù)制(開(kāi)辟另一塊空間,并修改映射)。
eg. 兩臺(tái)VM中有1/3的信息是一樣的,就用共享內(nèi)存,其余2/3不一樣的存放在自己的內(nèi)存中。
內(nèi)存復(fù)用eg. 物理內(nèi)存6G,部署三臺(tái)虛擬機(jī),未開(kāi)啟內(nèi)存復(fù)用時(shí),每臺(tái)VM只各分配了2G內(nèi)存(1:1:1分配),開(kāi)啟內(nèi)存虛擬化,通過(guò)內(nèi)存復(fù)用可將物理的6G變成邏輯上的9G,這樣每臺(tái)虛擬內(nèi)存3G(多出來(lái)的1G是通過(guò)氣泡(空閑)、交換(外存)、共享(相同的)虛擬出來(lái)的)。
四、I/O虛擬化
目標(biāo):保障虛擬機(jī)的IO操作隔離與正常高效的運(yùn)行。
假設(shè)大部分計(jì)算服務(wù)都遷移到了虛擬化環(huán)境中(好處:資源共享且減少開(kāi)銷),而虛擬機(jī)要訪問(wèn)外圍設(shè)備(磁盤、網(wǎng)絡(luò)等,且即使在非虛擬化環(huán)境中訪問(wèn)外圍設(shè)備也需要技術(shù)–>應(yīng)用程序使用系統(tǒng)調(diào)用),因此到達(dá)虛擬機(jī)層面,要達(dá)到硬件的訪問(wèn)速度很困難,如何處理虛擬化IO呢?
方法:
(1) 全虛擬化:通過(guò)軟件模擬的形式模擬IO設(shè)備(性能不高);
(2) 半虛擬化:由Hypervisor提供資源調(diào)用接口。VM通過(guò)特定的調(diào)用接口與Hypervisor通信,完成獲取完整IO資源控制操作(需要修改內(nèi)核以及驅(qū)動(dòng)程序,存在移植性和適應(yīng)性問(wèn)題,導(dǎo)致其使用受限。即只能在當(dāng)前環(huán)境中運(yùn)行。但性能高);
(3) 硬件輔助虛擬化(I/O直通技術(shù)):通過(guò)硬件輔助,使虛擬機(jī)不用通過(guò)VMM直接訪問(wèn)物理設(shè)備。
–>常用SR-IOV(Single Root I/O Virtualization)單根I/O虛擬化標(biāo)準(zhǔn)。該技術(shù)可以直接虛擬出128~512個(gè)網(wǎng)卡,讓虛擬機(jī)都拿到一塊獨(dú)立的網(wǎng)卡,直接使用I/O資源。
- I/O環(huán)
非密集I/O:1s都的次數(shù)很少;
密集I/O:1s讀的次數(shù)多但每次讀的內(nèi)容少(寬度小)。
I/O環(huán)適配功能主要用來(lái)提升大塊(44K以上)多隊(duì)列(32隊(duì)列深度以上)類型的IO密集型業(yè)務(wù)中I/O的性能(就是將存儲(chǔ)設(shè)備資源利用率提高)。
用戶可以通過(guò)開(kāi)啟I/O環(huán)適配功能,提升I/O性能。
五、常見(jiàn)集群策略
集群(cluster):計(jì)算機(jī)系統(tǒng),通過(guò)一組計(jì)算機(jī)或服務(wù)器的軟硬件連接起來(lái),高度緊密地協(xié)作完成計(jì)算工作。
在客戶端看來(lái)只有一臺(tái)設(shè)備為其提供服務(wù),但實(shí)際上它是一群設(shè)備地集合,只不過(guò)他們提供的服務(wù)一樣。
好處:集群中單個(gè)計(jì)算機(jī)稱為節(jié)點(diǎn),通過(guò)局域網(wǎng)連接,利用多個(gè)計(jì)算機(jī)進(jìn)行并行計(jì)算,獲得很高的計(jì)算速度;也可以用用多個(gè)計(jì)算機(jī)做備份,提高可靠性。
- 虛擬機(jī)的HA機(jī)制
HA(High Availability):高可用性。一種讓服務(wù)中斷盡可能少的技術(shù)。將多臺(tái)主機(jī)組建成一個(gè)故障轉(zhuǎn)移集群,運(yùn)行在集群上的服務(wù)(or VM)不會(huì)因?yàn)閱闻_(tái)主機(jī)的故障而停止。
好處:提升故障恢復(fù)速度(秒級(jí)),降低業(yè)務(wù)中斷時(shí)間,保證業(yè)務(wù)連續(xù)性,實(shí)現(xiàn)一定的系統(tǒng)自維護(hù)。
- 動(dòng)態(tài)資源調(diào)度(DRS)
DRS(Dynamic Resource Scheduling)動(dòng)態(tài)資源調(diào)度:根據(jù)對(duì)資源池資源負(fù)載的動(dòng)態(tài)監(jiān)控,合理觸發(fā)均勻分配規(guī)則,實(shí)現(xiàn)資源池中的物理服務(wù)器之間重新分配虛擬機(jī)的目的。–> 負(fù)載均衡,削峰填谷
當(dāng)前物理服務(wù)器上負(fù)載過(guò)大時(shí),通過(guò)DRS將虛擬機(jī)遷移到其他負(fù)載較輕的物理服務(wù)器上;當(dāng)虛擬機(jī)負(fù)載過(guò)大使,DRS將為資源池中的物理服務(wù)器重新分配虛擬機(jī)可使用的資源,在多個(gè)虛擬機(jī)之間智能地分配可用資源。
- 分布式電源管理(DPM)
DPM(Distributed Power Management):分布式電源管理,用于業(yè)務(wù)較輕(負(fù)載較小)時(shí),將虛擬機(jī)動(dòng)態(tài)“集中”到集群中的少部分主機(jī)上,將其他主機(jī)待機(jī),節(jié)省電力消耗,等到業(yè)務(wù)量(負(fù)載)較大時(shí),再重新喚醒之前待機(jī)的主機(jī)。
執(zhí)行DPM策略的前提是開(kāi)啟DRS策略。DMP策略依賴DRS進(jìn)行虛擬機(jī)的轉(zhuǎn)移。
- 集成存儲(chǔ)器控制器(IMC)
IMC(Intergrated Memory Controller):集成存儲(chǔ)器控制器。設(shè)置IMC策略,使虛擬機(jī)可以在不同CPU類型的主機(jī)之間進(jìn)行切換,確保主機(jī)向虛擬機(jī)提供相同的CPU功能集。即使主機(jī)的實(shí)際CPU不同,也不會(huì)因?yàn)榧嫒菪赃w移失敗。
不建議開(kāi)啟IMC,最好將相同的CPU放在一個(gè)集群里。
六、華為FusionCompute
FusionCompute是華為云操作系統(tǒng)(FusionSphere)的一款基礎(chǔ)軟件,主要負(fù)責(zé)底層硬件資源(計(jì)算、存儲(chǔ)、網(wǎng)絡(luò))的虛擬化。通過(guò)統(tǒng)一的接口,對(duì)虛擬出來(lái)的資源進(jìn)行集中的調(diào)度和管理,從而降低業(yè)務(wù)的運(yùn)行成本,保證系統(tǒng)的安全性和可靠性。
組成:
(1) 計(jì)算節(jié)點(diǎn)代理CNA(Computing Node Agent):其中包含VNA(Virtual Node Agent)虛擬節(jié)點(diǎn)代理,VNA主要負(fù)責(zé)計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)虛擬化的配置以及管理。CNA相當(dāng)于安裝在物理服務(wù)器上的OS,主要提供虛擬計(jì)算功能,管理計(jì)算節(jié)點(diǎn)上的虛擬機(jī),管理計(jì)算節(jié)點(diǎn)上的計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)資源。
(2) 虛擬資源管理器VRM(Virtual Resource Manager):FC的管理單元,一般安裝在虛擬機(jī)上,也可以以ISO(鏡像)方式安裝在物理服務(wù)器上,主要提供對(duì)資源的集中管理,并提供統(tǒng)一的維護(hù)操作接口。
CNA一般只有一個(gè),VRM可以是多個(gè)。即CNA虛擬出來(lái)資源,VRM管理資源。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-763680.html
- 架構(gòu)
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-763680.html
到了這里,關(guān)于【云計(jì)算基礎(chǔ)知識(shí)2】計(jì)算虛擬化的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!