裸金属服务

跨项目规范 - 无

功能追踪 - 无

问题概述

为了支持某些企业业务需求,OpenStack 必须能够以安全、多租户和高可用性方式配置裸金属机器,同时提供与虚拟机器相同的集成,与其他 OpenStack 服务(如卷存储、控制台访问等)。

裸金属机器的一些用例包括

  1. 对性能敏感的应用,希望最大化效率,减少虚拟化带来的开销,并避免来自相邻实例的 CPU、网络或 IO 波动。
  2. 对安全敏感的应用,或具有监管合规性要求的应用,这些应用无法在共享硬件上运行。
  3. 其许可成本取决于主机上的 CPU 数量的应用,无论是否使用虚拟化。
  4. 需要直接 IO 访问专用 PCI 设备的应用程序,这些设备尚未实现虚拟化。

为了支持这些用例,我们需要

  1. 裸金属机器配置:裸金属机器可以配置 CPU 规格、内存容量、本地存储驱动器类型,如 SATA 或 SSD 及其容量,以及网络 iplink 带宽。为了实现网络性能,可能需要 Infiniband 或 RoCEE。
  2. 网络隔离:一个租户的网络与其他租户的网络隔离。
  3. 存储服务集成:裸金属机器可以连接到块设备服务,如 Cinder。裸金属机器连接到专用于单个租户的 Cinder 后端。租户还可以将裸金属机器的内部存储备份到由 Cinder 管理的外部块设备,并从中恢复。
  4. 控制台:租户可以从控制台操作裸金属机器,查看与现有 Horizon UI 集成的控制台日志。
  5. 统一的 VM/BM 管理:通过软件提供统一的 VM 和 BM(裸金属机器)管理,该软件具有相似的服务/功能集,例如 FWaaS、LBaaS、VPNaaS、安全组、块存储、备份、高可用性、连接到虚拟网络中的 VM(VXLAN)和控制台。

机会/理由

云服务提供商希望支持裸金属机器,但提供与虚拟机器相同的弹性和服务导向属性的 IaaS 访问裸金属机器是一项艰巨的挑战。

需求规范

用例

本节使用了 OpenStack UX 人物

在创建此提案时,最匹配的角色似乎是 `Quinn the application developer`_。

  • BMT001 - 作为 Quinn the application developer,我希望使用裸金属机器,以便获得不受其他机器影响的稳定性能,也不受超visor的影响。
  • BMT002 - 作为 Quinn,我希望部署一个安全且干净的裸金属机器,无论之前谁使用过它。
  • BMT003 - 作为 Quinn,我希望拥有安全且隔离的网络,以便这些网络不受云中其他租户的影响。
  • BMT004 - 作为 Quinn,我希望备份裸金属机器的内部磁盘并创建快照。这可以备份到由 Cinder 管理的外部存储。
  • BMT005 - 作为 Quinn,我希望将裸金属机器与块存储服务集成,以便我可以使用外部存储服务。
  • BMT006 - 作为 Quinn,我希望从控制台日志中查看裸金属机器并从控制台操作,以便我可以在启动时分析问题等等。
  • BMT007 - 作为 Quinn,我希望在裸金属机器发生故障时立即继续操作,而无需任何手动操作,例如切换。类似于 High Availability for Virtual Machines 用户故事,所有者不应该自己设计故障转移机制。系统应该监控并检测裸金属机器故障,并自动故障转移到备用裸金属机器。
  • BMT008 - 作为 Quinn,我希望以与 VM 相同的方式使用具有网络服务(如 FWaaS、LBaaS、安全组、VPNaaS 以及连接到虚拟网络(VXLAN))的裸金属机器。

使用场景示例

  1. 成功的裸金属服务
    1. Quinn 创建虚拟网络。
    2. Quinn 启动裸金属机器。
    3. Quinn 从裸金属机器使用块存储。
    4. Quinn 使用具有稳定性能的裸金属机器。
  2. 分析裸金属机器重新启动问题
    1. Quinn 在重新启动时无法远程连接到裸金属机器。
    2. Quinn 可以从控制台日志中查看裸金属机器的状态。
    3. Quinn 分析启动问题并解决了该问题。
    4. Quinn 可以成功启动。
  3. 裸金属机器数据保护
    1. Quinn 备份裸金属机器中的数据。
    2. Quinn 从备份的数据中恢复。

要求

不适用。

已拒绝的提案

不适用。

术语表

不适用。