Skip to main content

Virtualization

· 3 min read

紀錄一下自己最近研讀虛擬化技術的筆記

因為最近要寫有關 qemu 的東西順便學習一下

在介紹之前讓我們先了解一下一些名詞

Hypervisor ( virtual machine monitor )

用來管理和執行 virtual machine 的軟體

Host machine

用來執行 hypervisor 的機器

Guest machine

被 hypervisor 管理的機器

比如說你在你的電腦上使用 Virtual Box 開了兩個虛擬機,一個是 Windows 10,一個是 Ubuntu

那 Virtual Box 就是 hypervisor,你的電腦就是 Host machine,而 Windows 10 和 Ubuntu 就是 Guest machine

我們通常會將 Guest machine 稱為 instance,instance 可以是不同的作業系統

那跟這個對比的就是 Operating-system-level virtualization,在這通常會將 Guest machine 稱作是 container,container 只能是同一種的作業系統,但是 user space 可以不一樣,像是不同的 Linux distribution 用的是同一個 kernel

那現在正式開始介紹 hypervisor 的類型

Hypervisor Type

  • Type-1, native or bare-metal hypervisor

這種類型的 hypervisor 可以在硬體上執行

Citrix XenServer, Microsoft Hyper-V and VMware ESX/ESXi 屬於這種

  • Type-2 or hosted hypervisors

Hypervisor 被當成 Host machine 的一隻 process 執行

VMware Workstation, VMware Player, VirtualBox, Parallels Desktop for Mac and QEMU 屬於這種

現在 Type-1 和 Type-2 兩者之間的界線越來越模糊,因為原本是 Type-2 的 virtual machine 鑒於效能考量紛紛跨入 Type-1,像是 Linux 的 KVM 就可以被歸類在兩種不同的 hypervisor

Virtual machine

我們所謂的 virtual machine 主要分為以下三種

Virtual machine type

  • System virtual machines ( Full virtualization )
  • Hardware-assisted virtualization
  • Operating-system-level virtualization

System virtual machines ( Full virtualization )

提供了虛擬化整個作業系統的功能

Parallels Workstation, Parallels Desktop for Mac, VirtualBox, Virtual Iron, Oracle VM, Virtual PC, Virtual Server, Hyper-V, VMware Workstation, VMware Server (discontinued, formerly called GSX Server), VMware ESXi, QEMU, Adeos, Mac-on-Linux

Hardware-assisted virtualization

透過硬體的支援,使得效率提高

KVM, VMware Workstation, VMware Fusion, Hyper-V, Windows Virtual PC, Xen, Parallels Desktop for Mac, Oracle VM Server for SPARC, VirtualBox and Parallels Workstation

Operating-system-level virtualization

這種技術是指 kernel 作業系統本身提供的虛擬化功能,像是 Linux container 簡稱為 LXC,Docker 在 0.9 版前其實就是 LXC 的前端

Reference: