小工具知识网

当前位置: 首页 > 行业知识 > 云计算:openstack学习笔记和环境部署

行业知识

云计算:openstack学习笔记和环境部署

2026-11-09 01:47:52 来源:互联网转载

记录一次openstack的学习和部署

openstack

OpenStack���一个自由、开源的云计算平台。它主要作为基础设施即服务(IaaS)部署在公用云和私有云中,提供虚拟服务器和其他资源给用户使用。该软件平台由相互关联的组件组成,控制着整个数据中心内不同的厂商的计算、存储和网络资源的硬件池。用户可以通过基于网络的仪表盘或者命令行工具管理。

应用场景:OpenStack是基础设施即服务(IaaS)软件,让任何人都可以自行创建和提供云计算服务。

核心服务组件

OpenStack 的主要部分(组件):

  1. Nova(计算服务): Nova 是 OpenStack 的计算服务组件,用于管理和调度虚拟机实例。它允许用户创建、启动、停止和管理虚拟机,还负责资源调度,以确保虚拟机在计算节点上得到适当的分配。
  2. Neutron(网络服务): Neutron 是 OpenStack 的网络服务组件,负责创建和管理虚拟网络资源,包括虚拟子网、路由、防火墙等。它使用户能够定义和配置虚拟网络拓扑,以便虚拟机实例之间和与外部网络进行通信。
  3. Cinder(块存储服务): Cinder 是 OpenStack 的块存储服务组件,用于管理块级存储卷。它允许用户创建、附加、分离和备份块存储卷,以满足虚拟机实例的持久性存储需求。
  4. Glance(镜像服务): Glance 是 OpenStack 的镜像服务组件,用于管理虚拟机镜像。它允许用户上传、存储和共享虚拟机镜像,以便在创建虚拟机实例时使用。
  5. Keystone(身份认证服务): Keystone 是 OpenStack 的身份认证服务组件,用于管理用户身份验证和授权。它提供了用户、角色、项目和权限管理,以确保只有经过身份验证和授权的用户才能访问 OpenStack 资源。
  6. Swift(对象存储服务): Swift 是 OpenStack 的对象存储服务组件,用于存储和检索大规模的非结构化数据,如文件、图片和视频。它提供了可扩展的对象存储能力,适用于云存储和数据备份。
  7. Horizon(仪表板): Horizon 是 OpenStack 的官方 Web 用户界面,用于管理和监视云资源。它提供了直观的图形界面,使用户能够通过浏览器访问和控制 OpenStack。
  8. Heat(编排服务): Heat 是 OpenStack 的编排服务组件,用于定义和管理云基础设施的资源和配置。它允许用户创建模板,以自动化和编排云资源的部署和配置。
  9. Ceilometer(监控和计量服务): Ceilometer 是 OpenStack 的监控和计量服务组件,用于收集、存储和分析云资源的使用和性能数据。它有助于云资源的监控、报告和计量。
  10. Trove(数据库服务): Trove 是 OpenStack 的数据库服务组件,用于管理和提供云数据库服务。它支持各种数据库引擎,使用户能够轻松地创建、扩展和管理数据库实例。
  11. Sahara(大数据处理服务): Sahara 是 OpenStack 的大数据处理服务组件,用于在云中部署和管理大数据框架(如Hadoop、Spark等)。它提供了大数据处理的自动化工具和服务。
  12. Zun(容器服务): Zun 是 OpenStack 的容器服务组件,用于管理和编排容器。它支持 Docker 容器,并允许用户创建、部署和管理容器化应用程序。

devstack

devstack是面向开发者的一个openstack部署工具,用户可以指定不同的版本分支进行安装。devstack借助于Shell脚本实现openstack自动化部署,devstack源码中的stack.sh即为安装脚本,该脚本默认会安装并配置nova,glance,horizon和keyston、eplacement。

部署过程

创建stack用户

sudo useradd -s /bin/bash -d /opt/stack -m stacksudo passwd stack #编辑stack用户的登录密码sudo chmod +x /opt/stack #具有可执行权限echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack

切换到stack用户空间下

su - stack

下载devstack源码

git clone https://opendev.org/openstack/devstackcd devstack

在devstack创建local.conf配置文件

[[local|localrc]]ADMIN_PASSWORD=123456DATABASE_PASSWORD=$ADMIN_PASSWORDRABBIT_PASSWORD=$ADMIN_PASSWORDSERVICE_PASSWORD=$ADMIN_PASSWORDGIT_BASE=http://git.trystack.cnNOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.gitSPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.gitTEMPEST_REPO=http://git.trystack.cn/openstack/tempestLOGFILE=$DEST/logs/stack.sh.logLOGDAYS=2

安装

./stack.sh

报错记录:

sudo apt install libldap-dev=2.5.11+dfsg-1~exp1ubuntu3.1 libldap-2.5-0=2.5.11+dfsg-1~exp1ubuntu3.1sudo apt install libsasl2-dev=2.1.27+dfsg2-3ubuntu1 libsasl2-2=2.1.27+dfsg2-3ubuntu1#第三条依赖:依赖关系可以使用aptitude安装sudo aptitude install libsystemd0=249.11-0ubuntu3.7
mkdir ~/.pipvim ~/.pip/pip.conf[global]index-url = https://pypi.tuna.tsinghua.edu.cn/simple[install]trusted-host = https://pypi.tuna.tsinghua.edu.cn

报错:

Job for apache2.service failed because the control process exited with error code.See "systemctl status apache2.service" and "journalctl -xeu apache2.service" for details.

查看apache日志

端口80被占用,如下图

将 Apache2 的监听端口更改为其他可用端口,需要编辑 Apache2 的配置文件。

sudo nano /etc/apache2/ports.conf

找到以下行:

Listen 80

将 80 更改为其他未被占用的端口,例如 8080:

Listen 8080

保存并退出配置文件

重新启动 Apache2 服务以使更改生效:

sudo systemctl restart apache2

成功启动apache2

放宽依赖范围:您可以尝试放宽对grpcio的版本限制,让pip尝试选择与etcd3兼容的版本。可以这样做:

pip install etcd3==0.12.0 grpcio

这将允许pip选择满足etcd3依赖的grpcio版本。

修改inc/python中pip_install函数,189行

报错:

No module named 'setuptools.command.build'

官网有这个issue:https://github.com/pypa/setuptools/issues/3560,

按照这个issue去做也尚未解决,最后卸载这个包后,重新使用国内源下载

export ALL_PROXY=socks5://222.24.18.228:1080(这个是我们实验室的代理) 脚本执行到pip按照依赖部分会报错:

“ERROR: Could not install packages due to an OSError: Missing dependencies for SOCKS support.”

解决:

unset all_proxyunset ALL_PROXY

但是执行后github克隆会很慢

找到git clone的脚本部分 在git clone时设置环境变量export ALL_PROXY=socks5://222.24.18.228:1080,执行完后unset all_proxy&&unset ALL_PROXY

脚本下载报错

单独克隆

export ALL_PROXY=socks5://222.24.18.228:1080 && git clone https://opendev.org/openstack/glance.git /opt/stack/glance && unset ALL_PROXY

报错:

建议在一个全新的ubuntu系统上部署,整个过程中会下载很多依赖包,在全新的系统上部署可以避免包之间的冲突(上述过程中的问题大多是网络问题和包冲突)!!!!!!!!!!

部署成功后,终端输出如下

=========================DevStack Component Timing (times are in seconds)  =========================wait_for_service      10async_wait            39osc                  141apt-get                5test_with_retry        3dbsync                 3pip_install           80apt-get-update         2run_process           25-------------------------Unaccounted time      85=========================Total runtime        393================= Async summary================= Time spent in the background minus waits: 185 sec Elapsed time: 393 sec Time if we did everything serially: 578 sec Speedup:  1.47074Post-stack database query stats:+------------+-----------+-------+| db         | op        | count |+------------+-----------+-------+| cinder     | SELECT    |   143 || cinder     | UPDATE    |     5 || keystone   | SELECT    | 46308 || keystone   | INSERT    |    93 || cinder     | INSERT    |     4 || neutron    | SELECT    |  4142 || neutron    | INSERT    |  6084 || neutron    | UPDATE    |   115 || placement  | SELECT    |    48 || placement  | INSERT    |    60 || placement  | SET       |     2 || neutron    | DELETE    |    25 || nova_api   | SELECT    |   120 || nova_cell1 | SELECT    |   151 || nova_cell0 | SELECT    |   119 || nova_cell0 | INSERT    |     9 || nova_cell0 | UPDATE    |     6 || placement  | UPDATE    |     3 || glance     | SELECT    |    48 || glance     | INSERT    |     6 || nova_api   | INSERT    |    20 || nova_api   | SAVEPOINT |    10 || nova_api   | RELEASE   |    10 || glance     | UPDATE    |     2 || nova_cell1 | INSERT    |     6 || nova_cell1 | UPDATE    |    21 |+------------+-----------+-------+This is your host IP address: 192.168.115.130This is your host IPv6 address: ::1Horizon is now available at http://192.168.115.130/dashboardKeystone is serving at http://192.168.115.130/identity/The default users are: admin and demoThe password: 123456Services are running under systemd unit files.For more information see: https://docs.openstack.org/devstack/latest/systemd.htmlDevStack Version: 2023.2Change: 129d0964a87ad5757ba21587e1aa7daac2300447 Merge "Remove openeuler job from periodic and check queue" 2023-09-12 21:45:50 +0000OS Version: Ubuntu 23.04 lunar2023-09-18 07:59:37.003 | stack.sh completed in 394 seconds.

上一篇:matlab plot figure的时候,如何设置figure的size

下一篇:怎么连香港服务器打游戏?