虚拟化技术与Hypervisor回顾

作者: cheneydc | 来源:发表于2017-01-08 19:17 被阅读265次

从接触虚拟化技术到现在从事Openstack相关的开发已经好几年了,最初很多模模糊糊的概念现在看似也很简单,但是总觉得欠缺些什么,好吧那就给自己上上课,温故知新嘛。

虚拟化技术干什么的?

最早接触虚拟化是上学的时候使用虚拟机,当时要学习Linux,又不想在自己机器上直接装,只能用虚拟机了,当年学生狗电脑不够给力,只觉得虚拟机太坑啊,但是能给让我很好的在PC中运行另一个操作系统,已经很让我吃惊了,性能的问题就不足挂齿了。
然后我开始用自己的方式慢慢的去理解虚拟化是什么,我觉得最根本的需求就是资源的合理分配,才促使虚拟化技术的诞生和发展。比如一筐梨,有10斤,有10个人,每个人都想要1斤梨,不过可能10斤梨一共是9个梨,而且大小也不一定均匀,这样是很难公平合理的给每个人进行分配的。但是如果有这些梨都变成梨汁的话问题就不一样了,通过榨汁处理后的果汁基本可以做到按需分配,而且成分几乎一样。
同样的道理,服务器有很多但是面对人们各种各样或大或小的需求,传统的方式是很难分配的,有的可能资源不足,有的可能资源过剩,如果能把所有的服务器中的资源进行抽象然后池话,就可以做到按需使用,合理的进行资源分配了。
所以虚拟化技术就相当于一个榨汁的过程,将物理资源进行抽象。

云计算是干什么的?

后来自己接触了云计算,从事了Openstack,那这就容易理解很多了,虚拟化技术将作为整体的物理资源进行“榨汁”抽象,那每一个物理服务器都做相同的处理,最后形成一个庞大的资源池,那如何从资源池中获得资源,资源如何使用以及统一的调度管理,资源不够的时候怎么办,每个人能使用多少资源等等,说到这里可以看出来,“榨汁”虽然获取实现起来有些难度,但是在整个资源分配的过程中只是最基本的一环,最后想要这些资源形成生产力是需要一个庞大的系统来支撑的,这就是云计算的作用。如果说虚拟化技术是一个榨汁过程的话,云计算技术就是一整套果汁店的运行方案了。

虚拟化技术有哪些

这里参考了一篇文章,可以点这里查看
其实分类有很多种,站在不同的角度看待一个事物就会有不同的结果,那从我自己所接触的并且容易理解的方式,我觉得可以分为三种,硬件仿真,全虚拟化以及半虚拟化。

硬件仿真

在物理机上创建一个模拟硬件的程序,来仿真所有的硬件,在这个程序之上运行虚拟机,最典型的就是QEMU了。

  • 优点:虚拟机操作系统(VM OS)不需要更改
  • 缺点:由于所有的硬件都是软件模拟的,所以性能很差

全虚拟化

虚拟机的操作系统与底层硬件是完全隔离的,由Hypervisor捕捉并进行转化由VM OS对硬件的调用代码,比较典型的有KVM。

  • 优点:无需更改虚拟机操作系统,兼容性好。
  • 缺点:性能一般,特别是I/O性能

半虚拟化

与全虚拟化技术类似,利用Hypervisor来实现对底层硬件的共享访问,但VM OS中需要集成半虚拟化相关的代码,也就是让虚拟机自己知道是一个虚拟机,来配合Hypervisor。通过这种方式无需捕捉特权指令,所以性能非常好。最典型的的是Xen。

  • 优点:性能好
  • 缺点:需要对VM OS进行更改

这里曾经自己有一个疑惑,不太清楚硬件仿真和全虚拟化的区别在哪里,也可能是中文名字的诱导,现在还算清晰一些,硬件仿真的方式,虚拟机执行的指令都是由仿真程序模拟的,而全虚拟化中的虚拟机的指令是经过Hypervisor转给底层硬件的,后者如果还算是真正的调用了底层硬件的话,前者根本就是假货,都是仿真程序模拟的。是由根本区别的。

Hypervisor又是什么?

上面说到虚拟化技术相当于一个榨汁的过程,更准确点来说算是一个完整榨汁的方案,那Hypervisor就是一个榨汁机。这时候再看下准确点的定义应该能更清晰了,参考这里吧,这篇文章这样写的:

虚拟化 就是通过某种方式隐藏底层物理硬件的过程,从而让多个操作系统可以透明地使用和共享它。这种架构的另一个更常见的名称是平台虚拟化。在典型的分层架构中,提供平台虚拟化的层称为 hypervisor (有时称为虚拟机管理程序 或 VMM)。来宾操作系统称为虚拟机(VM),因为对这些 VM 而言,硬件是专门针对它们虚拟化的。图 1 简单的展示了这个分层架构。


figure1.gif

hypervisor 可以划分为两大类。首先是类型 1,这种 hypervisor 是直接运行在物理硬件之上的。其次是类型 2,这种 hypervisor 运行在另一个操作系统(运行在物理硬件之上)中。类型 1 hypervisor 的一个例子是基于内核的虚拟机(KVM —— 它本身是一个基于操作系统的 hypervisor)。类型 2 hypervisor 包括 QEMU 和 WINE。


type1.png
type2.png

之前也混淆过Hypervisor的分类与虚拟化的分类情况,现在这样看的话就能分清了,虚拟化如果是一套榨汁理论的话,Hypervisor是真正的榨汁机的按个产品。

这些内容这么长时间翻来覆去的也看了很多遍,但是放到一起的话感觉自己才看明白了,2017希望自己坚持下去,温故知新!

相关文章

  • 虚拟化技术与Hypervisor回顾

    从接触虚拟化技术到现在从事Openstack相关的开发已经好几年了,最初很多模模糊糊的概念现在看似也很简单,但是总...

  • Docker容器

    1.容器与管理程序虚拟化 容器与管理程序虚拟化(Hypervisor Virtualization, HV)不...

  • 嵌入式虚拟机管理器Xvisor对比分析

    译者序 摘要 1. 介绍 2. 虚拟化技术分类2.1 Hypervisor设计2.2 虚拟化模式 3. 嵌入式系统...

  • docker的使用

    容器技术在计算机的世界中,容器拥有一段漫长且传奇的历史。容器与管理程序虚拟化 (hypervisor virtua...

  • RHEL/CentOS6(6.6)虚拟化(1)

    一. 什么是虚拟化和迁移 1.1 什么是虚拟化 大多数虚拟化的实现都是使用能控制硬件的hypervisor,软件层...

  • docker 网络分析

    一。 回顾之前的分享: 1. 远古时代的 运行方式 2. 虚拟化方式 3. 虚拟化技术 4.虚拟化技术和容器化技术...

  • 《docker进阶与实战》笔记(一)

    1.docker虚拟化和虚拟机区别 由上图可见,docker省去Hypervisor层的开销,

  • 为什么Docker会比VM虚拟机快

    (1)docker有着比虚拟机更少的抽象层由于docker不需要Hypervisor((虚拟机)实现硬件资源虚拟化...

  • kvm虚拟化

    KVM 虚拟化技术 CPU虚拟化技术 内存虚拟化技术 IO虚拟化技术 网络IO虚拟化技术 磁盘IO虚拟化技术 虚拟...

  • Hypervisor, KVM, QEMU虚拟化

    Hypervisor, KVM, QEMU总结 Hypervisor 1.概念 Hypervisor, KVM, ...

网友评论

本文标题:虚拟化技术与Hypervisor回顾

本文链接:https://www.haomeiwen.com/subject/ruzqbttx.html