本次环境搭建是使用fuel搭建的openstack平台,以下是对Openstack和Fuel-Openstack的简介。
OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。
OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。
OpenStack覆盖了网络、虚拟化、操作系统、服务器等各个方面。它是一个正在开发中的云计算平台项目,根据成熟及重要程度的不同,被分解成核心项目、孵化项目,以及支持项目和相关项目。每个项目都有自己的委员会和项目技术主管,而且每个项目都不是一成不变的,孵化项目可以根据发展的成熟度和重要性,转变为核心项目。截止到Icehouse版本,下面列出了10个核心项目(即OpenStack服务)。
计算(Compute):Nova。一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置CPU、内存等信息规格。自Austin版本集成到项目中。
对象存储(Object Storage):Swift。一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。可为Glance提供镜像存储,为Cinder提供卷备份服务。自Austin版本集成到项目中
镜像服务(Image Service):Glance。一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有创建上传镜像、删除镜像、编辑镜像基本信息的功能。自Bexar版本集成到项目中。
身份服务(Identity Service):Keystone。为OpenStack其他服务提供身份验证、服务规则和服务令牌的功能,管理Domains、Projects、Users、Groups、Roles。自Essex版本集成到项目中。
网络&地址管理(Network):Neutron。提供云计算的网络虚拟化技术,为OpenStack其他服务提供网络连接服务。为用户提供接口,可以定义Network、Subnet、Router,配置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN。插件架构支持许多主流的网络厂家和技术,如OpenvSwitch。自Folsom版本集成到项目中。
块存储 (Block Storage):Cinder。为运行实例提供稳定的数据块存储服务,它的插件驱动架构有利于块设备的创建和管理,如创建卷、删除卷,在实例上挂载和卸载卷。自Folsom版本集成到项目中。
UI 界面 (Dashboard):Horizon。OpenStack中各种服务的Web管理门户,用于简化用户对服务的操作,例如:启动实例、分配IP地址、配置访问控制等。自Essex版本集成到项目中。
测量 (Metering):Ceilometer。像一个漏斗一样,能把OpenStack内部发生的几乎所有的事件都收集起来,然后为计费和监控以及其它服务提供数据支撑。自Havana版本集成到项目中。
部署编排 (Orchestration):Heat [2] 。提供了一种通过模板定义的协同部署方式,实现云基础设施软件运行环境(计算、存储和网络资源)的自动化部署。自Havana版本集成到项目中。
数据库服务(Database Service):Trove。为用户在OpenStack的环境提供可扩展和可靠的关系和非关系数据库引擎服务。自Icehouse版本集成到项目中。
Fuel是OpenStack的开源部署和管理工具。它是作为OpenStack社区工作开发的,它为OpenStack相关的社区项目和插件的部署和管理提供了一种直观的GUI驱动体验。
Fuel带来了消费者级的简单,以简化和加快耗时、往往复杂容易出错的过程部署以及测试和维护各种配置风格的OpenStack的规模。与其他特定于平台的部署或管理工具不同,FUSE是一个上游OpenStack项目,专注于OpenStack和一系列第三方选项的自动化部署和测试,因此它不会受到硬捆绑或供应商锁定的影响。
2013年,该安装程序在戴尔(C 6220&R 320)、惠普(DL 380)、超级微(6027 TR-HTRF)、联想ThinkServer(RD 530)和思科UCS-C等平台上进行了多次部署测试。
主要特点是:
硬件发现
UI中的硬件配置(网络和磁盘分区)
能够拆分和管理多个OpenStack集群
支持非HA和HA OpenStack部署配置
部署前检查和网络验证
部署后检查和运行一组测试以验证已部署的OpenStack。
通过ui实时查看日志
对CentOS和Ubuntu的支持,它也可以扩展到支持其他发行版。
支持多个OpenStack发行版
Mirantis使用燃料作为其OpenStack相关解决方案的一部分,他们是主要贡献者。有关更多细节,请参阅http://software.mirantis.com/
Fuel结构
Fuel不是单一的。它由几个独立的组成部分组成。其中一些组件是燃料专用组件,而另一些组件是第三方服务,如Cobler、Puppet、M8.4等。一些组件可以与燃料分开使用,无需任何修改,有些将需要很少的调整。
UI是用JavaScript编写的单页应用程序。它在底层使用引导和主干框架。检查视频它演示了4.0版燃料的UI和基本功能(这是Mirantis发行版,它仅与Mirantis徽标不同)。
Nailgun是燃料项目的核心。像其他OpenStack项目一样,Nailgun是用Python编程语言编写的。它实现了RESTAPI以及部署数据管理。它管理磁盘卷、配置数据、网络配置数据和任何其他特定于环境的数据,这些数据是成功部署所必需的。它需要编制逻辑来构建按正确顺序提供和部署的指令。Nailgun使用SQL数据库存储其数据,并使用AMQP服务与工人进行交互。Fuel CLI提供比UI更可能的操作。
Astute 是它的另一个重要组成部分是代表Nailgun的工人,其功能是根据Nailgun提供的指令执行某些操作。事实上,Astute只不过是一个层,它封装了与各种服务(如Cobler、Puppet、shell脚本等)交互的所有细节,并为这些服务提供了通用的异步接口。根据我们需要做的事情,我们可以直接通过服务的本机协议来管理服务(例如,XMLRPC协议是用于Cobler的),或者我们可以使用MgroupAgent来执行特定的任务,比如在远程节点上启动“傀儡应用”或运行脚本。通过AMQP精明地与Nailgun交换数据。
Cobbler目前用作供应服务。现在有一个POC可以使用讽刺的方式,并且正在实施一个生产版本。
Puppet是目前唯一的部署服务。可以创建MCollection代理来管理其他配置管理框架,如Chef、SaltStack等。
MCollective agents允许我们执行特定的任务,如硬盘清除,网络连接探测等。
OSTF (OpenStack Testing Framework, or Health Check) 是一个单独的组件,无需fuel就可以轻松地删除和重用。它实现了OpenStack的部署后验证。它的主要目标是验证最大的功能,花费最少的时间。
Fuel9.0将会搭载Openstack_Mitaka 版本,这个版本是2016年出的最新版本。Fuel在早先的版本中已经去掉了利用Centos来搭建Openstack的环境;在9.0中只使用Ubuntu和Ubuntu + UCA的部署方式。
首先,我们需要准备以下操作:
地址:https://www.mirantis.com/software/openstack/download/thank-you/
mirrors.zip和bootstraps.zip
mirrors 下载地址:
链接:https://pan.baidu.com/s/1npQ2MBps6ypx2X_ebCJ2jg 密码:j0yk
bootstraps下载地址:
链接:https://pan.baidu.com/s/1EeLLaenosPr2OLULw-VB_w 密码:miwf
常用的虚拟机软件有vmware和virtualbox,这里我们使用virtualbox,下载
地址:https://www.virtualbox.org/wiki/Downloads
配置VirtualBox三块虚拟网卡,信息如下:
VirtualBox—主机网络管理器:
Host-Only Ethernet Adapter#2
IPv4: 10.20.0.1
Mask:255.255.255.0
DHCP: Unable
Host-Only Ethernet Adapter#3
IPv4: 172.16.0.1
Mask:255.255.255.0
DHCP: Unable
Host-Only Ethernet Adapter#4
IPv4: 192.168.100.1
Mask:255.255.255.0
DHCP: Unable
总体架构:
Fuel-master 1 CPU+ 60GB +3网卡+2GB以上内存
Fuel-Controller 2 CPU +120GB+3网卡+4GB内存
Fuel-Compute 4 CPU +120GB+3网卡+4GB内存
新建一个虚拟机名称为Fuel-master,可自定义。设置内存大小2G,因为Fuel的底层使用的是CentOS7.2 64位,故操作系统版本选择Red Hat 64-bit
创建之后,点击设置:
进行设置后,就可以启动虚拟机,进行fuel master节点的安装了
一段时间后进入Fuel-Menu界面你可以在这里修改默认密码和一些设置.
在BootstrapImage选项,选择Skip building bootstrap image,
因为如果不选择的话,默认Fuel会从国外获取源,速度很慢的,会导致安装失败,选择以后使用本地源进行部署
选择Saveandquit,然后这里需要等待1分钟的样子,因为这里要检查更改是否合规,检查通过后系统就会继续安装Fuel了
经过漫长的等待,大概2小时左右我们就可以进入Fuel的登录界面了,此过程中切勿关闭或者重启虚拟机,任何不必要的操作都可能导致安装失败,出现下面的画面,到这里Fuel-master的安装就结束了。
部署完Fuel-master建议保存快照,以便日后恢复。
这里我们使用xftp进行上传本地源,使用xshell进行配置
首先使用xftp进行上传,把之前下载的两个文件解压,传输到/var/www/nailgun目录下覆盖,有冲突的部分直接替换掉
然后使用xshell,运行Fuel-createmirror命令,此命令目的是让web后台管理界面的源地址变为本地地址.
[root@fuelnailgun]#fuel-createmirror
This script is DEPRECATED. Please usefuel-mirrorutility!
Starting new HTTP connection(1):10.20.0.2
Starting new HTTP connection(1):10.20.0.2
Starting new HTTP connection(1):10.20.0.2
Starting new HTTP connection(1):10.20.0.2
Failed to open url-//mirror.fuel-infra.org/......
......
URLError:
Starting new HTTP connection(1):10.20.0.2
Starting new HTTPconnection (1):10.20.0.2
Starting new HTTPconnection (1):10.20.0.2
Starting new HTTPconnection (1):10.20.0.2
Updating theClusterrepositories...
Updating thereleaserepositories...
Try to update theRelease 'Mitaka on Ubuntu14.04'
Try to update theRelease 'Mitaka on Ubuntu+UCA14.04'
Operations have been completedsuccessfully
更换本地源后和bootstrp后,查看是否有已经激活的bootstrp.
新建虚拟机fuel controller,设置4G内存,120G磁盘空间.
点击设置:
保存,启动,等待自动安装即可。
新建虚拟机fuel compute,设置4G内存,120G磁盘空间.
点击设置:
保存,启动,等待自动安装即可。