虚拟化相关问题解析
硬件虚拟化&软件虚拟化
TYPE2 软件虚拟化
VMM 运行在传统的操作系统上,就像其他计算机程序那样运行。
特点
VMM 作为应用程序运行在主操作系统环境内
运行效率一般较类型 I 低
实现案例
VMware 5.5 以前版本
Xen 3.0 以前版本
Virtual PC 2004
TYPE1硬件虚拟化
这些虚拟机管理程序直接运行在宿主机的硬件上来控制硬件和管理客户机操作系统。
特点:
需要硬件支持
VMM 作为主操作系统
运行效率高
实现案例:
VMware 5.5 及以后版本
workstation
esxi
基于linux操作系统
Xen 3.0 及以后版本
Virtual PC 2005
KVM
全虚拟化&半虚拟化
全虚拟化:
全部用软件模拟出来的虚拟化
全虚拟化也成为原始虚拟化技术,该模型使用虚拟机协调guest操作系统和原始硬件,VMM在guest操作系统和裸硬件之间用于工作协调,一些受保护指令必须由Hypervisor(虚拟机管理程序)来捕获处理。全虚拟化的运行速度要快于硬件模拟,但是性能方面不如裸机。
半虚拟化:
局部仿真。
有鉴于一般 Virtual Machine 工具都是以完全仿真的方式,造成性能上 的降低,因此,XEN 在设计上,希望各操作系统可以在开发时就已经将 XEN 的技术包括进去,这样在使用时,就可以用局部仿真的方式,让操作 系统可以直接使用到硬件中的 CPU、内存等,而不需要通过 XEN 做仿真的 操作。
由于不需要产生额外的异常和模拟部分硬件执行流程,半虚拟化可以大幅度提高性能
qemu&kvm
在 QEMU-KVM 中,KVM 运行在内核空间,QEMU 运行在用户空间,实际模 拟创建、管理各种虚拟硬件,QEMU 将 KVM 整合了进来,通过/ioctl 调用 /dev/kvm,从而将 CPU 指令的部分交给内核模块来做,KVM 实现了 CPU 和 内存的虚拟化,但 KVM 不能虚拟其他硬件设备,因此 qemu 还有模拟 IO 设 备(磁盘,网卡,显卡等)的作用,KVM 加上 QEMU 后就是完整意义上的服
7
务器虚拟化。
QEMU-KVM 两大作用
• 提供对 cpu,内存(KVM 负责),IO 设备(QEMU 负责)的虚拟
• 对各种虚拟设备的创建,调用进行管理(QEMU 负责)
不同厂商虚拟化技术
xen,vmware,微软hyperV,kvm
kvm和openstack关系
Openstack
OpenStack是一个框架,一个可以建立公有云和私有云的基础架构。
OpenStack几乎支持所有的虚拟化管理程序,不论是开源的(Xen与KVM)还是厂商的(Hyper-V与VMware)。但在以前,OpenStack是基于KVM开发的,KVM常常成为默认的虚拟机管理程序。两者都使用相同的开放源理念与开发方法。
KVM
KVM是集成到Linux内核的Hypervisor,是X86架构且硬件支持虚拟化技术(Intel VT或AMD-V)的Linux的全虚拟化解决方案。它是Linux的一个很小的模块,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。
KVM最大的好处就在于它是与Linux内核集成的,所以速度很快。
docker
Docker主要针对Paas平台,是以应用为中心。而OpenStack主要针对Iaas平台,以资源为中心,可以为上层的PaaS平台提供存储、网络、计算等资源。
相比于传统虚拟化技术用有什么优势
与传统VM比具有启动快、性能损耗小、更轻量等优点
对Paas平台,是以应用为中心。而OpenStack主要针对Iaas平台,以资源为中心,可以为上层的PaaS平台提供存储、网络、计算等资源。
相比于传统虚拟化技术用有什么优势
与传统VM比具有启动快、性能损耗小、更轻量等优点