在 CentOS 上构建 OpenStack 云平台:专业部署指南
作为现代云计算的核心基础设施,OpenStack 以其开源、灵活和可扩展的特性,成为众多企业和开发者构建私有云或混合云的首选方案,而 CentOS,凭借其出色的稳定性、长期支持周期以及与 RHEL 的紧密兼容性,成为部署 OpenStack 的坚实基石,本文将详细阐述在 CentOS 系统上专业部署 OpenStack 的关键步骤与核心考量。
为何选择 CentOS 作为 OpenStack 的基石?

- 卓越稳定性与可靠性: CentOS 严格遵循上游 RHEL 的发布流程,经过充分测试验证,为承载 OpenStack 复杂服务栈提供企业级稳定运行环境。
- 长期安全支持 (LTS): 获得持续多年的安全更新与漏洞修复保障,确保云平台底层操作系统的安全性,这对生产环境至关重要。
- 广泛的社区与生态支持: 庞大的 CentOS 用户群和开发者社区意味着丰富的知识库、经验分享和成熟的解决方案,遇到问题更容易获得支持。
- 与 OpenStack 的天然契合: OpenStack 社区对 RHEL/CentOS 系列提供优先且最完善的支持,官方文档和软件包兼容性通常最佳。
部署前关键准备:规划与资源
明确硬件需求:
- 控制节点: 承担核心管理服务(API、调度、数据库、消息队列),建议配置:多核 CPU (8+ 核心),充足内存 (32GB+),高速 SSD 存储 (200GB+),双网卡(管理+外部/存储网络)。
- 计算节点: 运行虚拟机实例,需求取决于预期负载,CPU 核心数、内存容量(建议 64GB 起)和本地存储(或连接共享存储)是关键,支持硬件虚拟化 (Intel VT-x/AMD-V) 是必须。
- 网络节点: (可选,可合设) 处理网络流量(路由、防火墙、负载均衡),需多网卡处理不同网络平面流量。
- 存储节点: (可选,对象/块存储) 根据 Ceph 或其他后端方案配置专用存储服务器。
规划网络架构:
- 管理网络 (Management): 节点间内部通信,API 访问,需高可靠、低延迟。
- 租户网络 (Tenant/Project): 虚拟机实例间的通信网络。
- 外部网络 (External/Public): 提供虚拟机访问互联网或外部用户访问云服务的通道。
- 存储网络 (Storage): (如有专用存储节点) 用于节点与存储后端间数据传输,建议万兆或更高速网络隔离。
- IP 地址规划: 为每个网络平面、每个节点接口、浮动 IP 池、管理 VIP 等预留充足且不冲突的 IP 地址段。
操作系统准备:
- 版本选择: CentOS 7 或 CentOS 8 Stream 是常见选择(需注意 CentOS 8 Stream 的滚动更新特性),推荐使用最新稳定版本,所有节点系统时间必须同步 (NTP)。
- 最小化安装: 采用最小化安装模式,仅安装必要基础包,减少潜在安全漏洞和资源占用。
- 网络配置: 根据规划配置各节点网卡,设置静态 IP 地址(生产环境强烈推荐),配置主机名解析(/etc/hosts 或 DNS)。
- 基础环境:
# 禁用 SELinux (简化部署,生产环境需评估策略) setenforce 0 sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config # 关闭防火墙 (部署阶段简化,后期按需配置策略) systemctl stop firewalld systemctl disable firewalld # 安装必要工具 yum install -y vim wget net-tools epel-release # 确保系统更新 yum update -y
利用 Packstack 实现高效部署
对于快速搭建测试或中小规模环境,OpenStack 社区提供的 Packstack 工具是理想选择,它基于 Puppet 模块,能自动化完成多节点或单节点 (All-in-One) 的安装配置。

配置 OpenStack 仓库:
# CentOS 7 (以 Yoga 为例) yum install -y centos-release-openstack-yoga # CentOS 8 Stream (以 Yoga 为例) dnf install -y centos-release-openstack-yoga yum update -y
安装 Packstack:
yum install -y openstack-packstack
生成应答文件 (Answer File): 这是 Packstack 安装的核心配置文件。
packstack --gen-answer-file=my_answers.txt
关键配置编辑 (
my_answers.txt):CONFIG_DEFAULT_PASSWORD=your_strong_admin_pass:设置所有 OpenStack 服务组件的统一管理员密码(生产环境建议后续修改)。CONFIG_PROVISION_DEMO=n:通常禁用演示项目/用户创建。CONFIG_KEYSTONE_ADMIN_PW=your_keystone_admin_pass:设置 Keystone 管理员密码。CONFIG_HORIZON_SSL=y:强烈建议启用 Horizon 仪表板的 HTTPS。CONFIG_CONTROLLER_HOST=:指定控制节点主机名或 IP。CONFIG_COMPUTE_HOSTS=:指定计算节点主机名或 IP 列表 (逗号分隔)。CONFIG_NETWORK_HOSTS=:指定网络节点主机名或 IP (如分离部署)。CONFIG_STORAGE_HOST=:指定存储节点主机名或 IP (如使用专用存储)。CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=:配置物理网络到虚拟网桥的映射 (如physnet1:br-ex)。CONFIG_NEUTRON_OVS_BRIDGE_IFACES=:指定连接外部网络的物理网卡 (如br-ex:eth1)。- 仔细配置网络选项: 根据规划设置管理网络、租户网络隧道类型 (VXLAN/GRE)、外部网络接口、浮动 IP 范围等,这是部署成功的关键。
执行自动化部署:
packstack --answer-file=my_answers.txt
此过程耗时较长,需耐心等待,脚本将自动安装配置所有 OpenStack 核心服务 (Nova, Neutron, Glance, Keystone, Horizon, Cinder 等)。

部署后验证与基础操作
- 访问 Dashboard: 浏览器访问
https://<controller-ip>/dashboard,使用用户名admin和在应答文件中设置的CONFIG_KEYSTONE_ADMIN_PW密码登录 Horizon。 - 环境变量加载: 在控制节点执行管理员凭证脚本(通常在
/root/keystonerc_admin或 Packstack 生成的位置)以使用命令行工具:source /root/keystonerc_admin
- 基础功能验证:
- 镜像上传: 在 Horizon (Admin -> Images) 或使用
openstack image create上传一个测试镜像 (如 CirrOS)。 - 创建网络: 在 Horizon (Project -> Network -> Networks) 或使用
openstack network create创建租户网络和子网。 - 启动实例: 在 Horizon (Project -> Compute -> Instances) 或使用
openstack server create选择镜像、规格、网络启动虚拟机。 - 分配浮动 IP: 在实例关联的网络中申请浮动 IP 并绑定到实例,测试外部网络连通性。
- 镜像上传: 在 Horizon (Admin -> Images) 或使用
- 服务状态检查: 使用
openstack命令或systemctl检查关键服务状态 (nova-api, neutron-server, glance-api 等)。
进阶考量与生产环境建议
- 高可用 (HA): 生产环境必须部署控制节点高可用,这涉及 API 服务负载均衡 (HAProxy/Keepalived)、数据库 (Galera/MariaDB Cluster)、消息队列 (RabbitMQ Mirrored Queues) 的集群化配置,Packstack 也支持生成 HA 配置的应答文件。
- 存储后端: 评估块存储 (Cinder) 和对象存储 (Swift) 需求,Ceph RBD 是 Cinder 的流行高性能后端;Swift 或 Ceph RGW 可用于对象存储,专用存储网络和优化至关重要。
- 网络优化: 随着规模增长,考虑 DVR (分布式虚拟路由)、L3 HA、SDN 解决方案 (如 OVN) 或硬件卸载 (SR-IOV, DPDK) 提升网络性能和可靠性。
- 日志与监控: 集中式日志收集 (ELK Stack, Loki) 和全面监控 (Prometheus + Grafana, Zabbix) 是运维 OpenStack 的生命线,需在部署早期规划实施。
- 备份与恢复: 制定严格的数据库备份策略、配置文件备份和虚拟机实例备份方案。
- 持续更新与维护: OpenStack 版本迭代较快,规划好小版本升级路径,利用社区工具如
openstack-upgrade进行滚动升级,密切关注安全公告。 - 安全加固: 重新启用并精细配置 SELinux 策略;启用并严格配置防火墙规则;启用 TLS 加密所有 API 和组件间通信;实施基于角色的精细化访问控制 (RBAC);定期进行安全审计。
在 CentOS 上成功部署 OpenStack 只是构建企业级私有云的第一步,扎实的前期规划、对网络架构的深刻理解、自动化部署工具的熟练运用,以及持续的精益运维和优化,才是确保 OpenStack 云平台稳定、高效、安全服务于业务需求的根本,CentOS 提供的坚实底座与 OpenStack 的无限潜能结合,为组织释放云计算价值提供了强大动力,掌握这一技术栈,无疑为现代 IT 基础设施管理者增添了关键竞争力。
个人观点: 虽然 Packstack 极大简化了初始部署,但深入理解 OpenStack 各组件交互原理和网络模型,对于后续故障排查、性能调优和高可用架构设计至关重要,生产环境切忌仅满足于 All-in-One 模式,应严格遵循分离部署和高可用原则,CentOS 的稳定基因与 OpenStack 的开放生态结合,为构建可控、高效的云环境提供了可靠路径。
