1. 程式人生 > >虛擬化技術基礎原理(一)

虛擬化技術基礎原理(一)

jvm 方案 versions -m style work viso The tag

虛擬化技術:

虛擬化技術類型:

主機虛擬化:xen, kvm, virtualbox, ...

容器(用戶空間隔離): lxc(LinuX Container), openvz, ...

系統庫虛擬化:wine, ...

應用程序級虛擬化:jvm, pvm,...

主機虛擬化:

CPU:

模擬:emulation, 虛擬機的arch與物理平臺的arch可以不相同;qemu;

虛擬:virtualization

完全虛擬化(full-virt)

BT: 二進制轉換 (軟件)

HVM:硬件輔助的虛擬化(硬件)

半(準)虛擬化 (para-virt)

GuestOS得明確知道自己運行於虛擬化技術

內存:

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

虛擬化技術基礎原理(一)