关于什么是Fuel以及Fuel的作用和构架可以参考下面Openstack官方给出的Wiki链接.
https://wiki.openstack.org/wiki/Fuel.
在安装部署之前,先看看官方给出的Fuel 9.0版本特性.
Mirantis OpenStack is distributed as a single commercially supportedpackage in ISO format. The 9.0 release features:
· Enhanced OpenStack Lifecycle Management features in Fuel,including the ability to scale up/down, change configuration settings, anddeploy new functionality, such as by adding plugins for Murano and StackLight
· The ability to export Fuel configurationvalues to third-party configuration management tools
· Enhanced features for NFViand other high performance workloads, including support for NUMA and CPU-pinning, Huge Pages, SR-IOVand DPDK
· Support for applicationand service orchestration with TOSCA
· Support for cgroups toenable the efficient allocation of a specific amount of system resources,including CPU and memory, to particular resource groups
· The ability to deployOpenStack environments on servers with disks provided by storage systems withmultipath I/O
· Support for preprovisionedOracle Linux nodes
· Support of OpenStack Mitaka upstream release
Fuel 9.0将会搭载Openstack_Mitaka 版本,这个版本是2016年出的最新版本。
当然Fuel 9.0也增强了很多其他特性,比如对Huge Pages,SR-IPV和Intel的DPDK.
Fuel 在早先的版本中已经去掉了利用Centos来搭建Openstack的环境,在9.0中只使用Ubuntu和Ubuntu + UCA的部署方式.
下面进入安装部署环节:
1,环境准备
1.1 Fuel 镜像下载
使用下方网址即可下载最新的Fuel release image.用于部署fuel-master,一般为BT文件,利用下载工具下载即可.
https://www.fuel-infra.org/
1.2 硬件资源
官方推荐使用4核心的CPU,以及4G以上内存、10G网卡、500G物理磁盘.但是在实验环境下,双核CPU,4G内存 1000M网卡和50G以上的硬盘就足够了,切记的是硬盘不得小于50G,因为这样会导致安装失败.
当然官方给出的实验要求比我推荐的要求要低,体现在内存的设置上,如果设置为2G内存会导致安装速度缓慢,所以建议条件容许的情况下加大设备资源.
下面是官方给出的推荐的生产以及实验环境介绍.
For a production environment:
-
Quad-core CPU
-
4 GB RAM
-
10 Gigabit network port
-
Disk size depends on the number of deployed nodes. All nodes send logs to the Fuel Master node using rsyslog. During installation, Fuel creates a separate partition for /var to store the remote logs and allocates 40% of the disk size to it. Our recommendation for the remote logs partition is 20 GB per node. If you deploy 10 nodes with Fuel, you need to have a (20 x 10) x 2.5 = 500 GB disk for the Fuel Master node.
-
IPMI access through an independent management network
For a testing environment:
-
Dual-core CPU
-
2 GB RAM
-
1 Gigabit network port
-
50 GB disk
-
Physical console access
1.3软件选择
官方推荐使用Virtual-box来安装部署Fuel-master节点.当然你也可以选用VM来部署.效果都是一样的,只是有些人反应用VM来装会产生一些问题,所以在这里我选择Virtual-box 来进行安装部署.
2.部署 Fuel-Master
2.1 创建Fuel-master 虚拟机.
新建一个虚拟机名称为Fuel-master,当然你也可以自己定义名称.
这里什么要选择Red Hat是因为Fuel的底层使用的是Centos,但是Virtual-BOX里面没有Centos选项,只能选择最贴近的Red Hat,而且不要忘了选择64位系统.如果选择32有可能会安装失败.
[root@fuel~]# rpm -q centos-release
centos-release-7-2.1511.el7.centos.2.10.x86_64
[root@fuel~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
设置虚拟机内存大小为4G.
选择“现在创建虚拟磁盘”.
硬盘文件类型选择为VDI类型.
磁盘空间分配建议选择动态分配,如果选择固定大小,系统会直接在磁盘中扣除相对应的磁盘空间.当然如果磁盘空间足够大也可以直接设置为固定大小.
最少要求50G,这里我选择52G.如果是部署CEE使用的Fuel,建议设置为70G.
如果磁盘选项的是固定大小,这里需要创建虚拟磁盘可能需要几分钟. 根据磁盘的性能不同等待时间也不同. 如果设置保存的盘符没有足够空间,会直接提示报错。所以建议大家选择动态分配,可以节省一些空间.
下面进行VBOX的网络设置
管理à全局设定à网络
配置三块虚拟网卡,信息如下:
这里的信息和Fuel的网络信息要对称,如果不想用下面的地址,需要在Fuel设置里面同步更改,不然会导致部署Openstack失败.
Host-Only Ethernet Adapter
IPv4: 10.20.0.10
Mask: 255.255.255.0
DHCP: Unable
Host-Only Ethernet Adapter #2
IPv4: 172.16.0.1
Mask: 255.255.255.0
DHCP: Unable
Host-Only Ethernet Adapter #3
IPv4: 192.168.0.1
Mask: 255.255.255.0
DHCP: Unable
网卡芯片选择Intel的PRO/1000,切记混杂模式一定要设置为Allow all.并且禁用DHCP.
以前尝试过芯片选择为PCnet-PCI结果失败了.在做CEE部署的时候网卡类型也要选择PRO/1000.
接下来运行虚拟机,运行时会弹出让你选择ISO文件,这里选择Fuel的镜像文件即可.
几秒钟后会进入Fuel 安装选择界面,这里选择第一项,然后系统会自动加载和安装Fuel.
一段时间后进入Fuel-Menu界面你可以在这里修改默认密码和一些设置.
PS:在Fuel 8.0版本中安装系统后会重启,重启后出现这个界面有15秒的时间按任意键进入 fuel-menu.但是在9.0版本中会自动进入这个界面.所以不用担心会不及时按键盘.
选择Skip building bootstrap image,因为如果不选择的话,默认Fuel会从国外获取源,但是我并没有设置外部网络,而且就算设置了外部网络可以访问外网,速度也是很慢的,所以这里还是会导致安装失败.选择以后会使用本地源进行部署,后面会说明关于本地源如何下载和加载.
选择Save and quit,然后这里需要等待1分钟的样子,因为这里要检查更改是否合规,检查通过后系统就会继续安装Fuel了.
经过漫长的等待,具体多久无法统计了,大概2小时就可以进入Fuel的登录界面了.此过程中切勿关闭或者重启虚拟机.任何不必要的操作都可能导致安装失败.然后会出现下面的画面,到这里Fuel-master的安装就结束了.
在浏览器打开https://10.20.0.2:8443测试一下是否安装成功.如果这里没有显示Fuel的登录界面,说明安装中忽略了一些步骤,或者资源分配不足.
保存快照,以便日后恢复.
这个时候登录这个页面,可能登录不了,提示“Keystone服务不可用”,可以启动Keystone
/bin/systemctl start openstack-keystone.service
然后需要重启
2.2 增加本地源.
打开 /var/www/nailgun 目录 ,用ls发现目录下现在是没有mirrors文件夹.因为我采用的是离线模式安装,没有从官方的链接中下载一些必要的库,所以从国外找了一些源下载了以后放置在网盘中了.
cd /var/www/nailgun
我已经上传本地源文件到我的百度盘,下载下面2个连接的文件包,传输到/var/www/nailgun目录下,有冲突的部分直接替换掉.
Bootstraps:链接:http://pan.baidu.com/s/1nu7lY6P密码:b3qt
Mirrors :链接:http://pan.baidu.com/s/1kVwaZJ5 密码:hhsc
注意:这两个文件比较大,不要直接放在var/www/nailgun目录下,否则就会导致/var所在的磁盘空间沾满,我是放在了/var/log目录下,然后加是软连接过去的
使用XFTP软件将本地源文件copy到Fuel,具体如下图.也可以自己在PC或者服务器上建立FTP服务器,然后利用wget命令传输文件.总之不管用什么方法都可以,只要能把文件上传到相应的文件夹内即可.
运行 Fuel-createmirror命令, 此命令目的是让web后台管理界面的源地址变为本地地址.(默认为一些官方链接下载地址,这些地址速度很慢,有的甚至连接不到,所以这里替换为本地源地址.)
[root@fuel nailgun]#fuel-createmirror
This script is DEPRECATED. Please usefuel-mirror utility!
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 -http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/dists/mos9.0/main/binary-amd64/Release: <urlopen error [Errno -2] Name orservice not known>. retries left - 2.
Traceback (mostrecent call last):
File"/usr/lib/python2.7/site-packages/packetary/library/connections.py",line 214, in open_stream
return self.opener.open(request)
File"/usr/lib64/python2.7/urllib2.py", line 431, in open
response = self._open(req, data)
File"/usr/lib64/python2.7/urllib2.py", line 449, in _open
‘_open‘, req)
File"/usr/lib64/python2.7/urllib2.py", line 409, in _call_chain
result = func(*args)
File"/usr/lib64/python2.7/urllib2.py", line 1244, in http_open
return self.do_open(httplib.HTTPConnection,req)
File"/usr/lib64/python2.7/urllib2.py", line 1214, in do_open
raise URLError(err)
URLError: <urlopenerror [Errno -2] Name or service not known>
Failed to open url -http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/dists/mos9.0/main/binary-amd64/Release:<urlopen error [Errno -2] Name or service not known>. retries left - 1.
Traceback (mostrecent call last):
File "/usr/lib/python2.7/site-packages/packetary/library/connections.py",line 214, in open_stream
return self.opener.open(request)
File"/usr/lib64/python2.7/urllib2.py", line 431, in open
response = self._open(req, data)
File"/usr/lib64/python2.7/urllib2.py", line 449, in _open
‘_open‘, req)
File"/usr/lib64/python2.7/urllib2.py", line 409, in _call_chain
result = func(*args)
File"/usr/lib64/python2.7/urllib2.py", line 1244, in http_open
return self.do_open(httplib.HTTPConnection,req)
File"/usr/lib64/python2.7/urllib2.py", line 1214, in do_open
raise URLError(err)
URLError: <urlopenerror [Errno -2] Name or service not known>
Failed to open url -http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/dists/mos9.0/main/binary-amd64/Release:<urlopen error [Errno -2] Name or service not known>. retries left - 0.
Traceback (most recentcall last):
File"/usr/lib/python2.7/site-packages/packetary/library/connections.py",line 214, in open_stream
return self.opener.open(request)
File"/usr/lib64/python2.7/urllib2.py", line 431, in open
response = self._open(req, data)
File"/usr/lib64/python2.7/urllib2.py", line 449, in _open
‘_open‘, req)
File"/usr/lib64/python2.7/urllib2.py", line 409, in _call_chain
result = func(*args)
File"/usr/lib64/python2.7/urllib2.py", line 1244, in http_open
return self.do_open(httplib.HTTPConnection,req)
File"/usr/lib64/python2.7/urllib2.py", line 1214, in do_open
raise URLError(err)
URLError: <urlopenerror [Errno -2] Name or service not known>
<urlopen error[Errno -2] Name or service not known>
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 the Clusterrepositories...
Updating the releaserepositories...
Try to update theRelease ‘Mitaka on Ubuntu 14.04‘
Try to update theRelease ‘Mitaka on Ubuntu+UCA 14.04‘
Operations have been completed successfully
更换本地源后和bootstrp后,查看是否有已经激活的bootstrp.
如果这里没有激活很可能是你下载的文件损坏了.可以尝试找其他bootstrp文件来覆盖.
3.增加node节点虚拟机.
新建两个子节点虚拟机 (controller/compute), 建议设置4G内存,128G磁盘空间.
内存设置低于4G很可能会部署失败,我这里设置为6G.
并且要开启VT-x和AMD-V,以便支持intel和AMD的CPU开启硬件虚拟化.如果不开启很可能会部署失败.
PS:在VM下面曾经尝试用4G内存来进行部署,结果失败很多次,但是还是成功了,需要拼人品.建议如果在VM下部署失败建议加大内存.
启动顺序改成网络第一
不要忘记关联网卡,具体配置如下.
.
开启虚拟机后选择ubuntu_bootstrap启动.
8.0版本搭载的是Centos 7 bootstrap,但是在9.0使用的是Ubuntu 14.04.4的bootstrap.
使用bootstrap 引导后,我们的Fuel-master 就可以发现节点了.
4.部署Openstack
下面开始使用Fuel部署Openstack
1)登录https://10.20.0.2:8443/#login
4.搭建部署Openstack
新建Openstack环境.
Fuel 9.0 版本去除了Centos,只保存了Ubuntu的部署方式,但是比之前多出了一个模式叫做Ubuntu+UCA(UCA use Ubuntucloud archive as a source of packages for Openstack components)
在这里我们选择Mitaka on Ubuntu 14.04.
选择QEMU-KVM.
网络这里选用neutron VLAN模式,因为这里只是在做测试,并没有百万个租户. 如果使用VXLAN 每个管理域可以定义1600万个VNI, 每一个VNI可以包含4096个VLAN.可以更好的规划和隔离租户.
后端存储选择默认的LVM,其实也可以选用Ceph,但是Ceph需要新建一个Ceph节点,在测试环境下并不需要.
这里可以增加附加服务和特性, 包括Ceilometer计费以及用于支持Hadoop集群的Sahara等等.在测试环境就不增加这些了,如果是生产按照需求增加服务,而且这里不选择也无所谓完成部署后还是可以增加的.
配置节点属性,如下图所示.
在此定义我们之前发现的两个节点.
设置node网络接口
将网络接口配置改变为下图的状态,鼠标拖拽模块即可改变.这里设置错误也会导致部署失败.
更改NTPserver地址为Fuel-master的地址.
设置完成后进行网络验证,如有错误信息就按照错误提示进行修改.
定义完节点后在fuel上使用fuel node 命令可以发现Pending_roles已经发生改变.
点击deploychanges 进行部署.
这时Fuel就开始自动部署Openstack了.
第一个步骤是利用Cobbler Server安装Ubuntu系统.
安装过程中可以看到站点的Status变为了provisioning, 含义为正在部署底层系统.并且角色也从Pending转移到roles下面了.
部署完ubuntu14.04以后,Fuel会继续部署Openstack, 这里是使用Puppet Master 利用SSH协议的SCP命令将Openstack组件部署到node的.
状态已经更新为deploying.
经过漫长的等待,如下图显示,已经成功安装部署了节点.
点击Horizon 进行登录, 默认用户名密码都是admin.
完毕…现在大家可以体验OpenstackMitaka版本了.
转载自:http://blog.51cto.com/11988833/1840826