- 浏览: 498425 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (185)
- job (15)
- linux/windows/unix/bash/shell (31)
- JAVA/J2EE/spring/hibernate/struts (30)
- VC/C++ (48)
- mysql/postgresql (6)
- php/jsp/asp/pear (1)
- FMS/flex/openlaszlo/red5/openmeetings (34)
- apache/tomcat/ftp/svn (6)
- xen/vm/Hadoop/cloudcompute (6)
- visual studio/eclipse/zendstudi/ant (8)
- others (1)
- windows异常处理 __try __except (1)
- (1)
- matlab (4)
- android (0)
最新评论
-
hongzhounlfd:
很透彻,很详细
依赖注入和控制反转 -
jefferyqjy:
谢谢~言简意赅~很明了!
依赖注入和控制反转 -
elderbrother:
太好了,谢谢
依赖注入和控制反转 -
east_zyd_zhao:
终于搞明白了
依赖注入和控制反转 -
Dremeng:
完美,一看就懂理解透彻
依赖注入和控制反转
虚拟设备和 Open Virtualization Format
跨越不同管理程序的格式和工具包
(An IBM developerWorks Contributing Author)
简介: 虚拟化不仅推进了服务器效率最大化的程度,还开启了通向以前不可能实现的新技术的大门。虚拟设备就是这样一种技术,它彻底改变了软件交付、配置和管理的方式。但是虚拟设备背后的力量在于在不同管理程序(hypervisor)之间共享虚拟设备的能力。了解虚拟设备背后的理念和好处,发现一个用于虚拟设备互操作性的标准解决方案 —— Open Virtualization Format。
<!-- <p class="ibm-no-print"> <div id="dw-tag-this" class="ibm-no-print"></div> <div id="interestShow" class="ibm-no-print"></div> </p> -->
加入 My developerWorks 上的绿色小组
虚拟设备 是通过虚拟化支持的一种软件交付形式,它促进了高效和优化的应用程序的交付,推动了快速成长的云计算浪潮。本文将探索虚拟化和虚拟设备背后的理念,虚拟设备对操作系统的影响,以及将简化虚拟设备软件部署的未来标准。
我们首先快速讨论一下虚拟设备背后的关键因素:虚拟化平台。操作系统代表针对各种应用程序的虚拟化平台(共享对处理器和资源的访问),而管理程序(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(一个单片内核)提供通过模块动态调整操作系统的方法,但更大程度的架构最小化只能通过内核编译实现。相比之下,微核操作系统提供动态抛出功能的方法,从而提供伸缩性更好的环境。为实现上述目标,微核创建一个只包含基本服务(如内存管理和调度)的内核并将其他功能推到内核之外。除了提供伸缩性更好的环境之外,微核还能提供稳定性优势。特权空间中运行的代码越少,操作系统失败的可能性也就越小。
要最小化 Linux 内核,您可以采用两种完全不同的方法。第一种方法是通过内核构建流程手动配置内核。尽管这也许是(针对特定应用程序)最小化内核的最精确的方法,但还有简单得多的方法。大多数 Linux 发布版供应商提供 JeOS 版本,这些操作系统版本专门针对在一个管理程序上运行的虚拟设备配置(参见 参考资料 的链接获取更多信息)。
Ubuntu JeOS 是针对在 VMware ESXi、VMware Server 或 Kernel-based Virtual Machine (KVM) Linux 管理程序上的运行而优化的 Ubuntu 版本。它不包含图形环境,在内存低于 380MB 的 Intel® 或 AMD x86 架构上运行。Ubuntu JeOS 还包含 ubuntu-vm-builder 实用程序,它用于根据用户定义的规范构建虚拟设备。
SUSE Linux 也提供一个 JeOS 环境,名为 SUSE Appliance Program。这个环境与 Ubuntu 的发布版类似,但也有一些明显的差别。这个 SUSE 版本使用 SUSE Linux 内核并根据您的特定需求提供几个虚拟设备构建工具。SUSE 提供 Kiwi,这是一个支持通过 XML 创建设备规范的基于命令行的工具。通过 Kiwi,您可以以各种格式构建虚拟设备,这些格式包括 LiveCD、可引导 USB 映像和 OVF。最后,SUSE Studio 提供一个易用的基于 Web 的设备创建工具,该工具提供点选式构造方法。
另外两个软件 — Oracle Enterprise Linux JeOS 和 OpenSolaris JeOS project— 提供类似的功能以构建小规模的虚拟设备。但一个最早的商业解决方案 —— 来自 rPath 的 rBuilder —— 可以用于构建在线虚拟设备。rBuilder 使用一个基于 Web 的前端,允许使用 rPath 的 Linux 发行版、CenOS 或 Ubuntu 构建公共虚拟设备。
最后,OVF Toolkit 是一组 Eclipse 插件和一个 Java™ API,可以用于构建 OVF 格式的虚拟设备包。参考资料 部分提供了一个链接,链接到一个介绍这个工具的用法的优秀教程。
虚拟设备只有具备可移植性才有用。获得一个虚拟设备并在 VMware 上运行(正如您在 Xen 或 KVM 上所做的那样)的能力意味着该设备有更多利用机会。这就是 OVF(以前称为 Open Virtual Machine Format)的作用所在。OVF 是一个针对 VM(这里为虚拟设备)的可移植的(意味着中立于管理程序)分发方法的规范。使用 OVF,您可以安全有效地打包并分发虚拟设备。OVF 甚至可以表示单个包中的多个 VM。OVF 是可扩展的,允许随着虚拟化的发展进行扩展。
OVF 是一种 XML 格式,描述一个 VM(磁盘格式)的所有特性,包括组成 VM 的磁盘,VM 的网络配置,VM 需要的处理器和内存资源,描述虚拟设备创建程序的各种元数据,VM 的目标以及操作系统描述。参考资料 部分提供了一份 VMware OVF 白皮书的链接,该白皮书包含一个 OVF 的完整示例。
另外,有一些工具可以将旧格式的 VM 转换为 OVF。例如,可以使用 ovftool
将旧格式的 .vmx VM 文件转换为 OVF。您还可以发现一些将 VMware 和 QEMU 转换为 VirtualBox 并将 VMware 转换为 Xen 和 Parallels 的工具。
虚拟设备是解决复杂应用程序部署问题的一种简单方法,具体方法是通过将预先配置的应用程序和一个(刚好够用的)操作系统合并为一个映像,以便在一个管理程序上运行。您可以找到几乎包括任何应用程序的虚拟设备 —— 从防火墙和安全设备再到服务器、备份设备和存储应用程序(包括复制和归档)。
虚拟设备不仅能为个人用户简化应用程序部署过程,还能支持下一代云计算架构。大多数云计算基础设施都提供便于部署的虚拟设备以满足任意需求,而不是花费大量时间构建一个专门化的应用程序发行版。由于虚拟设备只是带有一个包装器(XML 描述)的文件,因此复制和分发这样的设备都很简单。
OVF 规范是由几个公司共同开发的,这些公司同时涉足虚拟化和硬件开发领域,包括 IBM、Microsoft、Hewlett-Packard、Dell、VMware 和 XenSource。既然这些大公司都能在 OVF 这样的规范上达成共识,可以想见,虚拟设备肯定前景广阔。随着围绕虚拟设备的开发不断深入,虚拟设备必然会不断发展,诸如 OVF 之类的新规范肯定会发挥应有的作用。
<!-- CMA ID: 445440 --><!-- Site ID: 10 --><!-- XSLT stylesheet used to transform this file: dw-article-6.0-beta.xsl -->发表评论
-
视频:中国首届微博开发者大会杨卫华演讲
2011-09-06 13:40 1139微博平台首席架构师杨卫华演讲 新浪科技讯 11月16日下午消 ... -
Windows Mobile与Android应用开发对比
2011-09-06 11:44 1298Windows Mobile在经历过最初的Wince系列,po ... -
android 调用C++的so
2011-07-08 18:36 4400第一步:开发环境的安 ... -
CentOS环境下opensuse虚拟机的创建
2011-02-24 09:41 1396CentOS环境下opensuse虚拟机的创建 1. ... -
unix下C编程
2011-02-21 16:44 1041http://www.chinaunix.net/jh/23/ ... -
linux操作系统下c语言编程入门<unix操作系统下同样适用>——Linux程序设计入门--消息管理
2011-02-21 16:40 1062[color=blue]6)Linux程序设计入门--消息管理 ... -
linux操作系统下c语言编程入门<unix操作系统下同样适用>——Linux程序设计入门--信号处理
2011-02-21 16:39 1266[color=blue]5)Linux程序设计入门--信号处理 ... -
linux操作系统下c语言编程入门<unix操作系统下同样适用>——Linux程序设计入门--时间概念
2011-02-21 16:38 1110[color=blue]4)程序设计入 ... -
linux操作系统下c语言编程入门<unix操作系统下同样适用>——Linux程序设计入门--文件操作
2011-02-21 14:48 972[color=blue]3)Linux程序设计入门--文件操作 ... -
linux操作系统下c语言编程入门<unix操作系统下同样适用>——Linux程序设计入门--进程介绍
2011-02-21 14:43 1253[color=blue]2)Linux程序设计 ... -
linux操作系统下c语言编程入门<unix操作系统下同样适用>——Linux程序设计入门--基础知识
2011-02-21 14:17 1458<! ... -
为什么在操作系统中引入虚拟技术呢
2010-12-21 23:17 1415通过虚拟技术将一台独占设备虚拟成多台逻辑设备,供多个用户进程同 ... -
如何用puttygen由pem生成ppk
2010-11-09 13:48 210071. 概述 因为内存3GB的限制在自己的笔记本电脑上通常不能 ... -
linux开机启动服务进程
2010-11-04 21:30 16531)redhat的启动方式和执 ... -
linux开机启动过程
2010-11-04 21:28 1321一.BIOS 加电自检 当你按电源开关开机时,电脑会首先 ... -
(原创)自动扫描局域网并且发现指定端口开放的主机ip的shell脚本
2010-11-04 21:10 6580经过2天研究,学习shell和awk脚本,得到如下功能: 1 ... -
AWK命令详解(大全)
2010-11-03 21:25 1908什么是awk? 你可能对UNIX比较熟悉,但你可能对aw ... -
使用 awk 处理 nmap 扫描结果,求出存活主机IP
2010-11-03 21:22 3716在使用 nmap 扫描时,得到如下结果: ... -
awk基础
2010-11-03 21:21 1272awk语言 最基本功能是在文件或字符串中基于指定规则浏览和抽 ... -
awk教程
2010-11-03 21:19 1284文章分类:操作 ...
相关推荐
2. **Open Virtualization Format (OVF)**:OVF是DMTF制定的一种标准化格式,用于封装和分发虚拟机应用。它包含了虚拟机的配置信息、操作系统、应用程序以及相关的元数据,使得虚拟机能够在不同的虚拟化平台上无缝...
VMware OVF Tool是一款由VMware公司开发的强大工具,主要用于处理Open Virtualization Format(OVF)和Open Virtualization Appliance(OVA)文件。OVF是一种标准格式,用于打包和分发虚拟化应用,而OVA是OVF的单...
OvfTool全称为Open Virtualization Format Tool,它是一个命令行工具,支持导入和导出符合OVF(Open Virtualization Format)标准的虚拟机。OVF是一种开放标准的打包格式,用于虚拟环境中的应用程序和操作系统部署。...
几乎所有类型的云环境,以Python语言编写,整合Tornado网页服务器、Nebula运算平台,使用Twisted软件框架,并遵循Open Virtualization Format、AMQP、SQLAlchemy等标准,支持的虚拟化技术。提供实施简单、可大规模...
VMware ovftool,全称为OVF Tool,是一款由VMware公司推出的强大工具,主要用于处理OVF(Open Virtualization Format)和OVA(OVF Archive)文件,是虚拟化环境中进行虚拟机部署和迁移的重要工具。本篇文章将详细...
遵循Open Virtualization Format、AMQP、SQLAlchemy等标准。所能支持的虚拟机软件包括:KVM、Xen、VirtualBox 、VMware、QEMU、 LXC 等,几乎涵盖此领域的所有主流软件。无论是架设公有云或私有云,只要涉及虚拟化,...
OVF(Open Virtualization Format)是一种开放虚拟机格式标准,设计用于跨不同虚拟化平台的兼容性和交换。一个OVF模板通常由一个OVF描述文件和若干个虚拟硬盘(VHD)文件组成。描述文件包含了虚拟机的配置信息,如...
OVF(Open Virtualization Format)是一种标准化的格式,用于封装虚拟机配置和镜像文件,便于在不同的虚拟化环境中分发和导入。在本例中,"VMware_OVFTool_x64.rar" 是一个包含该工具的压缩包,适用于64位操作系统。...
2. **虚拟设备导入和导出**:支持Open Virtualization Format (OVF) 格式的虚拟设备包的导入,便于从互联网或其他外部源获取虚拟设备,并在数据中心内部署。 3. **快速部署**:根据业务需求快速部署虚拟设备,创建...
VMware OVF工具(Open Virtualization Format Tool)用户指南是一份针对VMware Open Virtualization Format工具4.1.0版本的详细文档。OVF是一种开放标准,用于封装和分发虚拟机和虚拟应用程序。文档强调了使用VMware...
".ovf"文件是开放虚拟化格式(Open Virtualization Format)文件,它是虚拟机的元数据描述,包含了虚拟设备的配置信息,如CPU、内存、磁盘和网络设置。".vmdk"文件是VMware虚拟磁盘驱动器文件,它代表了虚拟机的硬盘...
2. **NSVPX-ESX-14.1-21.57_nc_64.ovf**:OVF(Open Virtualization Format)文件是一种标准格式,用于打包和分发虚拟机镜像。这个文件包含了部署 NetScaler VPX 虚拟设备所需的元数据,如硬件配置、网络设置和资源...
2. "ds3615.ovf"是开放虚拟化格式(Open Virtualization Format, OVF)文件,是一种标准格式用于打包和分发虚拟机应用。这可能意味着这个固件可以被导入到虚拟机环境中进行安装和测试。 3. "synoboot.vmdk"是VMware...
ova.xml文件是Open Virtualization Format(OVF)的元数据文件,用于描述虚拟机的配置信息,包括硬件设置、网络配置和存储布局等。在导入Citrix ADC NSVPX-XEN-13.0-47.24的OVA(Open Virtual Appliance)文件到Xen...
OVF(Open Virtualization Format)是一种开放标准的虚拟机封装格式,常用于在不同虚拟化平台之间迁移虚拟设备。这里的OVF文件意味着你可以将FortiGate-VM导入到支持OVF的虚拟化环境,如VMware vSphere、VMware ...
RHEV-M可以安装在已有的Linux系统上,或者以OVA(Open Virtualization Format)导入的方式作为一个独立的虚拟机运行。通过Web界面,管理员可以轻松地创建、管理和维护虚拟机,执行高可用性(HA)、动态电源管理(DPM...
3. **虚拟机模板格式**:目前通用的虚拟机模板格式是OVF(Open Virtualization Format),它是一种标准化的虚拟机封装格式,可用于不同虚拟化平台之间的迁移。 4. **环境变量**:存放用户主目录的系统定义变量是`...
- **虚拟设备导入**:支持 Open Virtualization Format (OVF) 格式的虚拟设备包导入,便于后续的部署。 - **快速部署**:根据业务需求快速部署虚拟设备以创建新的虚拟服务器。 #### 四、PowerVM 环境下的映像管理...
压缩包中的"ros6.43.14可用.ova"文件是一种开放虚拟化格式(Open Virtualization Format)文件,它是虚拟机的完整镜像,包含了操作系统的安装和配置信息。用户可以将这个文件导入到虚拟机软件,如VMware或VirtualBox...
"虚拟文件ovf"指的是Open Virtualization Format(OVF),这是一种标准格式,用于打包和分发虚拟机。OVF文件包含了虚拟机的配置信息,如硬件设置、网络配置等,以及与之相关的VMDK(Virtual Machine Disk Format)...