VMware 限制、份额和预留

https://blueprints.launchpad.net/nova/+spec/vmware-limits

VMware Virtual Center 提供了指定 CPU、内存、磁盘和网络适配器的限制、预留和份额的选项。

在 Juno 周期中,添加了对 CPU 限制、预留和份额的支持。此蓝图提出了一种支持内存、磁盘和网络限制、预留和份额的方法。

对于限制,利用率将不超过限制。预留将为实例保证。份额用于确定资源消费者之间的相对分配。通常,拥有更多份额的消费者将按比例获得更多资源,但受到其他某些约束的限制。

问题描述

VMware 驱动程序仅能够支持 CPU 限制。为管理员提供为内存、磁盘和网络适配器提供限制、预留和份额的能力,将是为租户提供 QoS 的非常有用的工具。

用例

  • 这将使云提供商能够向客户提供 SLA

  • 这将允许租户保证性能

项目优先级

提议的变更

由于不同驱动程序的不同模型以及后端暴露的 API,我们无法利用现有的 flavor extra specs。

例如,对于设备,libvirt 使用:‘hw_rng:rate_bytes’、‘hw_rng:rate_period’。

此外,还有以下磁盘 I/O 选项

‘disk_read_bytes_sec’、‘disk_read_iops_sec’、‘disk_write_bytes_sec’、‘disk_write_iops_sec’、‘disk_total_bytes_sec’ 和 ‘disk_total_iops_sec’。

对于带宽限制,有 ‘rxtx_factor’。 这将无法使我们为 vifs 提供限制、预留和份额。 这在某些基础中用于将信息传递给 Neutron,以便后端网络可以进行限制。 可以为 vifs 配置以下 extra_specs 以进行带宽 I/O

‘vif_inbound_average’、‘vif_inbound_burst’、‘vif_inbound_peak’、‘vif_outbound_average’、‘vif_outbound_burst’ 和 ‘vif_outbound_peak’。

由于 VC API,以上所有内容对于 VMware 驱动程序来说都是不可能的。 以下建议了以下补充内容

将为以下内容公开限制、预留和份额

  • memory

  • 磁盘

  • 网络适配器

flavor extra specs 用于 quotas 已经扩展以支持

  • quota:memory_limit - 虚拟机的内存利用率将不超过此限制,即使有可用资源。 这通常用于确保虚拟机在可用资源独立的情况下保持一致的性能。 单位为 MB。

  • quota:memory_reservation - 保证的最小预留 (MB)

  • quota:memory_shares_level - 分配级别。 这可以是 ‘custom’、‘high’ ‘normal’ 或 ‘low’。

  • quota:memory_shares_share - 如果使用 ‘custom’,则此为份额数。

  • quota:disk_io_limit - 虚拟机的 I/O 利用率将不超过此限制。 单位为每秒 I/O 数。

  • quota:disk_io_reservation - 预留控制用于在 IOPS 方面提供保证的分配

  • quota:disk_io_shares_level - 分配级别。 这可以是 ‘custom’、‘high’ ‘normal’ 或 ‘low’。

  • quota:disk_io_shares_share - 如果使用 ‘custom’,则此为份额数。

  • quota:vif_limit - 虚拟网络适配器的带宽限制。 虚拟网络适配器的利用率将不超过此限制,即使有可用资源。 单位为 Mbits/sec。

  • quota:vif_reservation - 保证给虚拟网络适配器的网络带宽量。 如果利用率低于预留,则其他虚拟网络适配器可以使用该资源。 预留不允许超过设置限制的值(如果设置了限制)。 单位为 Mbits/sec。

  • quota:vif_shares_level - 分配级别。 这可以是 ‘custom’、‘high’ ‘normal’ 或 ‘low’。

  • quota:vif_shares_share - 如果使用 ‘custom’,则此为份额数。

备选方案

另一种选择是创建一个抽象的用户概念,它可以帮助隐藏细节以及与最终用户之间的差异,并将差异隔离到仅管理员用户。

这实际上超出了所提出内容的范围,并且需要大量的跨驱动程序工作。 这不仅与 flavors 相关,可能也与 images 相关。

数据模型影响

REST API 影响

安全影响

通知影响

其他最终用户影响

性能影响

防止实例耗尽存储资源可能会对性能产生重大影响。

其他部署者影响

开发人员影响

实现

负责人

主要负责人

garyk

工作项

  • 限制、预留和份额的通用对象

  • 内存支持

  • 磁盘支持

  • vif 支持

依赖项

测试

这将由 VMware CI 进行测试。 我们将添加测试来验证这一点。

文档影响

这应该在 VMware 部分记录。

参考资料

vCenter API 可以在以下链接中查看

历史