Ubuntu部署OpenStack踩坑指南:还要看系统版本?

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: Ubuntu部署OpenStack踩坑指南:还要看系统版本?


到目前为止,我对OpenStack还不太了解,只知道OpenStack本身是一个云管理平台什么是OpenStack?。那作为云管理平台,我能想到最实际的用途就是管理虚拟机,但是,OpenStack本身并不提供虚拟化功能,而是依赖于底层的Hypervisor(如KVM、Qemu、Xen等)来提供虚拟化能力。

KVM是OpenStack中最常用的Hypervisor之一,是一种全虚拟化解决方案,可以提供高性能、高效率和安全的虚拟化环境KVM部署初体验。通过上次实验如何在Ubuntu 23.10部署KVM并创建虚拟机?,我们已经在Ubuntu 23.10上部署好了KVM虚拟化环境。

OpenStack官方介绍的组件及工作原理图如下所示。Nova是OpenStack的主要计算引擎,负责实例的调度、创建和终止。Nova支持各种管理程序,包括QEMU/KVM、Hyper-V、VMware ESXi和Xen。

那么,如果我们要创建或管理虚拟机,则需要将Nova与KVM结合使用,来获取高效、灵活和可靠的虚拟化服务。

首先,我们需要安装OpenStack。在OpenStack文档中心,我们可以看到安装文档分为了Mitaka和Liberty两个版本。

经过了解,Mitaka和Liberty是OpenStack的两个不同的版本。Mitaka版本是在2016年发布的第13个版本,而Liberty版本则是在2015年发布的第12个版本。所以,Mitaka版本可能包含更多新功能和改进,具有更精简和更稳定的架构。

大概搜了一下,主要差异包括Mitaka改善了网络配置、提高了整体稳定性和性能、支持Python 3、支持IPv6、支持网络连接服务插件等,并改进了弹性伸缩功能,因此它可能比Liberty版本更稳定,那我们就选择Mitaka版本吧。

按照官网手册,最小的生产结构需要2个节点来部署。

从名称来看,节点2主要用于提供对象存储服务,对象存储服务用来存储账号、容器和对象;节点1还可以提供块存储服务,块存储服务和共享文件系统用来向实例提供服务。对象存储和块存储是两种不同的存储方式。对象存储是一种基于文件的存储方式,将数据存储为文件,每个文件都有一个唯一的标识符和元数据。块存储将数据存储为一组块,每个块都被分配一个唯一的标识符,但不包含任何元数据。

块存储的优点在于,它的读写速度更快,适合于高性能应用和需要快速访问大量小文件的应用程序;但是它很难扩展并且管理起来比较困难。对象存储的优点在于,它更容易扩展和检索数据,因为它可以根据需要自动分布数据,并且可以根据元数据快速检索数据。

而从网络上来看,我们直接选择私有网络就行了,私有网络比公有网络多了一个L3 Agent的选项,增加了启用self-service overlay分段方法的三层路由服务,比如VXLAN。此外,它使用NAT路由虚拟网络到物理网络。所以,私有网络架构基本可以满足我们的使用需求求。

在私有网络架构中,实例可以连接到自服务网络,自服务网络可以完全在OpenStack环境中或者通过外部网络使用NAT提供某种级别的外部网络访问。

所以,从架构图来看,宿主机仅使用一个网卡好像也是可以的,直接作为管理网络接口使用。

按照推荐配置,建议将节点主机名设置为controller。并向/etc/hosts文件添加以下内容:

# controller
192.168.1.155       controller
# compute1
192.168.1.155       compute1
# block1
192.168.1.155       block1
# object1
192.168.1.155       object1

一些发行版本在/etc/hosts文件中添加了附加条目,将实际主机名解析到另一个IP地址如127.0.1.1。为了防止域名解析问题,我们需要注释或者删除这些条目,但不要删除127.0.0.1条目。

验证到 Internet 和各个节点的连通性。

按照官方提示,建议禁用或移除所有自动更新的服务,因为它们会影响到我们的OpenStack环境。

接下来,我们先启用OpenStack库。

apt-get install software-properties-common
add-apt-repository cloud-archive:mitaka

哦吼,搞错了。Mitaka版本的cloud-archive只支持Trusty版本的Ubuntu,也就是Ubuntu 14.04 LTS。

查了半天,最后发现原因竟然是,语言的问题!

当使用英文时,Ubuntu对应的版本显示为16.04以上的版本。

对应的,还介绍到了Pike、Queens、Rocky、Stein和Victoria等版本的发版时间以及配套的Ubuntu系统版本号,看得我头皮发麻。

既然都学到这了,我就到官网看了看,目前的最新版本是2023年2月发布的第28版Bobcat。但是阿里却说最新的OpenStack版本是Wallaby,作为第26版发布于2023年4月。

实际上,OpenStack的版本历史可以在OpenStack Releases页面中找到。

https://releases.openstack.org/

OpenStack的版本命名采用了动物名称,而不是传统的数字版本号。每个版本都有一个开发周期,通常为6个月。在每个版本的初始发布之后,还会发布额外的稳定点版本。

回到本次遇到的问题,应该是我忽略了一行小字。

或者说翻译的版本没有跟着发布的版本进行更新。

好吧,正如我开头说的那样,到目前为止,我对OpenStack还不太了解,只知道OpenStack本身是一个云管理平台,只是熟悉了一下版本的区别还有和Ubuntu系统之间的对应关系。


相关实践学习
基于EBS部署高性能的MySQL服务
如果您通常是通过ECS实例部署MySQL来使用数据库服务,您可以参考本实验操作来搭建高性能的MySQL服务。本实验为您演示如何通过EBS ESSD云盘部署一个高性能的MySQL服务。
相关文章
|
3天前
|
Ubuntu Apache 数据库
如何在Ubuntu系统部署Z-blog博客结合cpolar实现无公网IP访问本地网站
如何在Ubuntu系统部署Z-blog博客结合cpolar实现无公网IP访问本地网站
25 2
|
3天前
|
存储 Kubernetes 监控
|
3天前
|
Ubuntu Linux 测试技术
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试(下)
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试
55 1
|
3天前
|
Ubuntu Linux 测试技术
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试(上)
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试
86 0
|
3天前
|
Ubuntu Linux 网络安全
Linux(31)Rockchip RK3568 Ubuntu22.04上部署 Docker: 问题与解决方案
Linux(31)Rockchip RK3568 Ubuntu22.04上部署 Docker: 问题与解决方案
80 0
|
3天前
|
负载均衡 Ubuntu
ubuntu部署haproxy
现在,你已经成功部署了HAProxy并配置了负载均衡。你可以使用HAProxy的IP地址来访问你的应用程序,并它将根据你的负载均衡配置将请求分发给后端服务器。确保根据你的实际需求自定义配置文件。
24 0
|
3天前
|
前端开发 Ubuntu PHP
在Ubuntu系统上部署Inis博客,并使用内网穿透将博客网站发布到公共互联网上
在Ubuntu系统上部署Inis博客,并使用内网穿透将博客网站发布到公共互联网上
|
3天前
|
Ubuntu 关系型数据库 MySQL
如何在Ubuntu使用宝塔部署Emlog网站并发布到公网实现任意浏览器访问
如何在Ubuntu使用宝塔部署Emlog网站并发布到公网实现任意浏览器访问
|
3天前
|
Ubuntu 关系型数据库 MySQL
ubuntu部署python环境,vscode编辑wsl项目遇到的问题汇总
ubuntu部署python环境,vscode编辑wsl项目遇到的问题汇总
|
3天前
|
Kubernetes Ubuntu 应用服务中间件
Ubuntu 22.04 利用kubeadm方式部署Kubernetes(v1.28.2版本)
Ubuntu 22.04 利用kubeadm方式部署Kubernetes(v1.28.2版本)
147 0