一条龙! 有关基于 OpenStack 如何部署HPC
毫无疑问,OpenStack 是一个令人兴奋的项目,也是领先的开源基础设施即服务平台。在过去的几年中,笔者为多个客户和用例构建并部署了数十个 OpenStack 云。而在过去的一年中,笔者一直在研究 OpenStack 上高性能计算( HPC )的用例。
本文列出的是一些有关托管高性能和高吞吐量工作负载的注意事项。
首先,让我们从在 OpenStack 上托管 HPC 工作负载时可以使用的三种体系结构开始:
1、在 OpenStack 上虚拟化 HPC (在此架构中,HPC 集群的所有组件都在 OpenStack 中虚拟化)
2、OpenStack 上的裸机 HPC ( HPC 的所有组件都使用 OpenStack Ironic 部署在裸机服务器中)
3、虚拟化的头节点和裸机计算节点(头节点(调度器、主节点和登录节点)在 OpenStack 中虚拟化,计算节点使用OpenStack Ironic 部署在裸机服务器中 )
现在你已经对可以在 OpenStack 中部署HPC 软件的三种体系结构有了大概了解。
下面将讨论一些托管这类型工作负载的 OpenStack 最佳实践。
网络
对于 OpenStack 的网络方面,有两个推荐的配置选项:
—— provider 网络: OpenStack 管理员创建这些网络并将其直接映射到数据中心( L2 )中的现有物理网络。由于直接连接到 L2 交换基础设施, provider 网络不需要使用 OpenStack 控制平面来路由 L3 流量,因为它们应该在 DC 网络拓扑中具有 L3 网关。
—— SRIOV : 建议基于性能要求的 HPC 工作负载使用 SRIOV / SR-IOV (单根输入/输出虚拟化)。SR-IOV 使 OpenStack 能够通过使用可用的 SRIOV NIC 虚拟功能( VF )将物理 NIC 的功能直接扩展到实例。另外,对 IEEE 802.1br 的支持允许虚拟NIC 与物理交换机集成并由其管理。
需要提到的是,在各个供应商进行的测试中,结果显示 SR-IOV 可以在单个虚拟机/实例的 CPU 开销成本较低的情况下实现接近线速的性能。
实施 SRIOV 时,你需要考虑两个基本限制:无法对使用 VF 设备和绕过 OpenStack 的安全组的实例使用实时迁移。
存储
对于 HPC 体系架构,有两个主要的存储类别需要考虑:
——OpenStack 存储:镜像( Glance )、临时存储( Nova )和卷( Cinder )
——基于 HPC 集群文件的数据存储:由 HPC 集群用于存储数据
基于这两个类别,下面是在设计集群时需要考虑的一些建议:
OpenStack 存储:
—— Glance 和 Nova :对于 Glance 和 Nova 存储,笔者推荐 Ceph 。Ceph 的重要优势之一( 除了与 OpenStack 的紧密集成之外 )是你可以在实例创建时获得镜像拷贝提供的性能优势。临时工作负载的另一个优点(在这种情况下不使用 SRIOV )是在计算集群成员之间进行实时迁移的能力。
—— Cinder :对于此 HPC 用例中的 Cinder 后端,我推荐使用 Ceph (与前一点相同的优势)以及支持 Cinder 驱动程序的 NetApp 、EMC VNX 和类似系统的 NFS / iSCSI 后端。
基于 HPC 集群文件的数据存储:
HPC 中常用的并行文件系统(如 Lustre、GPFS、OrangeFS )应通过专用的 SRIOV / Provider 网络访问。另一个推荐的后端是 Ceph ,也提供直接从SRIOV /Provider 网络访问以获得更好的性能。
重要信息:
一般来说,Ceph 提供了非常灵活的后端。体系架构良好的 Ceph 集群可以在不同配置/体系结构中让多种类型的工作负载受益,例如:
——基于以太网的连接可通过前端的更高吞吐量NIC接口和后端存储流量( 10/25/40/50/100 Gbps )提高性能,以及可增加可用带宽量的 LACP 配置。
——存储服务器组件可以是 NVMe、SSD、SAS 和 SATA 的组合。通过量身定制提供所需的 IO 性能。
——该技术的分布式特性提供了一个灵活且有弹性的平台。
接下来要考虑的是在 OpenStack 上自动部署 HPC应用程序。为此,可以使用多种工具:来自编排系统的 Heat、Ansible 或 API 调用。