虛擬化技術基礎原理(一)
虛擬化技術類型:
主機虛擬化:xen, kvm, virtualbox, ...
容器(用戶空間隔離): lxc(LinuX Container), openvz, ...
系統庫虛擬化:wine, ...
應用程序級虛擬化:jvm, pvm,...
主機虛擬化:
CPU:
模擬:emulation, 虛擬機的arch與物理平臺的arch可以不相同;qemu;
虛擬:virtualization
完全虛擬化(full-virt)
BT: 二進制轉換 (軟件)
HVM:硬件輔助的虛擬化(硬件)
半(準)虛擬化 (para-virt)
內存:
MMU virtualization:
Intel: EPT, Extended Page Table
AMD: NPT, Nested Page Table
TLB virtualization:
tagged TLB
IO:
Emulation
Para-virtualization
IO-through:IO透傳
主機虛擬化的類型:
TYPE-I:
於硬件級別直接運行hypervisor;
xen, vmware ESX/ESXI
TYPE-II:
於硬件級別運行一個OS(Host OS),而此OS上運行一個VMM;
vmware workstation, virtualbox, kvm
Linux目前流行的開源虛擬化技術解決方案:
主機虛擬化:xen, kvm, virtualbox
容器級:lxc, libcontainer, runC, openvz
模擬器:qemu
KVM的組件:
kvm.ko:模塊
API
qemu-kvm:用戶空間的工具程序;
qemu-kvm is an open source virtualizer that provides hardware emulation for the KVM hypervisor.
libvirt:Libvirt is a C toolkit to interact with the virtualization capabilities of recent versions of Linux (and other OSes). The main package includes the libvirtd server exporting the virtualization support.
C/S:
Client:
libvirt-client
virt-manager
Daemon:
libvirt-daemon
虛擬化技術基礎原理(一)