首页 > 技术文章 > OpenStack最新版本--Victoria发布亮点与初体验

tyun 2020-10-15 17:03 原文

 

前言

`OpenStack`是一个云操作系统,可控制整个数据中心内的大型计算,存储和网络资源池,所有资源均通过具有通用身份验证机制的`API`进行管理和配置。 还提供了一个仪表板,可让管理员进行控制,同时授权其用户通过`Web`界面配置资源。 除了标准的基础架构即服务功能外,其他组件还提供业务流程,故障管理和服务管理等其他服务,以确保用户应用程序的高可用性。

 

 

 

`Victoria`是2020最后一个`OpenStack`版本,新冠疫情并没有对该版本的发布产生太大的影响,作为`OpenStack`的第22个版本,如今已经更加稳定,更加强健。官网给出的发布时间是2020年10月12号到16号。预计14号左右发布。当前版本已经可以测试使用。

`Redhat`作为开源的社区的霸主,其贡献依然排名第一,国内的华为,`99cloud`,中兴,`Kylin Cloud`等公司上榜,至2020年10月13号,贡献排名如下图:

 

 

 

## Victoria发布亮点

### Cinder - 块存储服务

`Cinder`接口提供了一些标准功能,允许创建和附加块设备到虚拟机,如“创建卷”,“删除卷”和“附加卷”。还有更多高级的功能,支持扩展容量的能力,快照和创建虚拟机镜像克隆。

**Notes:**

- 改进了对配置的默认卷类型的处理,并使用`microversion 3.62`添加了新的块存储`API`调用,可以为单个项目设置项目级别的默认卷类型。
- 添加了一些新的后端驱动程序,同时当前的大部分驱动程序都添加了对更多功能的支持。例如,`NFS`驱动程序现在支持卷加密。
- 使用流行的`Zstandard`压缩算法,增加了对`cinder`备份的支持。

 

### Cloudkitty

 

**Notes:**

- 在项目一段时间不活跃之后,新的贡献者恢复了开发。
- 推出了`Monasca fetcher`,以从`Monasca`中获取数据。

 

### Cyborg - 硬件管理加速器

`Cyborg`(以前称为`Nomad`)旨在为加速资源(即`FPGA,GPU,SoC, NVMe SSD,DPDK/SPDK,eBPF/XDP` …)提供通用管理框架。

 

**Notes:**

- 自`Ussuri`发行以来,用户可以使用由`Cyborg`管理的加速器启动实例,该发行版还支持两项操作`Rebuild and Evacuate`。
- `Cyborg`支持新的加速器驱动程序(`Intel QAT`和`Inspur FPGA`),并达成协议,希望实施新驱动程序的供应商至少应提供完整的驱动程序报告结果。(当然,更欢迎提供第三方`CI`。)受支持的驱动程序(https://docs.openstack.org/cyborg/latest/reference/support/matrix.html )
- 支持`Program API`,现在,用户可以在给定预加载的`bitstream`的情况下对`FPGA`进行编程。程序`API`(可部署`PATCH`)([https://specs.openstack.org/openstack/cyborg-specs/specs/train/approved/cyborg-api.html](https://specs.openstack.org/openstack/cyborg-specs/specs/train/approved/cyborg-api.html))并改进了现有`API`的`API`微版本,例如`arq API`。
- 在此版本中,部分实施了针对`cyborg`的策略刷新(带有作用域的`RBAC`)(设备配置文件`API`),我们在基本策略和`device_profile`策略中实现了新的默认规则,并为所有策略添加了基本测试框架。对于向后兼容性,将旧规则保留为不推荐使用的规则,并使用与当前相同的默认值,以便现有部署将保持原样运行。实施所有功能后,我们将为用户提供两个周期的过渡期。

 

### Glance - 镜像服务

`Glance(OpenStack Image Service)`是一个提供发现,注册,和下载镜像的服务。`Glance` 提供了虚拟机镜像的集中存储。通过 `Glance` 的 `RESTful API`,可以查询镜像元数据、下载镜像。虚拟机的镜像可以很方便的存储在各种地方,从简单的文件系统到对象存储系统(比如 `OpenStack Swift`)。

 

**Notes:**

- 增强了多个商店功能,管理员现在可以设置策略以允许用户复制其他租户拥有的镜像
- 概览允许配置多`cinder`存储
- 一目了然的`RBD`和`Filesystem`驱动程序现在支持稀疏镜像上传
- 增强了`RBD`驱动程序块上传镜像

 

### Horizon - 图形化管理服务

`Horizon` 为 `Openstack` 提供一个 `WEB` 前端的管理界面 (`UI` 服务 )通过 `Horizon` 所提供的 `DashBoard` 服务 , 管理员可以使用通过 `WEB UI` 对 `Openstack` 整体云环境进行管理 , 并可直观看到各种操作结果与运行状态。

 

**Notes:**

- `Horizon`中显示的错误消息现在包含更多详细信息。以前,`GUI`用户无法了解操作的详细原因,但是用户现在可以从后端服务中查看详细信息,以便他们可以解决原因。
- 添加了一个新选项卡,该选项卡显示有关卷和卷快照的消息。用户可以了解针对相应卷或快照发生的详细事件。
- 增加了对扩展在用卷的支持。用户现在可以通过`horizon`扩展在用卷。

 

### Ironic - 裸金属服务

`Ironic`包含一个`API`和多个插件,用于安全性和容错性地提供物理服务器。它可以和`nova`结合被使用为`hypervisor`驱动,或者用`bifrost`使用为独立服务。默认情况下,它会使用`PXE`和`IPMI`去与裸金属机器去交互。`Ironic`也支持使用供应商的插件而实现额外的功能。

 

**Notes:**

- 部署步骤工作将基本部署操作分解为多个步骤,现在还可以包括部署时支持的`RAID`和`BIOS`接口的步骤。
- 一个`agent`电源接口支持在没有基板管理控制器的情况下进行资源调配操作。
- 现在可以将`Ironic`配置为进行`HTTP Basic`身份验证,而无需其他服务。
- 添加了对`Redfish`虚拟介质的基于`DHCP`的部署的初始支持。

### Kolla - 容器化部署OpenStack服务

`kolla` 的使命是为 `openstack` 云平台提供生产级别的、开箱即用的交付能力。`kolla` 的基本思想是一切皆容器,将所有服务基于 `Docker` 运行,并且保证一个容器只跑一个服务(进程),做到最小粒度的运行 `docker`。

 

**Notes:**

- 添加了对`Ubuntu Focal 20.04`的支持。
- 添加了对后端`API`服务的`TLS`加密的附加支持,从而提供了`API`流量的端到端加密。
- 增加了对核心`OpenStack`服务的容器健康检查的支持。
- 添加了对`etcd`的`TLS`加密的支持。
- 改善了`Ansible Playbook`的性能和可伸缩性。
- 增加了对将`Neutron`与`Mellanox InfiniBand`集成的支持。
- 为`Kayobe`添加了对在`neutron`上部署自定义容器的支持。

 

### Kuryr - OpenStack容器网络

`Kubernetes Kuryr`是 `OpenStack Neutron` 的子项目,其主要目标是通过该项目来整合 `OpenStack` 与`Kubernetes` 的网络。该项目在 `Kubernetes` 中实作了原生 `Neutron-based` 的网络,因此使用 `Kuryr-Kubernetes` 可以让你的 `OpenStack VM` 与 `Kubernetes Pods` 能够选择在同一个子网上运作,并且能够使用 `Neutron` 的 `L3` 与 `Security Group` 来对网络进行路由,以及阻挡特定来源 `Port`。

 

**Notes:**

- Kuryr将不再使用注释在`k8s api`中存储关于`OpenStack`对象的数据。而是创建了一个相应的`CRD`,即`KuryrPort`,`KuryrLoadBalancer`和`KuryrNetworkPolicy`。
- 现在,`INFO`级别的日志应该更加简洁。
- 增加了在嵌套设置中自动检测虚拟机桥接接口的支持。

### Manila - 文件共享服务

`Manila`项目全称是`File Share Service`,文件共享即服务。是`OpenStack`大帐篷模式下的子项目之一,用来提供云上的文件共享,支持`CIFS`协议和`NFS`协议。

 

**Notes:**

- 租户驱动的共享复制,数据保护,灾难恢复和高可用性的自助服务现已普遍可用并得到完全支持。从`API`版本2.56开始, `X-OpenStack-Manila-API-Experimental`创建/升级/重新同步/删除共享副本不再需要`header`。
- 共享服务器迁移现在作为一个实验性功能提供。共享服务器通过隔离网络路径中的共享文件系统来提供多租户保证。在这个版本中,云管理员能够将共享服务器移动到不同的后端或共享网络。

### Neutron - 网络服务

`Neutron`是`openstack`核心项目之一,提供云计算环境下的虚拟网络功能。`OpenStack`网络(`neutron`)管理`OpenStack`环境中所有虚拟网络基础设施(`VNI`),物理网络基础设施(`PNI`)的接入层。

 

**Notes:**

- 现在可以通过`IPv6`使用元数据服务。用户现在可以在仅`IPv6`的网络中使用不带配置驱动器的元数据服务。
- `flat`已为分布式虚拟路由器(`DVR`)添加了对网络的支持。
- `OVN`后端增加了对浮动IP端口转发的支持。现在,在`Neutron`中使用`OVN`后端时,用户可以为浮动`IP`创建端口转发。
- 在`OVN`中增加了对路由器可用区域的支持。`OVN`驱动程序现在可以从路由器的`Availability_zone_hints`字段中读取,并使用给定的可用区域相应地调度路由器端口。

### Nova - 计算服务

`Nova`是`OpenStack`云中的计算组织控制器。支持`OpenStack`云中实例(`instances`)生命周期的所有活动都由`Nova`处理。这样使得`Nova`成为一个负责管理计算资源、网络、认证、所需可扩展性的平台。

 

**Notes:**

- `Nova`支持在同一`nova`服务器中混合使用绑定和浮动CPU。
- `Nova`支持通过提供程序配置文件来自定义计算节点的放置资源清单。
- 即使使用`Glance`多存储 配置,`Nova`也支持 从`Ceph RBD`群集快速克隆`Glance`镜像 。
- `Nova`支持使用虚拟`TPM`设备创建服务器。

### Octavia - 负载均衡服务

`Octavia` 是 `openstack lbaas`的支持的一种后台程序,提供为虚拟机流量的负载均衡。实质是类似于`trove`,调用 `nova` 以及`neutron`的`api`生成一台安装好`haproxy`和`keepalived`软件的虚拟机,并连接到目标网路。

 

**Notes:**

- 用户现在可以指定侦听器和池接受的`TLS`版本。用户现在还可以设置其部署可接受的最低`TLS`版本。
- `Octavia`现在使用新的侦听器应用程序层协议协商(`ALPN`)配置选项来支持TLS上的`HTTP/2`。
- 现在可以将负载均衡器统计信息同时报告给多个统计信息驱动程序,并支持增量指标。这样可以更轻松地集成到外部度量系统中,例如时间序列数据库。
- 用于`amphora`驱动程序的`Octavia flavors`现在支持将`glance image`标记指定为`flavor`的一部分。这允许用户定义`Octavia flavor`来引导备用的`amphora`镜像。
- 负载平衡器池现在支持`PROXY`协议的版本2。使用`TCP`协议时,这允许将客户端信息传递到成员服务器。`PROXYV2`提高了使用`PROXY`协议与成员服务器建立新连接的性能,尤其是在侦听器使用`IPv6`的情况下。

### Swift - 对象存储服务

`Swift` 不是文件系统或者实时的数据存储系统,而是对象存储,用于长期存储永久类型的静态数据。这些数据可以检索、调整和必要时进行更新。`Swift`最适合虚拟机镜像、图片、邮件和存档备份这类数据的存储。

 

**Notes:**

- 改进了读取纠错码数据时的第一字节延迟。
- 当使用单独的复制网络运行时,后台守护程序和代理服务器之间的隔离度增加。
- 我们开始看到生产集群从`python2`下运行`Swift`过渡到`python3`。

 

### Tacker - NVF管理服务

`Tacker`是一个在`OpenStack`内部孵化的项目, 他的作用是`NVF`管理器,用于管理`NVF`的生命周期。 `Tacker`的重点是配置`VNF`, 并监视他们。如果需要,还可重启和/或扩展(自动修复)`NVF`。整个进程贯穿`ETSIMANO`所描述的整个生命周期。

 

**Notes:**

- 实施`ETSI NFV-SOL`标准功能(生命周期管理,扩展,`VNF`操作等)。
- 添加`Fenix`插件,以使用`Fenix`和`Heat`滚动更新`VNF`。
- 扩展`Kubernetes`支持

 

### Vitrage - 平台问题定位分析服务

`Vitrage`是一个`OpenStack RCA(Root Cause Analysis)`服务,用于组织、分析和扩展`OpenStack`的告警和事件,在真正的问题发生前找到根本原因。

 

**Notes:**

- 为`TMF API 639`数据源添加新的数据源。
- 完成验证以验证`Vitrage API`。

 


## RDO快速安装Victoria版本

### 注意

如果您使用的是非英语语言环境,请确保您`/etc/environment`已有:

```
LANG=en_US.utf-8
LC_ALL=en_US.utf-8
```

如果您的系统满足以下所有前提条件,请继续运行以下命令。

- 在`CentOS 8`上:

```
$ sudo dnf update -y
$ sudo dnf config-manager --enable PowerTools
$ sudo dnf install -y centos-release-openstack-ussuri
$ sudo dnf update -y
$ sudo dnf install -y openstack-packstack
$ sudo packstack --allinone
```

 

### 步骤0:先决条件

#### 软件

最低推荐版本是**Red Hat Enterprise Linux(RHEL)7**,或者是基于`RHEL`的`Linux`发行版之一(例如**CentOS**,**Scientific Linux**等)版本。**x86_64**是当前唯一受支持的体系结构。

- 有关所需存储库的详细信息,请参见`RDO`存储库(https://www.rdoproject.org/documentation/repositories/)。

使用完全限定的域名而不是短名称来为主机命名,以避免`Packstack`出现`DNS`问题。

#### 硬件

具有至少`16GB` `RAM`的计算机,具有硬件虚拟化扩展功能的处理器和至少一个网络适配器。

#### 网络

如果您打算通过**外部**网络访问服务器和实例,那么这是正确配置网络设置的好时机。将网卡的静态IP地址和禁用`NetworkManager`是个好主意。

在`RHEL 8/CentOS 8`上,网络脚本已被弃用,并且默认情况下未安装,因此需要明确安装。

```
$ sudo dnf install network-scripts -y
$ sudo systemctl disable firewalld
$ sudo systemctl stop firewalld
$ sudo systemctl disable NetworkManager
$ sudo systemctl stop NetworkManager
$ sudo systemctl enable network
$ sudo systemctl start network
```

### 步骤1:软件存储库

在`CentOS 8`上,首先需要启用`PowerTools`存储库。然后,`Extras`存储库提供启用`OpenStack`存储库的`RPM`。`Extras`默认情况下在`CentOS 8`上处于启用状态,因此您只需安装`RPM`即可设置`OpenStack`存储库:

```
$ sudo dnf config-manager --enable PowerTools
$ sudo dnf install -y centos-release-openstack-ussuri
```

安装`OpenStack Victoria`所需要的`yum`源:

```
sudo dnf install -y https://repos.fedorapeople.org/repos/openstack/openstack-victoria/rdo-release-victoria-0.el8.noarch.rpm
```

更新您当前的软件包:

```
$ sudo dnf update -y
```

### 步骤2:安装Packstack安装程序

```
$ sudo dnf install -y openstack-packstack
```

### 步骤3:运行Packstack来安装OpenStack

`Packstack`使您无需手动设置`OpenStack`。对于单节点`OpenStack`部署,请运行以下命令:

```
$ sudo packstack --allinone
```

如果您以前运行过`Packstack`,则主目录中将有一个名为的文件,您`packstack-answers-20130722-153728.txt`可能会希望使用`--answer-file`选项使用该文件,以便您已经设置的所有密码(例如mysql)都将被重用。 。

安装程序将要求您输入网络上要安装的每个主机节点的`root`密码,以启用主机的远程配置,以便可以使用`Puppet`远程配置每个节点。

该过程完成后,您可以转到,登录到`OpenStack Web`界面`http://$YOURIP/dashboard`。用户名是`admin`。可以在控制节点目录中的文件`/root/keystonerc_admin`中找到该密码。

 

### 下一步

现在您的单节点`OpenStack`实例已启动并正在运行,您可以继续阅读有关配置浮动`IP`范围,配置`RDO`以与现有网络配合使用,或通过添加计算节点来扩展安装的内容。

 

## 写在最后

十年风雨,`OpenStack`经历了很多。有过登顶的荣誉也有过风言风语的低谷,但`OpenStack`依然坚持至今。今天`OpenStack`更务实,更稳定,也更可靠。`OpenStack`已然成为云基础设施的标准解决方案。

`OpenStack`如今遍布各个领域,人工智能,大数据,物联网等等。,对待新趋势的看法也决定着`OpenStack`的未来。`OpenStack`不仅是一群项目的合集,更是一个有一群人可以建言献策的开放社区,可以结合应用与需求谈发展方向。在此也忠心祝愿`OpenStack`能够更好,更稳的发展。

 

参考:

https://www.stackalytics.com/

https://releases.openstack.org/victoria/highlights.html

https://www.rdoproject.org/install/packstack/

 

作者:祝祥
原文链接:https://blog.tyun.cn

 

推荐阅读