OpenStack Queens 一体化部署实战:从零搭建企业级私有云
1. 环境准备:CentOS 7系统调优
在开始部署OpenStack Queens之前,我们需要对CentOS 7系统进行一系列优化配置。这些步骤看似基础,但往往决定了后续部署的成败。我在实际项目中遇到过多次因为基础环境没配好,导致OpenStack安装失败的案例。
首先确认系统版本和网络配置。执行cat /etc/redhat-release确认系统版本为CentOS 7.6以上。网络配置建议使用静态IP,编辑/etc/sysconfig/network-scripts/ifcfg-ens33(网卡名可能不同)确保以下关键参数:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
接着处理主机名解析问题。我发现很多安装错误都源于主机名解析失败。建议在/etc/hosts中添加本机IP和主机名的映射,例如:
192.168.1.100 controller.example.com controller
安全策略调整是另一个重点。OpenStack需要关闭防火墙和SELinux:
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
网络服务切换也容易踩坑。CentOS 7默认的NetworkManager与OpenStack存在兼容问题,需要切换为传统network服务:
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl enable network
systemctl restart network
最后执行系统更新:
yum update -y
reboot
2. 软件源配置与依赖安装
OpenStack Queens的软件源配置是个技术活。我推荐使用RDO仓库,这是Red Hat官方维护的OpenStack发行版,稳定性有保障。
先安装基础仓库:
yum install -y centos-release-openstack-queens
很多新手会卡在yum-config-manager命令缺失上。这是因为系统默认没有安装yum-utils工具包:
yum install -y yum-utils
yum-config-manager --enable centos-openstack-queens
为了获取最新稳定版的组件,我们还需要添加RDO的Trunk仓库。这个步骤很多教程会忽略,但实测对解决依赖冲突很有帮助:
cd /etc/yum.repos.d/
curl -O https://trunk.rdoproject.org/centos7/delorean-deps.repo
curl -O https://trunk.rdoproject.org/centos7/current-passed-ci/delorean.repo
安装EPEL仓库也很关键,它为OpenStack提供了许多必要的依赖包:
yum install -y epel-release
更新所有软件包(注意这可能需要较长时间):
yum update -y
reboot
3. Packstack安装与配置
Packstack是OpenStack的自动化部署工具,特别适合快速搭建all-in-one环境。但直接运行packstack --allinone往往会遇到各种问题,这里分享几个实用技巧。
首先安装Packstack本体:
yum install -y openstack-packstack
生成应答文件是个好习惯,可以预先修改配置参数:
packstack --gen-answer-file=answers.txt
我建议修改应答文件中的这几个关键参数:
CONFIG_SWIFT_INSTALL=n
CONFIG_CEILOMETER_INSTALL=n
CONFIG_AODH_INSTALL=n
CONFIG_GNOCCHI_INSTALL=n
这些组件在测试环境中通常不需要,禁用后可以大幅缩短安装时间。第一次部署时,我还建议启用debug模式以便排查问题:
packstack --answer-file=answers.txt --debug
安装过程通常需要30-90分钟,取决于网络速度和硬件性能。如果中途报错,不要急着重装。先检查/var/log/packstack下的日志文件,常见问题有:
- 网络连接超时(更换软件镜像源)
- 内存不足(至少需要8GB)
- 主机名解析失败(检查/etc/hosts)
4. 部署后检查与故障排除
安装完成后,首先验证各服务状态:
systemctl list-units --type=service | grep openstack
检查网络命名空间是否创建成功:
ip netns list
Dashboard访问问题是最常见的。首先确认Apache服务正常运行:
systemctl status httpd
获取管理员凭证:
cat /root/keystonerc_admin
如果无法访问Dashboard,检查防火墙规则:
iptables -L -n | grep 80
对于Horizon登录失败的情况,可以尝试重置密码:
keystone-manage flush_memcache
systemctl restart httpd
存储服务验证也很重要:
source /root/keystonerc_admin
openstack volume service list
5. 生产环境优化建议
虽然all-in-one部署适合测试,但如果要用于生产环境,还需要进行以下优化:
- 数据库分离:将MySQL迁移到独立服务器
- 消息队列优化:调整RabbitMQ参数
- 日志集中管理:配置ELK收集各组件日志
- 监控告警:集成Prometheus和Grafana
- 备份策略:定期备份数据库和配置文件
性能调优方面,我建议优先调整这些参数:
- Nova的worker数量
- Neutron的DHCP租期
- Glance的缓存大小
- Keystone的token过期时间
硬件配置建议:
- 控制器节点:16核CPU/32GB内存/500GB SSD
- 计算节点:根据虚拟机需求配置
- 网络节点:10G网卡做bonding
6. 日常维护与升级
OpenStack的日常维护需要注意以下几点:
日志检查命令:
journalctl -u nova-api -f
tail -f /var/log/neutron/server.log
服务重启的正确顺序:
- 数据库服务
- 消息队列
- 认证服务
- 网络服务
- 计算服务
小版本升级步骤:
yum clean all
yum update -y
openstack-service restart
数据备份策略示例:
mysqldump -uroot -p --all-databases > openstack.sql
crontab -e
0 3 * * * /path/to/backup_script.sh
我在实际运维中发现,定期执行这些操作可以预防90%的问题:
- 每月清理一次数据库
- 每周检查磁盘空间
- 每天查看关键服务状态
- 监控消息队列积压情况
更多推荐
所有评论(0)