虚拟化技术概述

笔记内容:虚拟化技术概述
笔记日期:2018-03-05

  • 28.1 了解虚拟化
  • 28.2 常见虚拟化软件
  • 28.3 虚拟化架构
  • 28.4 KVM简介

了解虚拟化

虚拟化简单讲,就是把一台物理计算机虚拟成多台逻辑计算机,每个逻辑计算机里面可以运行不同的操作系统,相互不受影响,每个逻辑系统都是独立的存在,这样就可以充分利用物理硬件的资源,而且还可以自由分配资源。

虚拟化是一个广义的术语,对于不同的人来说可能意味着不同的东西,这要取决他们所处的环境。在计算机科学领域中,虚拟化代表着对计算资源的抽象,而不仅仅局限于虚拟机的概念。例如对物理内存的抽象,产生了虚拟内存技术,使得应用程序认为其自身拥有连续可用的地址空间(Address Space),而实际上,应用程序的代码和数据可能是被分隔成多个碎片页或段),甚至被交换到磁盘、闪存等外部存储器上,即使物理内存不足,应用程序也能顺利执行。

虚拟化技术起源于20世纪60年代末,美国IBM公司当时开发了一套被称作虚拟机监视器(Virtual Machine Monitor)的软件,该软件作为计算机硬件层上面的一层软件抽象层,将计算机硬件虚拟分区成一个或多个虚拟机,并提供多用户对大型计算机的同时、交互访问。

虚拟化技术主要分为以下几个大类 :

  • 平台虚拟化(Platform Virtualization),针对计算机和操作系统的虚拟化。
  • 资源虚拟化(Resource Virtualization),针对特定的系统资源的虚拟化,比如内存、存储、网络资源等。
  • 应用程序虚拟化(Application Virtualization),包括仿真、模拟、解释技术等。

我们通常所说的虚拟化主要是指平台虚拟化技术,通过使用控制程序(Control Program,也被称为 Virtual Machine Monitor 或 Hypervisor),隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境(称为虚拟机)。虚拟机中运行的操作系统被称为客户机操作系统(Guest OS),运行虚拟机监控器的操作系统被称为主机操作系统(Host OS),当然某些虚拟机监控器可以脱离操作系统直接运行在硬件之上(如 VMWARE 的 ESX 产品)。运行虚拟机的真实系统我们称之为主机系统。

示意图:

在之前虚拟化技术分为全虚拟化和半虚拟化,因为早期的CPU硬件不支持虚拟化,虚拟机上的操作系统(Guest OS)要想使用CPU资源,需要通过VMM来翻译指令,这个过程比较耗费资源,这种虚拟化技术叫做全虚拟化(例如VMware Workstation)。半虚拟化技术通过修改Guest OS内核,让Guest OS可以直接使用CPU资源,而不需要翻译指令了,从而节省了资源,但修改内核比较鸡肋(例如XEN),因为有些操作系统的内核是不开源的。后续CPU厂商直接支持虚拟化,不需要通过VMM翻译指令了,就无所谓半虚拟化和全虚拟化了。

虚拟化技术的优点:

  • 资源池——一个物理机的资源分配到了不同的虚拟机里
  • 很容易扩展——增加物理机或者虚拟机即可,因为虚拟机是可以复制的
  • 很容易云化——亚马孙AWS,阿里云,谷歌云等

虚拟化技术的局限性:

  • 每一个虚拟机都是一个完整的操作系统,所以需要给其分配物理资源,当虚拟机数量增多时,操作系统本身消耗的资源势必增多
  • 虚拟化技术没法解决运维环境和开发环境的矛盾,所以后来才出现了容器技术

关于虚拟化技术的更多内容,可参考以下文章:


常见虚拟化软件

VMware系列,商业

  • VMware Workstation,适合单机使用
  • VMware Vsphere(VMware esxi),适合规模更大的场景
  • VMware Fusion(Mac)

Xen

  • 开源,支持半虚拟化

XenServer

  • 商业,Ctirx收购Xen之后研发的,基于Xen的

KVM

  • 开源 ,基于Linux内核模块,目前KVM已经被红帽收购了,大多数系统都倾向于使用KVM

Hyper-V

  • 商业,微软的产品,适合在windows服务器上用

Openvz

  • 开源 ,轻量,基于Linux,虚拟机和宿主机共用一个内核,优点是一台物理机可以虚拟化很多台虚拟机,缺点是不稳定,物理机的内核奔溃,所有的虚拟机都会崩溃,早期vps供应商用得比较多

VirtualBox

  • 开源 ,Sun公司开发 ,Oracle收购Sun之后,现在属于Oracle

虚拟化架构

虚拟化技术有很多,不同的体系都有几十种,但是虚拟化架构主要有两种形式:宿主架构和裸金属架构:

I型:虚拟机直接运行在系统硬件上,创建硬件全仿真实例,被称为“裸机”,也称为裸金属架构。

II型:虚拟机运行在传统操作系统上,同样创建的是硬件全仿真实例,被称为“托管”hypervisor。也称为宿主架构。

Xen属于I型,KVM属于II型。

虚拟化架构是一个大话题,关于这方面的详细内容可参考以下文章:


KVM简介

这里只介绍KVM而不介绍其他虚拟化软件的原因有两点,一是我们大多数的服务器系统都是Linux内核的操作系统,而KVM是基于Linux内核的。二是KVM是开源、免费的,其他的例如VMware Vsphere、XenServer等都是商业收费的,而Hyper-V 又是Windows的,Openvz 又有局限性(与宿主共用内核,就无法安装其他内核的虚拟机),稳定性也有待考究,VirtualBox又不适合大规模的虚拟化场景,所以最后就只剩下KVM了。

KVM是Kernel-based Virtual Machine的缩写,意为基于内核的虚拟机。KVM是一个完全开源的系统虚拟化模块,它所基于的是Linux内核,它把Linux内核变成了一个Hypervisor,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。

最开始KVM是由以色列初创公司Qumranet开发,后来2008年9月RedHat公司收购了Qumranet,RedHat基于KVM的虚拟化解决方案叫做RHEV,不过RHEV是收费的。

KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。

KVM在Linux操作系统里面以进程的形式出现,由标准的Linux调度程序进行调度,这使得KVM能够使用Linux内核的已有功能。但是只有一个KVM内核模块还不能实现虚拟化的全部功能,就好比操作系统只有内核还不能成为一个完整的操作系统一样。所以这就需要提到QEMU了,QEMU是一个开源的虚拟化软件,纯软件,可以虚拟化所有的硬件,性能不强。而KVM基于QEMU开发了一个能够运行在用户空间的工具QEMU-KVM,KVM里的磁盘、网络设备等都是通过QEMU-KVM这个工具模拟出来的,所以KVM结合QEMU-KVM工具之后才算完整,KVM和QEMU-KVM通信是通过/dev/kvm实现的。其中libvirt是用来管理KVM虚拟机的API,其命令为virsh。

KVM架构图:

原文地址:http://blog.51cto.com/zero01/2083221

时间: 2024-10-08 19:27:49

虚拟化技术概述的相关文章

服务器虚拟化技术概述

虚拟化是云计算实现的一个环节,也可以说是一种方式,我们知道的虚拟化种类有cpu虚拟化,内存虚拟化,桌面虚拟化,服务器虚拟化,大家口中的虚拟化一般指的是服务器虚拟化,这种虚拟化类型也是作为初学者入门虚拟化技术的一种最佳的选择,我们知道随着网络时代的发展,支持web应用的软件越来越多,用户数量也因此急速膨胀,一台普通的物理机很难支撑这么庞大的数据吞吐量,以前我们的web应用可能一台物理机就能搞定,到后来两台服务器,百台服务器做Rac,那个时候只有超大型的网络应用公司才有财力配置单独的机房,甚至整个大

初识虚拟化技术

(一)虚拟化技术概述 虚拟化技术可针对详细应用目的创建特定目的的虚拟环境,安全.效率高,快照.克隆.备份.迁移等方便.系统虚拟化是将一台物理计算机虚拟成一台或多台虚拟计算机系统,每一个都有自己的虚拟硬件,其上的操作系统任觉得自己执行在一台独立的主机上,计算机软件在一个虚拟的平台上而不是真实的硬件平台上执行.虚拟化技术能够扩大硬件的容量.简化软件的又一次配置过程.当中CPU的虚拟化能够单CPU模拟多CPU并行执行,同意一个平台同一时候执行多个操作系统,而且应用程序能够在相互独立的空间内执行而互不影

虚拟化技术在智能终端的应用

服务器和桌面机虚拟化一直占据有相当大的版面,随着云计算和存储的兴起,虚拟化技术更被热捧,还有一种虚拟化技术发展迅猛--嵌入式虚拟化.嵌入式虚拟化是指嵌入式系统中部署虚拟机监控程序.尽管嵌入式设备一直受到严格的资源限制,但今天的设备范围广泛--从拥有服务器级功能(比如对虚拟化的硬件支持)的强大处理器到拥有计较少容量和资源的功耗优化系统.如果向嵌入式系统添加一个虚拟机监控程序,将添加灵活性和一些高级功能,将嵌入式设备转变为一种新型系统. 嵌入式领域包含几个有用的虚拟化应用领域:移动设备.安全性内核和

云计算开发者必会的虚拟化技术入门

课程介绍 本章主要讲解云计算技术的核心技术之一虚拟化技术,课程首先说明了虚拟化技术的主要作用以及常见实现方法,并针对硬件中常用的虚拟化技术(CPU.内存.IO)进行详细的讲解,最后还针对目前流行的开源虚拟化项目进行说明,讲解其出现的漏洞以及阿里云是怎样完成漏洞分析和处理的. 讲师介绍: 张献涛,阿里云资深专家,现主导阿里云ECS虚拟化架构的设计与研发工作. 课程目标 学习掌握云计算技术的核心技术之虚拟化技术. 适合人群 云计算开发者 课时列表 课时1:虚拟化技术应用:弹性计算 课时2:虚拟化技术

StackWise & FlexStack技术概述

概述: 堆叠技术分为硬堆叠和软堆叠2种.硬堆叠技术采用专用的堆叠线及堆叠接口以实现堆叠效果:软堆叠通常利用千兆端口,以软件的方式实现堆叠. 该文档介绍的堆叠技术指的是硬堆叠,包括3750中的StackWise技术以及2960中的FlexStack技术,主要被应用于接入层.汇聚层. 1.概述 1.1 堆叠技术带来的好处 便于管理 传统接入网络架构拓扑如图1.1所示,在该网络中,管理员需要管理4台相互独立的设备,而随着接入模块的增多,其管理任务也将相应增大.这种增大不仅体现在需管理设备的数量上,同时

VMware虚拟化技术之八vSphere App HA部署

概述 App HA是 vSphere HA的延伸,从保护虚拟机延伸到到保护虚拟机上运行的应用服务.vSphere App HA 是 vSphere Web Client 的插件.通过 vSphere App HA,可以为您的环境中的虚拟机上运行的应用程序定义高可用性. 功能 通过 vSphere App HA,可以使用 vSphere Web Client 定义您的环境中的虚拟机上运行的应用程序的高可用性. vSphere App HA 执行以下功能: l 显示应用程序的位置和可用性状态. l

VMware虚拟化技术之九vCAC安装和配置

vCAC概述 VMware vCloud Automation Center简称vCAC 通过一个自动交付应用和IT 服务的灵活解决方案,可实现您的业务所需的敏捷性和 IT 所需的控制力. 安装前准备工作: 1.在AD服务器DNS服务中添加vCAC-SSO.vCAC-Server以及IaaS服务器的正方向解析,将AD服务器作为时间同步服务器. 2.查看第二章VMware虚拟化技术之二vCenterServer5.5u1部署中的表格中各服务器IP地址以及对应的名称. 3.下载vCAC安装OVA文件

GPU虚拟化技术

一.GPU概述 GPU的英文名称为Graphic Processing Unit,GPU中文全称为计算机图形处理器,由1999 年NVIDIA 公司提出.GPU这一概念也是相对于计算机系统中的CPU而言的,由于人们对图形的需求越来越大,尤其是在家用系统和游戏发烧友,而传统的CPU不能满足现状,因此需要提供一个专门处理图形的核心处理器.GPU 作为硬件显卡的"心脏",地位等同于CPU在计算机系统中的作用.同时GPU也可以用来作为区分2D硬件显卡和3D硬件显卡的重要依据.2D硬件显卡主要通

《处理器虚拟化技术》

<处理器虚拟化技术> 基本信息 作者: 邓志 出版社:电子工业出版社 ISBN:9787121230196 上架时间:2014-5-30 出版日期:2014 年6月 开本:16开 页码:646 版次:1-1 所属分类:计算机 > 计算机组织与体系结构 > 微处理器/CPU 更多关于>>><处理器虚拟化技术> 编辑推荐 <处理器虚拟化技术>一书深入讲解了Intel VT-x技术的VMX架构知识,并且对整个x86/x64体系有更深入的探讨!全书