虚拟化

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

计算机资源: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 进程中的一个线程**。

虚拟化_第1张图片
图片.png

你可能感兴趣的:(虚拟化)