日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

常用虚拟化工具介绍

發布時間:2023/12/10 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常用虚拟化工具介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、服務器虛擬技術簡介
  • 二、基本概念
  • 三、虛擬技術的好處
  • 四、虛擬化原理簡介
    • 用戶/內核空間
    • 特權級
    • 指令類型
    • 特權指令
    • 非特權指令
    • 敏感指令
  • 五、服務器虛擬化的分類
    • 裸金屬/寄居
    • 裸金屬
    • 寄居
    • 有點特殊的裸金屬KVM
    • 有點特殊的裸金屬的Hyper-v和Xen
    • 硬件輔助虛擬化/軟件輔助虛擬化
    • 全虛擬化/半(準)虛擬化
  • 七、主流的虛擬化軟件介紹
    • VMware
    • VirtualBox
    • KVM
    • Xen
    • Hyper-V
    • OpenVZ
  • 八、產方支持

一、服務器虛擬技術簡介

服務器虛擬化技術是指通過運用虛擬化的技術充分發揮服務器的硬件性能,能夠在確保企業投入成本的同時,提高運營效率,節約能源降低經濟成本和空間浪費,對于發展迅速,成長規模大的用戶來說,可以通過服務器虛擬化技術帶來更多的經濟效益。

二、基本概念

如果你曾經將硬盤劃分為不同分區,那么可能會對虛擬化的概念有所理解。分區是硬盤驅動器的邏輯劃分,實際上相當于創建了兩個獨立的邏輯硬盤。本質上有兩種主要的方法構建Hyper-visor解決方案:微內核和宏內核。微內核方法使用非常薄的一層專用代碼作為Hyper-visor,只執行確保分區隔離和內存管理的核心任務。這一層并不包括I/O軟件?;蛟O備驅動。這是Hyper-V所用的方法。在這種架構下,虛擬化軟件棧和特定于硬件的驅動程序位于一個專用的分區中,稱之為父分區。

三、虛擬技術的好處

為向訪客操作系統提供一些額外的特性,Hyper-V提供了集成組件。通過使用Hyper-V,大大提高了虛擬化平臺的可伸縮性、可用性、可管理性和性能。使用終端服務(Terminal Service)提供的顯示虛擬化(presentation virtualization),可以避免分布式應用程序的部署問題。終端服務可以幫助監控網關連接狀態、事件和健康狀況。

Hyper-V在其虛擬機中支持兩類設備:合成設備和模擬設備。合成設備本質上就是把虛擬機設備發出的設備請求打包,然后轉發給新的VMBus,這是一個內存中的流水線,VMBus再將設備請求轉發給物理設備。而在另一方面,模擬設備則使用宿主操作系統的軟件來模擬使用了額外的宿主操作系統處理功能的設備。Hyper-V的軟件設備模擬由vmwp.exe程序進行。

Hyper-V從最初設計實現時,就在一臺計算機上運行的各個操作系統實例之間建立了強有力的邊界。為使訪客操作系統與宿主操作系統之間能夠交互,并向所支持的訪客操作系統提供一些額外的功能。Hper-V提供了集成組件(Integration Components)來支持以下特性:時間同步、心跳功能、訪客操作系統關閉、操作系統識別。

終端服務能使用戶創建一個集成化的系統,允許用戶從任何有網絡連接的地點快捷而安全地提供訪問基于Windows的應用程序的入口。

四、虛擬化原理簡介

用戶/內核空間

Windows和Linux都將內存分為內核空間和用戶空間,操作系統內核代碼運行在內核空間,應用程序代碼運行在用戶空間。

特權級

特權級是一種用來保護數據和阻止惡意行為的機制,x86計算機的CPU提供4個特權級:ring0~3,ring0權限最高,ring3權限最低。

ring0提供給操作系統內核(內核空間代碼)使用,可以使用所有CPU指令,可以直接操作硬件(如CPU、內存)。

ring3提供給應用程序(用戶空間代碼)使用的,只可以調用基本的CPU指令。

ring1、ring2被設計為運行驅動程序,但Windows、Linux將驅動程序運行在ring0,未使用這兩個特權級。

Tips:CPU清除內存數據、設置時鐘等指令是非常危險的,如果用錯了會導致系統崩潰。通過特權級這一機制,區分內核代碼和應用程序代碼權限,保證操作系統正常運行。

指令類型

未虛擬化時,可以將CPU的指令分為特權指令和非特權指令。

特權指令

在多用戶、多任務的計算機系統中特權指令必不可少,它主要用于系統資源的分配和管理,包括改變系統工作方式,檢測用戶的訪問權限,修改虛擬存儲器管理的段表、頁表,完成任務的創建和切換等。
常見的特權指令有以下幾種:

  • 有關對I/O設備使用的指令 如啟動I/O設備指令、測試I/O設備工作狀態和控制I/O設備動作的指令等。
  • 有關訪問程序狀態的指令 如對程序狀態字(PSW)的指令等。
  • 存取特殊寄存器指令 如存取中斷寄存器、時鐘寄存器等指令。
  • 其他指令

非特權指令

非特權指令有的需要以ring0運行,有的可以任意ring運行。操作系統內核以ring0運行,可以使用所有指令;應用程序以ring3運行,所以不能使用特權指令和部分非特權指令。

Tips:特權指令必須以ring0運行,否則會產生異常,將控制權交還ring0,非特權指令有的需要以ring0運行,有的不需要。

虛擬化后,CPU的指令分為特權指令,敏感指令,普通指令。

Tips:敏感指令=特權指令+部分非特權指令,也就是說特權指令一定是敏感指令。

敏感指令

敏感指令是指操作特權資源的指令。
1.企圖訪問或修改虛擬機模式或機器狀態的指令。

2.企圖訪問或修改敏感寄存器或存儲單元,如時鐘寄存器、中斷寄存器等的指令。

3.企圖訪問存儲保護系統或內存、地址分配系統的指令。

4.所有I/O指令。

Tips:特權指令只有ring0才能執行,當非ring0執行時會產生異常,非特權指令有的也需要ring0才能運行,但是它們非ring0運行不會產生異常。

五、服務器虛擬化的分類

服務器虛擬化的有多種劃分方式,可以根據虛擬化架構劃分為裸金屬/寄居,根據虛擬化層次硬件輔助虛擬化/軟件輔助虛擬化,根據虛擬化平臺劃分為全虛擬化/半虛擬化。

裸金屬/寄居

未虛擬化的x86服務器架構,自下而上是物理硬件(Hardware)、操作系統(OS),應用程序(APP)。這和我們個人計算機一樣,就是在計算機上裝操作系統,再在操作系統里面安裝應用程序。
未虛擬化的x86服務器

裸金屬

裸金屬(bare-metal)架構也叫bare-metal hypervisor、Ⅰ型,最有代表性就是VMware ESX(i)。

VMware ESXi

ESXi是VMware的企業級服務器虛擬化技術,本身是一個操作系統,直接安裝的物理服務器上。使用ESXi需要先在物理服務器上安裝ESXi,然后在ESXi中創建各種虛擬硬件(相應虛擬硬件的集合,不包括操作系統,也可以稱為虛擬機),再在虛擬機上安裝操作系統,最后才能在這些操作系統中安裝應用程序。

Tips:早期VMware的企業級服務器虛擬化版本稱為ESX,后來升級版本稱為ESXi。

寄居

寄居(hosted)架構也叫hosted hypervisors、Ⅱ型,代表產品VMware workstation和VirtualBox。
Windows中使用VMware workstation實現服務器虛擬化

VMware workstation和VirtualBox通常用作個人學習、測試,與寄居架構的VMware ESXi最明顯的區別在于,ESXi是操作系統,直接安裝在物理硬件之上,而VMware workstation則是軟件,需要安裝在操作系統(一般是Windows,也支持Linux)中。

以Windows中安裝VMware workstation為例,先在計算機上安裝Windows,再在Windows上安裝workstations,再在workstations中創建虛擬機,最后在虛擬機中安裝操作系統,在操作系統中安裝軟件。

判斷虛擬化類型是裸金屬還是寄居架構,取決于虛擬化層,也就是hypervisor所處的位置。寄居架構將虛擬化層(hypervisor)以一個應用程序的方式安裝運行于操作系統之上,支持最為廣泛的各種硬件配置(只要HOST OS支持該硬件即可)。裸金屬架構將虛擬化層(hypervisor)直接安裝到干凈的x86服務器上,裸金屬架構相對于寄居架構效率更高(少了Host OS這一層),且具有更好的可擴展性、健壯性和性能。

企業級服務器虛擬化都是裸金屬架構(效率更高),像主流的企業級服務器虛擬化ESXi、KVM、Xen、Hyper-v都是裸金屬架構。

有點特殊的裸金屬KVM

KVM關于裸金屬/寄居的劃分有點模糊。

KVM

部署KVM,首先需要在物理服務器上安裝Linux系統,再在Linux中“安裝KVM”。通常所說的KVM實際上是KVM和qemu兩種技術的結合,qemu本身是一種完整的寄居架構軟件,采用二進制翻譯的方式虛擬化CPU,KVM則采用效率更高的硬件輔助虛擬化CPU。由于KVM只能虛擬化CPU、內存,其它硬件(網卡、硬盤)的虛擬化則是由qemu來負責。

qemu是寄居架構,通俗來講就是qemu是個工作在Linux上的軟件。而KVM則相當于“給Linux內核打了一個補丁”,將Linux部分內核轉換為hypervisor,Linux內核自然屬于操作系統,這樣看來KVM的hypervisor既有寄居(qemu)又有裸金屬(kvm),是一種比較特殊的裸金屬。

Tips:以CentOS系統部署KVM為例,僅簡單體驗KVM可以通過yum安裝。因為我們習慣了yum安裝各種軟件,這樣看起來KVM是yum安裝的“軟件”,應該屬于寄居架構,實際上多把KVM劃為裸金屬架構。因為像升級操作系統,可以通過yum(yum install kernel),但升級操作系統不能認為是通過yum安裝kernel這個軟件,同理也不應該認為部署KVM是在操作系統中安裝了KVM這個軟件。

有點特殊的裸金屬的Hyper-v和Xen

把他們放在一起是因為他們都有一個非常相似的概念,Hyper-v叫做父分區、Xen叫做Domain 0 。Hyper-v是Windows Server的一個功能,Xen則是在原Linux上安裝新的Linux內核。沒有開啟Hyper-v的Windows Server和沒有部署Xen的Linux,就是普通的x86服務器結構。

部署虛擬化之后,兩者非常相似。同樣是物理硬件位于最底層,hypervisor則分別是Xen和Hyper-v。對于Xen來說原來的Linux將以新的Linux內核運行在Domain 0,對于Hyper-v來說,Windows Server運行在父分區,他們都相當各自的于第一臺虛擬機。

hypervisor為虛擬機提供虛擬的硬件資源,負責管理和分配這些資源,但是并不一定能夠直接控制物理硬件。例如Xen和hyper-v,一般結構圖將hypervisor位于最底層,但是最終直接控制物理硬件的驅動程序還是安裝在Domain 0、父分區中的操作系統上。

Tips:KVM雖然和Xen一樣是安裝在Linux中,但是KVM沒有Domain 0的概念,在Linux部署KVM后,其hypervisor相當于Linux的一部分,可以說hypervisor和Linux是在同一層,而Xen則是hypervisor位于最底層,原來的Linux相當于一臺虛擬機,原來的Linux(Domain0)和其它虛擬化(Domain U)位于同一層。

硬件輔助虛擬化/軟件輔助虛擬化

通常根據CPU虛擬化的方式將服務器虛擬化技術劃分為硬件輔助虛擬化和軟件輔助虛擬化,軟件輔助虛擬化是通過hypervisor實現CPU虛擬化,硬件輔助虛擬化則是借助硬件(需要CPU、芯片組、BIOS、hypervisor都支持)實現CPU虛擬化。常見的硬件輔助虛擬化技術:intel vt-x、AMD-v,它們和各自生產的CPU綁定,intel CPU只能用intel vt-x,AMD CPU只能用AMD-v。

因為硬件輔助虛擬化效率更高,現在主流的企業級服務器虛擬化都是采用硬件輔助虛擬化技術(intel vt-x或AMD-v),KVM和Hyper-v僅支持硬件輔助虛擬化(不支持軟件輔助虛擬化),ESXi、Xen和VMware workstation是兩者都支持。

Tips:現在不單是CPU有硬件輔助虛擬化,網卡和芯片組也有硬件輔助虛擬化。比如以Intel VT虛擬化技術就包括分別針對處理器、芯片組、網絡的IntelVT-x、IntelVT-d和IntelVT-c技術,以及顯卡虛擬化GVT,不過服務器虛擬化劃分標準還是根據CPU虛擬化的方式決定的。

全虛擬化/半(準)虛擬化

全虛擬化和半虛擬化,直觀的體現就是半虛擬化使用定制的Gust OS,全虛擬化則不必,使用普通適用于x86的的操作系統即可,具體原因見下文。

Tips:在主流的4種服務器虛擬化技術中,Xen全半虛擬化都支持。半虛擬化使用定制的Gust OS,這給維護帶來極大不便,但是性能比較好。全虛擬化,最開始是使用軟件輔助虛擬化,虛擬化的損耗較大,性能較低。隨著技術發展,通過硬件輔助虛擬化實現的全虛擬化性能已經極佳了。

七、主流的虛擬化軟件介紹

VMware

官網

這款虛擬機軟件兼容性不錯,VMware Tools也很強大,快照功能很快捷,方便,允許你在任意開機時刻創建系統快照和恢復,主要用于調試極易產生藍屏的軟件和工具,十分實用。有點不好的地方在于它安裝時會虛擬兩塊網卡,還可以在設置中虛擬更多的虛擬網卡,一般來說使用橋接Bridge的方法就可以讓虛擬機上網,基本沒有用過NAT方式。VMware和VirtualBox一樣都是會修改電腦本身的網卡設置的。

VMware創造性的提出了一個二進制翻譯技術。VMM在虛擬機操作系統和宿主計算機之間扮演一個橋梁的角色,將虛擬機中的要執行的指令“翻譯”成恰當的指令在宿主物理計算機上執行,以此來模擬執行虛擬機中的程序。你可以簡單理解成Java虛擬機執行Java字節碼的過程,不同的是Java虛擬機執行的是字節碼,而VMM模擬執行的就是CPU指令。

另外值得一提的是,為了提高性能,也并非所有的指令都是模擬執行的,VMware在這里做了不少的優化,對一些“安全”的指令,就讓它直接執行也未嘗不可。所以VMware的二進制翻譯技術也融合了部分的直接執行。

對于虛擬機中的操作系統,VMM需要完整模擬底層的硬件設備,包括處理器、內存、時鐘、I/O設備、中斷等等,換句話說,VMM用純軟件的形式“模擬”出一臺計算機供虛擬機中的操作系統使用。

這種完全模擬一臺計算機的技術也稱為全虛擬化,這樣做的好處顯而易見,虛擬機中的操作系統感知不到自己是在虛擬機中,代碼無需任何改動,直接可以安裝。而缺點也是可以想象:完全用軟件模擬,轉換翻譯執行,性能堪憂!

而QEMU則是完全軟件層面的“模擬”,乍一看和VMware好像差不多,不過實際本質是完全不同的。VMware是將原始CPU指令序列翻譯成經過處理后的CPU指令序列來執行。而QEMU則是完全模擬執行整個CPU指令集,更像是“解釋執行”,兩者的性能不可同日而語。

VirtualBox

官網
Sun公司的產品,屬于輕量級的虛擬機平臺,而且是開源的,完整安裝包很小,不像VMware有幾百兆,功能相對也很精簡,快照功能這里叫備份和快速修復,在不同的快照間跳轉用起來感覺不是很方便,也不能實現文件拖拽的功能。文件共享方面,叫做“數據空間”,在關機的狀態下,先在設置中選擇主機的一個目錄來加入到固定分配欄中。然后在虛擬機中右鍵單擊我的電腦選擇“映射網絡驅動器”,在文件夾瀏覽中整個網絡里的”VirtualBox Shared Foders”選擇剛才共享的那個文件夾,確定后就可以將其映射為我的電腦中的一個盤符使用了。

KVM

官網
KVM (全稱是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平臺上的全功能虛擬化解決方案,包含一個可加載的內核模塊 kvm.ko,提供和虛擬化核心架構和處理器規范模塊。使用 KVM 可允許多個包括 Linux 和 Windows 每個虛擬機有私有的硬件,包括網卡、磁盤以及圖形適配卡等。

那 IO 的虛擬化,比如存儲和網絡設備則是由 Linux 內核與Qemu來實現。

作為一個 Hypervisor,KVM 本身只關注虛擬機調度和內存管理這兩個方面。IO 外設的任務交給 Linux 內核和 Qemu。

大家在網上看 KVM 相關文章的時候肯定經常會看到 Libvirt 這個東西。

Libvirt 就是 KVM 的管理工具。

其實,Libvirt 除了能管理 KVM 這種 Hypervisor,還能管理 Xen,VirtualBox 等。

Libvirt 包含 3 個東西:后臺 daemon 程序 libvirtd、API 庫和命令行工具 virsh

  • libvirtd是服務程序,接收和處理 API 請求;
  • API 庫使得其他人可以開發基于 Libvirt 的高級工具,比如 virt-manager,這是個圖形化的 KVM 管理工具;
  • virsh 是我們經常要用的 KVM 命令行工具

Xen

官網
既然有全虛擬化,那與之相對的也就有半虛擬化,前面說了,由于敏感指令的關系,全虛擬化的VMM需要捕獲到這些指令并完整模擬執行這個過程,實現既滿足虛擬機操作系統的需要,又不至于影響到物理計算機。

但說來簡單,這個模擬過程實際上相當的復雜,涉及到大量底層技術,并且如此模擬費時費力。

而試想一下,如果把操作系統中所有執行敏感指令的地方都改掉,改成一個接口調用(HyperCall),接口的提供方VMM實現對應處理,省去了捕獲和模擬硬件流程等一大段工作,性能將獲得大幅度提升。

這就是半虛擬化,這項技術的代表就是Xen,一個誕生于2003年的開源項目。

這項技術一個最大的問題是:需要修改操作系統源碼,做相應的適配工作。這對于像Linux這樣的開源軟件還能接受,充其量多了些工作量罷了。但對于Windows這樣閉源的商業操作系統,修改它的代碼,無異于癡人說夢。

Xen對虛擬機的虛擬化分為兩大類,半虛擬化(Para virtualization)和完全虛擬化(Hardware VirtualMachine)。
半虛擬化(PV)

1、半虛擬化

  • 半虛擬化(Paravirtualization)有些資料稱為“超虛擬化”,簡稱為PV,是Xen主導的虛擬化技術。這種技術允許虛擬機操作系統感知到 自己運行在Xen Hypervisor上而不是直接運行在硬件上,同時也可以識別出其他運行在相同環境中的客戶虛擬機。
  • 在Xen Hypervisor上運行的半虛擬化的操作系統,為了調用系統管理程序(Xen Hypervisor),要有選擇地修改操作系統,然而卻不需要修改操作系統上運行的應用程序。由于 Xen 需要修改操作系統內核,所以您不能直接讓當前的 Linux 內核在 Xen 系統管理程序中運行,除非它已經移植到了Xen 架構。不過,如果當前系統可以使用新的已經移植到 Xen 架構的Linux 內核,那么您就可以不加修改地運行現有的系統。

2、完全虛擬化(HVM)

  • 完全虛擬化(Hardware Virtual Machine)又稱“硬件虛擬化”,簡稱HVM,是指運行在虛擬環境上的虛擬機在運行過程中始終感覺自己是直接運行在硬件之上的,并且感知不到在相同硬件環境下運行著其他虛擬機的虛擬技術。
  • 在Xen Hypervisor運行的完全虛擬化虛擬機,所運行的操作系統都是標準的操作系統,即:無需任何修改的操作系統版本。同時也需要提供特殊的硬件設備。
  • 值的注意的是,在Xen上虛擬的Windows虛擬機必須采用完全虛擬化技術。

Hyper-V

官網
Hyper-V是微軟的一款虛擬化產品,大部分國內的VPS服務商使用這個架構,主要是因為其轉為Windows定制,管理起來較為方便。目前的Hyper-V也支持Linux,只不過性能損失比較嚴重。

Hyper-V完美支持Windows系統,包括32位和64位。如果大家選購Hyper-V架構的VPS,強烈建議使用Windows。

Hyper-V目前不能超售內存,但可超售硬盤,硬盤是根據客戶使用情況扣除。一般來說,服務器的硬盤不會100%用完,這點不用擔心。

Hyper-V適用人群:Windows系統愛好者

Hyper-V注意事項:Linux操作系統性能較低

Hyper-V可用系統:Windows、Linux

OpenVZ

官網

OpenVZ(簡 稱OVZ)采用SWsoft的Virutozzo虛擬化服務器軟件產品的內核,是基于Linux平臺的操作系統級服務器虛擬化架構。這個架構直接調用母服務器(母機)中的內核,模擬生成出子服務器(VPS,小機),所以,它經過虛擬化后相對于母服務器,性能損失大概只有的1-3%。

當然 OpenVZ可以超售,意思味著一臺服務器總共16G內存,他可以開出配置為1G內存×17臺以上的子服務器。因為他的虛擬架構關系屬于:客戶用多少,就扣除母服務器多少,所以OpenVZ架構的VPS較為便宜。但由于存在超售因素,如果服務商毫無休止的超售會導致服務器的性能急劇下降。

OpenVZ另一個特點是,它是直接調用母服務器的內核,所以會導致部分軟件無法使用,以及部分內核文件是無法修改。

OpenVZ適用人群:新手、低預算客戶

OpenVZ注意事項:資源不是自己獨有的,安裝VPN服務需要注意檢測虛擬網卡支持。

OpenVZ可用系統:Linux(不支持Windows)

OpenVZ代表商家:Buyvm.net

八、產方支持

如果以上產品我們不打算買廠商支持,其中vmware和hyper-v,是不建議使用的,主要是授權問題。

這時就剩下kvm和xen了,如果虛擬windows,建議使用 kvm,我們可以從 redhat那里免費拿到針對 windows 優化過的磁盤和網絡的驅動 程序,可以達到較高的性能(幾乎與hyper-v性能持平)。

總結

以上是生活随笔為你收集整理的常用虚拟化工具介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。