虚拟化技术基础原理(一)

虚拟化技术:

虚拟化技术类型:

主机虚拟化: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

猜你喜欢

转载自blog.51cto.com/10461810/2151756