从零到一:OpenStack Victoria版多节点生产环境部署全流程解析 1. OpenStack Victoria版生产环境部署概述OpenStack作为目前最流行的开源云计算平台之一在企业私有云建设中扮演着重要角色。Victoria版本作为OpenStack的稳定发行版在性能优化和功能完善方面都有显著提升。我最近刚完成了一个生产环境的部署项目采用1个控制节点2个计算节点的架构整个过程虽然遇到不少坑但最终搭建出了一个稳定可靠的云平台。对于系统管理员和运维工程师来说OpenStack的部署确实是个技术活。不同于单机实验环境生产环境的部署需要考虑网络规划、服务高可用、性能调优等诸多因素。CentOS 8作为部署基础操作系统提供了良好的稳定性和兼容性。在开始之前建议准备至少三台物理服务器或虚拟机配置建议如下控制节点8核CPU/16GB内存/100GB存储计算节点16核CPU/32GB内存/200GB存储根据实际负载可调整网络建议千兆或万兆网络环境2. 基础环境准备2.1 系统安装与网络配置首先在三台节点上安装CentOS 8操作系统。安装完成后首要任务是配置网络。生产环境中建议将管理网络、存储网络和业务网络分离。这里我们先配置管理网络# 编辑网络配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens192 # 配置示例 DEVICEens192 BOOTPROTOstatic ONBOOTyes IPADDR192.168.111.126 # 控制节点IP NETMASK255.255.255.0 GATEWAY192.168.111.1 DNS18.8.8.8配置完成后需要设置主机名并更新hosts文件。这一步对多节点通信至关重要# 控制节点 hostnamectl set-hostname control # 计算节点1 hostnamectl set-hostname compute1 # 计算节点2 hostnamectl set-hostname compute2 # 所有节点都需更新/etc/hosts vim /etc/hosts 192.168.111.126 control 192.168.111.127 compute1 192.168.111.128 compute22.2 时间同步配置在多节点环境中时间同步是基础中的基础。我们使用chrony来实现时间同步# 控制节点安装chrony yum install -y chrony # 编辑配置文件 vim /etc/chrony.conf # 添加公共NTP服务器 server ntp.aliyun.com iburst # 允许内网其他节点同步 allow 192.168.111.0/24 # 启动服务 systemctl enable --now chronyd # 计算节点配置 vim /etc/chrony.conf # 指定控制节点为时间源 server control iburst # 验证时间同步状态 chronyc sources -v3. OpenStack基础服务安装3.1 软件仓库配置Victoria版本的安装需要配置正确的软件源# 安装OpenStack仓库 yum install -y centos-release-openstack-victoria # 启用PowerTools仓库 yum config-manager --set-enabled PowerTools # 更新系统 yum upgrade -y # 安装OpenStack客户端 yum install -y python3-openstackclient openstack-selinux3.2 数据库服务安装MariaDB作为OpenStack的核心数据库需要优先安装# 安装MariaDB yum install -y mariadb mariadb-server python3-PyMySQL # 创建配置文件 vim /etc/my.cnf.d/openstack.cnf [mysqld] bind-address 192.168.111.126 default-storage-engine innodb innodb_file_per_table on max_connections 4096 collation-server utf8_general_ci character-set-server utf8 # 启动服务 systemctl enable --now mariadb # 安全初始化 mysql_secure_installation3.3 消息队列服务RabbitMQ负责OpenStack各组件间的通信# 安装RabbitMQ yum install -y rabbitmq-server # 启动服务 systemctl enable --now rabbitmq-server # 添加OpenStack用户 rabbitmqctl add_user openstack 密码 rabbitmqctl set_permissions openstack .* .* .*4. OpenStack核心组件部署4.1 Keystone身份服务Keystone是OpenStack的认证中心需要最先部署# 创建数据库 mysql -u root -p CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO keystonelocalhost IDENTIFIED BY 密码; GRANT ALL PRIVILEGES ON keystone.* TO keystone% IDENTIFIED BY 密码; # 安装软件包 yum install -y openstack-keystone httpd python3-mod_wsgi # 配置/etc/keystone/keystone.conf [database] connection mysqlpymysql://keystone:密码control/keystone [token] provider fernet # 初始化数据库 su -s /bin/sh -c keystone-manage db_sync keystone # 初始化Fernet密钥 keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone keystone-manage credential_setup --keystone-user keystone --keystone-group keystone # 引导身份服务 keystone-manage bootstrap --bootstrap-password 密码 \ --bootstrap-admin-url http://control:5000/v3/ \ --bootstrap-internal-url http://control:5000/v3/ \ --bootstrap-public-url http://control:5000/v3/ \ --bootstrap-region-id RegionOne # 配置Apache vim /etc/httpd/conf/httpd.conf ServerName control ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/ systemctl enable --now httpd4.2 Glance镜像服务Glance负责管理虚拟机镜像# 创建数据库 mysql -u root -p CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO glancelocalhost IDENTIFIED BY 密码; GRANT ALL PRIVILEGES ON glance.* TO glance% IDENTIFIED BY 密码; # 创建服务凭证 openstack user create --domain default --password 密码 glance openstack role add --project service --user glance admin openstack service create --name glance --description OpenStack Image image # 创建API端点 openstack endpoint create --region RegionOne image public http://control:9292 openstack endpoint create --region RegionOne image internal http://control:9292 openstack endpoint create --region RegionOne image admin http://control:9292 # 安装软件包 yum install -y openstack-glance # 配置/etc/glance/glance-api.conf [glance_store] stores file,http default_store file filesystem_store_datadir /var/lib/glance/images/ # 同步数据库 su -s /bin/sh -c glance-manage db_sync glance # 启动服务 systemctl enable --now openstack-glance-api5. 计算与网络服务部署5.1 Nova计算服务Nova是OpenStack的核心计算服务# 控制节点安装 yum install -y openstack-nova-api openstack-nova-conductor \ openstack-nova-novncproxy openstack-nova-scheduler # 计算节点安装 yum install -y openstack-nova-compute # 详细配置参考前文特别注意virt_type设置 # 对于没有硬件虚拟化支持的环境 [libvirt] virt_type qemu5.2 Neutron网络服务Neutron提供网络虚拟化功能# 控制节点安装 yum install -y openstack-neutron openstack-neutron-ml2 \ openstack-neutron-linuxbridge ebtables # 计算节点安装 yum install -y openstack-neutron-linuxbridge ebtables ipset # 特别注意Linux网桥配置 [linux_bridge] physical_interface_mappings provider:ens1926. 部署验证与排错完成所有组件安装后需要进行全面验证# 检查服务状态 openstack compute service list openstack network agent list # 创建测试网络 openstack network create --share --external --provider-physical-network provider \ --provider-network-type flat public # 创建测试实例 openstack server create --flavor m1.tiny --image cirros --network public test-instance常见问题排查时间不同步导致认证失败 - 检查chrony服务数据库连接问题 - 检查防火墙和bind-address设置RabbitMQ通信问题 - 检查5672端口和用户权限网络不通 - 检查网桥配置和物理接口映射整个部署过程大约需要4-6小时具体时间取决于网络环境和操作熟练度。建议在部署前做好详规划特别是网络架构设计。生产环境中还需要考虑备份、监控和高可用方案这些内容我们将在后续文章中详细介绍。