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等商用硬件。
注意 :不建议使用devstack安装openstack
OpenStack常用的组件主要有以下几类:
认证模块(Keystone)
计算模块(Nova)
镜像模块(Glance)
Dashboard模块(Horizon)
块存储模块(Cinder)
网络模块(Neutron)
对象存储模块(Swift)
Nova图里面的彩色方块,就是OpenStack最核心的组件。
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
Infrastructure as a Service,基础设施即服务。
管理“基础设施资源”,便于用户调用和使用,是OpenStack的首要任务。
管理“基础设施资源”,便于用户调用和使用,是OpenStack的首要任务。
基础设施资源,主要包括三个方面:计算、存储、网络。说通俗点,就是CPU,硬盘,网卡。
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.最后的安装成功的界面如下 :
7.最后直接在浏览器里输入Horizon is now …那一行最后的网址进行登录即可
用户名就是admin或者demo,比如截图倒数第六行就给你说了user,下面一行说了密码。点击登陆即可
查看服务状态
root@ubuntu:/etc/apt# systemctl status memcached
root@ubuntu:/etc/apt# netstat -lantp
扩展
安装pip:http://pip-cn.readthedocs.org/en/latest/installing.html#get-pip
升级python:
常见问题 :
stack@master:~/devstack$ FORCE=yes ./stack.sh
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
解决办法 :
参考链接 :
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 :