linux.docx
《linux.docx》由会员分享,可在线阅读,更多相关《linux.docx(37页珍藏版)》请在冰豆网上搜索。
![linux.docx](https://file1.bdocx.com/fileroot1/2023-4/21/369a3727-0889-4115-abae-390b7fd85ffb/369a3727-0889-4115-abae-390b7fd85ffb1.gif)
linux
课程设计
课程名称
Linux操作系统
题目名称
基于Openstack的云计算平台构建和性能测试
专业班级
13软件工程
学生姓名
张小蒙张浩王威风柏祝林鲍金林张红伟杨伟平
学号
51302041034513020410455130204101151302033026513020410415130204104351302041006
指导教师
王硕
二○一五年六月一日
目录
蚌埠学院计算机科学与技术系本科课程设计成绩评定表1
附件4分工协作说明2
一、序言3
1.1背景3
1.2云计算简介3
1.2.1云计算概念3
1.2.2云计算发展4
1.2.3云计算特点与优势4
1.2.4小结5
1.3Openstack简介5
1.3.1Openstack起源5
1.3.2Openstack的发展5
1.3.3Openstack的特点和优势6
1.4搭建云平台的意义6
1.5论文的主要内容和组织结构7
1.6本章小结7
第2章平台搭建项目介绍8
2.1项目搭建实验的物理环境8
2.2Openstack系统概念架构与理解8
2.2.1Openstack五大项目8
2.2.2云计算控制中心nova9
2.2.3镜像服务Glance10
2.3.4Keystone认证服务10
2.3.5Dashboard项目Horizon11
2.2.6Swift存储11
2.2.7小结11
2.3平台搭建物理构架11
2.3.1平台的网络模式选择11
2.3.2平台的网络拓扑结构12
2.3.3小结14
2.4本章小结14
第3章平台搭建的介绍14
3.1平台搭建的准备工作14
3.1.1物理环境准备14
3.1.2系统环境准备14
3.1.3网络环境准备15
3.1.4小结15
3.2平台搭建过程简介15
3.2.1平台搭建主要内容15
3.2.2控制节点的搭建15
3.2.3计算节点的搭建16
3.2.4小结16
3.3平台搭建遇到的问题以及一些问题调研16
3.3.1虚拟工具的选择16
3.3.2Horizon虚拟环境的搭建17
3.3.3Volume卷组配置的选择17
3.3.4小结17
3.4本章小结18
第4章云平台提供的服务18
4.1平台成果展示18
4.2平台提供的资源20
第5章Openstack平台测试21
5.1虚拟机启动时间21
5.1.1虚拟机类型21
5.1.2虚拟机系统22
5.1.3宿主机当前的状态23
5.1.4与Eucalyptus平台的数据对比24
5.1.5小结25
5.2虚拟机之间的文件传输速度25
5.2.1测试方法26
5.2.2测试数据26
5.2.3小结27
5.3虚拟机之间的通信速率27
5.3.1测试方法27
5.3.2测试数据27
5.3.3与Eucalyptus平台的数据对比28
5.3.4小结29
5.4虚拟机磁盘读写速度29
5.4.1测试方法29
5.4.2虚拟机测试29
5.4.3物理机测试30
5.4.4小结30
5.5本章小结30
第6章总结32
参考文献32
蚌埠学院计算机科学与技术系本科课程设计成绩评定表
项目
权重
分值
具体要求
得分
文献阅读与调查论证
0.20
100
能独立查阅文献和从事其它调研;有收集、加工各种信息的能力
设计质量
0.30
100
设计合理、功能齐备,程序运行正常,实验数据准确可靠;有较强的实际动手能力
论文撰写质量
0.20
100
设计说明书完全符合规范化要求,用A4复印纸打印成文
学习态度
0.20
100
学习态度认真,科学作风严谨,严格按要求开展各项工作,按期完成任务
学术水平与创新
0.10
100
设计有创意,有一定的学术水平或实用价值
总分
评语:
等级:
指导教师:
年月日
附件4分工协作说明(以列表形式具体说明每个人所做的工作);
课题名称
学生姓名
学号
所做的工作
张小蒙
51302041036
算法设计、程序调试、课程设计报告撰写
张浩
51302041045
算法设计、程序调试、课程设计报告排版
王威风
51302041011
算法设计、程序调试、课程设计报告撰写
柏祝林
51302033026
算法设计、程序调试、资料查询
鲍金林
51302041041
部分算法设计、程序调试
张红伟
51302041043
部分算法设计、程序调试、资料查询
杨伟平
51302041006
部分算法设计、程序调试
一、序言
1.1背景
随着云计算的火热发展,越来越多的公司,机构,个人投入到了云计算的研究之中。
Openstack则是在近两年迅速发展起来的IaaS平台项目,它目前几乎超越了Eucalyptus项目成为搭建IaaS平台的首选。
目前学校内部有很多老师和学生有一些实践、创新、科研等需要,但是却没有很好的计算机资源,所以在学校内部推行一个稳定的云计算平台来提供大量计算机资源,显得十分重要。
此次课程设计基于Openstack技术,使用曙光刀片服务器构建云计算平台,并对云平台进行调试。
对平台进行性能测试,并且与基于Eucalyptus技术的瀚海星云云平台进行对比,找出各自的一些优势和劣势,以便对瀚海星云平台进行优化,使其更好的为学校实验科研服务。
本文先阐述了Openstack项目技术的原理,然后介绍了搭建平台的过程,最后对平台性能进行了测试,并与Eucalyptus平台进行了对比。
1.2云计算简介
1.2.1云计算概念
云计算就是通过互联网将数据中心的计算、存储和网络等IT基础设施,以及其上的开发平台、软件和应用等IT资源以服务的形式提供给用户。
云计算的基本原理是,通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将更与互联网相似。
这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。
这是一种革命性的举措,打个比方,这就好比是从古老的单台发电机模式转向了电厂集中供电的模式。
它意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。
最大的不同在于,它是通过互联网进行传输的。
云计算的应用包含这样的一种思想,把力量联合起来,给其中的每一个成员使用。
云计算可以认为包括以下几个层次的服务:
基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。
IaaS:
基础设施即服务,消费者通过Internet可以从完善的计算机基础设施获得服务。
PaaS:
平台即服务,将软件研发的平台作为一种服务,以SaaS的模式提交给用户。
SaaS:
软件即服务,通过Internet提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动。
1.2.2云计算发展
在2006年Google首席执行官埃里克·施密特(EricSchmidt)在搜索引擎大会(SESSanJose2006)首次提出“云计算”(CloudComputing)的概念。
之后全球许多大型互联网公司都参与到了云计算的发展。
Amazon、Google、IBM、微软和Yahoo等是云计算的先行者。
云计算领域的众多成功公司还包括Salesforce、Facebook、Youtube、Myspace等。
IBM在2007年11月推出了“改变游戏规则”的“蓝云”计算平台,为客户带来即买即用的云计算平台。
Google早已以发表学术论文的形式公开其云计算三大法宝:
GFS、MapReduce和BigTable,并在美国、中国等高校开设如何进行云计算编程的课程。
微软于2008年10月推出了WindowsAzure操作系统。
Azure(译为“蓝天”)是继Windows取代DOS之后,微软的又一次颠覆性转型——通过在互联网架构上打造新云计算平台,让Windows真正由PC延伸到“蓝天”上。
亚马逊提供了亚马逊网络服务(AmazonWebServices,即AWS),亚马逊能够提供的是可以通过网络访问的存储、计算机处理、信息排队和数据库管理系统接入式服务。
AWS为亚马逊公司带来了超过全公司5%的收益,并且这个数据还在不断地增长。
这一切都预示着云计算不再只是一个话题,而是很多产业寻求变革的一个工具,一个手段,云计算思维理念正在积极的调动相关产业的转型和脱变。
1.2.3云计算特点与优势
1、方便:
它对用户端的设备要求最低,使用起来很方便。
2、高可靠性:
“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机可靠。
3、数据共享:
它可以轻松实现不同设备间的数据与应用共享。
4、易维护性:
用户无需再在本机上进行安装应用,一旦应用改变,只需要在服务提供商进行统一维护,用户无需自己维护。
1.2.4小结
云计算把各种IT服务和资源统一起来提供给用户,这是一种新的互联网模式,由于其方便快捷,高可靠性等等特性预示着云计算的巨大前景,云计算现在正在飞速发展中,相信云计算将成为未来几年互联网发展的热潮之一。
1.3Openstack简介
1.3.1Openstack起源
OpenStack是一个美国国家航空航天局NASA和Rackspace公司合作研发的云端运算软件,以Apache许可证授权,并且是一个自由软件和开放源代码项目。
研究人员在NASA的Ames研究中心开发了OpenStack的雏形,被称作Nova,其目的是为美国的航空航天机构提供可塑性较高的云客户端。
之后Rackspace涉足了该技术商业化的进程,并最终使其成为一款独立的基础软件。
OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。
其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。
1.3.2Openstack的发展
Openstack经过了接近两年的发展,在发布了Austin,Bexar,Cactus,Diablo四个版本之后,于2012年四月发布了Openstack的Essex正式版本,它意味着Openstack能够帮助搭建具有生产力的公共云计算平台。
在这个发展过程中,不断有各大厂商加盟,现时已表示支持OpenStack项目的大型硬件厂商包括:
AMD、Intel和戴尔等。
微软在2010年10月表示支持OpenStack与WindowsServer2008R2的整合。
2011年2月,思科系统正式加入OpenStack项目,重点研制OpenStack的网络服务。
Ubuntu12.04LTS正式版本全面支持Openstack项目,为Openstack未来五年的更新都提供良好的支持。
Ubuntu12.04LTS服务器版本也是Openstack项目的参考平台。
现在的Essex版本包括了五大核心项目,云计算控制中心Nova、镜像服务Glance、认证服务Keystone和Dashboard项目Horizon,以及对象存储项目Swift。
1.3.3Openstack的特点和优势
在IaaS云平台的搭建的选择中Eucalyptus是先行者,但是Openstack后来居上,现在几乎已经超越了Eucalyptus成为了云平台基础的第一选择。
1、Openstack是完全开源的,开放的,采用apache2.0许可认证。
另外一个IaaS开源平台则是Eucalyptus,但是Eucalyptus幕后公司维护着部分代码,核心代码对用户并不可见,而OpenStack则是100%的开源产品。
Openstack的完全开源对于云计算平台的搭建和对Openstack的二次开发以及众多研究员对Openstack本身的代码贡献和发展都有着重大的意义。
2、Ubuntu的良好支持。
Ubuntu系统从11.04开始便从Eucalyptus转向支持Openstack,现在Ubuntu12.04LTS版本中更是将Openstack作为了云基础平台。
3、行业标准的支持。
来自全球十多个国家的60多家领军企业,包括Cisco,Citrix,Dell,Intel以及微软都参与到了OpenStack的项目中,使得使用Openstack技术的云平台在全球不断的上线。
4、Openstack发展迅速。
从2010年10月21日至今,Openstack已经发布了五个版本,社区开始约三个月发布一个版本,目前是半年发布一个版本。
5、可扩展性。
Openstack在大规模部署公有云时在可扩展性上有优势,而且也可以用于私有云,一些企业特性正在逐步完善中。
1.4搭建云平台的意义
现在云计算技术正在火热的发展之中,全球各大公司都在研制开发自己的云计算平台,提供自己的云计算服务。
Eucalyptus作为先行者给大家带来很多便利,但是它的不完全开源又给深入研究云技术的人带来的极大的阻碍,而Openstack的出现便给我们提供了很好地渠道。
同时,在中国科大学校内部有很多的老师和学生有一些创新、实践、科研等方面的需要,但是却没有很好的计算机资源,或者成本太高,所以云平台就变得十分重要。
所以,在中国科大网络信息中心,利用Openstack搭建一个IaaS云计算平台,与以前利用Eucalyptus技术搭建的瀚海星云云平台相互参照对比,借鉴经验,为平台提供PaaS和SaaS服务打下基础,改造完善瀚海星云云平台,给云计算资源分配调度,监控等科研试验提供便利,使瀚海星云云平台能更好的为科大服务。
1.5论文的主要内容和组织结构
本文的主要工作是搭建一个基于Openstack的云计算平台,介绍在搭建平台的过程中,遇到的问题以及为了使平台性能最优在配置时做的一些调研,并对平台做一些性能上的测试,并且Eucalyptus平台做了对比。
后续章节的组织结构如下:
第二章,介绍平台搭建的物理架构以及网络拓扑结构。
第三章,简要介绍平台搭建过程,对平台进行配置使平台性能更佳。
第四章,展示平台提供的服务。
第五章,对平台进行性能测试,并与Eucalyptus平台对比。
。
第六章,论文总结,反思毕设的不足并展望未来的工作。
1.6本章小结
本章简要介绍云计算和Openstack的概念以及发展情况,分析了云基础平台搭建中的Openstack的优势,,并说明了此次使用Openstack技术搭建云平台的意义所在。
第2章平台搭建项目介绍
2.1项目搭建实验的物理环境
云平台搭建所用服务器为曙光TC2600(10刀片)刀片服务器,每刀片两路四核CPU,CPU型号为Quad-CoreAMDOpteron(tm)Processor2378,内存为32G,硬盘容量为160G,硬盘类型SATA,两块网卡,控制节点和计算节点均采用此种刀片做服务器。
2.2Openstack系统概念架构与理解
2.2.1Openstack五大项目
Openstack包括了五大项目,云计算控制中心Nova、镜像服务Glance、认证服务Keystone和Dashboard项目Horizon,以及对象存储项目Swift。
这五个项目是完全独立分开的,完全能搭建在不同的节点上,这也是Openstack的一大特色之一,不同于Eucalyptus采用集中式管理的方法来管理大量的计算节点,Openstack的不同服务可以分布在不同的节点上,可以说每个节点都能成为控制节点,一个节点出现错误完全能用其他的节点来代替,容错率更高。
这五大项目中,Nova是整个IaaS平台的控制中心,还涵括着计算服务,所有的计算请求都要通过nova-api。
Glance负责镜像系统的管理。
Keystone是整个平台的账户权限管理中心,负责账户,工程,服务,权限的创建,认证。
Horizon是网页管理所有的虚拟机管理。
Swift是一个云存储服务。
(本次云平台搭建项目未涉及到存储平台的搭建,只搭建了云计算平台)
2.2.2云计算控制中心nova
云计算控制中心nova是运行云计算服务的关键,架构如图2.1
图2.1
图2.1中的Nova的各个组件的情况如下:
1、守护进程nova-api是OpenStackCompute的中心。
它为所有API查询(OpenStackAPI或EC2API)提供端点,初始化绝大多数部署活动(比如运行实例),以及实施一些配置和检查策略。
2、nova-compute进程主要是一个创建和终止虚拟机实例的Worker守护进程。
其过程相当复杂,但是基本原理很简单:
从队列中接收行为,然后当更新数据库的状态时,执行一系列的系统命令执行这些行为。
3、nova-volume管理映射到计算机实例的卷的创建、挂载和卸载。
这些卷支持不同的接口,比如,ISCSI和AoE。
4、nova-networkworker也是一个守护进程,它类似于nova-compute和nova-volume。
它从队列中接收网络任务,然后执行任务以操控网络,比如创建bridginginterfaces或改变防火墙规则iptablesrules。
5、Queue提供中心hub,为守护进程传递消息。
当前用RabbitMQ实现。
但是理论上能是pythonampqlib支持的任何AMPQ消息队列。
6、SQLdatabase存储云基础架构中的绝大多数编译时和运行时状态。
这包括了可用的实例类型,在用的实例,可用的网络和项目。
理论上,OpenStackCompute能支持SQL-Alchemy支持的任何数据库,但是当前广泛使用的数据库是sqlite3(仅适合测试和开发工作),MySQL和PostgreSQL。
可以看出nova-api是Nova计算与外界交互的核心,而Nova内部计算任务都靠Queue队列通过nova-scheduler来调度,数据库存于novadatabase。
2.2.3镜像服务Glance
Glance镜像服务主要包括两个主要部分,glance-api和glance-registry,在(图1.1)灰色部分我们可以看到Glance主要通过glance-api和nova组件进行交互,当有从nova-api或者nova-compute传来的启动虚拟机的要求,glance-api便通过glance-registry转发请求到数据库端处。
Glance就是通过这样的机制来管理运作平台中的虚拟机的。
Glance支持的存储后台数据库包括:
1、OpenStackObjectStorage即Swift。
它是OpenStack中高可用的对象存储项目。
2、FileSystem。
OpenStackImageService存储虚拟机镜像的默认后端是后端文件系统。
这个简单的后端会把镜像文件写到本地文件系统。
3、S3。
该后端允许OpenStackImageService存储虚拟机镜像在AmazonS3服务中。
4、HTTP。
OpenStackImageService能通过HTTP在Internet上读取可用的虚拟机镜像。
这种存储方式是只读的。
2.3.4Keystone认证服务
Keystone是Openstack统一管理平台的最有效手段。
它包含了user(用户),tenant(租户),role(角色权限),Token(令牌),Credentials(证书),service(服务),endpoint(具体服务位置)等等概念,通过这些管理员能够实现对Nova计算,Glance镜像服务,Horizon项目,Swift存储的统一管理。
在Keystone里面有众多繁琐的概念,我们可以用一个简单的例子来说明一下。
我们把tenant租户看作宾馆,而user就是去宾馆的人,role则是一个权限,可能user是一个vip,也可能是一个普通住宾馆的人,role则为user分配权限,Credentials证书则相当于宾馆给user的一个房间的钥匙,service就是宾馆提供的服务,比如空调,网络,洗漱,电视等等,endpoint则指出了这些服务具体位置在哪儿,就好比空调或者电视的遥控位置,网络的网口位置等等。
Keystone通过这些机制赋给每个user账户不同的权限,给每个tenant租户也可以说是每个工程分配了不同的资源,包括虚拟机数量,能使用的最大核数,能使用的最大CPU个数等,并且给这些tenant工程提供服务的具体位置来实现对云计算平台的统一认证管理。
2.3.5Dashboard项目Horizon
Horizon既是一个管理员通过网页管理平台资源的窗口也是用户申请使用虚拟机的接口。
Horizon管理包括虚拟机的启动,关闭,重启,远程连接以及使用情况等。
镜像的更新和删除。
Tenant租户的资源分配。
弹性IP的创建和分配。
账户的创建以及删除。
Horizon使得云平台的管理更加方便快捷。
2.2.6Swift存储
Swift是Openstack的存储项目,它是可以单独使用在云计算平台之外的,可搭建一个用于网络云存储的平台,此次项目只搭建云计算平台,在未来的工作中会加入云存储平台的整合。
2.2.7小结
本节介绍了Openstack的五大重要项目,阐述了各自的概念架构和服务原理,为后面平台搭建打下基础。
2.3平台搭建物理构架
2.3.1平台的网络模式选择
Openstack的网络是一块比较复杂的部分,它共有三种网络模式:
Flat、FlatDHCP、VLAN模式。
1、Flat模式。
网络管理员指定一个子网。
为虚拟机实例分配的IP地址都是从这个子网内面获取,然后在虚拟机启动时候注入虚拟机镜像。
所有的系统实例都是和同一个网桥所相关的,网络管理员需要手动配置相连关系。
2、FlatDHCP模式。
启动一个DHCP服务器,把从一个指定的子网中获得的IP地址传递到虚拟机实例,此外网络管理员还需手动配置网桥。
为虚拟机实例所分配的IP地址都是从网络管理员指定的子网中所获得的。
3、VLAN网络模式。
在这个模式里面,Compute为每个tenant租户创建了VLAN和网桥。
为了实现多台机器的安装,VLAN网络模式需要一个支持VLAN标签(IEEE802.1Q)的路由器。
每个项目获得一些只能从VLAN内部访问的私有IP地址。
为了实现用户获得项目的实例,需要创建一个特殊的VPN实例(代码名为cloudpipe)。
Compute为用户生成了证明书和key,使得用户可以访问VPN,同时Compute自动启动VPN。
它为每个项目的所有实例提供一个私有网络段,这个私有网络段都是可以通过因特网的VPN访问的。
在这个模式里面,每个项目获得它自己的VLAN,Linux网桥还有子网。
在搭建云计算平台的过程中,综合了三种模式的优劣。
Flat模式过于简单,而且用户在启动虚拟机实例后,内网IP需要手动注入到实例中去,并且目前为止配置注入只能够在Linux类型的操作系统上正常工作。
而对于VLAN模式需要运行一个支持VLAN标签(IEEE802.1Q)的路由器,对每个tenant