虚拟化技术简介

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
虚拟化技术简介
2011, 孟祥元
关于虚拟化技术
一、什么是虚拟化技术
• 在计算机科学中,虚拟化(Virtualization)是一个表现逻辑群组或计算机 资源的子集的进程,用户可以用比原本的组织管理更好的方式来存取这些 进程。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组 态所限制。一般所指的虚拟化资源包括计算能力和资料储存。 • 虚拟化是企业IT整体发展趋势的一部分,在把计算机的处理能力被视为用 户按需承担开销的一种工具,它包括自主计算、通过认知活动和计算工具 进行自主管理。 • 虚拟化技术并不是一个新技术,早在60-70年代,IBM就已经在360/67, 370等硬件体系实现上虚拟化。IBM的虚拟化通过VMM(Virtual Machine Monitor)把一个硬件虚拟成多个硬件(VM,Virtual Machine),各VM之间可 以认为是完全隔离的。这个隔离不同于各进程之间的地址空间隔离。无论 是内存,设备,还是处理器等对各VM来讲,都被认为是自已独一套的。 在VM上可以运行”任何”的操作系统(称为Guest OS)而不会对其它的VM 产生影响。
• 虚拟内存,将不相邻的内存区,甚至硬盘空间虚拟成统一连续的内存 虚拟内存,将不相邻的内存区,甚至硬盘空间虚拟成统一连续的内存 地址 • 存储虚拟化,将实体存储空间(如硬盘)分隔成不同的逻辑存储空间 存储虚拟化,将实体存储空间(如硬盘)分隔成不同的逻辑存储空间 • 网络虚拟化,将不同网络的硬件和软件资源结合成一个虚拟的整体 网络虚拟化,将不同网络的硬件和软件资源结合成一个虚拟的整体
虚拟化的主要类型(*参考)
• 硬件平台虚拟化,将操作系统和硬件平台资源分割开 (稍后展开) 硬件平台虚拟化,将操作系统和硬件平台资源分割开 稍后展开) • 软件系统虚拟化,在操作系统和应用程序间建立虚拟环境 软件系统虚拟化,在操作系统和应用程序间建立虚拟环境
– 操作系统级虚拟化(稍后展开) – 便携式应用程序,允许程序在便携式设备中运行而不用在操作系统中安装 – 跨平台虚拟化,允许针对特定CPU或者操作系统的软件不做修改就能运行在其他平 台上,例如Wine,Adobe AIR, Java – 虚拟设备,运行于虚拟化平台之上,面向应用的虚拟机映像
为什么需要操作系统虚拟化
为什么需要操作系统虚拟化
虚拟设备(Virtual Appliance)
• 虚拟设备(英语:Virtual Appliance),或译为虚拟电器 [1]、虚拟器件[2],是一类运行于虚拟化平台(如 VMware 、Xen、VirtualBox)之上的、面向应用的虚拟机映像。 虚拟设备是软件设备的子集,与其它软件设备类似,它简 化了复杂应用程序栈的安装、配置过程,降低了运营维护 成本。 • 虚拟设备通常具有基于 web 的配置管理界面,作为单一 应用的宿主运行。因此,虚拟设备是网络应用部署一种新 的方式,可用于“软件即服务”(SaaS)的商业模式。
为什么需要虚拟化技术
虚拟化的主要类型
全虚拟化/半虚拟化/平行虚拟化(准虚拟化)
Full virtualization / Partial virtualization / Paravirtualization
系统虚拟化/应用虚拟化/工作环境虚拟化
Operating system-level virtualization / Application virtualization / Workspace virtualization
Xen虚拟机的迁移
• Xen虚拟机可以在不停止的情况下在多个物理主机之间即 时迁移(live migration)。在操作过程中,虚拟机在没有停 止工作的情况下内存被反复的复制到目标机器。虚拟机在 最终目的地开始执行之前,会有一次60-300毫秒的非常短 暂的暂停以执行最终的同步化,给人无缝迁移的感觉。类 似的技术被用来暂停一台正在运行的虚拟机到磁盘,并切 换到另外一台,第一台虚拟机在以后可以恢复。
几种常见的硬件虚拟化解决方案
XenServer
VMware Workstation
VirtualBox
Parallels Workstation
硬件虚拟化解决方案——Xen
Xen的介绍
• Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发。 它打算在单个计算机上运行多达128个有完全功能的操作 系统。 • 在旧(无虚拟硬件)的处理器上执行Xen,操作系统必须 进行显式地修改(“移植”)以在Xen上运行(但是提供 对用户应用的兼容性)。这使得Xen无需特殊硬件支持, 就能达到高性能的虚拟化
Xen的系统平台支持
• Xen目前可以运行在x86及x86-64系统上,并正在向IA64 、PPC移植。移植到其他平台从技术上是可行的,未来有 可能会实现。 • 由于Xen可以安装在众多Linux操作系统至上,因此目前许 多Linux发行版都在发布的时候内置了Xen。 • Citrix也提供一套集成度更好的XenServer软件,该软件不 需要额外的操作系统,可以作为操作系统直接安装到硬件 上。
操作系统虚拟化解决方案——Virtuozzo Containers
– 虚拟专用网络(VPN),在大型网络(通常是Internet)中的不同计算机(节点) 通过加密连接而组成的虚拟网络,具有类似局域网的功能 – 存储器虚拟化,将网络系统中的随机存储器聚合起来,形成统一的虚拟内存池
• 桌面虚拟化,在本地计算机显示和操作远程计算机桌面,在远程计算 桌面虚拟化,在本地计算机显示和操作远程计算机桌面,在远程计算 机执行程序和储存信息 • 数据库虚拟化
Xen的完全虚拟化
• Intel对Xen贡献修改以支持其VT-X 架构扩展,而AMD则 修改以支持其AMD-V架构扩展。如系统处理器支持虚拟硬 件扩展(Intel和AMD对本地支持虚拟化的扩展),这项技 术将允许未修改的客操作系统运行在Xen虚拟机中。事实 上,那意味着性能的提升,并且你可以在没有进行任何协 议不允许的修改的情况下对Windows进行虚拟。
内存聚合技术/虚拟内存隔离技术
Memory virtualization / Virtual memory
物理存储的逻辑抽象处理/分布式文件系统
Storage virtualization / Distributed file system
桌面虚拟化/地址空间虚拟化(VPN)
Desktop virtualization / Network virtualization
– – – – – x86 (and x86_64)—AMD-V (代号Pacifica), Intel VT (代号Vanderpool) IOMMU 由AMD和Intel共同开发。 Power Architecture (IBM/Power.org) Virtage (Hitachi) UltraSPARC T1, T2 及 T2+ (Sun)
Leabharlann Baidu
硬件虚拟化
• 在完全虚拟化(full virtualization)中,虚拟机模拟一个足够强大的硬 件使客户机操作系统独立运行。其中还包括硬件辅助虚拟化( hardware-assisted virtualization),在硬件辅助虚拟化中,硬件提供 结构支持帮助创建虚拟机监视并允许客户机操作系统独立运行。 • 在部分虚拟化(partial virtualization)中(包括地址空间虚拟化), 虚拟机模拟数个(但不是全部)底层硬件环境,特别是地址空间。这 样的环境支持资源共享和线程独立,但是不允许独立的客户机操作系 统。虽然这并不被视为一般意义上的虚拟机,但这在历史上是非常重 要的一页。这项技术曾被用于CTSS(试验性的IBM M44/44X),以 及争议性的系统比如MVS及Commodore 64(两个都是“task switch”程序)。 • 在准虚拟化(paravirtualization)中,虚拟机不需要模拟硬件,而是 提供一个特殊的API只能被特制的客户机操作系统使用。
什么是虚拟化技术
• 在计算机集群中,许多小型服务器正在被一个大型服务器取代以增加硬件 资源的利用率(如CPU等)。虽然硬件正在被整合,但是典型的操作系统 仍然是独立的。取而代之地,每一个运行在独立的服务器上的操作系统被 转移到在虚拟机中。大型的服务器可以“寄宿”许多这样的“客户”虚拟 机。这就是物理到虚拟(Physical-to-Virtual, P2V)的转换。 • 虚拟机比真实的机器可以被更容易从外部被控制和检查,并且可以配置更 灵活。这在内核开发与操作系统课程教学中尤为有用。[3] • 创建一个新的虚拟机不需要预先购买硬件。同时,一个新的虚拟机可以容 易地从一台计算机转移到另一台上。举例来说,一个销售员可以复制一个 包含试用版软件的虚拟机到他的笔记本电脑去访问他的客户而不用更换电 脑。类似的,虚拟机中的故障不会对宿主机产生损害,所以不会令笔记本 上的操作系统死机。 • 由于可以被容易地迁移,虚拟机可以被用于远距离灾难恢复方案。
完全虚拟化之硬件辅助虚拟化
• 在硬件辅助虚拟化(hardware-assisted virtualization)中, 硬件提供结构支持帮助创建虚拟机监视并允许客户机操作 系统独立运行。硬件辅助虚拟化在1972年,为了使用第一 个虚拟机操作系统VM/370,第一次由IBM System/370引 入。在2005年与2006年,Intel和AMD为虚拟化提供了额 外的硬件支持。支持硬件辅助虚拟化的有 Linux KVM, VMware Workstation, VMware Fusion, Microsoft Virtual PC, Xen, Parallels Desktop for Mac, VirtualBox and Parallels Workstation。 • 支持完整的虚拟化技术的硬件平台包括:
Xen的使用
• IBM经常在其主机和服务器上使用虚拟机来尽可能发挥其 性能,并类似chroot监禁那样将程序置于隔离的虚拟OS 中以增强安全性。除此之外,它还能使不同和不兼容的 OS运行在同一台计算机上。Xen支持在运行时进行迁移, 保证正常运行并且避免宕机。
Xen的半虚拟化
• Xen通过一种叫做半虚拟化的技术获得高效能的表现(较 少的效能损失,典型的情况下大约损失 2%,在最糟的情 况下会有 8% 的效能耗损;与其它使用完全的虚拟化却造 成最高到 20% 损耗的其他解决方案形成一个明显的对比 ),甚至在某些与传统虚拟技术极度不友好的架构上( x86),Xen也有极佳的表现。与那些传统透过软件模拟 实现硬件的虚拟机不同,在3.0版本及在Intel VT-X支援前 的Xen需要让客座作业系统(guest operating systems) 与Xen API进行连接。到目前为止,这样连结已经可以运 用在NetBSD,GNU/Linux,FreeBSD和贝尔实验室的 Plan 9系统上。在Brainshare 2005会议上,Novell展示了 NetWare与 Xen的连通。与Windows XP连通的技术曾在 Xen开发初期进行,但微软的协议未能允许它发布。Sun 微系统公司也正积极研究Solaris与Xen的连结,使其能在 Xen平台上运作。
软件虚拟化之操作系统层虚拟化
• 在操作系统层虚拟化(OS-level virtualization)中,独立 主机被虚拟化在操作系统层中,这使得多个独立且安全虚 拟化的服务器运行在一台计算机上。客户操作系统环境与 宿主服务器分享同一个操作系统,例如,相同的系统内核 被用来创建客户机环境。程序运行在被视为独立系统的客 户机环境中。这种方式由FreeBSD jails首创;类似的例子 包括Solaris Containers, OpenVZ,Linux-VServer, AIX Workload Partitions,Parallels Virtuozzo Containers, 以及 iCore Virtual Accounts。
相关文档
最新文档