這是我參與8月更文挑戰的第13天前端
@TOCnode
一、Fusionsphere是華爲虛擬化解決方案,linux
由4個軟件套件組成。緩存
他們分別是:安全
服務器虛擬化產品,完成服務器計算資源虛擬化、服務器下掛存儲資源虛擬化(本地、共享)、軟件定義網絡。服務器
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-kEWEwRrP-1628818997296)(C:\Users\Jack\AppData\Roaming\Typora\typora-user-images\image-20210811213552950.png)]markdown
CNA英文全稱:Compute Node Agent,CNA部署在須要虛擬化的服務器上。網絡
1.提供虛擬計算功能。架構
2.管理計算節點上的虛擬機。併發
3.管理計算節點上的計算、存儲、網絡資源。
VRM英文全稱:Virtual Resource Management,VRM能夠部署成VM或者部署在物理服務器上;VRM對外提供網頁操做界面供管理維護人員。
•管理集羣內的塊存儲資源。
•管理集羣內的網絡資源(IP/VLAN),爲虛擬機分配IP地址。
•管理集羣內虛擬機的生命週期以及虛擬機在計算節點上的分佈和遷移。
•管理集羣內資源的動態調整。
•經過對虛擬資源、用戶數據的統一管理,對外提供彈性計算、存儲、IP等服務。
•經過提供統一的操做維護管理接口,操做維護人員經過WebUI遠程訪問FusionCompute對整個系統進行操做維護,包含資源管理、資源監控、資源報表等。
FusionManager主要對雲計算的軟件和硬件進行全面的監控和管理,實現同構,異構VMware虛擬化多資源池管理,軟硬件統一告警監控,並向內部運維管理人員提供管理門戶。
虛擬化管理軟件(華爲自主研發的雲管理專家平臺)
什麼是異構?
即由不一樣的元素或部分組成,不同不均勻的意思
a、異構虛擬化資源統一管理(FC、VMware) b、異構硬件統一監控(異構廠商服務器、存儲、交換機、防火牆等硬件設備運行狀態) c、多數據中心資源統一管理,並建立VDC(虛擬數據中心)分配給租戶,VDC資源可跨多個物理DC。 d、提供安全的網絡隔離環境,VDC內部的VPC(虛擬私有云),爲VDC內部的業務VM創造安全隔離的網絡
VPC網絡類型:
內部網絡---VPC內部VM間通訊 直連網絡---VPC內部VM直連到網絡,網絡通訊 路由網絡---VPC內部VM經過虛擬路由器與網絡,網絡通訊
提供跨站點容災能力
容災管理軟件,在同城容災、異地容災、兩地三中心等容災場景下實現容災資源接管和一鍵式快速切換,最大程度下降生產數據中心業務中斷時間。
提供虛擬機的備份能力
VM備份管理軟件,針對業務VM作備份策略以及備份和恢復實施,保障業務VM數據的安全性。
只採用FusionCompute做爲統一的操做維護管理平臺對整個系統進行操做與維護的應用場景
多套虛擬化環境須要進行統一管理
統一管理和維護:支持同時接入FusionCompute和VMware虛擬化環境,對多虛擬化環境的資源和業務進行統一的管理和維護。
統一監控告警:支持對多個虛擬化環境、多種物理設備的告警進行統一接入、監控和管理。
多租戶共享VPC場景
多租戶私有VPC場景
虛擬化是雲計算的基礎,但不等於雲計算
其實就是一個抽象層,能夠屏蔽底層物理資源的差別,將物理資源抽象成統一規格的邏輯資源
舉個栗子:我無論底層的服務器是哪一個廠家的,華爲、H3C,浪潮、聯想的,只要你是統一X86架構或者ARM架構的。我都將你的物理資源進行池化給上層使用,咱們只知道在池化後CPU量化成多少VCPU給上層使用,上層的虛擬機只是從量化後的虛擬池中取資源,內存,存儲相似
缺陷:
a、資源利用率底下或者不均衡
b、HOS和APP與底層硬件緊耦合
若是服務器硬件故障或者HOS崩潰將形成APP應用沒法使用,中斷業務**(模塊或者系統之間關係太緊密,存在相互調用的關係 )**
c、資源擴容不方便
擴容週期長、考慮硬件兼容性、中斷業務實現擴容
d、遷移不靈活
HOS+APP從一臺物理主機遷移至另一臺物理主機,須要中斷業務,手動製做HOS+APP打包鏡像,遷移至目標主機考慮驅動兼容問題,是否須要重裝驅動。
將服務器物理資源抽象成邏輯資源
優點:
a、資源利用率提高
一臺物理主機上的虛擬化層運行多臺VM,多臺VM運行不一樣GOS以及APP。
b、GOS和APP與物理服務器解耦
物理服務器故障或者VMM故障,經過HA機制能夠保障VM的GOS和APP還能正常在集羣內其餘物理服務器上運行(會有短暫業務中斷)
c、資源擴容方便
VM側:在線VCPU、VMEM、VDISK、VNIC擴容,不影響業務 離線虛擬資源兼容,使空閒資源回收到虛擬資源池 主機側:經過熱遷移將主機上VM遷移走以後下電擴容硬件資源,實現不中斷業務的物理資源擴容。
d、遷移靈活
FC平臺能夠實現VM熱遷移(源主機和目的主機能夠是不一樣廠商服務器) 異構虛擬化平臺的VM遷移,rainbow(華爲遷移工具),實現VM從第三方虛擬化平臺遷移至華爲虛擬化平臺。
CPU有四個運行級別分別是:
ring0-特權級--OS內核使用
ring1/ring2--通常驅動程序使用
ring3--用戶態應用使用
敏感指令---影響系統正常運行的指令
特權指令:決大多數的敏感指令是特權指令,特權指令只能在處理器的最高特權級 (內核態)執行。
RISC---精簡指令集CPU---敏感指令在ring0 大型機/小型機/手機 arm架構
CISC---複雜指令集CPU---敏感指令打散在各個ring級別 X86架構
app或者OS下發指令全被vmm截獲並進行轉譯,會對r0和r3進行分類,if r3指令集那麼直接放行給cpu,由cpu調度。if r0或者敏感指令則仍是交給vmm由vmm進行特權解除,陷入vmm進行模擬調用
經過對OS的修改,讓ring0和敏感級別指令集直接交給vmm,ring3直接放行
支持硬件輔助虛擬化的cpu(vt-x、amd-v),有兩種cpu模式,vmx root模式和vmx non-root模式,兩種模式都支持ring0-ring3,vmm運行於root模式下,Gos運行於non-root模式下,也就是在cpu硬件上作了區分,這樣vmm的陷入模擬就不須要了,完全解放了vmm的壓力。
a、GOS的ring0、敏感指令下發到物理硬件上,CPU會觸發異常,VMM檢測到異常消息,會截獲GOS的R0、敏感指令,特權解除、陷入VMM、模擬執行到物理CPU。
全虛擬化
VMM會主動截獲VM全部CPU操做,並進行過濾篩選; 若是是R0、敏感(可能在R0、R3上),進行二進制轉譯,轉換成安全指令下發給CPU模擬執行。 若是是R3級別,下發給物理CPU 特色:VMM開銷最大,可是VM GOS兼容高,支持全部VM運行的GOS。
半虛擬化
修改VM的GOS內核,
VM主動將R0和全部敏感指令(R0 R3)主動下發給VMM,VMM只須要模擬執行,下降VMM開銷。VM的R3級別指令直接下發到物理CPU。 特色:VMM開銷下降,可是VM GOS有要求,開源內核的GOS才支持CPU半虛擬化,例如linux。
硬件輔助虛擬化
修改CPU架構,經過intel VT-X AMD的AMD-V CPU架構實現上層VMM和VM全部CPU相關操做所有下發硬件,不須要VMM對VM作任何CPU相關操做。 VMX root模式:給VMM使用 VMX non root模式:給VM使用
當VM下發R0、敏感指令,先到non root模式中,經過VM-exit 陷入到root模式中,由root模式模擬執行,返回結果經過VM-entry動做 回退到non root模式,逐步返回結果給VM。
當VM下發R3指令,直接在non-root模式下處理。
特色:徹底解放VMM,對CPU有特殊要求,對VM的GOS無要求。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-vfaxievU-1628818997302)(C:\Users\Jack\AppData\Roaming\Typora\typora-user-images\image-20210811232316346.png)]
**guest模式:**VM運行模式-------CPU--non root
kernal模式:KVM運行模式-----CPU--root
user模式:QEMU運行模式------CPU--root**(Qemu是一款模擬計算機硬件設備的軟件,因此是ring3級別的指令,但它調用的是底層硬件設備因此在root模式)**
VM執行非IO類R3級別指令,訪問CPU直接在non-root模式下處理
VM執行非IO類R0、敏感指令,non-root<---->root模式
VM執行IO類指令,non-root--->root模式(KVM)--->root模式(QEMU)-->操做IO硬件
物理服務器VCPU總量=物理CPU個數X核數X超線程數(2)一個CPU有兩個超線程 用戶VM使用的VCPU數量=物理服務器VCPU總量-管理域預留VCPU數量 CNA主機提供給VM的CPU資源(主頻)=用戶VM使用的VCPU數量*物理CPU主頻 全部用戶VM使用的CPU主頻總量不能超過上述值
主機的CPU和內存資源分爲兩部分:管理域和虛擬化域。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-8cjTa4tT-1628818997304)(C:\Users\Jack\AppData\Roaming\Typora\typora-user-images\image-20210812110437310.png)]
管理域CPU和內存:用於運行FusionCompute管理系統。 虛擬化域CPU和內存:用於運行虛擬機。
其中,管理域CPU佔兩個超線程,其他爲虛擬化域CPU。 管理域2vCPU 用戶VM建立只能看到22vCPU
HOS爲全部APP應用維護VA--MA地址映射關係,使得全部APP都能使用從0開始連續的內存地址空間,多應用間邏輯隔離,互不影響。
虛擬內存地址(Virtual MemoryAddress,即 VA)
機器內存地址(Machine Memory Address,即 MA)
虛擬內存地址(Virtual MemoryAddress,即 VA)
物理內存地址(Physical Memory Address,即 PA)
機器內存地址(Machine Memory Address,即 MA)
GOS維護:APP--- GVA---GPA映射表
VMM(KVM)維護:VM--- GPA--HVA映射表
HOS維護:虛擬化層+APP HVA---HPA映射表
VM內部應用訪問內存,須要查三張映射表才能訪問到物理內存,開銷較大
虛擬化後的操做系統能夠分爲HostOS也就是宿主操做系統,往上是VMM層也就是虛擬化層,最上面能夠跑不少GuestOS也就是來賓操做系統,GuestOS上面跑的有應用。
那麼這些應用要訪問內存的物理內存須要查三個表,分別是GuestOS維護的GVA和GPA,
由GPA查詢由VMM維護的GPA和HVA的關係
由HVA繼續查詢HOS維護的HVA和HPA關係表,從而找到HPA獲得具體的物理地址
VMM向上查詢GOS內部的 GVA--GPA映射表 VMM向下查詢HOS內部的 HVA--HPA映射表 結合本身GPA--HVA映射表,將三張映射表整合造成GVA--HPA影子頁表,並載入CPU的MMU中,提高查錶速度。
MMU是內存管理單元
Intel EPT AMD NPT 技術
Intel的CPU提供了**EPT (Extended Page Tables,擴展頁表)**技術,直接在硬件上支持GVA->GPA->HPA的地址轉換,從而下降內存虛擬化實現的複雜度,也進一步提高內存虛擬化性能。
先查找在整合!
CPU查找GOS內部的GVA--GPA映射表,載入CPU內部造成CR3表 CPU整合 GPA--HVA映射表+HVA---HPA映射表,造成EPT擴展頁表 查表動做不在由VMM參與,CPU硬件實現查表 CR3+EPT,若是缺頁,才觸發異常,轉由VMM和HOS分配頁表項,從新載入到CPU內部的EPT中。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-mdiboGsR-1628818997309)(C:\Users\Jack\AppData\Roaming\Typora\typora-user-images\image-20210812113707447.png)]
內存管理的最小塊級單位叫頁,一個page是4096個字節,1M有256個page
cpu經過MMU(內存管理單元)維護page表記錄
因此條目越少,查詢越簡單
Huge pages是經過使用大頁內存來取代傳統的 4kb 內存頁面,以適應愈來愈大的系統內存,讓操做系統能夠支持現代硬件架構的大頁面容量功能。 Huge pages 有兩種格式大小: 2MB 和 1GB , 2MB 頁塊大小適合用於 GB 大小的內存, 1GB 頁塊大小適合用於 TB 級別的內存; 2MB 是默認的頁大小。
THP 是一個抽象層,可以自動建立、管理和使用傳統大頁。
標準大頁管理是預分配的方式
而透明大頁管理則是動態分配的方式。
一頁內存越大,條目越少,TLB緩存越容易查詢
頁表緩存、轉址旁路緩存,爲CPU的一種緩存
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-g0fvVan6-1628818997312)(C:\Users\Jack\AppData\Roaming\Typora\typora-user-images\image-20210812212317351.png)]
IO全虛擬化:VM使用的IO設備是由VMM層模擬出來的,VMM層負責對VM的IO請求進行監測、截獲、模擬執行動做,對VMM層損耗較大,但對VM的GOS無需作任何操做,實現簡單。
IO處理流程:APP---GOS---虛擬IO設備驅動---KVM(IO trap)----IO共享環(一段內存)---QEMU---HOS內核 IO設備硬件驅動---物理IO硬件
優勢:VM的GOS不須要作修改,兼容大部分的GOS,兼容大部分的IO設備 缺點:IO訪問路徑長,VMM(KVM)開銷大,IO處理性能差,VM數量較多時,併發處理性能很是低。
IO半虛擬化:VM使用的IO設備任然是由VMM層模擬出來,可是GOS內部須要作修改,安裝pv driver,使得VM可以主動將IO請求下發給VMM,VMM無需監測、截獲動做,製做模擬執行,下降VMM層性能損耗,可是對GOS有操做要求,是折中的解決方式。
IO處理流程:APP---GOS---virtio前端驅動---IO共享環(一段內存)---QEMU---HOS內核 IO設備硬件驅動---物理IO硬件 KVM只作通知 優勢:IO訪問路徑變短,VMM(KVM)開銷下降,IO處理性能高,支持批量IO處理 缺點:VM的GOS須要修改(安裝前端驅動),對IO設備兼容性有要求,老舊IO設備可能不支持
IO硬件輔助虛擬化:須要特殊硬件支持(支持虛擬化能力的IO板件),VM的GOS安裝硬件驅動,使得VM下發IO請求經過硬件驅動直接到達硬件,無需VMM作任何處理,性能最高,成本最高,可以實現一個硬件被多臺VM共用。
優勢:IO性能最高,VMM(KVM)不須要參與 缺點:特殊IO設備才能實現,主板PCI插槽有限,支持VM的數量有限,成本高 VM失去不少高級特性(HA DRS 內存快照等等)
(1)份額:cpu資源搶佔時 (2)預留:cpu資源搶佔時 (3)限制:
(1)份額:內存搶佔時 (2)預留: (3)限制:
能夠經過流量整形限制虛擬機網卡的網絡流量發送和接收速率 操做:網絡---DVS---端口組---網絡設置---發送和接收方向的流量整形 (1)平均帶寬: (2)峯值帶寬: (3)突發大小:
vm---配置---磁盤----更多---設置磁盤IO上限 (1)每秒的讀或寫或讀寫字節數(BPS): (2)每秒的讀或寫或讀寫個數(IOPS)
系統主動回收虛擬機暫時不用的物理內存,分配給須要複用內存的虛擬機。內存的回收和分配均爲系統動態執行,虛擬機上的應用無感知。整個物理服務器上的全部虛擬機使用的分配內存總量不能超過該服務器的物理內存總量。
將外部存儲虛擬成內存給虛擬機使用,將虛擬機上暫時不用的數據存放到外部存儲上。系統須要使用這些數據時,再與預留在內存上的數據進行交換。
多臺虛擬機共享數據內容相同的內存頁。 注意:能夠增長主機的內存交換分區 內存交換分區目前只支持虛擬化本地硬盤的數據存儲
物理服務器內部按node調度cpu和內存,本地調用性能最高,跨node調用性能損耗大,因此host numa能夠實現主機上層應用調用cpu和內存時在hostnuma的控制下儘可能從同一物理node內調用
讓虛擬機也呈現NUMA架構,虛擬機上層應用調用虛擬機的vcpu和vRAM時也能儘可能從同一vnode內來調用(一個vnode的vcpu和vRAM來源一個物理node)---虛擬機上層應用調用cpu和內存資源時最終會映射到一個物理node內去調用 一個虛擬機的不一樣vnode能夠對應底層的不一樣物理node
1.VM故障或者物理節點故障 2.VRM查詢VM狀態,發現VM故障 3.VRM節點判斷VM有HA特性,則根據保存的VM信息選擇可用的CNA主機啓動VM 4.CNA節點收到HA請求,根據VM規格,卷信息建立新的VM 5.啓動過程當中,將VM以前的卷從新掛載,包括用戶卷