虛擬化基本概念
學習重點 瞭解雲端與虛擬化關係 瞭解虛擬化技術
雲端運算與虛擬化的關係 什麼是雲端運算服務? 與虛擬化的關係 將已量化的許多運算資源,以網路為傳送媒介,透過特定的介面給需要服務的使用者 將資源打散,找出最小的計量單位,之後將其全部集中起來,並重新分配的過程 與虛擬化的關係 運算資源量化、匯集並透過服務包裝 隨需存取
雲端運算的層次
虛擬化與雲端完美結合 可以定義及量化資源 CPU個數 記憶體大小 磁碟空間 快速生成以及消滅 虛擬機器遷移
基礎架構虛擬化 基礎架構虛擬化的好處 網路虛擬化 虛擬機器在任何地方都可以存取 虛擬機器可以移動至任何區域機房(使用公有雲) 儲存虛擬化 儲存資源集中化/ 整合異質儲存設備 提升現有儲存設備的可用度與使用率 作業系統虛擬化/虛擬機器 用虛擬化硬體支援舊有的作業系統 集中化管理 備份備援 快速佈建 避免敏感資料外洩
虛擬化好處 Source: http://awsmedia.s3.amazonaws.com/chart01_traditional_720x540.jpg
2010年CIO資訊長認為最重要的資訊投資 - 虛擬化技術 Source: Gartner Executive Programs : “ Leading in Times of Transition : The 2010 CIO Agenda ”
2011 虛擬化與雲端運算應用趨勢 虛擬伺服器佔所有伺服器比例大約是2成 金融業比例約3成 Source:http://www.ithome.com.tw/itadm/article.php?c=65622&s=6
2011 虛擬化與雲端運算應用趨勢 Source:http://www.ithome.com.tw/itadm/article.php?c=65622&s=6
什麼是Hypervisor ? 什麼是Hypervisor ? 依照Hypervisor實作架構可以區分 一個虛擬化平台(virtualization platform) 虛擬機器的容器 讓多個虛擬機器(作業系統)可以同時存在在實體機器上 提供每一個虛擬化的機器一個獨立且不受干擾的操作環境 主要功能就是管理與協調虛擬機器(作業系統)存取實體硬體資源 依照Hypervisor實作架構可以區分 Type 1 : Bare-Metal Hypervisor Type 2 : Hosted Hypervisor
Bare-Metal Hypervisor Type1 Hypervisor Bare-Metal Hypervisor Hypervisor 直接安裝於空機或新機上,直接掌控硬體資源,也就是說硬碟不需先安裝作業系統 優點 高效能、高可用性及高安全性 相關產品:Microsoft Hyper-V、Citrix XenServer、VMware ESX Server …等
Hosted Hypervisor Type2 Hypervisor 優點 缺點 Hypervisor 安裝並執行於一般作業系統(Windows 、Linux)上,透作業系統控制硬體資源 優點 相容性高、方便操作 缺點 運作速度會比較慢 相關產品:Microsoft Virtual Server、 VMware Server、以及KVM…等
Microkernel & Monolithic Bare-Metal Hypervisor 根據實作方式細分 Microkernel Hypervisor Monolithic Hypervisor
Microkernel Hypervisor Hypervisors 本身不包含硬體驅動程式 優點 現有的驅動程式可以立即被使用於虛擬化環境中、Hypervisor更小、更穩定,耗損也較小 缺點 需要有額外的OS管控drivers 例如:Microsoft Hyper-V、 Citrix Xen Server
Monolithic Hypervisor 所有虛擬機器需要安裝及透過Hypervisor-Aware的驅動程式來直接存取資源與硬體 優點: 不需要控制用的作業系統 缺點: 所有需要的Hypervisor-Aware的驅動程式都必須包在Hypervisor核心當中,造成Hypervisor肥大 硬體限制多,需依照軟體原廠所指定的硬體才能順利運作 http://www.vmware.com/resources/compatibility/search.php 例如:VMware ESXi Server
分級保護域 Ring 0用於內核代碼和驅動程序, Ring 2用於某些需要特權的代碼(例如需要I/O權限的用戶程序), 資料來源:https://zh.wikipedia.org/wiki/ %E5%88%86%E7%BA%A7%E4%BF%9D%E6%8A%A4%E5%9F%9F
虛擬化技術(1) 傳統Full Virtualization 使用Binary Translation (機械碼轉譯)技術使虛擬化指令能在Ring 0 下執行 Hypervisor 使用完美的方式包裝虛擬機器 虛擬機器:作業系統不必進行任何修改便可使用 支援的作業系統種類也是最多的 例如:”早期”的Vmware Workstation…等
Ring0 : 傳統CPU 特權模式 傳統CPU 特權模式(CPU Privileged Mode) 分為Ring 0 ~ 3 等4 種層級 Ring 3 – Application Ring 2 Ring 1 Ring 0 (透過Binary Translation 技術轉換,讓真實的OS認為Guest OS 在Ring1 層運作) Ring 0 真實OS / Hypervisor (Virtual Machine Monitor, VMM) 用來控制硬體CPU、I/O、Memory...等 Guest OS
虛擬化技術(2) Para Virtualization 僅有虛擬化CPU跟記憶體 不對設備驅動器做虛擬化或模擬的動作 所以需要虛擬機器裡的作業系統做修改,因此只有OpenSource的核心才能做修改並且執行 例如:過度產品,早期的Xen
虛擬化技術(3) OS-Level Virtualization 在實體作業系統上模擬出一個執行緒 隔離”作業環境” 虛擬環境 CPU/RAM/IO 等資源,全部與實體作業系統共用 完全沒有模擬Hardware 的負擔 效能只下降1~3% 例如:OpenVZ
虛擬化技術(4) Hardware-Assisted Virtualization(硬體輔助) 根據Para Virtualization缺點來進行修改 Intel-VT(Vanderpool)、AMD-V(Pacifica)技術輔助虛擬化 Hypervisor可以使用Root Mode (Ring -1)來管理硬體資源 而虛擬機器裡的Ring 0訊號可以被Hypervisor 擷取並且管理 例如:目前虛擬化技術的主流
Intel 虛擬化技術
Intel 虛擬化技術(1) VT-x/i CPU特權模式虛擬化(i是Itanium CPU使用) VMX root operation (根虛擬化操作) 給Hypervisors使用
開啟硬體輔助虛擬化技術 並不是每一台電腦預設都開啟虛擬化加速功能 處理器&記憶體虛擬化技術Intel VT-x / AMD-V &AMD-Vc 進入BIOS Intel VT-x開啟Intel Virtualization Technology AMD-V開啟“SVM”(Secure Virtual Machine)
Intel 虛擬化技術(2) VT-d (Intel VT for Directed I/O) 虛擬機器可以直接針對週邊硬體做存取 使用了DMA 和interrupt remapping 等技術
開啟硬體輔助虛擬化技術 開啟北橋虛擬化加速Intel VT-d / AMDVi 至BIOS找尋Intel VT-d
Intel 虛擬化技術(3) VT-c (Virtualization Technology for Connectivity) VMDc (Virtual Machine Direct Connect ) 允許VM 可以直接針對實體網路I/O 進行存取 使用PCI-SIG的Single Root I/O Virtualization (SR-IOV) 的技術 可以同時讓多個VM 虛擬機與實體I/O 裝置同時建立通道
Intel 虛擬化技術(3) VMDq (Virtual Machine Device Queues) 沒有VMDq時 透過Hypervisors提供的vSwitch轉送封包給正確的虛擬機 需要額外CPU時間來管理 造成網路效能低落 擁有VMDq時 透過網卡晶片內建的Layer 2 classifier /sorter 以加速網路資料的傳送 可以先行將不同的虛擬機所需的封包,直接在晶片裡面安排好再透過receive queue,直接給虛擬機 提昇網路效能、減少使用CPU
VMDq
SR-IOV 與傳統技術比較(1) 傳統虛擬技術 KVM做法 直接由Hypervisor模擬 裝置 裝置交給QEMU模擬 (User Space)
SR-IOV 與傳統技術比較(2) Device Passthrough SR-IOV 使用AMD-IOMMU or Intel VT-d 使用intel VT-c讓 虛擬機器直接可以 使用VF(最多63個 VF) BIOS需要有VT-d選 項
SR-IOV比較 Source:http://www.redhat.com/summit/2011/
網路卡NIC(Network Interface Card) 支援虛擬化 Gigibit Ethernet 10 GE 買網路卡注意事項 內建網路卡品牌及型號 網路孔數量 支援PXE開機以及Boot ROM更新 目前已知支援虛擬化技術 Intel VT-c (VMDq、VMDc) Intel 82575 Gigabit Ethernet / Controller Intel 82598 10 Gigabit Ethernet Controller Intel 82599EB/ES 10 Gigabit Ethernet Controller AMD (沒有網路設備)
虛擬化技術Intel vs AMD
其他平台是否有虛擬化軟體? ARM CPU Android Bochs (“box”) Pentium 的模擬器 VMWare/LG
X86模擬ARM BlueStacks App Player
參考資料 國家高速網路與計算中心,Pervasive Computing Lab (Percomp Lab),吳長興hsing@nchc.narl.org.tw