虚拟化

作者: 廖马儿 | 来源:发表于2017-05-13 06:06 被阅读47次

    简介:
    虚拟化是计算机资源的抽象和模拟。

    计算机资源:cpu,内存,硬盘,网络等。
    建立一个实体的数据中心,就是很多服务器,是非常昂贵的。

    抽象和模拟:就是虚拟化的实现方法。

    • 平台虚拟化 针对计算机和操作系统的虚拟化
    • 资源虚拟化 针对特定的系统资源的虚拟化,比如内存,存储,网络资源等
    • 应用程序的虚拟化 应用虚拟化是指的是将应用程序与操作系统解耦和,为应用程序提供了一个虚拟的运行环境

    平台虚拟化实现方式:

    全虚拟化,半虚拟化,硬件辅助虚拟化

    主要通过:cpu,内存,io去讲述三种实现方式

    为何要使用虚拟化?

    降低IT成本
    能带来安全性:各种风险资源可以整合,便于管理
    能带来可靠性

    虚拟化的原理

    学术理论-> 实践

    1974年,Gerald J.Popek 和 Robert P.Goldberg提出虚拟化一些规律,总结出来。
    虚拟化的三个充分条件:
    1)效率性 绝大多数客户机指令(虚拟机发出的)应该由硬件直接执行而无需虚拟化管理程序的参与
    2)资源控制 虚拟化管理程序对系统资源有完全的控制能力和管理权限,包括资源的分配,监控,回收
    3)等价性 一个运行于虚拟机上的程序,其行为应与直接运行于物理机上的同程序的行为基本一致,值允许有细微差异,比如在系统时间方面。

    虚拟化监控器:VMM(Virtual Machine Monitor),也是虚拟化管理程序。Monitor就是监控器。

    定义:一种运行在物理服务器和操作系统之间的中间软件层。

    作用:允许多个操作系统和应用共享一套基础物理硬件,因此也可以看做是虚拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机。

    可以理解为一个服务器里面虚拟化大管家。
    服务器里面硬件资源都归他管理。


    虚拟化实现

    1)CPU虚拟化(CPU资源)
    2)MEM虚拟化(内存资源)
    3)IO虚拟化(硬盘资源)

    上面的每一种虚拟化都分为:全虚拟化,半虚拟化,硬件辅助虚拟化


    虚拟化和云计算的区别

    云计算是个概念,而不是具体技术。
    虚拟化是一种具体技术,指把硬件资源虚拟化,实现隔离性、可扩展性、安全性、资源可充分利用等特点的产品。

    CPU虚拟化的技术:Intel的VT-x,AMD的AMD-V
    虚拟化的软件:VMWare,Hyper-V,Xen,KVM,OpenVZ

    目前云计算,大多是依赖虚拟化,通过把多台服务器实体虚拟化后,构成一个资源池,实现共同计算,共享资源。也就是现在所谓“云计算”,其实这个词提出来之前,过去的“服务器集群”就已经实现这些功能了,只不过没有现在那么先进而已。


    CPU虚拟化:
    查看本机是否支持CPU虚拟化:

    egrep -o '(vmx|svm)'  /proc/cpuinfo
    

    如果有输出 vmx 或者 svm,就说明当前的 CPU 支持 KVM。
    CPU 厂商 Intel 和 AMD 一般都支持虚拟化了,除非是非常老的 CPU。
    一个 KVM 虚机在宿主机中其实是一个 qemu-kvm 进程,与其他 Linux 进程一样被调度。

    虚机中的每一个虚拟 vCPU 则对应** qemu-kvm 进程中的一个线程**。

    图片.png

    相关文章

      网友评论

        本文标题:虚拟化

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