添加配置选项以设置 SPICE 压缩设置

https://blueprints.launchpad.net/nova/+spec/nova-support-spice-compression-algorithm

本文档提出为 Nova 配置添加 SPICE 相关选项。这些选项可用于启用和设置针对 libvirt(QEMU/KVM)配置实例的 SPICE 压缩设置。请注意,只有在启用 SPICE 支持(并禁用 VNC 支持)的情况下,这些选项才会被考虑。

问题描述

有时,网络带宽受到限制,尤其是在 OpenStack 设置中涉及物理网络硬件的情况下,例如使用上行链路带宽有限的旧网络交换机。尽管如此,在这样的基础设施中,计算节点和远程控制客户端之间应该能够进行数据密集型的控制台数据传输。在这种情况下,激活传输协议(目前仅为 SPICE)的内置压缩设置将是有益的,以便在带宽有限的网络中传输图形密集型桌面内容,同时获得可接受的体验质量 (QoE)。

用例

  • 操作员应该能够决定如何通过 SPICE 配置桌面(控制台)传输。特别是,他应该能够配置 SPICE 压缩算法和模式,以便

    • 降低来自(远程)带宽有限网络的图形控制台访问的网络带宽。用户在从家庭访问实例的图形控制台时可以从这种配置中受益。

    • 完全关闭本地控制台访问的默认压缩设置,同时在本地(有线)网络中保持尽可能低的延迟。如果用户应该只对图形实例进行本地访问以可视化计算结果,则这种配置很有用。

    • 根据可用网络带宽和要实现的 QoE,选择合适的 SPICE 视频检测/流式传输,用于图形密集型用例,例如办公工作、媒体编辑和计算结果可视化。

  • 用户应该能够从 Horizon 内置的 spice-html5 客户端访问实例的图形控制台,即使来自(远程)带宽有限的网络(例如从家庭)。

提议的变更

本文档提出为 OpenStack 中支持显式激活内置压缩设置的所有传输协议添加配置选项。目前,只有集成的 SPICE 协议允许激活各种图像 [1] 和视频 [2] 压缩设置,以降低网络带宽,同时改善图形密集型桌面的数据传输。由于 SPICE 仅受 libvirt hypervisor(通过 QEMU 后端)支持,因此所有其他 hypervisor 和传输协议不受此提议更改的影响。Libvirt 已经为 QEMU 后端提供了 SPICE 相关压缩设置的自动配置(请参阅 libvirt XML 域文档中的 spice 文档 [3])。因此,该更改只需要使 libvirt hypervisor 驱动程序能够生成具有激活 SPICE 压缩设置的有效 libvirt XML 配置。OpenStack 配置应存储在 Nova 配置的 spice 配置组中。此配置组应扩展为包含能够指定 SPICE 相关压缩设置(选择压缩算法和切换压缩模式)的配置选项。

备选方案

无。

数据模型影响

无。

REST API 影响

无。

安全影响

无。

通知影响

无。

其他最终用户影响

无。

性能影响

无。

其他部署者影响

以下 SPICE 相关选项将添加到 Nova 配置的 spice 配置组

  • image_compression = [ auto_glz | auto_lz | quic | glz | lz | off ];

  • jpeg_compression = [ auto | never | always ];

  • zlib_compression = [ auto | never | always ];

  • playback_compression = [ True | False ];

  • streaming_mode = [ filter | all | off ];

每个配置选项都是可选的,可以显式设置以配置与 libvirt 关联的 SPICE 压缩设置。如果未设置所有配置选项,则不会为 libvirt 配置任何 SPICE 压缩设置,这与此提议更改之前的行为相对应。在这种情况下,将使用 libvirt 后端(例如 QEMU)的内置默认设置。

开发人员影响

无。

升级影响

无。

实现

负责人

主要负责人

bahnwaerter

其他贡献者

功能联络人

功能联络人

工作项

  • 将 SPICE 相关配置选项添加到 Nova 配置。

  • 创建 SPICE 相关配置选项的文档。

  • 扩展 libvirt hypervisor 驱动程序中的 SPICE 配置生成。

依赖项

无。

测试

  • 为每个函数实现单元测试,以覆盖已添加和更改方法的测试。

文档影响

  • 扩展 Nova 配置文档并添加 SPICE 相关压缩设置的文档。

参考资料

历史

修订

发布名称

描述

2023.1 Antelope

引入