未解决
此帖子已超过 5 年
605 消息
0
4703
VM(Virtual Machine)虚拟化方案与容器(Container)虚拟化方案
VM(Virtual Machine)虚拟化方案与容器(Container)虚拟化方案
转载请在文首保留原文出处:EMC中文支持论坛
介绍
提到虚拟化技术大家肯定会想到虚拟机,也会想到VMware、XEN、KVM、Hyper-v这些产品。这种虚拟化我们可以简称为VM(Virtual Machine)虚拟化,就是以虚拟机为产物的虚拟化方案。
但是大家了解Container虚拟化方案吗?Container是一种轻量级虚拟化方案,开销比VM虚拟化小,操作粒度也比VM虚拟化小。Container最简单的代表就是*nix下面的chroot功能,熟悉*nix的朋友们肯定不陌生。
下面给大家简要描述和比较VM虚拟化和Container虚拟化方案特点,Container虚拟化以Linux Control Group(Cgroup)为例。
更多信息
VM虚拟化:
VM虚拟化技术有三种:全虚拟化、半虚拟化、硬件虚拟化。全虚拟化由Hypervisor截获并翻译所有虚拟机特权指令(比如VMware的BT);半虚拟化通过修改虚拟机内核,将部分特权指令替换成与Hypervisor(也称VMM)通信(比如XEN的para-virtualizaiton);硬件虚拟化借助服务器硬件虚拟化功能,Hypervisor不需要截获虚拟机特权指令,虚拟机也不需要修改内核(比如Intel VT和AMD-V)。
Hypervisor负责服务器硬件资源管理,根据要求直接分配给不同虚拟机。Hypervisor直接运行在服务器硬件上面(半虚拟化/硬件虚拟化),也可以运行在一个操作系统上面(全虚拟化模式)。
特点
VM虚拟化技术有三种:全虚拟化、半虚拟化、硬件虚拟化。全虚拟化由Hypervisor截获并翻译所有虚拟机特权指令(比如VMware的BT);半虚拟化通过修改虚拟机内核,将部分特权指令替换成与Hypervisor通信(比如XEN的para-virtualizaiton);硬件虚拟化借助服务器硬件虚拟化功能,Hypervisor不需要截获虚拟机特权指令,虚拟机也不需要修改内核(比如Intel VT和AMD-V)。
Hypervisor(也称VMM)负责服务器硬件资源管理,根据要求直接分配给不同虚拟机。Hypervisor直接运行在服务器硬件上面(半虚拟化/硬件虚拟化),也可以运行在一个操作系统上面(全虚拟化模式)。
常见产品:
VMware、XEN、KVM、Hyper-V、Virtual Box等。
Container虚拟化:
又称操作系统级虚拟化,要求在一个操作系统实例里面,将系统资源按照类型和需求分割给多个对象独立使用,对象之间保持隔离。系统资源通常指CPU、内存、网卡、磁盘等。
特点
仅以Linux Cgroup为例。Cgroup是Linux内核一种文件系统,需要内核支持,和其他文件系统一样,Cgroup在使用之前需要在VFS注册。用户可以直接使用mount命令挂载Cgroup,通过echo命令修改Cgroup配置参数,跟环境变量一样,子进程可以继承父进程配置。Cgroup提供Linux系统里面进程的资源分配、资源使用情况统计。
常见产品
Linux Control Group、Solaris Zone、Linux/Unix chroot、Windows Sandboxie、Linux-VServer、BSD jail、Linux lxc、OpenVZ、FreeVPS等。
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
应用于
merrist
482 消息
0
2013年1月14日 04:00
Container虚拟化:
又称操作系统级虚拟化,要求在一个操作系统实例里面,将系统资源按照类型和需求分割给多个对象独立使用,对象之间保持隔离。
我想问一下,Hyper-V,Virtual Box,ESX应该也是Container虚拟化吧。他们都是在操作系统上安装的,如WS2012,Windows系统,Linux系统
Jun_Tan
605 消息
0
2013年1月14日 17:00
Hpyer-V Virtual Box ESX都是VM虚拟化。
Container简单可以理解为一个更先进的内核进程调度系统。据我所知,现在Taobao和Tencent使用Container很多。互联网应用都是使用接口提供服务,Container虚拟化开销小,粒度也小。