有了虚拟化技术,用户可以动态启用虚拟服务器(又叫虚拟机),每个服务器实际上可以让操作系统(以及在上面运行的任何应用程序)误以为虚拟机就是实际硬件。运行多个虚拟机还可以充分发挥物理服务器的计算潜能,迅速应对数据中心不断变化的需求。 虚拟化概念并不是新概念。早在20世纪70年代,大型计算机就一直在同时运行多个操作系统实例,每个实例也彼此独立。不过直到最近,软硬件方面的进步才使得虚拟化技术有可能出现在基于行业标准的大众化x86服务器上。 实际上,如今数据中心管理人员面临的虚拟化解决方案种类繁多,有些是专有方案,而有些是开源方案。总的来说,各自都基于以下三种基本技术当中的一种,但哪种技术效果最好,这取决于要进行虚拟化处理的具体工作负荷以及优先业务目标。 完全虚拟化 最流行的虚拟化方法使用名为hypervisor的一种软件,在虚拟服务器和底层硬件之间建立一个抽象层。VMware和微软的Virtual PC是代表该方法的两个商用产品,而基于核心的虚拟机(KVM)是面向Linux系统的开源产品。 准虚拟化 完全虚拟化是处理器密集型技术,因为它要求hypervisor管理各个虚拟服务器,并让它们彼此独立。减轻这种负担的一种方法就是,改动客户操作系统,让它以为自己运行在虚拟环境下,能够与hypervisor协同工作。这种方法就叫准虚拟化(para-virtualization)。 操作系统层虚拟化 实现虚拟化还有一个方法,那就是在操作系统层面增添虚拟服务器功能。Solaris Container就是这方面的一个例子,Virtuozzo/OpenVZ是面向Linux的软件方案。 就操作系统层的虚拟化而言,没有独立的hypervisor层。相反,主机操作系统本身就负责在多个虚拟服务器之间分配硬件资源,并且让这些服务器彼此独立。一个明显的区别是,如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统(不过每个实例有各自的应用程序和用户账户)。 硬件助力软件 不像大型机,PC的硬件在设计时并没有考虑到虚拟化,而就在不久前,它还是完全由软件来承担这项重任。随着AMD和英特尔推出了最新一代的x86处理器,头一回在CPU层面添加了支持虚拟化的功能。 常用的虚拟化软件 Virtuozzo Virtuozzo 是一款成熟的服务器虚拟化软件产品, 2001 年即开始应用于实际生产环境。凭借低廉的管理费用和实用的设计,Virtuozzo成为生产型(实时运行应用服务和数据)服务器首选的虚拟化技术解决方案。Virtuozzo 允许 IT 组织能够随时满足 IT 基础设施和管理上不断增长的需求。Virtuozzo 的设计旨在确保 IT 组织通过先进的虚拟化技术最大化利用服务器资源,通过高级管理工具包轻松管理 IT 基础设施。Virtuozzo虚拟化技术完全支持可伸缩和可管理的分布式计算平台,在很多情况下,采用虚拟化技术都会加快或立即实现投资回报。 Virtuozzo技术原理。Virtuozzo为用户提供虚拟环境(VE),VE用于安全隔离单个应用或一组相关应用,避免多个应用服务部署在同一台服务器时出现的相互干扰或冲突,使各应用能够完全隔离,和谐相处。Virtuozzo 允许在单个物理服务器上创建多个独立的虚拟环境 (VE) 以实现硬件、软件许可证和管理资源的共享。VE为运行在其中的应用程序提供了完整地虚拟操作系统环境,它拥有自己的注册表、文件系统,进程号,用户名/安全标识符(SID),TCP/IP地址,内核等。所有的系统资源和标识均被虚拟化。
Virtuozzo体系结构 操作系统虚拟化技术 Virtuozzo 操作系统虚拟化技术解决了在单个物理服务器上部署多个生产应用服务时所面临的挑战。同时,共享操作系统内核提供了更为有效的服务器资源利用且大大降低了处理损耗,允许上百个 Virtuozzo 的虚拟环境(VE) 在单个的物理服务器上正常运行。改善的虚拟化技术允许任何网络上的 VE都能够轻松且透明地迁移至其他服务器,并且实现了革命性的零宕机迁移,确保 IT 部门能够充分利用现有服务器并减少甚至消除服务器计划宕机。因此,Vrituozzo操作系统虚拟化技术是针对生产型服务器最完美的虚拟化解决方案。
高效的资源利用 Virtuozzo采用轻量级操作系统虚拟化技术,通过共享操作系统内核,为用户提供虚拟环境(VE)的方式提高服务器资源利用率。由于操作系统虚拟化技术本身具有的技术优势,Virtuozzo在以下各方面展示了其他虚拟化技术所不具有的高效。 VMware Workstation VMware Workstation 的功能特性: 在同一台 PC 上同时使用多个操作系统 VMware Workstation 6 让您能够简便地在台式机或膝上型电脑上创建和运行多个虚拟机。您可以将现有的物理 PC 转换为 VMware 虚拟机,也可以从零开始创建新虚拟机。每个虚拟机都呈现为一个完整的 PC,包括处理器、内存、网络连接和外设端口。 VMware Workstation 让您能够使用虚拟机在同一台计算机上并行运行 Windows、Linux 以及安装了其他操作系统的主机。只需单击鼠标即可在操作系统之间进行即时切换,通过拖放功能可以在虚拟机之间共享文件,同时还能访问您所依赖的所有外围设备。 拍照 &虚拟机视频 使用 Workstation,您可以拍摄保存了虚拟机状态的“快照”,以便您可以随时返回该状态。在您需要将虚拟机恢复到先前的稳定系统状态时,快照是非常有用的。Workstation 在单个屏幕中显示您的所有快照的缩略图,使您能够方便地跟踪和恢复到以前保存的快照。 您还可以使用 Workstation 6 录制并播放视频文件,这些视频文件用于捕获在一段时间内对虚拟机所做的所有更改。此功能是 VMware Workstation 中所特有的,对软件调试、技术咨询部门辨症分析、销售演示和培训有难以置信的帮助作用。 在单台主机上运行整个多层系统 通过使用 Workstation 6 的小组功能管理网络连接虚拟机可以在单台机器上运行多层企业应用程序。小组功能使您能够创建包括客户端、服务器和数据库虚拟机在内的虚拟网络环境。 使用 Workstation Teams,您只需单击一下鼠标键即可打开和关闭整个多层环境。Workstation 可显示所有连接的虚拟机的活动缩略图,使您能够方便地识别与小组相关的虚拟机并在各虚拟机之间进行切换。 克隆您的虚拟机以加快部署 安装操作系统和应用程序可能会很耗时。通过克隆,您可以从一次安装和配置过程制作多个虚拟机拷贝。此功能使得向员工和学员分发标准化计算环境或者为测试创建一种基准配置的过程快速而简单。 让虚拟机随您而行 Workstation 6 新增功能是能够使用 ACE 选件创建和部署安全虚拟机(称为 ACE)。移动性是此选件包的主要优点之一,因为它使用户能够通过便携式媒体设备(如 USB 驱动器)安全地随身携带他们的台式机。 Xen VMM(virtual machine monitor) Xen VMM(virtual machine monitor)是由剑桥大学计算机实验室开发的一个开源项目,它能够让我们创建更多的虚拟机,每一个虚拟机都是运行在同一个操作系统上的实例。 这些客户OS可以是修补过的Linux内核2.4或2.6,也可以是修补过的NetBSD/FreeBSD内核。用户应用程序就运行在这些客户OS上,并不需要修改任何代码。 Xend Deamon 首先,我们介绍一下Xend,它是Xen控制器daemon,意思是说它负责处理创建、销毁、迁移以及其它许多domain管理的任务。它很大一部分动作是基于一个HTTP服务器的。大量对domain的控制请求都是通过发送HTTP请求来实现的。 我们在引导进入Xen后通过命令行命令xend start来启动Xend daemon。它需要Python2.3的支持。 Xend daemon的工作是建立在与XCS server(the control Switch)的交互上。所以,当我们启动Xend daemon时,需要检查一下XCS是否已经启动和运行了。如果没有,我们将试着去启动它。 Srv Daemon是Xend的主要程序,启动Xend daemon就会创建一个Srv Daemon类的实例。 接下来在createFactories()方法中创建一个Channel Factory。Channel Factory有一个隐含的notifier对象。Xend daemon的大量工作都是基于这个notifier接收的消息的。这个factory创建一个线程,在一个无限循环中读取这个notifier。 创建domain 创建一个domain是通过使用一个hypercall(DOM0_CREATEDOMAIN)来完成的。Hypercall是Linux内核中的一个系统调用,通过它,用户空间可以调用内核中的方法,它通过一个中断(Int 0x80)来完成。在Xen中,类似的系统调用就是hypervisor,通过它,domain 0 调用hypervisor中的方法,它也是通过中断(Int 0x82)来完成的。hypervisor通过它的虚拟CPU访问每一个domain。 XendDomain类和XendDomainInfo类在创建和销毁domain中扮演着非常重要的角色。我们通过调用XendDomain中的domain_create()方法创建一个新的domain。 XendDomainInfo类和它的方法主要用于一个domain的实际构造。 XCS Server XCS server有两个TCP套接字,分别是控制连接和数据连接,它们不同的地方在于前者是同步的,后者是异步的。前面提到的notifier对象,就是XCS服务器的一个客户端。 创建虚拟设备 XendDomainInfo中的create()方法启动一个创建domain的动作链。首先被创建的是这个domain的虚拟设备。这个create()方法调用create_blkif()创建一个块设备接口(blkif),即使VM不需要磁盘它也是必须被创建的。另一个虚拟设备通过create_configured_devices()创建。
创建虚拟设备
创建虚拟设备 Domain 0运行后端驱动,同时最新创建domain运行前端驱动。许多消息在后端和前端驱动之间传送。前端驱动感觉上是虚拟的,它不需要使用特定硬件的详细信息。 联系虚拟设备的中断是虚拟中断。 |
正在阅读:虚拟化技术与常用软件虚拟化技术与常用软件
2007-11-02 10:00
出处:PConline
责任编辑:gongjianhui