一、什么是虚拟化?
- 虚拟化是一种资源管理技术,在非虚拟化系统中,单个操作系统管理和使用所有的硬件资源,而在虚拟化系统中,硬件资源可以被抽象和分割成多个虚拟的实体用于支持多个操作系统,多个操作系统可以共享所有的实体硬件资源,从而达到物理资源的最大化利用;
Virtual Machine Motior(VMM) ,虚拟机监控器,也叫Hypervisor ,向下管理实际的物理资源,向上给不同的虚拟机提供逻辑资源;Virtual Machine(VM) ,虚拟机可以根据自己的选择运行不同的OS(Guest OS) ,它会认为自己独享硬件;- 虚拟化的好处就是能提高资源的利用率,比如当前计算机的配置资源都很高,实际的利用率比较低,如果进行统一管理并进行虚拟化,那就可以支持更多的用户来合理利用了;
二、软件虚拟化和硬件虚拟化
软件虚拟化
通过软件模拟来实现VMM 层,比如QEMU ,还是以图片来举例说明下:
我们都知道不同的处理器架构,指令集都不一样,ARM 上运行的程序放置到X86 运行是无法执行的,Qemu 的出现就可以解决这个问题,硬生生转换翻译过去;
硬件虚拟化
纯软件行为来翻译指令,显然是一件很低效的事情,硬件虚拟化的支持可以提高整体的性能,硬件虚拟化指处理器本身提供能力来让客户机指令独立运行。
KVM (Kernel-Based Virtual Machine ),基于内核的虚拟机,实现对CPU 和内存的虚拟化,以及硬件I/O 虚拟化的拦截,Guest 的I/O 被KVM 拦截后交给Qemu 去处理; KVM 是内核的一个Module ,可以让Linux 变成一个Hypervisor ; KVM 需要Host 处理器本身支持虚拟化扩展,比如intel VT ,AMD-V 等;
|