前言


首先,严重吐槽OpenStack安装的不和谐。装一个环境第一次装了那么长时间。本文基本上是在参考条目2的基础上来的,感谢大牛们的工作,让我这个菜狗能用这么高端的东西。

什么是OpenStack


容我Copy一段

Open source software for creating private and public clouds.
OpenStack software controls large pools of compute, storage, and networking resources throughout a datacenter, managed through a dashboard or via the OpenStack API. OpenStack works with popular enterprise and open source technologies making it ideal for heterogeneous infrastructure.
Hundreds of the world’s largest brands rely on OpenStack to run their businesses every day, reducing costs and helping them move faster. OpenStack has a strong ecosystem, and users seeking commercial support can choose from different OpenStack-powered products and services in the Marketplace.
The software is built by a thriving community of developers, in collaboration with users, and is designed in the open at our Summits.

简单说,OpenStack就是一套云计算平台,再简单理解就是一个virtual box,可以生成很多虚拟机的软件,只不过这个软件比较高级,可扩展性,性能都很好而已。

更多关于OpenStack的内容请看英文官网中文博客

安装OpenStack


准备工作

  1. VirtualBox虚拟机,5.0.20。
  2. 一个用来安装OpenStack的镜像,这里使用的是参考2中给出的镜像,这个镜像包括了操作系统和OpenStack安装脚本及需要的包,可以进行离线安装。我对镜像做了一些修改。
  3. 理解安装原理,尤其是网络层面。

参考链接2博客中提供的镜像支持虚拟机和物理机安装,为了方便测试,下面使用VirtualBox来进行安装。

安装原理

此部署方法使用了一个安装镜像,这个镜像的说明:

  • ISO是基于CentOS-7-x86_64-Everything-1511.iso做的,只保留了操作系统必须的安装包
  • 镜像中包含mitaka版本openstack的安装源,系统安装完成后自动复制到/mnt目录下
  • 镜像中包含mitaka版本openstack的安装脚本,系统安装完成后自动复制到/opt目录下
  • 操作系统采取一键式安装,root密码为Changeme_123
  • 如果服务器上有多块磁盘,系统默认安装在第一块磁盘上(sda),sda原有的系统会自动格式化。

追本溯源,Openstack的作用就是搭建一个云服务,可以创建虚拟机,虚拟机可以拥有正常的计算机功能,能够存储、计算、访问网络。存储和计算OpenStack已经包装的很好了,安装简单,不多说。对OpenStack用户来说最重要的可能就是网络的配置,因为在不同场景下,网络的架构变化也是非常大的。这里使用了一个最简单的架构。如图。

用从来另外一篇博客里看来的东西来描述一下这个网络架构。假如咱们在宿舍,大家都是学生,穷啊!想要只用一个账号登录,但是大家都上网怎么办,这样不是网费不是就能节省一大截,然后放心的带妹子去喝杯奶茶,顺便谈谈人生,聊聊理想。

宿舍的雷总是个土豪,有个高配台式机,双网卡。咋办呢?首先先用雷总的一个网卡A连接学校的网线,登录,然后雷总可以上网了。大方的雷总是是乐于助人的,他把网卡A贡献给网卡B,刚好老王有一个交换机,果断插在雷总的网卡B上。剩下的屌丝们抱着老王的交换机每个人插了一个口,哎呦,可以上网了。

上面的架构可以这样,每台服务器都有至少两个网卡接口,一个用来做管理地址,一个用来做业务地址。

  • 管理地址:为了整个OpenStack系统的安全性,建议所有OpenStack、物理主机的操作都在这个网络进行,增加安全性。这个网卡没有什么有异议的地方,本身就是很纯粹的将N个服务器联通起来,OpenStack自己的信息通信也在这个网络里。
  • 业务地址:OpenStack中虚拟机使用的网卡。虚拟机的流量都是走这里。

虚拟机配置

根据上面的架构图,我们创建两个虚拟机,包扩controller和compute节点,当然,你也可以创建多个compute节点,每台虚拟机最低配置:

controller
vcpu: 2+
内存:4G+
硬盘:10G+(如果controller上运行cinder-volume服务,需要两块或两块以上磁盘)

compute
vcpu: 2+
内存:4G+
硬盘:10G+

VirtalBox网络配置

创建VirtalBox Host-only网络,如下图,我建立了VirtualBox Host-only Ethernet Adapter,创建网络后关闭DHCP功能。

给每个虚拟机配置如下的网络配置。

注:其中混杂模式一定要选择“全部允许”。

系统安装

加载ISO镜像到虚拟机。

Controller安装

配置网络

启动虚拟机,如果没有出问题,就进入了如下界面。

点击Auto Install OpenstackOS进行自动安装。安装好后,账号密码为root/Changeme_123。

修改网络配置,使用nmtui来进行管理。编辑两张网卡enp0s3和enp0s8的信息。

如果compute的网络也配置好了,可以ping一下测试,根据架构图所示,controller的ip管理ip为192.168.2.200,compute1的管理ip为192.168.2.201。ping测试:

配置安装信息

配置安装信息/opt/mitaka_install-V1.9/lib/installrc。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#controller的主机名 
HOST_NAME=controller
#controller主机IP
MANAGER_IP=192.168.2.200
#各个组件、数据库及dashboard用户密码
ALL_PASSWORD=Changeme_123
#第二块网卡名称,虚拟机网卡绑定到该网卡上
NET_DEVICE_NAME=enp0s8
#controller节点上是否安装nova-computer服务,如果需要做到控制和计算隔离,请改为False。
CONTROLLER_COMPUTER=True

#Neutron网络信息

#浮动网络信息
#浮动IP网络的网段,即外出网络网段
NEUTRON_PUBLIC_NET="172.16.4.129/24"
#浮动IP网络的网关
PUBLIC_NET_GW="172.16.4.129"
#浮动IP网络地址池的起始IP
PUBLIC_NET_START="172.16.4.220"
#浮动IP网络地址池的结束IP
PUBLIC_NET_END="172.16.4.250"
#第二块网卡的IP,用于绑定网桥,走虚拟机流量
SECOND_NET="172.16.4.180/24"
#浮动IP网络的DNS
NEUTRON_DNS="114.114.114.114"


#DEMO用户私有网段
NEUTRON_PRIVATE_NET="10.10.10.0/24"
PRIVATE_NET_GW="10.10.10.1"
PRIVATE_NET_DNS="114.114.114.114"

#For cinder
#新增一个空白的分区或磁盘用于配置cinder云硬盘(controller节点)
CINDER_DISK='/dev/sdb'
#新增一个空白的分区或磁盘用于配置cinder云硬盘(block节点)
BLOCK_CINDER_DISK='/dev/sdb'


#for manila
#please input disk or partition by blank to separate
#MANILA_DISK='/dev/sdb'

配置/opt/mitaka_install-V1.9/lib/hosts文件,此处配个节点的信息。

1
2
3
4
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.2.200 controller
192.168.2.201 compute

安装其他节点时,直接将这两个配置文件覆盖原本文件就可以了。

安装

进入目录,执行命令

1
2
cd /opt/mitaka_install-V1.9.5
bash main.sh

首先进行环境配置,执行main.sh脚本的时候,选择 1.Install Controller Node Service,然后安装 1.Configure System Eniveronment,如下图:

安装好后,系统会自动重启,如下图:

重新进入下同再次执行main.sh脚本,继续选择 选择 1.Install Controller Node Service,进入后,从 2.Install Mariadb and Rabbitmq-server. 开始,一个一个安装。注意的是,不是每个组件都必须安装,像我使用的过程中,目前只装了2-8,后面的9-11并没有安装。安装2-8,由于nova组件也安装了,所以这个相当于了all-in-one安装,这个controller节点就可以直接当做一个独立的OpenStack系统使用,不需要额外安装compute节点了。

安装好后,从https://192.168.2.200/dashboard就能登录OpenStack管理界面了。登录界面:

域:default 用户名:admin,demo,service 密码:刚才在配置文件里配置的

Compute安装

由于一个服务器的计算能力有限,现在增加一台compute节点。

配置网络

和Controller部分配置网络一样,只换IP就可以了。

配置安装信息

将Controller中修改的两个文件拷贝到相同的位置覆盖。

安装

同样是执行/opt/mitaka_install-V1.9.5/main.sh文件,区别是这次选择 2.Install Computer Node Service,选择后会让输入第二块网卡名,这里填enp0s8
具体如图:

安装成功后:

运行测试

当controller和compute安装结束后,如果全部按照架构图配置网络,应该访问http://192.168.2.200/dashboard访问OpenStack控制界面Horizon,如下图:

账号密码
域:default 用户名:admin,demo,service 密码:默认为Changeme_123,安装时在配置文件/opt/mitaka_install-V1.9/lib/installrc中的ALL_PASSWORD参数配置。

首先登陆admin账户,查看虚拟机管理器,可以看到有两个管理器,如下图:

退出登陆,使用demo账户登陆,在计算->云主机栏目内创建云主机,具体步骤见图:

分配浮动IP

创建好的虚拟机在界面上应该是这样的

进入虚拟机控制台

点击”点击此处只显示控制台”后,按照系统给出的banner登陆系统,这里提示的是账号为cirros,密码为cubswin:),登录系统后,查看ifconfig和ping命令。

可以连通外网,哈哈。

再看一下demo项目中的网络拓扑图。

在OpenStack里,每个虚拟机都是保存在nova组件下的(如果没有使用块存储服务,即使使用了,主要的虚拟机文件也是在nova下),在本次安装的系统中,目录/var/lib/nove/instances下是存储虚拟机的位置,如下图,名称为uuid的目录就是虚拟机的目录。

可以开心的玩耍了。

最后放一张Opstack各组件功能图

后记


这只是对OpenStack安装的一个小小的记录。

参考及链接

  1. OpenStack 官网
  2. 自动安装分布式mitaka版本openstack