首先:”虚拟化“其实有很多分类,比如虚拟化技术,虚拟机软件,IaaS层虚拟化解决方案。甚至java虚拟机之类的东西也可以划到虚拟化中,当然在此我们不做讨论。
1.硬件虚拟化技术:
硬件虚拟化技术主要是有以下两类:
- 英特尔虚拟化技术(IVT,Intel Virtualization Technology)是由英特尔开发的一种虚拟化技术,利用IVT可以对在系统上的客操作系统,通过虚拟机查看器(VMM,Virtual Machine Monitor)来虚拟一套硬件设备,以供客操作系统使用。这些技术以往在VMware与Virtual PC上都通过软件实现,而通过IVT的硬件支持可以加速此类软件的进行。
- AMD虚拟化(AMD Virtualization),缩写为“AMD-V”,是AMD为64位的x86架构提供的虚拟化扩展的名称,但有时仍然会用“Pacifica”(AMD开发这项扩展时的内部项目代码)来指代它。
PS:
大多数的虚拟化软件都要求开启硬件虚拟化技术的支持,也就是要在宿主机的BIOS中设置虚拟化支持。
2.软件虚拟化技术
虚拟化技术指的是软件层面的实现虚拟化的技术,现在典型的代表有:Xen,KVM,WMware,Hyper-V
Xen和KVM,是开源免费的虚拟化软件;WMware是付费的虚拟化软件;Hyper-V微软的收费虚拟化技术。
特别介绍KVM和VMware
- KVM是用于Linux内核中的虚拟化基础设施。KVM目前支持Intel VT及AMD-V的原生虚拟技术。KVM在2007年2月被导入Linux 2.6.20核心中。
- VMware系列的管理软件使用的是Wmware虚拟技术,同样需要开启Intel VT及AMD-V的原生虚拟技术。
3.基于虚拟化技术的单机版虚拟机管理软件:
- KVM: linux的虚拟机基于KVM虚拟技术的单机版虚拟机管理软件。
- VirtualBox:oracle公司的直接基于Intel VT及AMD-V的虚拟机管理软件。
- Vmware workStation:Wmware公司的基于Wmware虚拟技术的虚拟机管理软件。
4.IaaS层虚拟化解决方案
IaaS层虚拟化解决方案,要符合IaaS层的基础特点,除了最基础的虚拟化软件之外,还包括,共享存储服务,镜像服务,身份认证服务,统一监控服务,以及收费管理等其他配套的服务。当然,既然是IaaS服务,必须支持对外API接口开放,支持定制开发。一般来说不是一个软件,而是一组软件组成的整理解决方案。
- VMware vSphere是基于VMware虚拟化技术的虚拟化管理软件,目前在行业内来说算是最成熟,生产环境应用度最广的IaaS层虚拟化技术的解决方案。目前对整个集群的虚拟机监控管理也是最好的。(vSphere本身收费,而且监控软件还需要单独收费)。
- Openstack是基于linux的IaaS层解决方案(支持多种虚拟化技术,比如KVM),是目前用户最多,影响最大的开源解决方案,得到了HP,IBM等知名厂商的大力支持,国内的虚拟化解决方案也大部分是基于openstack开发定制。主要运行在CentOS和ubuntuServer操作系统上。
- CloudStack是使用 java开发的基于linux的IaaS层解决方案(支持多种虚拟化技术,比如KVM),目前发展潜力非常不错,也得到了很多知名厂商的认可,不过相对起步比较晚,在国内的推广度也不如openstack。
回过头来总结:
1.云计算中的虚拟化指的是IaaS层虚拟化解决方案,而不是虚拟机技术。
2.openstack和VMware WorkStation的区别主要有:
OpenStack:开源管理项目
OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它不是一个软件,而是由几个主要的组件组合起来完成一些具体的工作。OpenStack由以下五个相对独立的组件构成:
- OpenStack Compute(Nova)是一套控制器,用于虚拟机计算或使用群组启动虚拟机实例;
- OpenStack镜像服务(Glance)是一套虚拟机镜像查找及检索系统,实现虚拟机镜像管理;
- OpenStack对象存储(Swift)是一套用于在大规模可扩展系统中通过内置冗余及容错机制,以对象为单位的存储系统,类似于Amazon S3;
- OpenStack Keystone,用于用户身份服务与资源管理以及
- OpenStack Horizon,基于Django的仪表板接口,是个图形化管理前端。
这个起初由美国国家航空航天局和Rackspace在2010年末合作研发的开源项目,旨在打造易于部署、功能丰富且易于扩展的云计算平台。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性,企图成为数据中心的操作系统,即云操作系统。
KVM:开放虚拟化技术
KVM(Kernel-based Virtual Machine)是一个开源的系统虚拟化模块,它需要硬件支持,如Intel VT技术或者AMD V技术,是基于硬件的完全虚拟化,完全内置于Linux。
2008年,红帽收购Qumranet获得了KVM技术,并将其作为虚拟化战略的一部分大力推广,在2011年发布RHEL6时支持KVM作为唯一的hypervisor。KVM主打的就是高性能、扩展性、高安全,以及低成本。
与Linux的缘分
一个被某些热心支持者成为云时代的Linux,是公有云与私有云的开源操作系统。一个则是Linux内核的一部分,将Linux转换成一个Type-1 hypervisor,无需任何变更就能享受现有的Linux内核进程调度、内存管理和设备支持。
OpenStack炙手可热,它如同Linux一样,旨在构建一个内核,所有的软件厂商都围绕着它进行工作。OpenStack的许多子项目,对云计算平台中的各种资源(如计算能力、存储、网络)提供敏捷管理。此外,OpenStack也提供对虚拟化技术的支持。
KVM集成在Linux的各个主要发行版本中,使用Linux自身的调度器进行管理。KVM专注于成为最好的虚拟机监控器,是使用Linux企业的不二选择,加上它还支持Windows平台,所以也是异构环境的最佳选择。