OpenStack私有云建设而言,一个完善、高可用的企业私有云通常由管理节点、控制节点、计算节点、存储节点和网络节点组成的物理服务器集群构成。
1、管理节点
作为一个完善的OpenStack私有云集群,管理节点应该具备“带外”和“带内”管理功能,通过“带外”管理,实现裸机服务器的系统部署、远程开关机等功能,通过“带内”管理实现私有云集群的操作系统和OpenStack集群的部署管理。通常,带外和带内管理功能可以独立部署,也可合并在同一个管理节点上实现。在私有云集群中,除了集群管理之外,管理节点通常还会承担整个集群的共享仓库源,如Docker容器镜像仓库、yum源仓库以及操作系统镜像存放等功能。因此,在管理节点配置选型方面,需要考虑适当的本地存储空间,依据受管集群的规模大小,可以考虑配置适当的CPU、内存资源。另外,为了加速镜像资源传输,“带内”管理网络以万兆网卡为佳。由于管理节点通常仅在部署阶段高负载运行,因此一台普通的中低配服务器即可满足管理节点正常运行的资源需求。
2、控制节点
控制节点主要向OpenStack私有云用户提供管理控制集群的API,是用户与OpenStack云计算资源池进行交互的关键。控制节点通常运行OpenStack集群所依赖的基础架构软件,如RabbitMQ、MariaDB、HAProxy、Keepalived等。除此之外,控制节点还运行OpenStack各个项目的API服务,如Nova-api、Cinder-api和Glance-api等。对于一个面向生产环境的OpenStack高可用集群,控制节点应由奇数台(至少三台)物理服务器组成高可用集群。在资源配置方面,由于控制节点除了存储OpenStack服务日志外,几乎不占用额外的大量存储空间,因此系统盘的存储空间几乎够用。依据控制节点需要运行的OpenStack服务数量,可进行适当的CPU和内存资源配置,对于常规的OpenStack集群,三台中高配的物理服务器即可满足控制节点需求。
3、计算节点
计算节点是OpenStack对外提供计算资源的关键,通常由运行Hypervisor虚拟化引擎的物理服务器组成。在基于KVM的OpenStack私有云集群中,计算节点主要运行Nova-compute和libvirt服务。在计算节点物理服务器选型方面,为了保证虚拟机的热迁移和高可用,最好选用相同厂商、相同型号的CPU作为计算节点物理服务器,同时配置尽可能多的CPU和内存资源。如果网络采用Multi-host或者DVR(分布式虚拟路由)模式,则须考虑为计算节点规划用于外网通信的万兆网卡,对于计算节点之间或计算节点与控制节点之间通信的隧道网络,可配置多张物理网卡并以多网口绑定方式增加带宽。
4、存储节点
存储节点主要为OpenStack私有云提供块存储、对象存储或文件存储服务。在OpenStack私有云中,使用最普遍的还是Cinder块存储和Ceph分布式存储。如果仅使用OpenStack原生的块存储服务,则存储节点主要运行Cinder-volume服务;如果使用Ceph分布式存储集群,则存储节点运行Ceph-osd进程,通常Ceph-mon进程会部署在控制节点。就主流的OpenStack私有云建设而言,Ceph是推荐的最佳实践。
5、网络节点
网络节点为OpenStack私有云提供二层和三层网络服务,在官方推荐的OpenStack集群规划配置中,建议通过独立的网络节点提供网络服务。考虑到网络瓶颈和服务高可用问题,在实际的OpenStack高可用集群部署中,通常把网络服务部署在三个控制节点上,结合负载均衡(HAProxy)和虚拟路由冗余协议(Keepalived/VRRP)实现网络服务的高可用。因此,在实际的OpenStack私有云部署中,网络节点服务通常运行在控制节点,而网络服务的高可用模式可选择L3HA方案或者DVR方案。如果属于中小规模的集群,则L3 HA方案为最佳;如果集群规模较大,考虑到网络瓶颈问题,则可采用DVR方案。