前面小編已經分享了三篇關于虛擬化的內容,后臺看見很多朋友們的私信,感謝大家的支持!今天我們將進一步深入探討虛擬化技術的相關內容,希望能夠為您提供更全面、更深入的理解。通過本次探討,您將能夠了解到更多關于虛擬化技術的基本知識,從而更好地認識和利用這一重要的計算機技術。
可以認為是一種對物理資源抽象化,進而形成虛擬化的版本的技術。在計算機科學中,虛擬化技術(Virtualization)是一種資源管理(優化)技術,將計算機的各種物理資源(e.g. CPU、內存以及磁盤空間、網絡適配器等 I/O 設備)予以抽象、轉換,然后呈現出來的一個可供分割并任意組合為一個或多個(虛擬)計算機的配置環境。虛擬化技術打破了計算機內部實體結構間不可切割的障礙,使用戶能夠以比原本更好的配置方式來應用這些計算機硬件資源。而這些資源的虛擬形式將不受現有架設方式,地域或物理配置所限制。全虛擬化(Full virtualization)也稱原始虛擬化技術,是使用Hypervisor這種中間軟件在虛擬服務器和底層硬件之間建立一個抽象層,這個抽象層在底層起到了中介的作用,用于傳遞指令。在實現完全虛擬化的過程中,Hypervisor運行在裸硬件上,充當的是主機的操作系統,由Hypervisor管理的虛擬服務器來運行客戶端操作系統(Guest OS),ESXI就是通過這種方式實現的。全虛擬化為客戶操作系統提供完整的虛擬平臺(包括處理器、內存和外設等虛擬化),這種平臺支持運行任何理論上可在真實物理平臺上運行的操作系統,并為虛擬機的配置提供了最大程度的靈活性。另外,在全虛擬化平臺運行的客戶操作系統,可以不做任何修改就可以遷移到任何非虛擬化環境中基于平臺上運行。半虛擬化(ParaVirtualization)是另一種類似于全虛擬化的技術,它使用Hypervisor分享存取底層的硬件,但是它的Guest操作系統集成了虛擬化方面的代碼。該方法無需重新編譯或引起陷阱,因為操作系統自身能夠與虛擬進程進行很好的協作。半虛擬化需要Guest操作系統做一些修改,使Guest操作系統意識到自己是處于虛擬化環境的,但是半虛擬化提供了與原操作系統相近的性能。
硬件本身支持虛擬化技術,大大提升了虛擬化的性能。如Intel VT、AMD-VT技術,它們在CPU中加入了新的指令集和處理器運行模式,以完成Guest OS對硬件資源的直接調用。通過硬件輔助虛擬化,可提高虛擬機的運行效率和穩定性,減少虛擬機與宿主機之間的干擾,從而實現更加高效的虛擬化工作。? 宿主模型(OS-Hosted VMM) 物理服務器上需要安裝如Windows、Linux等操作系統,這些傳統操作系統并不是為虛擬化而設計的,因此本身并不具備虛擬化功能,所有的虛擬化功能都由VMM來提供。VMM通常是宿主機操作系統獨立的內核模塊,有些實現中還包括用戶態進程,如負責I/O虛擬化的用戶態設備模型。VMM通過調用宿主機操作系統的服務來獲得資源,實現處理器、內存和I/O設備的虛擬化。? 虛擬化體系架構-原生架構模型(Hypervisor VMM)? 在原生架構模型(Hypervisor VMM)中,VMM首先可以被看作是一個完備的操作系統,與傳統操作系統不同的是,VMM是為虛擬化而設計的,因此其本身就具備虛擬化功能。? 從架構上來看,首先所有的物理資源如處理器、內存和I/O設備等都歸于VMM所有,因此,VMM承擔著管理物理資源的責任;其次,VMM需要向上提供虛擬機用于運行客戶機操作系統,因此,VMM還負責虛擬環境的創建和管理。?虛擬化體系架構-混合模型(Hybrid VMM)? 混合模型(Hybrid VMM)是上述兩種模式的混合體。VMM依然位于最底層,擁有所有的物理資源,包括處理器、內存和I/O設備等。與Hypervisor模型不同的是,VMM會騰讓出大部分I/O設備的控制權,將它們交由一個運行在特權虛擬機中的特權操作系統來控制,相應的,VMM虛擬化的職責也會被分擔。處理器、內存虛擬化依然由VMM來完成,I/O設備虛擬化則由VMM和特權操作系統共同來完成。
KVM (全稱是Kernel-based Virtual Machine) 是Linux 下x86 硬件平臺上的全功能虛擬化解決方案,包含一個可加載的內核模塊kvm.ko 提供和虛擬化核心架構和處理器規范模塊。使用KVM 可允許多個包括Linux 和Windows 每個虛擬機有私有的硬件,包括網卡、磁盤以及圖形適配卡等。
Xen 是一個開放源代碼虛擬機監視器,由劍橋大學開發。它打算在單個計算機上運行多達100個滿特征的操作系統。操作系統必須進行顯式地修改(“移植”)以在Xen上運行(但是提供對用戶應用的兼容性)。這使得Xen無需特殊硬件支持,就能達到高性能的虛擬化。
OpenVZ是基于Linux內核和作業系統的操作系統級虛擬化技術。OpenVZ允許物理服務器運行多個操作系統,被稱虛擬專用服務器(VPS,Virtual Private Server)或虛擬環境(VE, Virtual Environment)。與VMware這種虛擬機和Xen這種半虛擬化技術相比,OpenVZ的host OS和guest OS都必需是Linux(雖然在不同的虛擬環境里可以用不同的Linux發行版)。但是,OpenVZ聲稱這樣做有性能上的優勢。根據OpenVZ網站的說法,使用OpenVZ與使用獨立的服務器相比,性能只會有1-3%的損失。OpenVZ是SWsoft, Inc.公司開發的專有軟件Virtuozzo的基礎。OpenVZ的授權為GPLv2。OpenVZ由兩部分組成,一個經修改過的操作系統核心與及用戶工具。
VirtualBox 是一款功能強大的x86 虛擬機軟件,它不僅具有豐富的特色,而且性能也很優異。更可喜的是,VirtualBox 于數日前走向開源,成為了一個發布在GPL 許可之下的自由軟件。
Lguest 是由IBM工程師Rusty Russell(澳大利亞開發者)發起的虛擬化項目,是一個只有5000行代碼的精簡hypervisor(虛擬機管理程序),它已經包括在最近版本的內核里了。和KVM相似,它支持Intel和AMD芯片的最新虛擬化技術。但又與VMware公司的ESX Server不同,在Lguest創建的虛擬機里的操作系統知道自己是被虛擬出來的。所以在調用CPU周期時它可以直接向真正的硬件發出請求,而不是作為中間媒介而降低了效率,因此這種架構大大提高了效率。Lguest采用GPL授權。1. VMware公司的VMware Server、VMware ESX/ESXi Server、VMwareWorkstation和VMware Player。2. Microsoft公司的Hyper-V、Virtual PC和Virtual Server。6. 開源虛擬化軟件Docker、KVM、Xen等。