NOTE:该篇主要内容来自Best Damn Server Virtualization Period Book

4.虚拟化的种类

回顾一下IA-32(x86)架构,所有的软件都运行在4个权限层级中的一个层级上。操作系统在通常运行在Ring-0,这个层级有足够的访问权限来访问最多的处理器和平台资源;个人应用程序一般在Ring-3中运行,这个层级限制了一些影响其他应用程序的功能(例如内存映射)。这样,操作系统才能保留对资源的控制,从而保证系统和应用程序的稳定运行。

由于VMM必须对平台资源有控制的权限,一般的方法就是将VMM运行在Ring-0中,而子操作系统则运行在Ring-1或Ring-3中。然而,现在的操作系统都是特意为运行在Ring-0中设计的。这带来了一些挑战。值得一提的是,有17条“特权”指令能够控制关键平台资源。这些指令偶尔会在大多数现存操作系统版本中使用。当一个操作系统没有在Ring-0中运行的时候,这些指令中的任意一个指令都会造成冲突,或是造成系统出错,或是带来不正确的响应。VMM所面对的有关IA-32(x86)架构的挑战,在与IA-32的指令集架构一起工作的时候,还包括了Popek和Goldberg的虚拟化要求。

很多形式的虚拟化存在于现代信息技术中。最常见的是服务器虚拟化,这是当提到“虚拟化”这个术语时人们最常想到的虚拟化形式。然而,除了服务器虚拟化,IT组织也基于这个词的隐含意,使用其他类型的虚拟化。许多人认为虚拟化意味着将统一的计算资源“分区”(partitioning),变成多个实体。虚拟化也可以代表相反的意思——将多个实体以一个虚拟实体的形式表现出来,从而隐藏或掩盖了后台真正运行的计算资源。许多制造商和独立软件供应商已经开发出相应软件来以后者的形式进行虚拟化。其中最常见的是存储、网络和应用程序的虚拟化。

4.1 服务器虚拟化

服务器虚拟化是当今虚拟化应用中最主流的形式。虽然到目前为止我们讨论的概念都是与一般意义上的虚拟化相关,但这些概念经常展现在服务器虚拟化的产品中。尽管服务器虚拟化可以存在任何CPU平台和架构上,最常用的平台还是IA-32或x86架构。x86架构的指令集架构以及Popek和Goldberg的虚拟化要求所带来的挑战已经引导了几种VMM开发的方式。虽然在x86上有很多不同的VMM应用方式,他们可以被概括为4种比较明显的种类。

虚拟化类型 描述 优势 劣势
完全虚拟化(full virtualization) 这种虚拟化技术对底层硬件进行了模拟。这使得一个系统中能够直接运行在硬件上的应用程序也可以运行在虚拟机上。完全虚拟化支持最多种类的子操作系统。 完全隔离每个虚拟机和VMM;大多数操作系统可以直接安装,而不用做任何修改;提供接近物理CPU和内存的性能;通过二进制补丁(binary patch),利用复杂的技术在运行环境中捕获和模拟指令。 要求硬件和软件元素的正确组合;在纯粹的x86架构上不太可能实现,因为有些特权指令不能被捕获;性能会被x86指令的捕获和模拟技术影响。
半虚拟化(paravirtualization) 这种虚拟化部分模拟了底层硬件。大多数硬件特征,而不是所有硬件特征被模拟。最关键的特征是地址空间的虚拟化,从而保证为虚拟机提供它们自己的地址空间。 比完全虚拟化更加容易实现;在没有硬件辅助的基础上,半虚拟化的子操作系统在网络和磁盘I/O方面是最高性能的虚拟机。 在半虚拟化虚拟机中运行的操作系统如不作大量修改,则无法运行;虚拟机向下兼容的能力较弱,也不是非常便携。
操作系统虚拟化(operating system virtualization) 这种虚拟化是基于一个操作系统实例的。 资源很有限而效率很高;只需要管理和更新一个操作系统;以本地的速度运行;支持所有物理主机配置支持的硬件和操作系统特征。 不支持同时运行不同系列的操作系统,例如Windows和Linux;相比其他虚拟化形式,虚拟机的独立性和安全性较差;Ring-0以被操作系统占据和运行。
本地虚拟化(native virtualization) 这是x86架构虚拟化技术中最新的技术。又经常被称为混合虚拟化。这种类型的虚拟化是完全虚拟化或半虚拟化与I/O加速技术的结合。与完全虚拟化相同,子操作系统不需要修改就可以直接安装。它利用了x86架构的最新CPU技术——Intel VT和AMD-V。 用硬件而不是软件中的捕获模拟技术来处理不可虚拟的指令;有选择地应用了内存和I/O加速技术;支持x64(64位x86扩展)的目标操作系统;拥有各种类型的x86虚拟机中最高的CPU、内存和I/O性能。 要求具备支持硬件辅助加速的CPU架构;还是需要对一些半虚拟化的操作系统进行修改,虽然比纯粹的半虚拟化少。

NOTE: 硬件辅助(hardware-assisted)增强虚拟化

    为了使你的基于x86架构的物理平台以及所托管的虚拟机的性能最大化,确保选择硬件辅助(hardware-assisted)虚拟化的处理器。Intel和AMD都在最新一代处理器中(无论是服务器用还是PC和笔记本用)提供了这项技术——Intel提供了Virtualization Technology(Intel VT)技术;AMD提供了Pacifica(AMD-V)技术。
    硬件辅助的处理器为子操作系统提供了他们所需要的权限,来直接访问平台资源,而不用共享硬件的控制权。以前,VMM必须为子操作系统模拟硬件,而它自身保留了对硬件平台的控制。这些新型的处理器给予VMM和子操作系统各自所需的运行权限,而不需要再进行硬件仿真或修改操作系统。
    这种服务器帮助VMM开发者设计更简化的VMM。由于硬件辅助的处理器能够处理运算密集型的计算,用以管理向子操作系统发放平台控制权的任务,VMM的计算负担则被减轻。同时,CPU和子操作系统关键状态信息现在能够被存储在一个被保护的内存中,这个内存只有VMM可以访问,从而保护了传送过程的完整性。
    最后,硬件辅助处理器中所有的处理器都支持64位处理,这使得64位运算的优点将使子操作系统和其上的应用程序获益。这为虚拟机提供了更大的容量、扩展空间和可扩展性。
4.2 存储虚拟化
如今,存储供应商已经长时间为他们的客户提供高性能的存储解决方案。从最基础的形式来说,存储虚拟化存在于多种物理磁盘驱动器或主轴驱动器(spindle)的集合中,并将这种集合作为一个实体展现给主机服务器和操作系统,例如RAID技术的使用。这可以被认为是一种虚拟化,因为所有的驱动器都被当做一个逻辑驱动器来进行使用和交互,虽然它是由两个或更多的驱动器组成的。
存储区域网(Storage Area Network,SAN)技术的出现与应用进一步地掩盖了真正的存储层以及它的组件。不用改变操作系统中负责管理存储子系统的任何代码,IT组织正在多台服务器之间共享存储组件,即使每台服务器都以为它们拥有专门的物理存储。事实上,存储管理员只是简单地划分出一块虚拟存储空间并提供给相应的主机使用。
存储虚拟化在更先进技术问世后被推进至更高的等级。有这种产品——它能够根据一定的规定和策略(例如弹性策略、数据寿命或上一次访问记录),实时地、在后台从一个存储平台向另一个存储平台迁移,而不对主机造成任何中断或影响。也有这样的软件产品能够捕捉并模拟本地SCSI命令,并在后台将这些命令翻译成其他存储指令,使一个磁盘列阵看起来像一些列磁带驱动器或磁带库,从而不需要任何修改来支撑软件和操作系统。
4.3 网络虚拟化
正如存储供应商一样,网络硬件制造商也进入虚拟化领域很长时间,虽然他们的产品并不总是被认为实现了虚拟化。最普遍的网络虚拟化的形式有:
  • 虚拟局域网(Virtual LAN,vLAN)由IEEE 802.1Q标准认定,虚拟局域网是一种在一个共享物理网络中建立独立逻辑网络的方法。网络管理员将虚拟局域网融入他们的网络设计中,是为了逻辑上分割广播域并控制两个网络分割上的设备交互。虚拟局域网技术已经发展起来,并作为当今几乎所有以太网交换机的专用集成电路中的常见特征。尽管多种设备可以物理上连接到同一个网络交换机上,虚拟局域网技术使网络管理员能够建立多个相互隔离的虚拟网络。每个部分运用主交换机中的一部分有效资源(CPU、内存、带宽等等)。
  •  虚拟IP(virtual IP)一种不连接到特定计算机或计算机网络接口的IP地址。虚拟IP通常分配给网络流量经过途中的网络设备。流入包被发送到虚拟IP上,并被重定向至接包主机的真实端口上。虚拟IP大多用于冗余和负载均衡的情况下,这些情况下多个系统运行着一个一般的应用程序,并有能力接收来自网络设备重定向的流量。
  • 虚拟专用网(virtual private network,×××)一个用于在公共网络上进行保密通信的专用网络。×××的流量经常在一些非常不安全的介质之上传输(如Internet),并为敏感和机密的信息建立起从一端至另一端的安全信道。它同时也作为一种将职员的家庭网络与公司网络相连的方式。虽然需要特殊的软件来建立这种连接,但这种连接一旦建立,用户与网络上其他资源交互的处理方式与在一个真正的物理网络上相同,而不需要修改任何网络栈或操作系统。

4.4 应用程序虚拟化

应用程序虚拟化或软件虚拟化是日益发展的虚拟化家族中的最新成员。它是一种对软件进行管理的新方式。打破应用程序、操作系统和托管操作系统的硬件之间的范式和联系,应用程序虚拟化运用虚拟软件包来放置应用程序和数据,而不需要传统的安装流程。应用程序包可以被瞬间激活或失效,以及恢复默认设置,从而降低了干扰其他应用程序的风险,因为他们只运行在自己的计算空间内。

应用程序虚拟化的好处如下:

  • 消除应用程序冲突 应用程序可以保证使用正确版本的文件和属性文件(注册设置),而不用对操作系统进行任何修改,也不会对其他应用程序造成任何干扰。
  • 通过快速供应来减少应用程序的导入时间 管理员可以创建事先打包好的应用程序,这些应用程序包可以在本地或通过网络远程快速部署,即便是使用低速的网络连接。虚拟软件应用程序甚至可以根据需要而被传输到系统中,而不需要安装的流程。
  • 运行同一个应用程序的多个版本 多个版本的应用程序可以运行在同一个操作系统实例上,而不会发生任何冲突,从而提高了应用程序的升级方式,加速新特征的测试以及整合到运行环境中的过程。

转载于:https://blog.51cto.com/dchampion/672952

云管理之虚拟化——虚拟化的分类相关推荐

  1. 新支点国产服务器操作系统与虚拟化平台和云管理平台实现兼容

    通过航天云宏技术有限公司与广东中兴新支点技术有限公司的联合测试,中兴新支点电信级服务器操作系统分别与CNware虚拟化平台以及WinCloud云管理平台实现了兼容,稳定运行,表现优异,满足企业级用户需 ...

  2. 虚拟化服务器云平台,云管理平台——虚拟化管理功能介绍

    原标题:云管理平台--虚拟化管理功能介绍 虚拟化资源池管理:实现对虚拟化数据中心资源池中的物理服务器.虚拟机统一管理.监控.调度. 主要功能: 物理服务器管理:资源纳管.信息获取.清单与查询.配置和管 ...

  3. 虚拟化技术的分类及介绍

    虚拟化技术的分类及介绍 摘要 虚拟化是云计算系统中的一种基础技术,可以说当前一个云计算服务必定是构建在虚拟化的基础上的.本文首先介绍了不同抽象层次的虚拟化技术,之后对应用广泛的系统级虚拟化和操作系统级 ...

  4. 云桌面及桌面虚拟化的功能

    云桌面即桌面虚拟化,是指将计算机的桌面进行虚拟化,以达到桌面使用的安全性和灵活性.可以通过任何设备,在任何地点,任何时间访问在网络上的属于我们个人的桌面系统. 服务器虚拟化和桌面虚拟化使用一种名为管理 ...

  5. 服务器虚拟化和云平台,云平台和服务器虚拟化区别

    云平台和服务器虚拟化区别 内容精选 换一换 云硬盘(Elastic Volume Service, EVS)可以为云服务器提供高可靠.高性能.规格丰富并且可弹性扩展的块存储服务,可满足不同场景的业务需 ...

  6. linux虚拟化 pdf,IBM LinuxONE 虚拟机管理器和虚拟化管理.PDF

    IBM LinuxONE 虚拟机管理器和虚拟化管理 IBM LinuxONE™ 虚拟机管理器和虚拟化管理 ® LinuxONE 提供" 由你作主的Linux ",这一理念也适用于虚 ...

  7. 明辰智航云安网络与虚拟化性能管理系统

    交易分析之虚拟化数据库 明辰智航云安网络与虚拟化性能管理系统(以下简称明辰智航云安)针对虚拟化数据库进行分析包含俩部分-概观.服务器,并且以俩种参数进行分析–应用程序响应时间.交易量,目前支持4种数据 ...

  8. 云管理平台是个什么东西

    目前各大厂商解释不一,云计算的书里写的更是云里雾里,但是如果你实际用过现在各大云平台提供商所提供的云计算平台以后,你就可以明白的得出结论 云管理平台是数据中心资源的统一管理平台.它可以同时管理多种开源 ...

  9. 博云 BeyondCMP 云管理平台 5.6 版本发布

    近日,博云 BeyondCMP 云管理平台 5.6 版本发布正式发布.为了满足不同行业客户对云管理平台的多样化需求,在资源纳管.资源运维.平台综合展示.易用性友好性等方面进行了全面提升. 点击立即申请 ...

  10. 浅谈企业如何建设云管理平台(CMP)

    随着云计算的发展,构建在计算.存储.网络等基础资源之上的云平台逐步大行其道:而随着多种云平台技术路线的发展,多个云厂商的云平台开始出现在企业IT市场. 对于企业而言,为满足成本.按需.隐私.合规.避免 ...

最新文章

  1. centos6.9安装oracle10,2018-10-09 centos6.9 安装cx_Oracle
  2. python代码大全下载-最全Python算法实现资源汇总!
  3. 交叉编译器的命名规则及详细解释(arm/gnu/none/linux/eabi/eabihf/gcc/g++)
  4. hdu 4279 Number
  5. Struts2学习总结(完整版)
  6. Python批量下载电子邮件附件并汇总合并Excel文件_如何让繁琐工作自动化:聊聊Python与RPA...
  7. Java 算法 超级玛丽
  8. Python中的命名空间是什么?
  9. H2介绍 – Java嵌入式数据库
  10. 利用VS2005进行dump文件调试
  11. 小米官网竖直导航栏html,小米官网css3导航菜单代码_html/css_WEB-ITnose
  12. 如何查询出指定地点对应的经纬度(高德地图)
  13. word文字上下间距怎么调_word上下文字间距 word字体上下间距怎么调整
  14. C语言笔记——一些小细节
  15. Linux_admin-练习
  16. (vue) 前端实现下载本地Excel模板
  17. Cortex-M3单片机的IAP在线升级上位机和下位机
  18. 后智能手机时代的突围之道:OPPO的变与不变
  19. ppt中插入和删除动画
  20. ksql整合debezium创建连接器出现500

热门文章

  1. html表格填充渐变颜色代码,CSS控制图片、表格、背景颜色渐变示例
  2. SylixOS 内存管理源代码分析--phyPage.c
  3. Linux kernel Kobjects解析
  4. ip地址与整数的相互转化
  5. Java 调用 pytorch_5分钟!用Java实现目标检测 | PyTorch
  6. Linux内核绑定1号cpu,Linux绑定硬件IRQ到指定CPU核
  7. 乐山计算机学校搬迁,【骨头再次发贴】谈谈新校区。
  8. linux 运行菜刀,Linux部署常用命令
  9. 10录屏电流声_到底有没有完全免费的电脑+手机(安卓)录屏神器推荐,要能录制系统内部声音+麦克风的?...
  10. python listbox排序_Python3.3.2 tkinter ttk TreeView percolumn排序只按最后一列排序?