1. OpenStack Train 部署前的关键准备第一次部署OpenStack时我在时区配置上栽过跟头。时区设置错误导致日志时间全部错乱排查问题时差点让我崩溃。所以现在每次部署前我都会反复确认所有节点的时区设置为Asia/Shanghai。1.1 硬件规划与节点划分生产环境中建议至少准备三台物理服务器控制节点16核CPU/32GB内存/200GB系统盘100GB数据盘计算节点根据虚拟机密度配置建议32核CPU起/64GB内存/系统盘高速SSD存储存储节点大容量硬盘阵列建议使用RAID 10保障数据安全特别注意所有节点需要配置时钟同步NTP时间不同步会导致认证服务异常。我在实际项目中遇到过Keystone认证失败的问题最后发现是计算节点时间比控制节点快了3分钟。1.2 操作系统配置要点以CentOS 7为例这些配置直接影响后续服务部署# 关闭SELinux避免权限问题 sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config # 关闭防火墙OpenStack各组件间需要大量端口通信 systemctl stop firewalld systemctl disable firewalld # 配置静态IP示例 cat /etc/sysconfig/network-scripts/ifcfg-eth0 EOF DEVICEeth0 TYPEEthernet ONBOOTyes BOOTPROTOnone IPADDR10.0.19.133 PREFIX24 GATEWAY10.0.19.254 DNS18.8.8.8 EOF1.3 软件源与依赖安装Train版本对软件版本有严格要求必须使用官方指定源# 添加OpenStack Train源 yum install centos-release-openstack-train -y # 安装基础工具 yum install -y python-openstackclient openstack-selinux # 解决常见依赖冲突特别是qpid-proton版本问题 yum install -y python2-qpid-proton-0.26.0-2.el7.x86_642. 核心服务部署实战2.1 Keystone认证服务Keystone就像OpenStack的身份证系统所有服务都要在这里注册。部署时最容易出错的是Fernet令牌配置# 初始化密钥库务必备份这三个目录 keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone keystone-manage credential_setup --keystone-user keystone --keystone-group keystone # 引导服务时注意URL必须包含/v3 keystone-manage bootstrap --bootstrap-password Mss123456 \ --bootstrap-admin-url http://controller:5000/v3/ \ --bootstrap-internal-url http://controller:5000/v3/ \ --bootstrap-public-url http://controller:5000/v3/ \ --bootstrap-region-id RegionOne验证服务是否正常openstack --os-auth-url http://controller:5000/v3 \ --os-project-domain-name Default --os-user-domain-name Default \ --os-project-name admin --os-username admin token issue2.2 Glance镜像服务上传镜像时遇到过磁盘格式识别错误的问题后来发现必须明确指定格式glance image-create --name CentOS-7 \ --file CentOS-7-x86_64-GenericCloud.qcow2 \ --disk-format qcow2 --container-format bare \ --visibilitypublic生产环境建议配置多后端存储将频繁访问的系统镜像放在SSD存储大容量镜像放在普通硬盘。2.3 Nova计算服务计算节点部署后务必检查虚拟化支持egrep -c (vmx|svm) /proc/cpuinfo # 返回值应≥1如果返回0需要在/etc/nova/nova.conf中强制指定虚拟化类型[libvirt] virt_type qemu # 对于没有硬件虚拟化的环境3. 网络与存储配置3.1 Neutron网络服务网络规划是OpenStack最复杂的部分之一。我的经验是Provider网络用于连接外部网络如互联网Self-service网络租户内部网络通过VXLAN实现隔离关键配置示例[ml2] type_drivers flat,vlan,vxlan tenant_network_types vxlan mechanism_drivers linuxbridge,l2population [ml2_type_vxlan] vni_ranges 1:10003.2 Cinder块存储生产环境一定要配置多路径存储我吃过单点故障的亏# 创建LVM卷组 pvcreate /dev/sdb vgcreate cinder-volumes /dev/sdb # 配置多路径如果使用SAN存储 yum install -y device-mapper-multipath mpathconf --enable --with_multipathd y4. 运维与问题排查4.1 服务状态检查这套命令组合能快速定位问题# 检查所有服务状态 openstack compute service list openstack network agent list # 查看具体服务日志 journalctl -u nova-api -f # 实时查看Nova API日志4.2 常见故障处理问题1虚拟机启动失败报No valid host was found检查计算节点资源是否充足确认调度器日志/var/log/nova/nova-scheduler.log问题2网络连通性异常检查Linux网桥brctl show验证安全组规则openstack security group rule list问题3镜像上传失败检查Glance存储目录权限确认磁盘空间df -h /var/lib/glance5. 生产环境优化建议经过多个项目实践这些优化措施效果显著数据库优化为MariaDB配置innodb_buffer_pool_size建议物理内存的70%消息队列RabbitMQ开启镜像队列防止消息丢失日志管理统一接入ELK栈方便问题追踪监控告警PrometheusGranfana监控关键指标最后提醒部署完成后立即备份/etc目录和数据库我在一次误操作后靠这个习惯挽回了整个集群。