VM(Virtual Machine)虚拟化方案与容器(Container)虚拟化方案

Jun_Tan
3 Zinc

VM(Virtual Machine)虚拟化方案与容器(Container)虚拟化方案

VM(Virtual Machine)虚拟化方案与容器(Container)虚拟化方案

转载请在文首保留原文出处:EMC中文支持论坛

介绍

提到虚拟化技术大家肯定会想到虚拟机,也会想到VMwareXENKVMHyper-v这些产品。这种虚拟化我们可以简称为VM(Virtual Machine)虚拟化,就是以虚拟机为产物的虚拟化方案。

但是大家了解Container虚拟化方案吗?Container是一种轻量级虚拟化方案,开销比VM虚拟化小,操作粒度也比VM虚拟化小。Container最简单的代表就是*nix下面的chroot功能,熟悉*nix的朋友们肯定不陌生。

下面给大家简要描述和比较VM虚拟化和Container虚拟化方案特点,Container虚拟化以Linux Control GroupCgroup)为例。

更多信息

VM虚拟化:

VM虚拟化技术有三种:全虚拟化、半虚拟化、硬件虚拟化。全虚拟化由Hypervisor截获并翻译所有虚拟机特权指令(比如VMwareBT);半虚拟化通过修改虚拟机内核,将部分特权指令替换成与Hypervisor(也称VMM)通信(比如XENpara-virtualizaiton);硬件虚拟化借助服务器硬件虚拟化功能,Hypervisor不需要截获虚拟机特权指令,虚拟机也不需要修改内核(比如Intel VTAMD-V)。

Hypervisor负责服务器硬件资源管理,根据要求直接分配给不同虚拟机。Hypervisor直接运行在服务器硬件上面(半虚拟化/硬件虚拟化),也可以运行在一个操作系统上面(全虚拟化模式)。

特点

VM虚拟化技术有三种:全虚拟化、半虚拟化、硬件虚拟化。全虚拟化由Hypervisor截获并翻译所有虚拟机特权指令(比如VMwareBT);半虚拟化通过修改虚拟机内核,将部分特权指令替换成与Hypervisor通信(比如XENpara-virtualizaiton);硬件虚拟化借助服务器硬件虚拟化功能,Hypervisor不需要截获虚拟机特权指令,虚拟机也不需要修改内核(比如Intel VTAMD-V)。

Hypervisor(也称VMM)负责服务器硬件资源管理,根据要求直接分配给不同虚拟机。Hypervisor直接运行在服务器硬件上面(半虚拟化/硬件虚拟化),也可以运行在一个操作系统上面(全虚拟化模式)。

常见产品:

VMwareXENKVMHyper-VVirtual Box等。

Container虚拟化:

又称操作系统级虚拟化,要求在一个操作系统实例里面,将系统资源按照类型和需求分割给多个对象独立使用,对象之间保持隔离。系统资源通常指CPU、内存、网卡、磁盘等。

特点

仅以Linux Cgroup为例。CgroupLinux内核一种文件系统,需要内核支持,和其他文件系统一样,Cgroup在使用之前需要在VFS注册。用户可以直接使用mount命令挂载Cgroup,通过echo命令修改Cgroup配置参数,跟环境变量一样,子进程可以继承父进程配置。Cgroup提供Linux系统里面进程的资源分配、资源使用情况统计。

常见产品

Linux Control GroupSolaris ZoneLinux/Unix chrootWindows SandboxieLinux-VServerBSD jailLinux lxcOpenVZFreeVPS等。

VM虚拟化 VS  Container虚拟化

1、 两者目标不同。VM虚拟化的对象是虚拟机,把一台物理机虚拟成多台虚拟子机;Container的操作对象是进程,为每个进程分配不同系统资源,进程与进程之间独立。

2、 VM虚拟化组件可以直接跑在硬件上面,Container只能跑在操作系统之上。

3、 VM虚拟组件负责管理物理机或虚拟子机的硬件资源;Container环境中,硬件资源有操作系统自身负责管理。

参考

·        http://en.wikipedia.org/wiki/Container

·        http://en.wikipedia.org/wiki/Cgroups

·        http://en.wikipedia.org/wiki/Virtualization

·        http://en.wikipedia.org/wiki/Operating_system-level_virtualization

应用于

版本历史
修订号
1 / 1
上次更新时间:
‎09-19-2012 03:01 PM
更新依据: