虚拟化技术有哪些_浅谈用服务器虚拟化技术整合报社硬件平台

虚拟化技术有哪些_浅谈用服务器虚拟化技术整合报社硬件平台,第1张

摘 要十堰日报社通过虚拟化技术构建了服务器技术运维平台,提高了整体的可靠性。关键词虚拟化技术;虚拟服务器一、背景报社经过多年的信息化建设,大批业务系统相继上线,服务器数量逐年增多,产生了一些问题:(1)成本高。硬件成本较高,运营和维护成本高,包括数据中心空间、机柜、空调、耗电量等。(2)可用性低。因为每个服务器都是单机,如果配置为双机模式的话,造价成本会更高。(3)系统维护和升级或者扩容时候需要停机进行,造成应用中断。(4)缺乏可管理性,系统数量太多难以管理,新服务器和应用的部署时间长,大大降低服务器重建和应用加载时间。(5)兼容性差,系统和应用迁移到新的硬件需要和旧系统兼容的系统。对于这些情况,利用虚拟化技术能得到很好的解决。使用虚拟化技术,可以节约硬件的投资,简化硬件维护 *** 作。实现了虚拟化还可以为各种系统的实验提供方便的硬件平台。将来如果构建云平台,虚拟化是必要的基础。
二、服务器虚拟化技术
1.服务器虚拟化概念。关于服务器虚拟化的概念,各个厂商都有自己不同的定义,然而其核心思想是一致的,能够通过区分资源的优先次序,并随时随地能将服务器资源分配给最需要它们的工作负载来简化管理和提高效率,从而减少为单个工作负载峰值而储备的资源。
2.服务器虚拟化的技术特性。虚拟化技术不但可以解决数据管理的难题,还可灵活更新软件、数据和硬件 *** 作平台。有了虚拟化技术,一台物理服务器可以被“划分”成数台“虚拟”的机器,每台都能独立运行自己的 *** 作系统,从而避免传统的“一台服务器+一种应用”的孤岛模式。分区。在单一物理服务器上运行多个虚拟机。隔离。在同一服务器的虚拟机之间相互隔离。封装。整个虚拟机都保存在文件中,而且可以通过移动和复制这些文件的方式来移动和复制该虚拟机。相对一间独立。无需修改即可在任何服务器上运行虚拟机。
3.服务器虚拟化的优越性。一是减少服务器的数量,提供一种服务器整合的方法,减少初期硬件采购成本。二是简化服务器的部署、管理和维护工作,降低管理费用。三是提高服务器资源的利用率,提高服务器计算能力。四是通过降低空间、散热以及电力消耗等途径压缩数据中心成本。五是通过动态资源配置提高IT对业务的灵活适应力。六是提高可用性,带来具有透明负载均衡、动态迁移、故障自动隔离、系统自动重构的高可靠服务器应用环境。七是支持异构 *** 作系统的整合,支持老应用的持续运行。八是在不中断用户工作的情况下进行系统更新。九是支持快速转移和复制虚拟服务器,提供一种简单便捷的灾难恢复解决方案。
三、方案选择
业界比较主流的虚拟化方案为VMware 公司的vSphere、微软公司的Hyper-V和Critx公司的XenServer。我们首先排除了Critx公司的XenServer。因为这个产品主要优势在LINUX系统平台上,而我们主要的信息系统运行现在WINDOWS系统上。据了解,XenServe的市场份额占有比较低,采用市场份额不高的产品对信息系统本身就是一个风险。根据厂商提供的产品参数,我们就vSphere和Hyper-V的产品性能做了比较认真做了比较。虽然觉得vSphere在技术指标上比Hyper-V更优越些,但综合考虑,还是决定采用Hyper-V,原因如下:(1)高级内存管理:虽然vSphere虚拟机内存动态可以节约资源,但会降低虚拟系统的性能;(2)高级储存管理:因暂时不考虑虚拟化数据库服务器,此项可以暂不考虑;(3)高I/O 可扩展性、主机资源管理、灵活的资源分配:主要考虑的是虚拟化轻负载服务器,影响不大;(4)虚拟化安全技术:对于非文件服务器,这个问题影响比较小。我们的技术人员对于微软的产品比较熟悉,Hyper-V对于经验丰富的WINDOWS管理员来说是非常易于部署和管理的。而vSphere则需要进行培训,这将是增大时间和经费成本。因此,我们认为采用低成本的Hyper-V基本可以达到项目实施的要求。
四、项目执行
(一)项目目标
报社内部的应用系统主要有采编业务、广告业务、发行管理、财务等各种应用系统。各系统基本使用单独的服务器,关键业务还有备份服务器。各系统基本为应用服务器加数据库的架构。项目的目标是将轻负荷的应用服务器虚拟化,将数据库统一。这样既可减少硬件的的支出,也可保证系统性能和数据的安全。
(二)实现步骤
1.建立虚拟机域,安装虚拟机服务器。为了管理方便和安全性,我们新建了一个独立的虚拟机宿主服务器的域。微软有一个虚拟机宿主机的管理程序Virtual Machine Manger Server(VMM),可以对多台虚拟宿主机和其上运行的虚拟机进行统一管理,并可以将虚拟机在不同的宿主机之间进行迁移,还可以定义一系列的任务实现系统维护的自动化。
微软的的Hyper-V服务器安装可以采用:单纯的MS Hyper-V Server安装,这种方法占用内存最小,但设置麻烦,而且很难使用本地界面管理虚拟机服务;使用Window 2008 Server的Hyper-V服务器角色。这种方法会多占用内存,但管理非常方便,并且可以使用Window 2008 Server的许多其他功能。因此,我们采用了Window 2008 Server的Hyper-V服务的形式建立了虚拟机。
2.转化物理机。使用微软解决方案最大的便利是可以使用其物理机转化Agent,方便实现原有物理服务器的转化。VMM2008提供了自动流程,可以以设定虚拟机,远程安装转化Agent,自动转化,自动删除Agent,自动部署虚拟机,自动关闭物理机,并启动虚拟机,且所有的参数完全保持一致。从用户的角度只是感到服务器有一段宕机时间,完全不会感觉到服务器的迁移。
3.实施效果。我们使用一台域控制服务器,三台虚拟化宿主机,一台数据库服务器,共虚拟化了8台服务器。包括广告管理系统服务器、发行管理系统服务器、杀毒软件服务器、SNMP监控服务器等物理服务器。三台虚拟机的CPU使用率基本维持在10%之下,系统运行稳定。
五、结论
我社通过虚拟化技术构建了高可用性的技术运维平台,用有限的资金实现了对当前服务器系统的升级,同时又具有灵活的、可变拓展空间,留足了扩展空间,为报社事业发展做好了技术准备。
参 考 文 献
[1]董嘉男.Windows Server 2008 Hyper-V配置与管理[J].清华大学出版社
[2]胡嘉玺.虚拟智慧:VMware vSphere运维实录[J].清华大学出版社
[3][美]吕斯特等著.陈奋译.虚拟化技术指南[J].机械工业出版社
[4]王春海.中小企业虚拟机解决方案大全[J].电子工业出版社

1,前期准备一台高配的机器最好服务器做试验
2,网络保持通畅就ok,最好在局域网里面
3,我记得是60这个你可以去思杰的官网去看,百度就能知道官网地址了
4,区别嘛,XenServer 60包含了HDX™的增强功能——帮助使用图形应用程序的虚拟桌面,改善总拥有成本(TCO)和优化用户体验
5,好像要看机器的cpu 内存 硬盘支不支持虚拟化技术
6,这个我也在探索 嘿嘿
7,跟win7系统差不多
8,这个好像要看你连的设备吧 你说的是支持虚拟己的网卡吗?那就多了去了 看你主机配置了

我也是初学 交流

Xen知识地图:

        Xen是由剑桥大学计算机实验室开发的一个开源项目,是一个开源的可直接运行于硬件层之上的虚拟化软件,它属于type-I型虚拟化系统,支持万贯虚拟化和超虚拟化,以高性能、占用资源少著称,赢得了IBM、AMD、HP、Red Hat和Novell等众多世界级软硬件厂商的高度认可和大力支持,已被国内外众多企事业用户用来搭建高性能的虚拟化平台。

        Xen仅对CPU和Memory直接接管,而其它IO硬件驱动则由其上运行的第一个虚拟机来提供支持,它能够在计算机硬件上并发的运行多个客户 *** 作系统(Guest OS)。支持x86、x86-64、安腾( Itanium)、Power PC和ARM多种处理器,因此Xen可以在大量的计算设备上运行,目前Xen支持Linux、NetBSD、FreeBSD、Solaris、 Windows和其他常用的 *** 作系统作为客户 *** 作系统在其管理程序上运行。

    Xen默认认为自己是直接运行于硬件层之上的虚拟化软件(即Xen Hypervisor层),并且可以直接驱动CPU和内存,需注意CPU和内存是所有想要运行的 *** 作系统必须能直接支持的,但Xen为保证自身的小巧,它并没有提供虚拟机的管理接口,因此它采用了一种独特的方式,先运行一台特权虚拟机(即Domain 0),且这台VM必须支持Kernel的修改,因此选择开源的Linux做为特权VM是最合适的,这样也可方便采用Linux所支持的方式来开发虚拟机管理接口,实现与Xen Hypervisor层直接交互来完成为VM分配CPU和内存资源及创建、删除、停止、启动VM的管理接口。通常这台特权虚拟机一定会采用当前比较流行的Linux发行版,因为它能支持更多IO硬件设备,如:网卡,磁盘,显卡,声卡等;到目前为止,NetBSD,GNU/Linux,FreeBSD和Plan 9,OpenSolaris等系统已经支持已半虚拟化方式运行在Xen的DomU中。目前Xen已经支持x86、x86_64和ARM等平台,并正在向IA64、PPC移植。移植到其他平台从技术上是可行的,未来有可能会实现。

        Xen虚拟机支持在不停止的情况下在多个物理主机之间实时迁移。在 *** 作过程中,虚拟机在没有停止工作的情况下内存被反复地复制到目标机器。虚拟机在最终目的地开始执行之前,会有一次60-300毫秒的非常短暂的暂停以执行最终的同步化,给人无缝迁移的感觉。类似的技术被用来暂停一台正在运行的虚拟机到磁盘,并切换到另外一台,第一台虚拟机在以后可以恢复。

如上图所示,Xen虚拟环境由三部分组件组成:

XEN Hypervisor

        Xen Hypervisor 是介于 *** 作系统和硬件之间的一个软件抽象层。它负责在各个虚拟机之间进行CPU调度和内存分配。Xen Hypervisor不仅抽象出虚拟机的硬件,同时还控制着各个虚拟机的执行。Xen Hypervisor不会处理网络、存储设备、视频以及其他 I/O。

Domain 0 Guest

        Domain 0是特权域,是一个修改过的Linux kernel,是唯一运行在 Xen Hypervisor之上的虚拟机,它拥有访问物理 I/O 资源的权限,同时和系统上运行的其他虚拟机(Domain U: PV and HVM Guest)进行交互。Domain 0需要在其它Domain启动之前启动。

        Domain 0 中有两个驱动 Network Backend Driver 和 Block Backend Driver,它们分别用来处理来自 Domain U 的网络和本地磁盘请求。 Network Backend Driver与本地网络硬件直接通信,以此来处理来自于Domain U所有虚拟机访问网络设备的请求;Block Backend Drive与本地存储设备进行通信,以此来处理来自于Domain U的磁盘数据读写的请求。

Domain U Guest(Dom U)

        Domain U没有直接访问物理硬件的权限(Domain U的"U"是来自于英文单词 unprivileged,是指没有权限的),但Domain 0有。

        运行在 Xen Hypervisor 上的所有半虚拟化(paravirtualized)虚拟机被称为“Domain U PV Guests”,其上运行着被修改过内核的 *** 作系统,如 Linux、Solaris、FreeBSD 等其它 UNIX *** 作系统。

        所有的全虚拟化虚拟机被称为“Domain U HVM Guests”,其上运行着不用修改内核的 *** 作系统,如 Windows 等。

        Domain U PV Guest 中也包括两个驱动“PV Network Driver”和“PV Block Driver”,它们分别也是用来处理发送网络和本地磁盘请求用的,这与 Domain 0 中的两个驱动是相对应的。

     Xen对虚拟机的虚拟化分为两大类,半虚拟化(Para virtualization)和完全虚拟化(Hardware VirtualMachine)。

       半虚拟化(Paravirtualization)有些资料称为“超虚拟化”,简称为PV,是Xen主导的虚拟化技术。这种技术允许虚拟机 *** 作系统感知到自己运行在Xen Hypervisor上而不是直接运行在硬件上,同时也可以识别出其他运行在相同环境中的客户虚拟机。

       在Xen Hypervisor上运行的半虚拟化的 *** 作系统,为了调用系统管理程序(Xen Hypervisor),要有选择地修改 *** 作系统,然而却不需要修改 *** 作系统上运行的应用程序。由于 Xen 需要修改 *** 作系统内核,所以您不能直接让当前的 Linux 内核在 Xen 系统管理程序中运行,除非它已经移植到了Xen 架构。不过,如果当前系统可以使用新的已经移植到 Xen 架构的Linux 内核,那么您就可以不加修改地运行现有的系统。

       完全虚拟化(Hardware Virtual Machine)又称“硬件虚拟化”,简称HVM,是指运行在虚拟环境上的虚拟机在运行过程中始终感觉自己是直接运行在硬件之上的,并且感知不到在相同硬件环境下运行着其他虚拟机的虚拟技术。此种虚拟化需要借助于Intel的VT-x 或 AMD的AMD-v 等硬件辅助虚拟化技术(详细技术原理参见151节)及Qemu的IO硬件模拟技术,才能支持GuestOS的kernel不修改,就可直接被DomU支持。

       在Xen Hypervisor运行的完全虚拟化虚拟机,所运行的 *** 作系统都是标准的 *** 作系统,即:无需任何修改的 *** 作系统版本。同时也需要提供特殊的硬件设备。

       值的注意的是,在Xen上虚拟的Windows虚拟机必须采用完全虚拟化技术。

       为了提高性能,完全虚拟化的Guests可以使用特殊的半虚拟设备驱动程序(PVHVM或PV-on-HVM驱动)。这些驱动程序在HVM环境下优化你的 PV驱动,模拟的磁盘和网络IO旁路运行,从而让你的PV在HVM中有更好的性能。这意味着你在用户窗口 *** 作方面可以得到最佳的性能。

       注意,Xen项目PV(半虚拟化)的Guest自动使用PV驱动,因此不需要这些驱动程序,因为你已经自动使用优化的驱动程序。PVHVM只会在HVM(全虚拟化)guest虚拟机中需要。

       Xen 的 VMM ( Xen Hypervisor ) 位于 *** 作系统和硬件之间,负责为上层运行的 *** 作系统内核提供虚拟化的硬件资源,负责管理和分配这些资源,并确保上层虚拟机(称为域 Domain)之间的相互隔离。Xen采用混合模式,因而设定了一个特权域用以辅助Xen管理其他的域,并提供虚拟的资源服务,该特权域称为Domain 0,而其余的域则称为Domain U。

       Xen向Domain提供了一个抽象层,其中包含了管理和虚拟硬件的API。Domain 0内部包含了真实的设备驱动(原生设备驱动),可直接访问物理硬件,负责与 Xen 提供的管理 API 交互,并通过用户模式下的管理工具来管理 Xen 的虚拟机环境。

       Xen20之后,引入了分离设备驱动模式。该模式在每个用户域中建立前端(front end)设备,在特权域(Dom0)中建立后端(back end)设备。所有的用户域 *** 作系统像使用普通设备一样向前端设备发送请求,而前端设备通过IO请求描述符(IO descripror ring)和设备通道(device channel)将这些请求以及用户域的身份信息发送到处于特权域中的后端设备。这种体系将控制信息传递和数据传递分开处理。

       在Xen体系结构设计中,后端设备运行的特权域被赋予一个特有的名字---隔离设备域(Isolation Device Domain, IDD),而在实际设计中,IDD 就处在Dom0中。所有的真实硬件访问都由特权域的后端设备调用本地设备驱动 (native device driver)发起。前端设备的设计十分简单,只需要完成数据的转发 *** 作,由于它们不是真实的设备驱动程序,所以也不用进行请求调度 *** 作。而运行在IDD中的后端设备,可以利用Linux的现有设备驱动来完成硬件访问,需要增加的只是IO请求的桥接功能---能完成任务的分发和回送。

1)半虚拟化技术实现原理

       采用半虚拟化技术的虚拟机 *** 作系统能够识别到自己是运行在Xen Hypervisor而非直接运行于硬件之上,并且也可以识别到在相同的机器上运行的其他虚拟机系统。而且运行的 *** 作系统都需要进行相应的修改。

       半虚拟化客户机(Domain U PV Guests)包含两个用于 *** 作网络和磁盘的驱动程序,PV Network Driver 和PV Block Driver。

       PV Network Driver负责为Domain U提供网络访问功能。PV Block Driver负责为Domain U提供磁盘 *** 作功能。

2)完全虚拟化技术实现原理

       完全虚拟化客户机(Domain U HVM Guests)运行的是标准版本的 *** 作系统,因此其 *** 作系统中不存在半虚拟化驱动程序(PV Driver),但是在每个完全虚拟化客户机都会在Domain 0中存在一个特殊的精灵程序,称作:Qemu-DM,Qemu-DM帮助完全虚拟化客户机(Domain U HVM Guest)获取网络和磁盘的访问 *** 作。

       完全虚拟化客户机必须和在普通硬件环境下一样进行初始化,所以需要在其中加入一个特殊的软件Xen virtual firmware,来模拟 *** 作系统启动时所需要的BIOS。

       开源社区中将一系列的Linux精灵程序分类为“管理”和“控制”两大类。这些服务支撑着整个虚拟环境的管理和控制 *** 作,并且存在于Domain 0虚拟机中。

       下面将对直接服务进行详细的描述。

       注:为了清晰的描述Xen的运行流程,画图时将精灵程序放在Domain 0外部来描述,但事实上所有精灵程序都存在于Domain 0 之中。

1)Xend

       Xend精灵线程是一个Python应用程序,它作为Xen环境的系统管理员。它利用Libxenctrl类库向Xen Hypervisor发出请求。

       所有Xend处理的请求都是由XM工具使用XML RPC接口发送过来的。

2)Xm

       用于将用户输入通过XML RPC接口传递到Xend中的命令行工具。

3)Xenstored

       Xenstored精灵程序用于维护注册信息,这些信息包括内存和在连接Domain 0和所有其他Domain U之间的事件通道。Domain 0虚拟机利用这些注册信息来与系统中其他虚拟机建立设备通道,即帮助Domain U虚拟机访问硬件资源。

4)Libxenctrl

       Libxenctrl是C程序类库,用于让Xend具有通过Domain 0与Xen Hypervisor进行交互的能力。在Domain 0中存在一个特殊的驱动程序称作privcmd,它将请求发送给Hypervisor。

5)Qemu-DM

       在Xen环境下,每个完全虚拟化虚拟机都需要拥有自己的Qemu精灵程序。Qemu-DM处理在Xen环境下完全虚拟化客户机所能允许执行的所有关于网络 和磁盘请求和 *** 作。Qemu程序必须存在于Hypervisor之外同时又需要访问网络和I/O,所以Qemu-DM必须存在于Domain 0 中(参见前面章节对Domain 0 的描述)。

       未来版本的Xen中,一种新的工具Stub-DM将会提供一系列对所有完全虚拟化客户机都可用的服务,以此来替代需要在每个虚拟机上都生成一个Qemu的逻辑。

6)Xen Virtual Firmware

       Xen Virtual Firmware是被嵌入到所有完全虚拟化客户机中的虚拟BIOS系统,来确保所有客户 *** 作系统在正常启动 *** 作中接收到标准的启动指令集并提供标准的软件兼容环境。

       根据前几章节所述,Xen Hypervisor不负责处理网络和磁盘请求,因此半虚拟化客户机(Domain U PV)必须通过Domain 0 与Xen Hypervisor进行通信,从而完成网络和磁盘的 *** 作请求。下面以半虚拟化客户机(Domain U PV)执行向本地磁盘写入数据为例描述Domain 0与Domain U PV的交互过程。

       半虚拟化客户机(Domain U PV)的PV Block Driver接收到要向本地磁盘写入数据的请求,然后通过Xen Hypervisor将与Domain 0共享的本地内存中的数据写入到本地磁盘中。在Domain 0 和半虚拟化Domain U之间存在事件通道,这个通道允许它们之间通过存在于Xen Hypervisor内的异步中断来进行通信。Domain 0将会接收到一个来自于Xen Hypervisor的系统中断,并触发Domain 0中的Block Backend驱动程序去访问本地系统内容,并从与半虚拟化客户机的共享内存中读取适合的数据块。从共享内存中读取的数据随后被写入到本地磁盘的指定位置中。

     上图中所显示的事件通道是直接连接Domain 0 和Domain U PV是为了清晰和简单的描述系统是如何运行的。但事实上,事件通道(Event Channel)运行于Xen Hypervisor中,并在Xenstored中注册特定的系统中断,以此来让Domain 0 和Domain U PV能够通过本地内存快速的共享信息。

Xen在给VM提供CPU的虚拟化时,它采用的也是在Xen hypervisor层启动一个线程,并将这些线程映射到某个物理核心上,当然通过DomU的配置文件中的cpus可以指定将这些模拟CPU的线程绑定到某几个物理核心上;而内存的虚拟化则是内存页的映射,将物理内存上多个连续或不连续的内存页映射给VM,让VM看来这就是一个完整的连续的内存空间。

当启动一个用户VM(DomU)时,该VM所需的CPU和内存都由Xen Hypervisor提供,而它若需要使用IO设备时,则向特权VM(即Dom0)发起请求,特权VM会为该用户VM创建一个模拟的硬件设备线程,并运行于特权VM的用户空间,当用户VM向该IO硬件发起调用时,特权VM上相应的模拟设备接收请求并将其转化为特权VM对IO硬件的 *** 作,交给特权VM的内核来代为完成其 *** 作。这里需注意这些虚拟IO硬件需要由Qemu来模拟,Xen本身并没有提供相应的模拟功能。(注:特权VM的CPU和内存也是有Xen Hypervisor提供)

1)Qemu模拟IO设备(完全虚拟化方式)

Qemu模拟IO设备(完全虚拟化方式):假如用户VM向特权VM请求磁盘,特权VM可以将一个分区、文件等,通过Qemu将其模拟成一个磁盘设备,就拿文件来说,特权VM先创建一个映像文件,再通过Qemu为该文件模拟一个磁盘控制器芯片;然后,将其映射到用户VM上,当然模拟的这个磁盘控制器芯片一定是一个最常见的,用户VM的Kernel一定支持的,但需注意:模拟的磁盘可能会与实际的物理磁盘不同,因为要尽可能兼容。这样一来用户VM假如要写数据到磁盘的过程如下:

用户VM-APP--->用户VM-Kernel调用虚拟磁盘的驱动进行写数据前的准备(如:数据写入到磁盘中的扇区位置/数据编码等)--->

用户VM-Kernel将编码后的信息发给特权VM的模拟磁盘进程--->

特权VM的模拟磁盘进程再将编号信息还原后发给特权VM-kernel--->

特权VM-kernel调用真实物理磁盘的驱动对数据进行写前准备--->最后磁盘驱动调度磁盘完成写入

摘录补充:( >

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13280830.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-07
下一篇 2023-07-07

发表评论

登录后才能评论

评论列表(0条)

保存