版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 - 51 -基于OpenStack的虚拟桌面基础设施VDI管理系统的设计与实现目 录 TOC o 1-3 h z HYPERLINK l _Toc498460722 第1章 项目开发的意义 PAGEREF _Toc498460722 h - 3 - HYPERLINK l _Toc498460723 1.1 传统IT面临的困境 PAGEREF _Toc498460723 h - 3 - HYPERLINK l _Toc498460724 1.2 VDI相关技术介绍 PAGEREF _Toc498460724 h - 4 - HYPERLINK l _Toc498460725 1.2.1 云计
2、算技术 PAGEREF _Toc498460725 h - 5 - HYPERLINK l _Toc498460726 1.2.2 云计算的价值 PAGEREF _Toc498460726 h - 7 - HYPERLINK l _Toc498460727 1.2.3 Openstack技术介绍 PAGEREF _Toc498460727 h - 9 - HYPERLINK l _Toc498460728 1.3 vdi实现原理 PAGEREF _Toc498460728 h - 13 - HYPERLINK l _Toc498460729 第2章 需求分析 PAGEREF _Toc49846
3、0729 h - 18 - HYPERLINK l _Toc498460730 2.1 实现方案选择 PAGEREF _Toc498460730 h - 18 - HYPERLINK l _Toc498460731 2.2 需求分析 PAGEREF _Toc498460731 h - 18 - HYPERLINK l _Toc498460732 2.3 项目实现目标 PAGEREF _Toc498460732 h - 19 - HYPERLINK l _Toc498460733 2.4 项目完成要求 PAGEREF _Toc498460733 h - 19 - HYPERLINK l _Toc
4、498460734 第3章 总体设计 PAGEREF _Toc498460734 h - 21 - HYPERLINK l _Toc498460735 3.1 建设目标 PAGEREF _Toc498460735 h - 21 - HYPERLINK l _Toc498460736 3.2 项目实现内容 PAGEREF _Toc498460736 h - 21 - HYPERLINK l _Toc498460737 3.3 项目实现原则 PAGEREF _Toc498460737 h - 22 - HYPERLINK l _Toc498460738 第4章 项目实施和测试 PAGEREF _T
5、oc498460738 h - 24 - HYPERLINK l _Toc498460739 4.1 系统总体架构 PAGEREF _Toc498460739 h - 24 - HYPERLINK l _Toc498460740 4.2 Ubuntu12.04安装部署Openstack PAGEREF _Toc498460740 h - 24 - HYPERLINK l _Toc498460741 4.3 Openstack 镜像制作 PAGEREF _Toc498460741 h - 25 - HYPERLINK l _Toc498460742 4.4 openstack镜像的集成 PAGE
6、REF _Toc498460742 h - 36 - HYPERLINK l _Toc498460743 4.5 Spice协议的安装配置 PAGEREF _Toc498460743 h - 38 - HYPERLINK l _Toc498460744 4.6 客户端的配置和测试 PAGEREF _Toc498460744 h - 45 - HYPERLINK l _Toc498460745 4.7 项目展示页面的开发及测试 PAGEREF _Toc498460745 h - 45 - HYPERLINK l _Toc498460746 第5章 项目总结 PAGEREF _Toc4984607
7、46 h - 50 - HYPERLINK l _Toc498460747 完成整个项目,学到相关知识 PAGEREF _Toc498460747 h - 50 - HYPERLINK l _Toc498460748 融入团队scrum敏捷开发环境 PAGEREF _Toc498460748 h - 50 - HYPERLINK l _Toc498460749 每周进行项目讨论并与IBM工程师进行电话会议交流进度 PAGEREF _Toc498460749 h - 50 -项目开发的意义传统IT面临的困境自从上世纪90年代开始,IT行业在全球范围内得到了迅猛的发展,IT平台的规模和复杂程度出现
8、了大幅度的提升,与此同时,很多企业的IT机构却因为这种提升而面临着一种新的困境:高昂的硬件成本和管理运营成本、缓慢的业务部署速度以及缺乏统一管理的基础架构。a.高昂的成本支出随着IT规模的不断膨胀,数据中心内的服务器数量、网络复杂程度以及存储容量急剧增长,随之带来的是高昂的硬件成本支出以及运营成本支出(电力、制冷、占地空间、管理人员等)。基础结构成本:托管、冷却、连接服务器以及为服务器提供电源都会随着服务器数量的增长而导致成本大量增加。仅服务器电力需求一项就占总成本一大块,估计数据中心的 1000 台服务器的电力成本每年都在 45,000 美元以上。硬件成本:每年服务器在容量和计算能力上都呈增
9、长趋势。随着服务器变得越来越强大,最大化的利用这些超强资源也变得愈加困难。IT 组织和应用服务用户习惯为每个应用服务部署一台独立服务器以确保完全控制该应用服务。几乎在所有情况下,部署这些功能强大的服务器将会使服务器过剩50-500%。软件成本:通常服务器需要从操作系统或应用软件厂商那里获取许可证与支持。管理成本:迄今为止,管理成本是服务器成本中最大的一个部分,分析专家估计管理成本占服务器总拥有成本的50-70%。IT技术 人员不得不对软硬件进行升级、打补丁、备份以及修复,部署新的服务器及应用,维护用户账户并执行许多其他任务。随着服务器数量的增长,IT 部门发现他们面临着满足相关服务器管理需求的
10、挑战。b.缓慢的业务部署速度新的服务器、存储设备和网络设备的部署周期较长,整个过程包括硬件选型、采购、上架安装、操作系统安装、应用软件安装、网络配置等。一般情况下,这个过程需要的工作量在2040小时,交付周期为46周。c.分散的管理策略数据中心内的IT基础设施处于分散的管理状态,具体表现为: 1)机房管理员遵循“根据最坏情况下的工作负载来确定所有服务器的配置”这一策略导致服务器的配置普遍过高。2)容易出现大量“只安装一个应用程序”而未得到充分利用的x86服务器。3提交变更请求与进行运营变更之间存在较长的延迟。4)缺少统一的集中化IT构建策略,无法对数据中心内的基础设施进行监控、管理、报告和远程
11、访问。VDI相关技术介绍 VDI(Virtual Desktop Infrastructure),即虚拟桌面基础架构,是一种将虚拟桌面作为一种服务的云计算应用。VDI的概念很简单,它不是给每个用户都配置一台运行Windows XP 或Vista(后文统称为Windows XP)的桌面PC,而是通过在数据中心的服务器运行Windows XP,将你的桌面进行虚拟化。用户通过来自客户端设备(客户机或是家用PC)的客户计算协议与虚拟桌面进行连接,用户访问他们的桌面就像是访问传统的本地安装桌面一样。VDI是许多机构目前正在评估和尝试的全新模式。VDI旨在为智能分布式计算带来出色的响应能力和定制化的用户体
12、验,并通过基于服务器的模式提供管理和安全优势。它能够为整个桌面映像提供集中化的管理和方便简洁的部署方式,以及弹性化的自愿分配。云计算技术云计算是一种基于网络的计算服务供给方式,它以跨越异构、动态流转的资源池为基础提供给客户可自治的服务,实现资源的按需分配、按量计费。云计算导致资源规模化、集中化,促进IT产业的进一步分工,让IT系统的建设和运维统一集中到云计算运营商处,普通用户都更加关注于自己的业务,从而提高了信息化建设的效率和弹性,促进社会和国家生产生活的集约化水平。云计算主要包含两个层次的含义:一是从被服务的客户端看:在云计算环境下,用户无需自建基础系统,可以更加专注于自己的业务。用户可按需
13、获取网络上的资源,并按使用量付费。如同打开电灯用电,打开水龙头用水一样,而无需考虑是电从哪里来,水是哪家水厂的。二是从云计算后台看:云计算实现资源的集中化、规模化。能够实现对各类异构软硬件基础资源的兼容,支持异构资源和实现资源的动态流转,可以更好的利用资源,降低基础资源供应商的成本。云计算的特征基于网络云计算是从互联网演变而来,云计算本质通过网络将计算力进行集中,并且通过网络进行服务,如果没有网络,计算力集中规模、服务的种类和可获得性就会受到极大的限制,如集群计算虽然也是基于网络的计算模式,但是不能提供基于网络的服务,还不能称之为云计算。支持异构基础资源云计算可以构建在不同的基础平台之上,即可
14、以有效兼容各种不同种类的硬件和软件基础资源。硬件基础资源,主要包括网络环境下的三大类设备,即:计算(服务器)、存储(存储设备)和网络(交换机、路由器等设备);软件基础资源,则包括单机操作系统、中间件、数据库等。从横向维度考虑,支持异构资源,意味着在同一时期内,可以采购不同厂商的软硬件。对云计算平台的构建者而言,这种形式更为灵活;而从纵向维度考虑,意味着云计算平台既可以兼容当下采购的新设备,也可以兼容以前的老设备,既可以兼容当前的新软件系统,也可以兼容以前遗留的老软件系统。支持异构的基础资源这一特性,在有效利用老资源的同时,也保证了新老资源的平滑过渡。支持资源动态扩展支持资源动态伸缩,实现基础资
15、源的网络冗余,意味着添加、删除、修改云计算环境的任一资源节点,亦或任一资源节点异常宕机,都不会导致云环境中的各类业务的中断,也不会导致用户数据的丢失。这里的资源节点可以是计算节点、存储节点和网络节点。而资源动态流转,则意味着在云计算平台下实现资源调度机制,资源可以流转到需要的地方。如在系统业务整体升高情况下,可以启动闲置资源,纳入系统中,提高整个云平台的承载能力。而在整个系统业务负载低的情况下,则可以将业务集中起来,而将其他闲置的资源转入节能模式,从而在提高部分资源利用率的情况下,达到其他资源绿色、低碳的应用效果。支持异构多业务体系在云计算平台上,可以同时运行多个不同类型的业务。异构,表示该业
16、务不是同一的,不是已有的或事先定义好的,而应该是用户可以自己创建并定义的服务。这也是云计算与网格计算的一个重要差异。支持海量信息处理云计算,在底层,需要面对各类众多的基础软硬件资源;在上层,需要能够同时支持各类众多的异构的业务;而具体到某一业务,往往也需要面对大量的用户。由此,云计算必然需要面对海量信息交互,需要有高效、稳定的海量数据通信/存储系统作支撑。按需分配,按量计费按需分配,是云计算平台支持资源动态流转的外部特征表现。云计算平台通过虚拟分拆技术,可以实现计算资源的同构化和可度量化,可以提供小到一台计算机,多到千台计算机的计算能力。按量计费起源于效用计算,在云计算平台实现按需分配后,按量
17、计费也成为云计算平台向外提供服务时的有效收费形式。云计算的价值云计算是能够提供动态资源池、虚拟化和高可用性的下一代计算模式。如果把一个计算的资源,比如一台服务器,看成一个小水滴,当很多资源汇聚在一起的时候,它就形成了计算的云,正如我们不关心水滴是怎么产生的,用户也不需要关心计算资源位于哪台物理的服务器上。用户关心的是需要什么样的计算能力,需要什么时刻拥有这些计算能力。云计算管理平台可以为用户提供“按需计算”服务。从资源共享方面在现有软硬件资源基础上建设云计算平台。充分发挥云计算平台虚拟化计算、按需使用、动态扩展的特性,为提供计算、存储和信息资源服务,实现软硬件集中部署、统建共用、信息共享,避免
18、重复投资。基于云计算技术建设公共的云服务平台来运行企业正常运行所需要的业务,可以将企业运维中共性的业务部分进行提炼和归纳,并实现,可以保证共性业务实现的规范性、安全性、全面性和稳定性,也避免了公共功能模块的多次开发实现所造成的冗余浪费乃至系统不兼容错误。更重要的是公共的云服务平台可以提供一系列支撑服务,业务应用子系统在这些支撑服务的基础之上进行开发,大大降低了开发难度和成本,使各部门可以更加专注于其本身综合的、深层次的、相关联的业务需求,而不是基础设施的建设,把精力用在企业高效运行和企业创新的关键点业务需求上,比传统的建设模式更好的把握业务需求,将会大大提高企业信息化的建设效益。从管理工作方面
19、企业工作的本质就是服务。如果各部门的业务应用子系统都是按照“企业云计算”的统一标准进行开发实施、注册部署,可以方便的对机关各类业务工作进行标准化管理,从统一管理的的角度对系统进行规范管理,而不是各扫门前雪,在大大降低管理成本的同时,也大量的节约系统的运行成本。从技术实现方面基于云计算的企业公共服务平台可以按照SOA的松耦合方式来建设,模块间通过标准协议实现相互调用和消息传递,这种技术架构较为成熟,具有较好的扩展性,可以确保信息系统技术层面可持续发展,更有助于企业不同服务业务之间的信息共享,提高企业各部门业务之间的协同。从标准化实现方面基于云计算的企业公共服务平台可以提供一种标准化的建设模式,可
20、以统一制定共性办公业务标准、管理工作实现标准、技术安全标准、保密安全标准、软硬件技术实现标准等,这对企业标准的实施和推广具有重要意义。Openstack技术介绍OpenStack是一个开源的基础架构即服务(IaaS)云计算平台,可以为共有云和私有云服务提供云计算基础架构平台。OpenStack使用的开发语言是Python,采用Apache许可证发布该项目源代码。OpenStack支持多种不同的Hypervisor(如QEMU/KVM、Xen、VMware、Hyper-V、LXC等),通过调用各个的底层Hypervisor的API来实现对客户机的创建和关闭等操作,使用libvirt API来管理
21、QEMU/KVM和LXC、使用XenAPI来管理XenServer/XCP、使用VMwareAPI来管理VMware,等等。OpenStack开源项目是在2010年由Rackspace公司和美国国家航空航天局(NASA)发起的云计算项目。OpenStack项目在这两年发展得非常的快,目前,有超过150家公司和成千上万的个人开发者已经宣布加入到该项目的开发。在支持OpenStack开发的一些大公司中,包括了AT&T、Canonical、IBM、HP、Redhat、Suse、Intel、Cisco、WMware、Yahoo!、新浪、华为等一批在IT业界非常知名的公司。OpenStack的使命是为大
22、规模的共有云和小规模的私有云都提供一个易于扩展的、弹性云计算服务,从而让云计算的实现更加简单和云计算架构具有更好的扩展性。也可以说,OpenStack是一个云计算操作系统,它给用于提供仅仅通过一个使用Web交互接口的控制面板(Dashboard)来管理一个或多个数据中心的所有计算资源池、存储资源池、网络资源池等硬件资源。OpenStack的作用是整合各种底层硬件硬件资源,为系统管理员提供Web界面的控制面板以方便资源管理,为开发者的应用程序提供统一管理接口,为终端用户提供无缝的透明的云计算服务。OpenStack在云计算软硬件架构的主要作用域一个操作系统类似,如图6-21所示(该图来源于Ope
23、nStack的官方网站)。 OpenStack在云计算架构中的位置OpenStack项目从2010年10月开始,大约每半年正式发布一个版本,本书写作时,OpenStack的最新版本是在2012年9月27日发布的代号为“Folsom”的版本,下一个版本计划在2013年4月发布。在目前最新的OpenStack(代码“Folsom”)中,主要包含了7个核心组件:计算、对象存储、块存储、镜像、网络、身份认证、控制面板。在OpenStack中,这7个核心组件的逻辑架构。OpenStack中7个核心组件的逻辑架构1)计算(Compute,代号为“Nova”)根据需求提供虚拟的服务器。Rackspace和H
24、P公司提供商业云计算服务正是建立在Nova之上,在Mercado Libre和NASA(Nova项目的起源地)内部也是使用的Nova。2)对象存储(Object Storage,代号为“Swift”)提供的对象存储服务,允许对文件进行存储或者检索(但不是通过挂载文件服务器上目录的方式来实现)。目前已经有好几家公司开始提供基于Swift的商业存储服务,这些公司包括KT公司、Rackspace公司(Swift项目的发源地)和Internap公司,而且,有很多大公司内部也使用Swift来存储数据。3)块存储(Block Storage,代号为“Cinder”)为虚拟化的客户机提供持久化的块存储服务。
25、该组件项目的很多代码最初是来自于Nova之中(就是the nova-volume service)。不过请注意,这是块存储(或者volumes),而不是类似于NFS或者CIFS文件系统,Cinder在最新的“Folsom”版本OpenStack中才加入的一个全新的项目。4)镜像(Image,代号为“Glance”)提供了一个虚拟磁盘镜像的目录和存储仓库,可以提供对虚拟机镜像的存储和检索。这些磁盘镜像常常广泛应用于OpenStack Compute组件之中。虽然这种服务在技术上是属于可选的,但任何规模的云都可能对该服务有需求。5)网络(Network,代号为“Quantum”)在接口设备之间提供
26、“网络连接即服务”的服务,而这些接口设备主要是由OpenStack的其他服务(如Nova)进行管理的。该服务允许用户创建自己的网络,然后添加网络接口设备。Quantum提供了一个可插拔的体系架构,使其能够支持很多流行的网络供应商和新的网络技术。Quantum是在OpenStack的Folsom版本中才加入的新项目。6)身份认证(Identity,代号为“Keystone”)为OpenStack上的所有服务提供身份验证和授权。它还提供了在特定OpenStack云服务上运行的服务的一个目录。7)控制面板(Dashboard,代号为“Horizon”)为OpenStack的所有服务提供一个模块化的基
27、于Web的用户界面。使用这个Web图形界面,可以完成云计算平台上的大多数的操作,如启动客户机、分配IP地址、设置访问控制权限等。除了上面介绍的7个核心组件,OpenStack计划在2013年4月发布代号为“Grizzly”的版本中,加入下面的两个组件。其中,一个是代号为“Ceilometer”的项目,用于对用户实际使用资源的进行比较细粒度的度量,可以为计费系统提供非常详细的资源监控数据(包括CPU、内存、网络、磁盘等)。另一个是代号为“Heat”的项目,使用Amazon的AWS云格式(CouldFormation)模板来编排和描述OpenStack中的各种资源(包括客户机、动态IP、存储卷等)
28、,它提供了一套OpenStack故有的RESTful的API,和一套与AWS CloudFormation兼容的查询API。vdi实现原理VDI的实现方式,无非在虚拟机之前加了一层VDI Router的机制,至于底层协议是什么样的,完全取决于Router怎么写。Router主要是将用户连接桌面的请求进行拦截,根据一定的规则找到闲置的虚拟桌面,再将用户的私有数据进行还原,最后把双方连接起来,这就是VDI的基本原理。VDI实现协议介绍a.RDP协议远程桌面协议(RDP, Remote Desktop Protocol)是一个多通道(multi-channel)的协议,让用户(客户端或称“本地电脑”
29、)连上提供微软终端机服务的电脑(服务器端或称“远程电脑”)。大部分的Windows都有客户端所需软件。其他操作系统也有这些客户端软件,例如Linux、FreeBSD、Mac OS X。服务端电脑方面,则听取送到TCP3389端口的数据。b.VNC协议介绍VNC (Virtual Network Computing)是虚拟网络计算机的缩写。VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 和 MAC 中的任何远程控制软件媲美。 在 Lin
30、ux 中,VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多数情况下我只需要其中的两个命令:vncserver 和 vncviewer。c.Spice协议介绍SPICE(Simple Protocol for Independent Computing Environment独立计算环境简单协议)是一项高性能、动态的自适应远程呈现技术,能为终端用户带来和物理桌面个人计算机难以区分的体验。SPICE是为远程访问虚拟化桌面而专门设计和创建,它是使用redhat企业虚拟化桌面版时,将用户连接至虚拟化桌面的协议。与Microsoft的R
31、DP和Citrix的ICA旧协议不同,SPICE是以多层架构为基础,旨在满足目前桌面用户的丰富多媒体需求。设计的核心是实现对用户端设备(CPU、RAM等)或主机虚拟服务器上可用系统资源的智能访问。作为访问的结果,协议会以动态方式判定是在客户端设备上还是在主机服务器上对桌面应用程序进行呈现,从而在任何网络条件下都能生成最佳用户体验。Spice协议的优势:1)超群的用户体验SPICE 可充分利用终端用户客户端设备的系统资源以呈现资源密集型应用程序、远程桌面可实现近似于在本地安装环境时的功能。这种方式产生了极佳效果,尤其是在更具挑战性应用方面,如音频、视频和其他形式多媒体,这些一度曾是效果较差或甚至
32、无法利用虚拟桌面解决方案进行观看。2)降低部署成本和支出费用通过利用本地客户端的系统资源,在可用情况下,它可即时释放主机虚拟服务器上的重要系统资源。其结果是实现主机服务器上最高的虚拟机密度,极大地释放了主机服务器系统资源,并可运行更多虚拟机,和其他备选解决方案相比,使企业只需要购买和支持较少的服务器硬件。3)确保数据安全性红帽企业虚拟化桌面版具有一项可选功能,可充分加密 SPICE 连接终端用户的客户端设备与桌面虚拟机之间的端对端 SSL(安全套接层)通道。这一安全通道确保无论客户端设备用户在何处对其桌面进行访问,客户端和主机服务器之间的数据链接都能受到保护。4)连接任何 USB 设备今天大多
33、数桌面用户在他们的本地桌面 PC 上连接各种各样的 USB 设备。当客户移至虚拟化桌面基础设施时,他们仍希望如此。与其他解决方案限制存储设备或可能有局限于某些硬编码设备不同,红帽企业虚拟化桌面版和 SPICE协议在虚拟化桌面上充分运用了 USB 数据重定向。这意味着几乎所有 USB 1.0 和 USB 2.0 设备受SPICE 协议的支持。这包括用户输入设备,如写字板和专业键盘,及通用设备如,手机、PDA、闪存盘和打印机。SPICE架构架构SPICE架构以三层模式为基础,让协议智能判定呈现用户操作的最佳位置。1)SPICE驱动可选软件组件,包含在redhat企业虚拟化工具包中,可安装在虚拟客户
34、机上。旨在通过执行面向客户机的管理任务,如增强鼠标位置报告、显示监视器设置、USB设备装入等来增强用户体验。2)SPICE服务器属于位于主机服务器上的redhat企业虚拟化系统管理程序的一个软件组件。它是虚拟机内代理机和终端用户PC内客户端之间的主接口,提供无缝数据通信和设备交互。3)SPICE客户端位于终端用户客户端设备上的跨平台软件组件,它用于访问redhat企业虚拟化桌面版上的每个虚拟机。该客户端可运行于windows和linux客户端设备上,包括瘦客户端和改造的PC。spice与vnc的区别SPICEVNCBIOS屏幕显示能能全彩支持能能更改分辨率能能多显示器多显示器支持(高达4画面)
35、只有一个屏幕图像传输图像和图形传输图像传输视频播放支持GPU加速支持不能音频传输双向语音可以控制不能鼠标控制客户端服务器都可以控制服务器端控制USB传输USB可以通过网络传输不能加密通讯可以使用SSL进行加密不能需求分析实现方案选择 很多企业和机构都拥有自己的云平台解决方案,但都是商业化的项目。Openstack作为一个开源的项目,受到很大的关注。Openstack可以作为云计算的基础架构平台,成为搭建数据中心的基础。Spice协议与RDP协议、VNC协议都能作为远程桌面的传输协议,但是Spice协议在实现功能和性能上都远优于RDP和VNC协议,同时Spice作为Redhet的开源项目,可以很
36、方便使用。因此本项目选择openstack作为云计算的基础架构平台,Spice作为桌面传输协议,实现整个系统。需求分析对于数据中心的建设,云计算是多种概念和技术并行发展,融合过程中逐渐形成的一个多层次,多模式,多维度的复合概念。云计算不仅有助于提高资源利用率,节约成本,还能大幅度提高应用程序从设计开发到业务部署的速度,并有助于加快创新步伐,创造更大的业务成效。针对本次项目的需求,通过分析,认为此次项目的方案架构也应该从面向云服务和云计算的角度出发,搭建具有先进性的方案架构。云服务具有5个特征:(1)面向服务的(2)具有可扩展性,是一个弹性的框架(3)是共享的平台(4)按需计量的(5)云服务是基
37、于互联网技术的 “云计算”平台为企业提供共享计算、共享存储、开发环境平台搭建、支撑服务软件等内容的公共技术服务。建设内容包括:服务器设备、存储设备、网络设备、安全设备、支撑软件、业务软件等模块。项目实现目标数据中心及云计算服务中心依托先进技术,能统一管理标准,确保平台的保密性、安全性、稳定性和可扩展性。统一标准的平台降低了IT维护成本,提高了对需求的响应速度,从而达到以下目标:充分利用现有的硬件、软件资源;支持计算、存储资源共享能力;为企业提供业务支撑服务。平台不管从系统安全、可靠性、大容量,还是可扩充性等诸多方面,都应给予非常全面的考虑:可用性可靠性,避免单点故障大容量,可扩展性项目完成要求
38、在本次项目的设计和建设中,需严格遵循以下原则:(1)稳定性应采取各种必要技术措施,保证公共服务平台具备有优秀的稳定性,在保证性能的前提下,为主要业务提供持续的支撑服务。(2)安全性平台系统应能充分考虑用户数据的安全,避免用户受到异常攻击或敏感数据窃取。(3)可扩展性各平台应具备良好的扩展能力,满足数据中心长期发展的要求。根据业务的发展预测,平台系统定期按照适度预留的原则进行建设,能在规定时间内快速响应新的用户,新的业务的新增要求。(4)灵活的 IT 基础架构满足资源的随时随地按需分配,需要建立一个灵活的硬件基础架构。硬件基础架构通常由虚拟的服务器池、共享的存储系统、网络和硬件管理软件组成。(5
39、)自动化资源部署云计算运行管理平台的核心功能是自动为用户提供服务器、存储以及相关的系统软件和应用软件。用户、管理员和其他人员能通过 Web 界面使用该功能。要实现资源的自动部署,必须做到:首先,建立一个中心数据库来管理数据中心的硬件资源;其次,要规范化资源的使用,包括标准化操作系统、数据库软件、中间件软件的种类和版本。自动化的部署流程不仅能做到“随需应变”,适应用户的需求,而且能够带来以下好处:引入技术和创新的时间缩短,设计、采购和构建硬件和软件平台的人力成本降低,以及通过提高现有资源的利用率和复用率节省成本。(6)完善的资源监控及故障处理手段云计算服务管理平台提供资源和服务的各种运维能力,可
40、以监控资源的使用情况,对于平台故障提供及时地预警报警,保证云计算平台的稳定运行。(7)有助于建立IT管理规则为了实现数据中心的规范管理,需要以云计算运行管理平台为基础,有助于为数据中心制定一套完整的管理规则。总体设计建设目标目前IT信息技术已经延伸到企业的各个层面,从企业角度看,云计算有利于整合信息资源,实现信息共享,促进企业信息化的发展。从用户角度看,利用云计算可以独立实现或享受某一项具体的业务和服务。因此云计算将在企业的IT政策和战略中正扮演越来越重要的角色。该项目的目标是搭建一个基于openstack的云计算平台,制作不同种类的镜像,提供多个平台的客户端,实现客户端的外设、音视频、麦克风
41、、USB设备的正常使用,使用户可以方便访问到数据中心的不同操作系统和配置的虚拟机。项目实现内容云计算平台建设主要包括以下建设内容:1)云平台的搭建(openstack的安装,部署,调试)2)虚拟机镜像的制作(包括 Linux虚拟机镜像,WinXP、windows 7虚拟机镜像制作)3)虚拟机镜像在openstack中的集成及测试4)Spice协议的安装配置,Spice客户端的测试5)客户端的外设、音视频、麦克风、USB重定向的配置和测试6)项目展示页面的开发及测试()项目实现原则本项目建设遵循以下建设原则:先进性基础设施平台建设采用的产品和技术具有云平台的特征及技术的先进性,保障平台的资源使用
42、周期最大化。但采用先进的技术也有一定的风险,即可能存在技术不成熟问题。我们采用充分论证及测试的方式,在选择先进技术时,把技术风险降低。并通过平台的小规模运营实践,逐步淘汰不成熟、不可行的技术,将整个平台建设成技术领先的基础设施系统。高可靠性云计算平台作为承载未来企业应用的重要IT基础设施,承担着稳定运行和业务创新的重任。伴随着数据与业务的集中,云计算平台的建设及运维给信息部门带来了巨大的压力,因此平台的建设从基础资源池(计算、存储、网络)、虚拟化平台、云平台等多个层面充分考虑业务的高可用,基础单元出现故障后业务应用能够迅速进行切换与迁移,用户无感知,保证业务的连续性。可扩展性可实现通过简单的硬
43、件扩容达到系统动态扩容的目的,可动态伸缩,满足应用和用户规模增长的需要。易管理云计算的最终目标是要实现系统的按需运营,多种服务的开通,而这依赖于对计算、存储、网络资源的调度和分配,同时提供用户管理、组织管理、工作流管理、自助Portal界面等。从用户资源的申请、审批到分配部署的智能化。管理系统不仅要实现对传统的物理资源和新的虚拟资源进行管理,还要从全局而非割裂地管理资源,因此统一管理与自动化将成为必然趋势。项目实施和测试系统总体架构系统总体架构图如下: 项目包括openstack搭建的数据中心,用于远程连接的Spice server,Spice client部分。Ubuntu12.04安装部署
44、Openstack一、安装:更新:sudo apt-get updatesudo apt-get upgrade安装图形化界面:sudo apt-get install ubuntu-desktop安装gcc和make:sudo apt-get install -y gcc make安装Git(DevStack的代码是使用Git进行管理的,需要用Git获取);sudo apt-get install git使用Git获取最新的DevStack代码:git clone /openstack-dev/devstack.git安装easy_install:sudo apt-get install p
45、ython-setuptools安装netaddr模块:sudo easy_install netaddr进入图形化界面安装pytz:从/pypi/pytz/#downloads下载pytz的最新版本,下载后把文件复制到Ubuntu中,执行以下命令安装:sudo easy_install pytz-2012h-py2.7.egg安装OpenStack:cd /devstack./stack.sh重启虚拟机后,执行DevStack下的rejoin-stack.sh脚本即可进入openstack。cd ./devstack/ls./rejoin-stack.sh 二、删除openstack:sud
46、o rm -rf 文件夹名称rm -rf 非空文件夹名 -/删除一个非空文件夹下的一切如果不能删除或者建立的话,可以使用sudo命令,如 sudo rm -rf 文件夹名称三、重新安装:cd /devstack./stack.shOpenstack 镜像制作Openstack不但能管理linux虚拟机还能管理windows虚拟机。本文详细讲述Openstack kvm win7镜像制作。宿主系统:ubuntu server 12.04 + kvm HYPERLINK /soft t _blank 下载virtio驱动,因为win默认不支持virtio驱动,而通过openstack管理 HYPE
47、RLINK /os/xuniji/ t _blank 虚拟机是需要virtio驱动的。需要两个virtio驱动,一个是硬盘的,一个是网卡的,即:virtio-win-0.1-74.iso和virtio-win-1.1.16.vfd。下载地址: HYPERLINK /s/1dDiVFg9 /s/1dDiVFg9准备一个win7的镜像,下载地址: HYPERLINK /s/1dDiVFg9 /s/1dDiVFg9 有win7镜像的可以跳过此步骤。注意:virtio-win-0.1-74.iso、virtio-win-1.1.16.vfd、win7镜像需要放在同一个目录下。相同目录下创建win7的镜
48、像,raw格式,大小7G: kvm-img create -f raw win7.img 7G启动基于win7的kvm虚拟机,映射驱动vfd到软盘A: kvm -m 1024 -cdrom win7.iso -drive file=win7.img,if=virtio,boot=on -fda virtio-win-1.1.16.vfd -boot d因为默认没有virtio驱动,所以识别不了硬盘,需要手动选择,整个过程如下:注意加载驱动:安装好win7后,设置开启远程桌面:查看网卡驱动类型:关机!再次启动虚拟机:kvm -m 1024 drive file=win7.img,if=virti
49、o,boot=on -cdrom virtio-win-0.1-74.iso -net nic,model=virtio -net user -boot c重启后进入系统,修改网卡驱动类型:网卡驱动已经换掉,关机。进入openstack创建镜像:设置安全策略,因为要通过远程桌面连接win7,所以要放开3389端口启动一个名为win7的虚拟机:第一次启动比较慢,因为要把win7镜像从镜像服务器传送到计算节点上。通过dashboard的vnc登录,大功告成。 HYPERLINK l _Toc353517874 openstack镜像的集成进入openstack中,在“项目”-“镜像”中选择创建镜像
50、在对话框中选择镜像参数,镜像源选择镜像文件,在下面选择镜像文件所在目录,点击创建3.镜像上传成功需要一定时间,需耐心等待。查看镜像的状态4.在“项目”-“云主机”中选择创建云主机5.在对话框中选择创建云主机的参数,云主机启动源选择从镜像启动,镜像名称选择刚创建的镜像,点击“运行”。6.如果镜像挣钱,可在console中看到镜像的状态。 HYPERLINK l _Toc353517879 Spice协议的安装配置Spice基本构建块有:spice协议、spice server 和spice clientSpice相关的组件包括:QXL设备和客户QXL驱动图像命令流:上图显示的是基本spice架构
51、和使用libspice和QEMU时从guest到client图像命令的数据流。Libspice能被任何兼容VDI主机使用。由图可知图像命令数据流由用户应用(guest中)请求OS图像引擎(X或GDI)去执行渲染操作开始。图像引擎将命令传递给QXL驱动,QXL驱动将OS图像引擎命令翻译成QXL命令并将其放到命令环中。此命令环在QXL设备内存中。Libspice从环中取出命令并将其加到图像命令树中。此图像命令树包含命令集,命令集的执行将重新构建显示内容。Libspice使用命令树通过丢弃被其他命令隐藏的命令优化后传输给client。此命令树还被用来检测视频流。Libspice也维持一个发送给cli
52、ent的更新其显示命令队列。当一个命令从队列中取出发送给client时,将被翻译成spice协议消息(之前是QXL命令)。命令也从命令树和发送队列中移除。当一个命令不再被libspice需要时,其进入到QXL设备释放环中,QXL驱动用这个环进行资源的释放。当client收到一个图像命令,其将根据这个命令更新显示。代理命令流:Spice agent是在guest中执行的一个软件模块。Spice server和client为需要在guest环境中执行的任务使用agent,如配置guest显示设置等。上图显示的是spice client用agent与server交互的过程。消息可能被client(例
53、如:guest显示设置)、server(例如:鼠标移动)或agent(例如:配置ack)。Spice几个重要的概念:通道:Client和server通过通道进行交互。每个通道类型专用于一种特殊数据类型传输。每个通道用一个专用的TCP套接字,可能是安全的(用SSL加密)或不安全的。在客户端每个通道有一个专用的线程。因此通过不同的线程优先级,每个通道被给与不同的QoS。通道类型:主通道:由RedClient类实现显示通道:处理图形命令,图像和视频流输入通道:键盘和鼠标输入光标通道:指针设备位置,可见性和光标形状播放通道:从server接收音频在client进行播放录音通道:在client中捕获音频
54、RedClientRedChannelRedChannelBaseRedPeer类继承关系:Screens和windowsScreenLayerRedScreenRedDrawableRedWindowRedWindow_pSpice serverSpice server在libspice中实现,libspice是一个VDI插件库。VDI提供了一种标准的方式去发布虚拟设备的接口,以便其它软件组件能和这些设备交互。Spice server一方面用spice协议与远程client进行交互。另一方面,其与主机应用程序进行交互。为远程显示Spice server维护了一个命令队列和一颗树来管理当前的对
55、象依赖和消隐。处理QXL命令并且翻译成spice协议命令发送给client。Spice server通道和client通道类似。Red Server(reds.c)监听client连接,接受连接并交互主要职责:通道:拥有和管理通道(注册、注销、关闭)通知client活动的通道,以便client能创建它们主通道和输入通道的处理建立链接套接字操作和连接管理处理SSL和ticketingVDI接口的添加和移除协调迁移过程处理用户命令与guest agent交互统计。Red Worker(red_worker.c)Spice server为每个QXL设备实例持有一个不同的red worker线程实例。
56、Red_worker职责:处理QXL设备命令处理从dispatcher中接收的信息显示和光标通道图像压缩视频流识别,编码和创建流缓存client共享像素缓存,光标缓存,调色板缓存图像优化Cairo和OpenGL渲染环操作Red Dispatcher(red dispatcher.c)为QXL设备初始化一个red worker和创建一个worker线程用一个socketpair通道调度workerQXL设备用QXLWorker接口,这个接口由red dispatcher实现和联系Spice相关组件:QXL设备和驱动:spice server支持QXL VDI接口。当libspice使用QEMU交
57、互时,能够使用QEMU QXL PCI设备去提高远程显示性能和加强虚拟机图像处理能力。QXL设备需要虚拟机有QXL驱动来实现完全功能。然而没有驱动时,支持标准的VGA。VDI端口设备:spice协议支持客户端和服务器端的代理通过通道进行交互。当使用QEMU时,spice代理存在于虚拟机中。VDI端口时一种QEMU PCI设备被用来和代理进行交互。Spice代理:spice代理是加强用户体验和执行guest-oriented管理任务的可选组件。例如:当使用客户鼠标模式时代理将鼠标位置和状态注入到虚拟机中。0. 安装前预备工作:由于要从git 服务器下载源码安装,所以需要安转git工具sudo a
58、pt-get install build-essential autoconf git-core 当然,还有编译安装包使用的工具也要安装:sudo apt-get install libtool liblog4cpp5-dev libavcodec-dev libssl-dev xlibmesa-glu-dev libasound-dev libpng12-dev libfreetype6-dev libfontconfig1-dev libogg-dev libxrandr-dev kvm libgcrypt-dev libsdl-dev libnss3-dev libpixman-1-de
59、v libxfixes-dev libjpeg8-dev libsasl2-dev python-pyparsing 最后准备,创建一个文件夹,用来存放下载的安装包(如果你对下载安装位置很清楚,当然也可以不用新建这个文件夹)cdmkdir spice-sourcescd spice-sources1. SPICE安装依赖包:1.1 libcacardgit clone git:/alon/libcacardcd libcacard./autogen.shmakesudo make installcd .1.2. 安装协议(SPICE protocol headers)wget /download/releases/spice-protocol-0.8.0.tar.bz2tar xjvf spice-p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厂房租赁合同模板
- 2024工程顾问合同范本
- 地下车位租赁合同纠纷处理办法
- 建筑工地施工升降机租赁合同
- 2024简单的保姆用工合同协议书范本
- 制作合同范本(半成品)范本
- 跨国教育机构合作办学范本
- 2024公司收购合同范本
- 2024年贸易合同标准范本
- 委托管理合同范例大全
- 2024天猫男装行业秋冬趋势白皮书
- 《正确对待外来文化》名师课件
- 2024年绵阳科技城新区事业单位考核公开招聘高层次人才10人(高频重点复习提升训练)共500题附带答案详解
- 中医食疗药膳学智慧树知到答案2024年四川护理职业学院
- 建筑项目安全风险分级管控清单建筑风险分级管控清单(范例)
- 马背上的民族蒙古族少数民族蒙古族介绍课件
- 工程图学(天津大学)智慧树知到期末考试答案章节答案2024年天津大学
- 农村户改厕施工协议书
- 当代社会政策分析 课件 第十一章 残疾人社会政策
- 家政公司未来发展计划方案
- ISO28000:2022供应链安全管理体系
评论
0/150
提交评论