虚拟设备和 Open Virtualization Format(1)
- UID
- 1066743
|
虚拟设备和 Open Virtualization Format(1)
虚拟设备 是通过虚拟化支持的一种软件交付形式,它促进了高效和优化的应用程序的交付,推动了快速成长的云计算浪潮。本文将探索虚拟化和虚拟设备背后的理念,虚拟设备对操作系统的影响,以及将简化虚拟设备软件部署的未来标准。
虚拟设备的关键因素我们首先快速讨论一下虚拟设备背后的关键因素:虚拟化平台。操作系统代表针对各种应用程序的虚拟化平台(共享对处理器和资源的访问),而管理程序(hypervisor)则代表针对各个操作系统的虚拟化平台。管理程序很重要,因为它支持在同一个系统上运行多个不同的操作系统。对于桌面用户而言,这种能力很重要,因为它允许桌面用户同时运行 Windows® 和 Linux®。对于服务器而言,这种能力支持托管多个操作系统,这些操作系统能够同时运行各种服务器应用程序,如 Web 服务器、电子邮件程序、数据库和其他有用的服务。另外,各个操作系统之间都是相互独立的,一个操作系统中的故障不会影响另一个操作系统。
我们首先快速讨论一下虚拟设备背后的关键因素:虚拟化平台。操作系统代表针对各种应用程序的虚拟化平台(共享对处理器和资源的访问),而管理程序(hypervisor)则代表针对各个操作系统的虚拟化平台。管理程序很重要,因为它支持在同一个系统上运行多个不同的操作系统。对于桌面用户而言,这种能力很重要,因为它允许桌面用户同时运行 Windows® 和 Linux®。对于服务器而言,这种能力支持托管多个操作系统,这些操作系统能够同时运行各种服务器应用程序,如 Web 服务器、电子邮件程序、数据库和其他有用的服务。另外,各个操作系统之间都是相互独立的,一个操作系统中的故障不会影响另一个操作系统。
对于服务器应用程序,虚拟化非常重要。美国环保局最近一份研究表明,典型服务器的利用率通常只有 5%。因此,服务器上还有许多空间、许多潜力可以挖掘,可以节约大量成本。虚拟化技术能够解决这个问题,它能够创建虚拟服务器,虚拟服务器上可以运行多个操作系统及其应用程序。这样,10 个或更多的物理服务器能够减少为一个运行 10 个或多个虚拟服务器的物理服务器(见图 1)。
图 1. 服务器虚拟化的好处图 1 显示,每个软件堆栈(操作系统和应用程序)都是一个独立的虚拟机(VM)。一个虚拟机失败并不意味着所有虚拟机都会失败。但是,图 1 中最重要的部分是每个堆栈的顶部。每个软件堆栈的最终目的都与应用程序有关:应用程序是软件堆栈的真正价值所在。从这个意义上讲,虚拟设备只是应用程序的容器。应用程序有其自身的依赖项(如操作系统或库),但应用程序是关键因素。
虚拟设备剖析因此,一个虚拟设备只是应用程序及其所有依赖项(操作系统、第三方库、配置等)的一个容器。下面让我们深入探讨虚拟设备及其替代品。
虚拟设备容器是一个 VM 映像(VMI),VMI 是一个包含 VM 的硬盘映像(包括内核、引导分区和引导文件系统)的文件。这个文件通常采用压缩格式 — 尤其是,该文件并不是根据 VM 的硬盘容量确定的,它的大小随着 VMI 的内容变化。从兼容性角度看,VMI 的格式很重要,我将稍后介绍这个主题。
您可以将虚拟设备视为一个软件堆栈,这个软件堆栈包含目标应用程序、库、服务配置、相关数据和操作系统。另外,虚拟设备不仅仅是一组合并的元素,它还针对特定应用程序进行了配置和优化(见图 2)。
图 2. 虚拟设备剖析但说到底,虚拟设备只不过是一个大文件,管理程序可以用它创建一个 VM 实例。作为一个文件,虚拟设备拥有一些有用的特性 — 比如,复制(以便备份)和在多个管理程序之间移动(称为 VM 迁移)。
虚拟设备的优势是,关注点在应用程序上。VMI 包含在虚拟环境中运行应用程序所需的所有组件,它针对应用程序进行配置和优化,从而简化了应用程序的部署。现在,考虑一下一种替代方法:同样的应用程序可以在一个 VMI 之外分发并在任意操作系统上运行,这需要编译应用程序及其所有依赖库和服务,然后配置和调优应用程序和环境。应用程序也可以有特定的操作系统要求。这个过程很常见,其复杂性取决于应用程序本身,但这个过程会耗费大量时间,而且容易出错。
这两种方法之间的根本区别在于对应用程序的关注点不同。例如,一个应用程序安装可能已根据特定操作系统(或特定文件系统)量身定做,也可能需要安装某些服务(如数据库)和库(以满足这些服务的依赖项),而且,这些元素可能都需要配置和调优。一旦该应用程序部署到一个特定系统后,它也就被绑定到那个系统之上了。
VMI 依赖一个兼容的管理程序,而且可能需要对该管理程序的设备模拟进行一些配置,但其关注点还是在应用程序上。但是,除了配置简单外,虚拟设备还有别的价值。现在,让我们看看虚拟设备的一个关键特性。
虚拟设备的含义当您开始从应用程序角度看待虚拟设备时,您可以开始调整并调优应用程序周围的整个环境。考虑一下操作系统。对于特定应用程序,某个操作系统服务可能不是必须的,但其他服务对于目标应用程序的性能可能很重要。这个上下文中提到的操作系统称为 Just Enough Operating System,或 JeOS(发音与 juice 相同)。VMware 首先提出这个术语,表示针对虚拟设备的理想构造。
尽管 VMware 创造了这个术语,但实践却花了很长时间。基于 Linux 的嵌入式系统通常采用一个规模更小的内核和应用程序堆栈,这比提供的嵌入式设置更适合受限制的环境。然而,VMware 的应用不仅仅是最小化服务以支持一个受限制的环境。服务器空间中的硬盘空间和内存通常很充足,但实际上很多硬盘空间和内存都处于闲置状态。更少的服务和驱动程序意味着给定系统上需要维护的软件更少,从管理角度看,这意味着更新操作系统需要的补丁更少(更新需要的带宽和存储空间也就更少)。
从可靠性角度看,JeOS 提供了一些好处。通过排除给定系统不需要的软件,您减少了故障发生的几率并提高了稳定性。这还将最小化系统遭受攻击的几率(更少的服务意味着攻击系统的路径更少),从而提高软件堆栈的安全性。
Linux(一个单片内核)提供通过模块动态调整操作系统的方法,但更大程度的架构最小化只能通过内核编译实现。相比之下,微核操作系统提供动态抛出功能的方法,从而提供伸缩性更好的环境。为实现上述目标,微核创建一个只包含基本服务(如内存管理和调度)的内核并将其他功能推到内核之外。除了提供伸缩性更好的环境之外,微核还能提供稳定性优势。特权空间中运行的代码越少,操作系统失败的可能性也就越小。 |
|
|
|
|
|