一、什么是虛擬化
虛擬化就是在計算機上虛擬化出另一套作業系統,讓一臺計算機上可以運行多個作業系統,
二、虛擬化的應用
虛擬化的出現解決了什么樣的問題?
1、計算資源的浪費(云)
問題:美國環境保護署(EPA)報告的一組有趣的統計資料就證明了其好處,EPA研究服務器和資料中心的能源效率時發現,實際上服務器只有5%的時間是在作業的,在其他時間,服務器都處于“休眠”狀態,
如何解決?
虛擬化的誕生將一臺服務器虛擬化出多個作業系統,通過隔離機制,分成不同的作業系統供多人使用或多程式運行,
2、軟體研發流程
傳統的軟體研發流程問題:
1、資源利用效率低
2、單物理機多應用無法有效隔離(行程空間,cpu資源,磁盤)
3、運維部署不便
4、測驗、版本管理復雜
5、遷移成本高
6、傳統虛擬機,空間占用大,啟動慢,管理復雜
以docker為代表的容器虛擬化技術,解決研發軟體程序中運行環境和配置問題,方便發布,也就方便做持續集成,
三、虛擬化的分類
分類架構圖:

1、純軟體仿真
- 通過模擬完整的硬體環境來化來賓平臺,
- 模擬X86、ARM、 Powerpc等多種CPU
- 效率比較低
- 產品或方案QEMU、 Bochs、 Pearpc
2、虛擬化層翻譯
- 多數的虛擬化而采用虛擬機管理程式 Hypervisor
- Hypervisor是一個軟體層或子系統
也稱為VMM( Virtual Machine Monitor,虛擬機監控器) - 允許多種作業系統在相同的物理系統中運行
- 控制硬體并向來賓作業系統提供訪問底層硬體的途徑
- 向來賓作業系統提供虛擬化的硬體

了解 x86 cpu 保護環
- 虛擬化時遇到了難題,多個作業系統搶占Ring0
- 由于作業系統內核需要訪問cpu、記憶體…(硬體)
- 所以需要搶占Ring 0 這樣子就使用特權指令
- 解決方式:增加hypervisor

(1)無硬體輔助的全虛擬化

(2) 硬體輔助的全虛擬化

- 由cpu增加一層Ring -1單獨供 hypervisor 使用
- 應用指令直接發往作業系統由作業系統呼叫cpu
- 只有 sens… 特殊指令才會被發送到(hypervisor)vmm
Intel VT-x:

(3)半虛擬化
通過定制化的作業系統使得hypervisor與作業系統跑在ring0
優點:
部分指令省去hypervisor的翻譯
性能得到增加
缺點:
需要定制化作業系統,不方便,

3、容器技術
使用 Linux container (內核容器虛擬化) 技術
使得容器使用一個內核,卻隔離了環境
Docker 是什么?
1、Docker 是一個go語言遵從apache2.0協議開源的基于LXC的高級容器引擎
2、docker 想把我們的運行環境,通過標準化的手段自由的組裝或封裝

架構對比:

Hypervisor的分類

型別一:裸金屬架構
沒有單獨的作業系統(或使用定制的作業系統)
優點:不用去維護中間不需要的作業系統
代表:Esxi
型別二:宿主機型
在作業系統上安裝虛擬化的服務
基于底層的作業系統去虛擬化
缺點:底層的作業系統一旦奔潰上面的虛擬機也會停止運行
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/352066.html
標籤:其他
上一篇:【歷史上的今天】11 月 7 日:圖靈獎女性得主誕生;Twitter 告別 140 字符時代;首位中國 AI 主播
