CentOS 7 + Packstack 半小时搞定OpenStack Queens一体化部署实战指南
在云计算技术快速发展的今天,OpenStack作为开源云平台解决方案的代表,已经成为企业私有云建设的首选。但对于初学者来说,从零开始部署OpenStack往往是一个充满挑战的过程。本文将分享一个经过实战验证的快速部署方案,帮助你在半小时内完成OpenStack Queens版本的一体化部署,同时提供详细的排错指南,确保部署过程顺畅无阻。
1. 环境准备与系统配置
在开始部署之前,我们需要确保CentOS 7系统已经完成了基础配置。这些准备工作看似简单,但往往是导致后续安装失败的关键因素。
首先,确认系统已经配置了静态IP地址。运行以下命令检查网络配置:
ip addr show如果显示的是动态获取的IP地址(通常以dhcp标识),需要修改网络配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens33将BOOTPROTO从dhcp改为static,并添加以下配置(根据你的实际网络环境调整):
IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4接下来,我们需要处理几个关键的系统配置项:
关闭防火墙:
systemctl stop firewalld systemctl disable firewalld禁用SELinux:
setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
注意:SELinux配置修改后需要重启系统才能完全生效。可以使用
getenforce命令验证当前状态。
- 切换网络管理服务: OpenStack与NetworkManager存在兼容性问题,需要切换到传统的network服务:
systemctl stop NetworkManager systemctl disable NetworkManager systemctl enable network systemctl restart network
最后,更新系统并安装必要的工具:
yum update -y yum install -y yum-utils vim wget curl2. OpenStack Queens软件源配置
正确的软件源配置是成功安装OpenStack的基础。我们将使用RDO项目提供的Queens版本软件源。
首先安装OpenStack Queens仓库:
yum install -y centos-release-openstack-queens启用Queens仓库并添加RDO官方源:
yum-config-manager --enable centos-openstack-queens 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仓库(Extra Packages for Enterprise Linux):
yum install -y epel-release yum update -y提示:系统更新后建议重启以确保所有更新生效:
reboot
3. Packstack安装与配置
Packstack是Red Hat开发的OpenStack部署工具,能够自动化完成大部分安装配置工作。
安装Packstack及其依赖:
yum install -y openstack-packstack生成应答文件(answer file)并进行自定义配置:
packstack --gen-answer-file=answer.txt在answer.txt中,建议修改以下关键参数:
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:ens33 CONFIG_PROVISION_DEMO=n开始安装OpenStack:
packstack --answer-file=answer.txt安装过程通常需要15-30分钟,具体时间取决于网络速度和服务器性能。如果安装过程中出现错误,Packstack会显示具体的错误信息,大多数情况下重新运行安装命令即可继续。
4. 常见问题排查与解决方案
在实际部署过程中,可能会遇到各种问题。以下是几个常见问题及其解决方案:
4.1 网络配置问题
症状:Dashboard可以访问,但实例无法获取IP或无法连接外网。
解决方案:
检查网络桥接配置:
ovs-vsctl show确保br-ex桥接器正确绑定到物理网卡。
验证网络命名空间:
ip netns list如果没有显示任何命名空间,可能是Neutron服务没有正确启动。
4.2 数据库连接问题
症状:安装过程中出现MySQL或MariaDB连接错误。
解决方案:
检查数据库服务状态:
systemctl status mariadb重置数据库root密码:
mysql_secure_installation修改Packstack应答文件中的数据库密码配置,重新运行安装。
4.3 时间同步问题
症状:各服务组件间出现认证失败或令牌过期错误。
解决方案:
确保所有节点时间同步:
yum install -y chrony systemctl enable chronyd systemctl start chronyd chronyc sources4.4 资源不足问题
症状:安装过程中服务启动失败或系统变得极其缓慢。
解决方案:
OpenStack对系统资源有一定要求,建议最小配置:
- 4核CPU
- 8GB内存
- 50GB磁盘空间
如果资源有限,可以在应答文件中禁用一些可选服务:
CONFIG_CEILOMETER_INSTALL=n CONFIG_AODH_INSTALL=n CONFIG_GNOCCHI_INSTALL=n5. 部署验证与基本使用
安装完成后,可以通过以下步骤验证OpenStack是否正常运行:
访问Dashboard:
- 在浏览器中输入
http://<服务器IP>/dashboard - 用户名:admin
- 密码:位于
/root/keystonerc_admin文件中
- 在浏览器中输入
命令行验证:
source /root/keystonerc_admin openstack service list应该显示所有核心服务的列表。
创建测试网络:
openstack network create test_network openstack subnet create --network test_network --subnet-range 192.168.100.0/24 test_subnet启动测试实例:
openstack flavor create --ram 512 --disk 5 --vcpus 1 m1.tiny openstack image create --file cirros-0.5.2-x86_64-disk.img --disk-format qcow2 --container-format bare cirros openstack server create --image cirros --flavor m1.tiny --network test_network test_instance
6. 性能优化建议
为了让你的OpenStack环境运行得更高效,可以考虑以下优化措施:
数据库优化:
vi /etc/my.cnf.d/mariadb-server.cnf添加以下配置:
[mysqld] innodb_buffer_pool_size = 1G innodb_log_file_size = 256M innodb_flush_log_at_trx_commit = 2消息队列优化:
vi /etc/rabbitmq/rabbitmq.config添加:
{vm_memory_high_watermark, 0.4}Nova计算节点优化:
vi /etc/nova/nova.conf修改:
[DEFAULT] reserved_host_memory_mb = 2048 cpu_allocation_ratio = 4.0 ram_allocation_ratio = 1.5Neutron网络优化:
vi /etc/neutron/plugins/ml2/ml2_conf.ini添加:
[ml2] mechanism_drivers = openvswitch,l2population
7. 日常维护与监控
为了确保OpenStack环境稳定运行,建议建立以下维护流程:
定期备份:
- 数据库备份:
mysqldump --all-databases > openstack_backup.sql - 配置文件备份:
tar czf /root/openstack_config_backup.tar.gz /etc/nova /etc/neutron /etc/glance /etc/cinder
- 数据库备份:
日志监控:
- 关键服务日志位置:
- Nova:
/var/log/nova/ - Neutron:
/var/log/neutron/ - Keystone:
/var/log/keystone/ - Glance:
/var/log/glance/
- Nova:
- 关键服务日志位置:
资源监控: 安装和配置Ceilometer和Gnocchi进行资源监控:
yum install -y openstack-ceilometer-api openstack-ceilometer-collector openstack-ceilometer-notification openstack-ceilometer-central systemctl enable openstack-ceilometer-api.service openstack-ceilometer-notification.service openstack-ceilometer-central.service openstack-ceilometer-collector.service systemctl start openstack-ceilometer-api.service openstack-ceilometer-notification.service openstack-ceilometer-central.service openstack-ceilometer-collector.service定期更新:
yum update -y
在实际运维中,我发现最常出现问题的环节是网络配置和资源分配。特别是在多节点环境中,确保各节点间的网络连通性和时间同步至关重要。建议在正式环境部署前,先在测试环境中充分验证所有配置。