问题概述
为了支持某些企业业务需求,OpenStack 必须能够以安全、多租户和高可用性方式配置裸金属机器,同时提供与虚拟机器相同的集成,与其他 OpenStack 服务(如卷存储、控制台访问等)。
裸金属机器的一些用例包括
- 对性能敏感的应用,希望最大化效率,减少虚拟化带来的开销,并避免来自相邻实例的 CPU、网络或 IO 波动。
- 对安全敏感的应用,或具有监管合规性要求的应用,这些应用无法在共享硬件上运行。
- 其许可成本取决于主机上的 CPU 数量的应用,无论是否使用虚拟化。
- 需要直接 IO 访问专用 PCI 设备的应用程序,这些设备尚未实现虚拟化。
为了支持这些用例,我们需要
- 裸金属机器配置:裸金属机器可以配置 CPU 规格、内存容量、本地存储驱动器类型,如 SATA 或 SSD 及其容量,以及网络 iplink 带宽。为了实现网络性能,可能需要 Infiniband 或 RoCEE。
- 网络隔离:一个租户的网络与其他租户的网络隔离。
- 存储服务集成:裸金属机器可以连接到块设备服务,如 Cinder。裸金属机器连接到专用于单个租户的 Cinder 后端。租户还可以将裸金属机器的内部存储备份到由 Cinder 管理的外部块设备,并从中恢复。
- 控制台:租户可以从控制台操作裸金属机器,查看与现有 Horizon UI 集成的控制台日志。
- 统一的 VM/BM 管理:通过软件提供统一的 VM 和 BM(裸金属机器)管理,该软件具有相似的服务/功能集,例如 FWaaS、LBaaS、VPNaaS、安全组、块存储、备份、高可用性、连接到虚拟网络中的 VM(VXLAN)和控制台。