OpenStack介绍

注意 :系统使用的是Ubuntu16,最少4核8G内存,20G硬盘空间.

Openstack 核心组件Keystone、Glance、Nova

OpenStack是一个开源的具有高可用性及扩展性的云计算平台,是一个提供IAAS层服务的基础设施云计算管理平台。。OpenStack也是云计算技术,由几个主要的组件组合起来完成具体工作。支持管理大部分主流的hypervisors,如KVM,Xen Server,VMware,Oracle VM,Xen等。 同时OpenStack是一个开源云计算解决方案。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。

OpenStack是一个开源云软件,由一系列联合项目组成,这些项目控制数据中心的大型计算,存储和网络资源池,同时通过仪表板进行管理。它设计用于ARM和x86等商用硬件。

OpenStack Ubuntu 18 安装 ubuntu16.04部署openstack_ubuntu


注意 :不建议使用devstack安装openstack

OpenStack常用的组件主要有以下几类:

认证模块(Keystone)

计算模块(Nova)

镜像模块(Glance)

Dashboard模块(Horizon)

块存储模块(Cinder)

网络模块(Neutron)

对象存储模块(Swift)

OpenStack Ubuntu 18 安装 ubuntu16.04部署openstack_git_02


Nova图里面的彩色方块,就是OpenStack最核心的组件。

OpenStack Ubuntu 18 安装 ubuntu16.04部署openstack_git_03


Nova

Nova是整个Openstack里面最核心的组件。当初Rackspace和NASA贡献代码时,NASA贡献的那部分就是Nova最早的代码(Rackspace贡献的代码是Swift)。OpenStack云实例生命期所需的各种动作都将由Nova进行处理和支撑,它负责管理整个云的计算资源、网络、授权及测度。

Keystone
Keystone为所有的OpenStack组件提供认证和访问策略服务,主要对(但不限于)Swift、Glance、Nova等进行认证与授权。

Horizon
Horizon是一个用以管理、控制OpenStack服务的Web控制面板。用户可以通过这个界面对OpenStack状态进行查看和管理。

云计算的三种服务模式:IaaS、PaaS、SaaS

OpenStack Ubuntu 18 安装 ubuntu16.04部署openstack_python_04


Infrastructure as a Service,基础设施即服务。

管理“基础设施资源”,便于用户调用和使用,是OpenStack的首要任务。

管理“基础设施资源”,便于用户调用和使用,是OpenStack的首要任务。

基础设施资源,主要包括三个方面:计算、存储、网络。说通俗点,就是CPU,硬盘,网卡。

OpenStack Ubuntu 18 安装 ubuntu16.04部署openstack_ubuntu_05

OpenStack组件介绍

1、Nova(计算服务组件)

OpenStack Compute是一个云计算结构控制器,它管理计算机资源池,并使用虚拟化技术、裸机和高性能计算配置。Nova的架构提供了云的灵活性,无需专有软件或硬件要求,还提供了集成传统系统和第三方产品的能力。

nova可以使用管理程序技术(如kvm、vmware、lxc、Xenserver等)进行部署。它用于管理许多虚拟机和处理各种计算任务的其他实例。

2、Glance(镜像服务组件)

OpenStack镜像服务提供发现、注册和恢复虚拟机镜像。Glean具有客户机-服务器体系结构,并提供了一个用户RESTAPI,它允许查询虚拟机镜像元数据以及检索实际镜像。在部署新的虚拟机实例时,Gleae将存储的镜像用作模板。

OpenStack Glance支持Raw,VirtualBox(VDI),VMWare(VMDK,OVF),Hyper-V(VHD)和Qemu / KVM(qcow2)虚拟机镜像。

3、Swift(对象存储服务模块)

OpenStack Swift创建了冗余的、可扩展的数据存储,以存储数兆字节的可访问数据。可以利用、检索和更新存储的数据。它具有分布式体系结构,提供了更大的冗余性、可扩展性和性能,没有单点故障。

Swift是一个深度可用、共享、最终一致的对象存储库。它帮助公司安全、廉价和高效地存储大量数据。Swift确保在各种设备上进行数据复制和分发,这使其成为经济高效的扩展存储的理想选择。

4、Horizon

Horizon是OpenStack dashboard的授权实现,它是实现基于云资源自动化的唯一图形界面。对于服务提供商和其他商业供应商,它支持第三方服务,如监控、计费和其他管理工具。开发人员可以使用EC2兼容性API或本机OpenStack API自动化工具来管理OpenStack资源的工具。

5、keystone(身份服务模块)

keystone提供了一个用户的中心列表,与他们可以访问的所有OpenStack服务相对应。它与现有的后端服务(如LDAP)集成,同时在整个云计算系统中充当通用的身份验证系统。

Keystone支持各种形式的身份验证,如标准用户名和密码凭据、AWS(Amazon Web Services)登录和基于令牌的系统。此外,该目录为端点注册表提供了一个可查询的OpenStack云中部署的服务列表。

6、Neutorn(网络服务组件)

Neutron提供网络功能,如管理OpenStack的网络和IP地址。它确保网络不是云部署中的限制因素,并为用户提供通过网络配置的自助服务能力。OpenStack网络允许用户创建自己的网络,并将设备和服务器连接到一个或多个网络。开发人员可以使用SDN技术来支持高水平的多租户和大规模。

Neutron还提供扩展框架,支持部署和管理其他网络服务,如虚拟专用网络(VPN),防火墙,负载平衡和入侵检测系统(IDS)。

7、Cinder(块存储服务模块)

OpenStack Cinder为OpenStack计算实例的应用程序提供确定的块级存储设备。云用户可以通过将块存储卷与dashboard和Nova集成来管理其存储需求。

Cinder可以使用存储平台,如Linux服务器、EMC(scaleio、vmax、vnx)、ceph、coraid、cloudbyte、IBM、Hitachi数据系统、SAN卷控制器等,适用于可扩展的文件系统和数据库存储。

8、Ceilometer(监控服务组件)

Ceilometer为为计费系统提供单点功能,获取所有度量,以授权客户跨所有OpenStack核心组件进行计费。通过监视来自现有服务的通知,开发人员可以收集数据,并可以配置数据类型以满足其操作要求。

9、heat(编排服务)

Heat是一种服务,通过与CloudInformation兼容的查询API和OpenStack本机REST API,使用AWS CloudInformation模板格式来协调多个复合云应用程序。

openStack的单节点安装

1.默认的软件包源是国外的,速度相对来说比较慢,所以我们修改文件/etc/apt/sources.list,使用如下命令更改:

sed -i 's/us.archive.ubuntu.com/cn.archive.ubuntu.com/g' /etc/apt/sources.list
sed -i 's/security.ubuntu.com/cn.archive.ubuntu.com/g' /etc/apt/sources.list

其他软件依赖

apt-get update
pip install -U pip
apt-get install -y python-pip python-dev libffi-dev gcc libssl-dev python-selinux

添加环境变量
环境变量问题,配置环境变量,在/etc/profile文件中新增:

OS_AUTH_KEY=”openstack”
OS_AUTH_URL=”http://localhost:5000/v2.0/”
OS_PASSWORD=”openstack”
OS_TENANT_NAME="admin"
OS_USERNAME="admin"

然后执行source /etc/profile即可!

2.下载devstack
1):如果系统没有安装git,那就输入下面指令安装:

sudo apt-get install git

2):接下安装devStack最好指定下载的版本,我们这边安装Ocata版。

git clone http://git.trystack.cn/openstack-dev/devstack.git -b stable/ocata

3.创建stack用户
目前Devstack脚本已经不支持直接使用root身份运行,你需要创建stack用户运行。
1)第一种创建stack方式

cd devstack/tools/
./create-stack-user.sh

修改devstack目录权限,让stack用户可以运行。

cd ../..
mv devstack /opt/stack 
chown -R stack:stack /opt/stack/devstack

2)第二种创建stack用户方式

sudo useradd -s /bin/bash -d /opt/stack -m stack

echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack

//切换到stack用户

sudo su - stack

3.配置pip源
OpenStack很多组件需要从pip源下载,默认是国外的源,我们需要设置为国内的源,以便可以快速的进行配置,在root用户和stack用户的家目录下面都配置一下。
没有下载pip的输入下面指令:

sudo apt-get install python-pip

首先分别在家目录下面都创建.pip的目录,然后在目录下面创建文件pip.conf,内容如下:

mkdir .pip
cat >> .pip/pip.conf <<EOF
[global]
trusted-host =  pypi.douban.com
index-url = http://pypi.douban.com/simple
EOF

4.切换到stack用户下,配置local.conf文件
在devStack的安装目录下,新建一个local.conf 文件,在里面输入下面代码:

[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
LOGFILE=$DEST/logs/stack.sh.log
LOGDAYS=2
SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5
SWIFT_REPLICAS=1
SWIFT_DATA_DIR=$DEST/data
HOST_IP=10.0.2.15

# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git

ps;默认情况下,你的登陆密码,数据库密码等等都是secret,你也可以在第二行进行修改成你自己不一样的密码,另外HOST_IP指的是你虚拟机里的ipv4的地址,你可以使用ifconfig -a查看, 或者从connection information查看,比如我的ipv4的地址就是10.0.2.15,这个HOST_IP不配置会报错,我就碰到了这种情况
5. 输入下面命令开始运行即可

stack@master:~/devstack$ FORCE=yes ./stack.sh
./stack.sh

这个期间是个超级漫长的过程,本人差不多安装了接近两个小时,并且最幸运的是一次性就安装好了,安装期间没有报任何错误,如果报错那可能网络不好,那就重新输入上面的命令

6.最后的安装成功的界面如下 :

OpenStack Ubuntu 18 安装 ubuntu16.04部署openstack_python_06

7.最后直接在浏览器里输入Horizon is now …那一行最后的网址进行登录即可

用户名就是admin或者demo,比如截图倒数第六行就给你说了user,下面一行说了密码。点击登陆即可

OpenStack Ubuntu 18 安装 ubuntu16.04部署openstack_python_07

查看服务状态

root@ubuntu:/etc/apt# systemctl status memcached

OpenStack Ubuntu 18 安装 ubuntu16.04部署openstack_ubuntu_08


root@ubuntu:/etc/apt# netstat -lantp

OpenStack Ubuntu 18 安装 ubuntu16.04部署openstack_python_09

扩展

安装pip:http://pip-cn.readthedocs.org/en/latest/installing.html#get-pip
升级python:

常见问题 :

stack@master:~/devstack$ FORCE=yes ./stack.sh

OpenStack Ubuntu 18 安装 ubuntu16.04部署openstack_git_10


1、IOError: [Errno 2] No such file or directory: '/opt/stack/logs/worlddump-2019-12-27-081136.txt

解决办法 : mkdir /opt/stack/logs/
2、安装报错
stack@master:~$ ./stack.sh
报错信息 :OSError: Command /opt/stack/requirements/.venv/bin/python - setuptools pip wheel failed with error code 2

OSError: Command /opt/stack/requirements/.venv/bin/python - setuptools pip wheel failed with error code 2
+lib/infra:install_infra:1                 exit_trap
+./stack.sh:exit_trap:511                  local r=1
++./stack.sh:exit_trap:512                  jobs -p
+./stack.sh:exit_trap:512                  jobs=
+./stack.sh:exit_trap:515                  [[ -n '' ]]
+./stack.sh:exit_trap:521                  kill_spinner
+./stack.sh:kill_spinner:407               '[' '!' -z '' ']'
+./stack.sh:exit_trap:523                  [[ 1 -ne 0 ]]
+./stack.sh:exit_trap:524                  echo 'Error on exit'
Error on exit
+./stack.sh:exit_trap:525                  generate-subunit 1577439412 506 fail
+./stack.sh:exit_trap:526                  [[ -z /opt/stack/logs ]]
+./stack.sh:exit_trap:529                  /opt/stack2/tools/worlddump.py -d /opt/stack/logs
World dumping... see /opt/stack/logs/worlddump-2019-12-27-094519.txt for details
+./stack.sh:exit_trap:535                  exit 1

OpenStack Ubuntu 18 安装 ubuntu16.04部署openstack_python_11

解决办法 :

参考链接 :
Ubuntu16安装OpenStack : https://www.jianshu.com/p/d4e91feceb05

Openstack对接vcenter详解 : https://mp.weixin.qq.com/s/YZRMW55t4dTPXcP_vmmi7w

Devstack 安装OpenStack Pike版本(单机环境) :
devstack安装OpenStack Pike版本 (OVS+VLAN) : 
openstack学习:devstack安装指引(ubuntu 18.04 pike版) :

ubuntu 16.04 devstack 安装openstack pike : 

使用devstack安装OpenStack 双节点部署 :

Ubuntu16手动安装OpenStack——swift篇 :
https://www.jianshu.com/p/bd25836852ab

Ubuntu16手动安装OpenStack——cinder篇 : https://www.jianshu.com/p/5aa9bc3c1ba9

openStack的单节点安装(血泪体会) :

devstack安装和测试 :http://www.chenshake.com/devstack-installation-and-testing/

Openstack的主要组件 :https://mp.weixin.qq.com/s/_JpNjWtjmxfHbuKqjS26SQ
https://mp.weixin.qq.com/s/wq0OGQCEDgD6wwtTvPNGAA

Ubuntu18.04 安装Queens版本OpenStack :