1、基于云计算总体环境的设计与实施摘要:随着虚拟化技术和云计算技术的发展,越来越多的ISP服务商和IDC供应商开始使用虚拟机来完成网站驻留和托管服务。而云计算刚好能满足这一日益增长的需求,而实现它的平台之一就是OpenStack。OpenStack是一个虚拟化管理系统,其主要目的是为公共或私有云平台的建立提供基础的虚拟化环境。OpenStack的主要功能由管理计算资源的Nova组件、管理镜像的Glance组件和管理存储Swift组件构成。在此基础上,一个稳定的云平台还需要加入支持负载均衡的NGINX组件和AMOEBA组件。由这些组件构成的总体环境被称为云计算总体环境。本次毕业设计的主要工作就是根据
2、企业的实际环境情况,定制安装云计算总体环境的配置方式,并最终予以实施。本次设计需要在理解OpenStack基本配置的基础上,根据实际环境编写具体的配置文件和尝试各种合理的软件包以及配置方式,以最终达到使云计算环境成功运行的目的。本项目的最终结果是使云计算环境在中国联通获得成功实施。关键字:云计算;虚拟机;OpenStackThe Design and Implementation of Cloud-based Computing Environment in GeneralSpecialty:Software Engineering Student Number:200910414440Stu
3、dent:Hu Shuang Supervisor:Wu Huaigu Abstract: With the development of virtualization technology and cloud computing technology, more and more ISP service providers and IDC suppliers start to use virtual machines to offer hosting services for websites. Cloud computing is suitable for this kind of req
4、uirements that increases rapidly. OpenStack is one of typical basic platforms of cloud computing.OpenStack is a management system of virtualization. It is designed to provide the fundamental virtualized environment for public or private cloud platform. The major functionality of OpenStack consists o
5、f the Nova component that manages computing resources, the Glance component that manages images, and the Swift component that manages storages. Moreover, a stable platform also requires the NGINX component and the AMOEBA component to provide load balancing and fault tolerance. It is the integrated e
6、nvironment of cloud computing that consists of these components.The major work of this thesis is to define the methods to customize the integrated environment according to the real environment of an enterprise, and successfully build the environment at the end. This requires us to understand standar
7、d configuration methods of OpenStack, customize the configuration scripts according to the real environment, try different software packages and configuration approaches, and finally make the environment work. The final result of this thesis is to build a real runtime environment of the cloud comput
8、ing in China Unicom. Key words: Cloud computing virtual machine OpenStack成都学院学士学位论文(设计)目 录绪 论11 相关技术介绍21.1 云计算概念21.2 云计算的架构层次21.3 云计算的特点及发展31.4 云计算与虚拟化41.5 OpenStack的概念41.5.1 OpenStack Compute的概念51.5.2 OpenStack Object Storage51.5.3 OpenStack Image Service61.6 云服务提供商的概念架构61.6.1 OpenStack Compute81.6
9、.2 OpenStack 概念映射102 需求目标分析122.1 OpenStack安装准备122.2 OpenStack安装配置文件的修改定制122.3 OpenStack的负载均衡实现122.4 OpenStack虚拟机管理133 OPENSTACK的安装与配置143.1 控制节点的安装143.1.1 前提工作143.1.2 Ntp时间服务安装143.1.3 Mysql数据库服务安装153.1.4 RabbitMQ消息队列服务安装163.1.5 Python-NovaClient库安装173.1.6 Keystone身份认证服务安装与配置173.1.7 Python-KeystoneCli
10、ent库安装193.1.8 Glance镜像存储服务安装203.1.9 Nova计算服务安装233.1.10 Horizon管理面板安装273.2 计算节点的安装283.2.1 前提工作283.2.2 Ntp时间服务安装283.2.3 Python-NovaClient库安装293.2.4 Glance镜像存储服务安装293.2.5 Nova计算服务安装与配置304 OPENSTACK负载均衡的实现324.1 Nginx负载均衡安装配置324.1.1 配置nginx334.1.2 启动nginx354.2 Amoeba安装与配置354.2.1 安装amoeba364.2.2 配置mysql代理
11、374.2.3 配置Master-Slave下的读写分离38结 论41参考文献42致 谢4343成都学院学士学位论文(设计)绪 论1) 项目定义近年来,随着信息科技的发展,中国信息化时代的脚步随着中国高性能云计算产业的发展全面走向信息化应用层面。而社会经济建设的科技需求也越来越离不开高性能科技的设备支持,云计算中心成为满足城市规划与城市管理、政务信息化服务、高性能计算、电子商务、物联网、数据挖掘、软件服务等多个领域科技应用需求的重要科技设备。而OpenStack作为一个基于资源整合的云平台操作系统正是一个完美的解决平台。所以对OpenStack的理解、研究和实战部署对于一个想宰云端发展的企业来
12、说是很有必要的。2) 编写目的希望通过本文,能帮助大家更为具体的了解云计算和OpenStack,以及如何用OpenStack配置搭建企业自己的云开发环境,并部署和实施具有能承载高并发访问的弹性伸缩功能和高可用性的环境。本文目的在于尝试在企业的信息中心搭建企业内部的私有云。以便企业能将闲置的服务器资源组成企业的私有云平台来为各个部门服务,使资源利用率能达到最大。3) 项目背景人类社会从蒸汽机进入了工业时代,从电进入了现代文明,从计算机互联网进入了地球村的时代。那么云时代的到来,将会是怎样的一番景象呢?云计算被认为是继个人电脑、互联网之后电子信息技术领域又一次重大变革,其实质是一种基于互联网的计算
13、模式,在这样模式下,计算资源(计算能力、存储能力、交互能力)是动态、可伸缩且虚拟化的,以服务的方式提供。这种新型的计算资源组织、分配和使用模式,有利于合理配置计算资源并提高其利用率,降低成本,促进节能减排,实现绿色计算。OpenStack作为一个开源的云操作系统,吸引了越来越多的厂商加入,据统计有超过130家企业及1350位开发者加入这一系统项目,这些机构与个人都将OpenStack作为基础设施即服务(简称IaaS)资源的通用前端,最近新浪云计算宣布正式加入全球开源云计算项目OpenStack,将选择OpenStack作为IaaS平台解决方案。作为OpenStack中国的积极推动者,这在很大程
14、度上将推动OpenStack云开源代码项目的发展。1 相关技术介绍1.1 云计算概念云计算的概念是由Google率先提出的,狭义云计算是指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源;广义云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。云计算是网格计算、分布式计算、并行计算、效用计算、云计算网络存储、虚拟化、负载均衡等传统计算机技术和网络技术发展融合的产物。它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统,并借助SaaS、PaaS、IaaS、MSP等先进的商业模式把这强大的计算能力分布到终端用户手中。Cl
15、oud Computing的一个核心理念就是通过不断提高“云”的处理能力,进而减少用户终端的处理负担,最终使用户终端简化成一个单纯的输入输出设备,并能按需享受“云”的强大计算处理能力!云计算的基本原理是,通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将更与互联网相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。云计算的蓝图已经呼之欲出:在未来,只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。从这个角度而言,最终用户才是云计算的真正拥有者。1.2 云计算的架构层次下图1.1为云计算
16、的架构层次:图1.1云构架层次图云构架的服务层次:1) 基础设施即服务(IaaS):提供虚拟化的计算资源、存储资源、网络资源,典型案例如 Amazon EC2,这也是本次毕业设计所主要做的部分2) 平台即服务 (PaaS):使软件开发人员充分利用开放的资源来开发定制化的应用 ,如Google AppEngine3) 软件即服务(SaaS):软件或应用通过租用的形式提供给用户使用 ,如S和Google Gmail、Docs 。基础设施层的基本功能有:资源抽象,资源监控,复杂管理,数据管理,资源部署,安全管理,计费管理等。平台层的基本功能有:开发平台,包括应用模型、Api代码和开发测试环境;运行时
17、环境,包括验证、配置、部署和激活;运营环境,包括升级、监控、淘汰和计费。应用层分为标准应用,客服应用和多元应用。标准应用如如文档处理、电子邮件、日程管理等 ,提供商往往是实力雄厚的IT业巨头 。客户应用如客户管理系统CRM、企业资源计划系统ERP,提供商是规模较小的专业公司 。多元应用如地铁时刻表服务Mutiny、期权交易方案提供The Option Lab提供商多是规模较小的开发团队 。当然我们也可以根据服务对象的不同,将云分为私有云,公有云和混合云。私有云为“一个”客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制;该公司拥有基础设施,并可以控制在此基础设施上部署应用程序的
18、方式;私有云可部署在企业数据中心的防火墙内,也可以将它们部署在一个安全的主机托管场所;私有云可由云提供商进行构建,通过托管模式,构筑一个公司企业数据中心内的专用云。而公有云则是针对外部客户,通过网络方式提供可扩展的弹性服务。顾名思义,混合云位于公有云和私有云之间。1.3 云计算的特点及发展1) 超大规模:“云”具有相当的规模,Google云计算已经拥有100多万台服务器, Amazon、IBM、微软、Yahoo等的“云”均拥有几十万台服务器。企业私有云一般拥有数百上千台服务器。“云”能赋予用户前所未有的计算能力。2) 虚拟化:云计算支持用户在任意位置、使用各种终端获取应用服务。所请求的资源来自
19、“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解、也不用担心应用运行的具体位置。只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。3) 高可靠性:云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机可靠。4) 通用性:云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一个“云”可以同时支撑不同的应用运行。5) 高可扩展性:“云”的规模可以动态伸缩,满足应用和用户规模增长的需要6) 按需服务:“云”是一个庞大的资源池,你按需购买;云可以象自来水,电,煤气那样
20、计费7) 极其廉价:由于“云”的特殊容错措施可以采用极其廉价的节点来构成云,“云”的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本,“云”的通用性使资源的利用率较之传统系统大幅提升,因此用户可以充分享受“云”的低成本优势,经常只要花费几百美元、几天时间就能完成以前需要数万美元、数月时间才能完成的任务。1.4 云计算与虚拟化首先虚拟化技术:vmware和vz技术,均是只能在一台物理服务器上虚拟出一台台,这样就可以一定程度上充分利用服务器,包括其CPU、内存的使用率和带宽。而云计算技术,在虚拟化的基础上结合分布式技术,在大型的物理服务器群上虚拟隔离出一台台的服务器,使这样的服务器有想
21、物理服务器一样的CPU、内存等等,并且虚拟服务器之间互不影响,而且因为其云存储,使得数据更加安全。这样的衍生出的云计算服务器较之以往的VPS有更加强大的性能和安全性,而与物理机相比又更加便宜。目前这样产品对市场的冲击还是比较大的,像盛大云、阳光云都相继投入大量资金在云计算上面。这时候就需要一个强大的平台来管理这些虚拟机,它就是OpenStack。OpenStack从问世以来到现在已经发展了多个版本,而其功能也越来越强大,越来越丰满。它作为云计算的虚拟化代表技术,可以说已经是十分成熟的了1.5 OpenStack的概念OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云
22、的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。OpenStack旗下包含了一组由社区维护的开源项目,他们分别是OpenStack Compute(Nova),OpenStack Object Storage(Swift),以及OpenStack Image Service(Glance)。1.5.1 OpenStack Compute的概念它也称作nova,作为云组织的控制器,它提供一个工具来部署云,包括运行实例、管理网络以及控制用户和其他项目对云的访问(the cloud through users and
23、projects)。它底层的开源项目名称是Nova,其提供的软件能控制IaaS云计算平台,类似于Amazon EC2和Rackspace Cloud Servers。实际上它定义的是,与运行在主机操作系统上潜在的虚拟化机制交互的驱动,暴露基于Web API的功能。下图1.2可以说明nova是如何工作的1:图1.2 nova工作图其中:1) API :处理客户端的请求,并且转发到 Queue和Database中。2) Scheduler:选择一个host去执行命令3) nova-compute :启动和停止实例,附加和删除卷等操作4) nova-network:管理网络资源,分配固定IP。这样n
24、ova就能很好的去管理实例虚拟机,这也是其存在的主要作用。1.5.2 OpenStack Object Storage它也称swift,是一个可扩展的对象存储系统。对象存储支持多种应用,比如复制和存档数据,图像或视频服务,存储次级静态数据,开发数据存储整合的新应用,存储容量难以估计的数据,为Web应用创建基于云的弹性存储。在此特别说明,本次毕业设计因为物理硬件以及版本更新问题,并没有安装此项目。1.5.3 OpenStack Image Service它也称作glance,是一个虚拟机镜像的存储、查询和检索系统,服务包括的RESTful API允许用户通过HTTP请求查询VM镜像元数据,以及检
25、索实际的镜像。VM镜像有四种配置方式:简单的文件系统,类似OpenStack Object Storage的对象存储系统,直接用Amazons Simple Storage Solution (S3) 存储,用带有Object Store的S3间接访问S3。OpenStack三个项目(Nova,Swift,Glance)的基本关系如下图1.3所示3:图1.3 三大组件关系图从图中可以看出,通过Glance,Opentack的3个模块被链接成了一个整体,Glance为Nova提供镜像的查找操作,而Swift又为Glance提供实际的存储服务,Swift可以看作是Glacne存储接口的一个具体实现
26、。这样也能直观的看出glance在里面所起的作用了。1.6 云服务提供商的概念架构OpenStack能帮我们建立自己的IaaS,提供类似Amazon Web Service的服务给客户。为实现这一点,我们需要提供几个高级特性4:1) 允许应用拥有者注册云服务,查看运用和计费情况;2) 允许Developers/DevOps folks创建和存储他们应用的自定义镜像;3) 允许他们启动、监控和终止实例;4) 允许Cloud Operator配置和操作基础架构。下图1.4为这4点的概念架构:图1.4 OpenStack概念架构在此模型中,作者假设了需要与云交互的四个用户集:developers,
27、devops, owners and operators,并为每类用户划分了他们所需要的功能。该架构采用的是非常普通的分层方法(presentation, logic and resources),它带有两个正交区域5:展示层,组件与用户交互,接受和呈现信息。Web portals为非开发者提供图形界面,为开发者提供API端点。如果是更复杂的结构,负载均衡,控制代理,安全和名称服务也都会在这层。逻辑层为云提供逻辑(intelligence)和控制功能。这层包括部署(复杂任务的工作流),调度(作业到资源的映射),策略(配额等等),镜像注册image registry (实例镜像的元数据),日志
28、(事件和计量) 。假设绝大多数服务提供者已经有客户身份和计费系统。任何云架构都需要整合这些系统。在任何复杂的环境下,我们都将需要一个management层来操作这个环境。它应该包括一个API访问云管理特性以及一些监控形式(forms)。很可能,监控功能将以整合的形式加入一个已存在的工具中。当前的架构中已经为我们虚拟的服务提供商加入了monitoring和admin API,在更完全的架构中,将见到一系列的支持功能,比如provisioning和 configuration management。最后,资源层。既然这是一个compute云,我们就需要实际的compute、network 和 st
29、orage资源,以供应给我们的客户。该层提供这些服务,无论他们是服务器,网络交换机,NAS(network attached storage)还是其他的一些资源。1.6.1 OpenStack ComputeOpenStack Compute逻辑架构中,组件中的绝大多数可分为两种自定义编写的Python守护进程(custom written python daemons)6:1) 接收和协调API调用的WSGI应用(nova-api, glance-api, etc)2) 执行部署任务的Worker守护进程(nova-compute, nova-network, nova-schedule,
30、etc.)然而,逻辑架构中有两个重要的部分,既不是自定义编写,也不是基于Python,它们是消息队列和数据库。二者简化了复杂任务(通过消息传递和信息共享的任务)的异步部署。它们的架构如下图1.5所示:图1.5 OpenStack compute架构从图中,可以总结出三点7:1) 终端用户(DevOps, Developers 和其他的 OpenStack 组件)通过和nova-api对话来与OpenStack Compute交互。2) OpenStack Compute守护进程之间通过队列(行为)和数据库(信息)来交换信息,以执行API请求。3) OpenStack Glance基本上是独立的
31、基础架构,OpenStack Compute通过Glance API来和它交互。其各个组件的情况如下:1) nova-api守护进程是OpenStack Compute的中心。它为所有API查询(OpenStack API 或 EC2 API)提供端点,初始化绝大多数部署活动(比如运行实例),以及实施一些策略(绝大多数的配额检查)。2) nova-compute进程主要是一个创建和终止虚拟机实例的Worker守护进程。其过程相当复杂,但是基本原理很简单:从队列中接收行为,然后在更新数据库的状态时,执行一系列的系统命令执行他们。nova-volume管理映射到计算机实例的卷的创建、附加和取消。这
32、些卷可以来自很多提供商,比如,ISCSI和AoE。3) Nova-network worker守护进程类似于nova-compute和nova-volume。它从队列中接收网络任务,然后执行任务以操控网络,比如创建bridging interfaces或改变iptables rules。4) Queue提供中心hub,为守护进程传递消息。当前用RabbitMQ实现。但是理论上能是python ampqlib支持的任何AMPQ消息队列。5) SQL database存储云基础架构中的绝大多数编译时和运行时状态。这包括了可用的实例类型,在用的实例,可用的网络和项目。理论上,OpenStack Co
33、mpute能支持SQL-Alchemy支持的任何数据库,但是当前广泛使用的数据库是sqlite3(仅适合测试和开发工作),MySQL和PostgreSQL。6) OpenStack Glance,是一个单独的项目,它是一个compute架构中可选的部分,分为三个部分:glance-api, glance-registry and the image store. 其中,glance-api接受API调用,glance-registry负责存储和检索镜像的元数据,实际的Image Blob存储在Image Store中。Image Store可以是多种不同的Object Store,包括Open
34、Stack Object Storage (Swift)7) 最后,user dashboard是另一个可选的项目。OpenStack Dashboard提供了一个OpenStack Compute界面来给应用开发者和devops staff类似API的功能。当前它是作为Django web Application来实现的。当然,也有其他可用的Web前端。1.6.2 OpenStack 概念映射将逻辑架构映射到概念架构中,如下图1.68图1.6 逻辑架构到概念架构的映射这种覆盖方式并不是唯一的。通过覆盖OpenStack Compute 逻辑组件,Glance和Dashboard,来表示功能范
35、围。对于每一个覆盖,都有相应的提供该功能的逻辑组件的名称9.1) 在这种覆盖范围中,最大的差距是logging和billing。此刻,OpenStack Compute没有能协调logging事件、记录日志以及创建/呈现bills的Billing组件。真正的焦点是logging和Billing的整合。这能通过以下方式来补救。比如代码扩充,商业产品或者服务或者自定义日志解析的整合。2) Identity也是未来可能要补充的一点。3) customer portal也是一个整合点。user dashboard(见运行的实例,启动新的实例)没有提供一个界面,来允许应用拥有者签署服务,跟踪它们的费用以
36、及声明有问题的票据(lodge trouble tickets)。而且,这很可能对我们设想的服务提供商来说是合适的。4) 理想的情况下,Admin API会复制我们能通过命令行接口做的所有功能。在带有Admin API work的Diablo 发布中会更好。5) 云监控和操作将是服务提供商关注的重点。好操作方法的关键是好的工具。当前,OpenStack Compute 提供 nova-instancemonitor,它跟踪计算结点使用情况。未来我们还需要三方工具来监控。6) Policy是极其重要的方面,但是会与供应商很相关。从quotas到QoS,到隐私控制都在其管辖内。当前图上有部分覆盖,
37、但是这取决于供应商的复杂需求。为准确起见,OpenStack Compute 为实例,浮点IP地址以及元数据提供配额。7) 当前,OpenStack Compute内的Scheduling对于大的安装来说是相当初步的。调度器是以插件的方式设计的,目前支持chance(随机主机分配),simple(最少负载)和zone(在一个可用区域里的随机结点。)分布式的调度器和理解异构主机的调度器正在开发之中2 需求目标分析本次毕业设计采用两台服务器作为实验环境,分别作为计算节点与控制节点,在此特别说明。OpenStack社区网也有各种安装帮助手册,但是因为每个人所拥有的环境各不相同,那么在安装的时候如果照
38、搬官网的参考文档,将有很大的可能安装失败。下面会列举说明本次毕业设计所调整的各个配置文件以及对OpenStack的定制。2.1 OpenStack安装准备OpenStack安装时需要许多库和依赖包进行支持,不然各种服务都会起动失败。然而每个依赖包的版本都有很多个,如何选定合适的依赖包来确保服务的正常启动成了首要目标。下面为经过测试验证整合出来的依赖包及其版本。SQLAlchemy Cheetah=2.4.4 httplib2 pysendfile=2.0.0 xattr=0.6.0 requests=0.10.0amqplib=0.6.1 anyjson=0.2.4 boto=2.1.1 ca
39、rrot=0.10.5 eventlet kombu=1.0.4lockfile=0.8 lxml=2.3 python-daemon=1.5.5 python-gflags=1.3 routes=1.12.3WebOb=1.0.8 wsgiref=0.1.2 greenlet=0.3.1 PasteDeploy=1.5.0 PasteScriptPaste sqlalchemy-migrate=0.7.2 netaddr suds=0.4 paramiko feedparserBabel=0.9.6 iso8601=0.1.4 python-novaclient=2.11.1OpenStac
40、k的各个组件和服务所需要的支持库和依赖包非常多,然而随着它的版本的更新,很多原来的依赖包和支持库将变得不能用,所以这里需要我们多次测试验证它。2.2 OpenStack安装配置文件的修改定制OpenStack安装时每个人所处的环境都不一样,比如网络,操作系统,操作系统版本等。这时候若我们想正确安装它,就必须对官方文档进行修正与调试。2.3 OpenStack的负载均衡实现当OpenStack正确安装成功以后,虽然能正常使用其管理各个虚拟机及其它的功能,但这时候相对来说,它还是显得十分脆弱,所以需要我们给它配置一个负载均衡10.这里所选择的方式有以下两种:1) 首先是Nginx,它是一款轻量级的
41、Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜寻引擎Rambler使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.中国大陆使用nginx网站用户有:新浪、网易、 腾讯、小米官网等。使用它能很好地是我们的平台在承受高并发的访问时不至于立马崩溃2) 然后是amoeba,它是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送
42、到特定的数据库上执行。基于此可以实现负载均衡、读写分离、高可用性等需求。这两个方法实现以后,我们的OpenStack相对来说就能拥有较好的抗压能力了2.4 OpenStack虚拟机管理当OpenStack搭建成功以后,我们将可以通过它制作能使用的虚拟机,并且随时管理它,这个通过dashboard页面能实现。下图2.1为dashboard登陆页面11.图2.1 dashboard登陆页面3 OpenStack的安装与配置下面将简单说明OpenStack的安装与配置过程,安装的实验机器有两台分别作为控制节点与计算节点12.3.1 控制节点的安装控制节点作为OpenStack的一个非常重要的部分,它
43、的安装十分复杂,需要从环境的角度出发,调整各个配置文件等等。3.1.1 前提工作安装前的准备工作必须做好,比如加入第三方软件源,如果只靠操作系统自带的源,那么安装的时候很有可能下载不了必要的组件、依赖库等13:这里特别说明下,因项目原因,这次毕业设计操作系统选用的是CentOS 6.2.当然,其余的linux操作系统也是对OpenStack进行支持的,比如Ubuntu导入第三方软件源:rpm -Uvh http:/download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpmrpm -Uvh http:/pkgs
44、.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm更新内核通过uname -r 查看原内核版本,应如下或者更高版本:2.6.32-220.el6.x86_64命令:yum -y install kernel kernel-develinit 6通过uname -r 查看更新后内核版本,应如下或者更高:2.6.32-220.7.1.el6.x86_643.1.2 Ntp时间服务安装OpenStack Nova 需要 NTP 服务器来保持所有节点服务器(Cloud Compute)的时间同步,所以需要
45、在前端控制服务器(Cloud Controller)上安装 NTP 服务器,然后在节点服务器上安装 NTP 客户端保持与前端的同步14.安装NTP时钟同步服务器:yum install y NTP安装完成后编辑/etc/ntp.conf,将文件内容替换为如下:restrict default ignorerestrict 127.0.0.1#允许局域网内所有client连接到这台服务器同步时间.但是拒绝让他们修改服务器上的时间restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap #描述ntp服务地址server ntp.api.bzse
46、rver 127.127.1.0#这行是时间服务器的层次。默认0级为顶级,如果设为0级则不能与其它ntp服务器同步时间fudge 127.127.1.0 stratum 10 driftfile /var/lib/ntp/driftkeys /etc/ntp/keys重启ntp服务/etc/init.d/ntpd start3.1.3 Mysql数据库服务安装OpenStack默认数据库并不是mysql,但是经过多次测试验证,mysql对它的支持是目前比较好的,所以选择mysql。输入下面的命令安装mysql数据库服务:yum install y mysql-server更改MYSQL数据库服
47、务监听内网网卡IP:编辑/etc/f,将bind-address = 192.168.0.59 替换成 symbolic-links=0如下图3.1所示:图3.1 数据库配置启动mysql数据库服务:/etc/init.d/mysqld start设置MYSQL的root用户密码为OpenStack:mysqladmin -uroot password OpenStack;history c检测服务是否正常启动通过netstat -ltunp查看是否有tcp 3306端口监听如果没有正常启动请查看/var/log/mysqld.log文件排错3.1.4 RabbitMQ消息队列服务安装OpenStack内部在遵循AMQP(高级消息队列协议)的基础上采用消息队列进行通信。Nova对请求应答进行异步调用,当请求接收后便则立即触发一个回调。由于使用了异步通信,不会有用户的动作被长置于等待状态。例如,启动一个实例或上传一份镜像的过程较为耗时,API调用就将等待返回结果而不影响其它操作,在此异步通信起到了很大作用,使整个系统变得更加高效15.安装RABBITMQ消息队列服务:yum -y