使用Fuel 9.0快速部署Openstack Mitaka(其实也就用了五六个小时吧)

Posted tu6ge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Fuel 9.0快速部署Openstack Mitaka(其实也就用了五六个小时吧)相关的知识,希望对你有一定的参考价值。

关于什么是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有可能会安装失败.

[[email protected]~]# rpm -q centos-release

centos-release-7-2.1511.el7.centos.2.10.x86_64

[[email protected]~]# 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后台管理界面的源地址变为本地地址.(默认为一些官方链接下载地址,这些地址速度很慢,有的甚至连接不到,所以这里替换为本地源地址.)

[[email protected] 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

以上是关于使用Fuel 9.0快速部署Openstack Mitaka(其实也就用了五六个小时吧)的主要内容,如果未能解决你的问题,请参考以下文章

离线快速部署Mirantis Openstack 9.0

爬坑之路——用Fuel部署Openstack

openstack 之 使用virtualbox 脚本自动安装mirantis openstack

使用Fuel安装openstack

Mirantis OpenStack Fuel8.0离线安装(MOS8.0本地源)

OpenStack之Fuel架构及其工作原理