基于Packstack的OpenStack单节点快速部署实战:从虚拟机配置到云平台启动
1. 环境准备虚拟机配置与CentOS安装想要快速搭建OpenStack测试环境单节点部署是最省心的选择。我最近用Packstack工具在VMware虚拟机上成功部署了OpenStack Stein版本整个过程比想象中简单。下面就把我的实战经验分享给大家手把手教你从零开始搭建。首先需要准备一台性能足够的宿主机建议CPU至少4核内存16GB以上因为虚拟机需要分配4GB内存和100GB磁盘空间。我用的是Windows 10系统安装了VMware Workstation 17。这里有个小技巧如果你的宿主机内存不足可以适当减少虚拟机内存到3GB但低于2GB可能会导致部署失败。创建虚拟机时有几个关键设置需要注意操作系统选择CentOS 7 64位虽然CentOS 8也可以但Packstack对7的支持更稳定网络适配器建议选择NAT模式方便虚拟机上网下载安装包磁盘一定要设置为单个文件存储性能会比拆分成多个文件更好安装CentOS 7时建议选择最小化安装Minimal Install这样系统更干净。安装完成后别忘了做这几件事配置静态IP后面Packstack部署要用关闭防火墙和SELinux否则可能导致服务无法正常通信替换yum源为阿里云镜像下载速度能快10倍# 设置静态IP示例根据你的实际网络修改 vi /etc/sysconfig/network-scripts/ifcfg-ens33关键参数要改成这样BOOTPROTOstatic ONBOOTyes IPADDR172.17.2.100 # 你的IP NETMASK255.255.255.0 GATEWAY172.17.2.2 DNS1114.114.114.1142. 系统优化与Packstack安装系统装好后先别急着部署有几个优化步骤能让后续过程更顺利。我刚开始跳过了这些步骤结果部署时各种报错浪费了不少时间。首先更新所有软件包这步很重要能避免很多依赖问题yum -y update reboot然后安装必要的工具包yum -y install vim bash-completion net-tools wget接下来是配置OpenStack仓库。这里有个坑要注意默认的CentOS-OpenStack仓库在国外下载速度极慢。我们需要替换为国内镜像源sed -i s|mirror.centos.org|mirrors.aliyun.com|g /etc/yum.repos.d/CentOS-OpenStack-stein.repo现在可以安装Packstack了yum -y install openstack-packstack安装完成后建议先检查下时间同步是否正常。OpenStack各服务对时间同步要求很高时间不同步会导致各种诡异问题timedatectl set-timezone Asia/Shanghai yum -y install chrony systemctl enable --now chronyd3. 一键部署OpenStack服务Packstack最方便的地方就是提供了all-in-one部署模式一条命令就能自动安装所有OpenStack组件。不过直接运行默认配置可能会遇到网络问题我们需要先生成一个应答文件来定制配置packstack --gen-answer-fileanswer.txt编辑这个应答文件有几个关键参数要修改CONFIG_DEFAULT_PASSWORDyourpassword # 所有服务的默认密码 CONFIG_PROVISION_DEMOn # 不安装演示用项目和用户 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGSextnet:br-ex # 外部网络映射 CONFIG_NEUTRON_OVS_BRIDGE_IFACESbr-ex:ens33 # 桥接物理网卡保存后就可以开始部署了packstack --answer-fileanswer.txt部署过程大概需要30-60分钟取决于你的网络和机器性能。期间会下载约1GB的软件包所以一定要确保网络稳定。我在第一次部署时因为网络中断不得不重头再来。部署完成后你会看到类似这样的输出**** Installation completed successfully ******这时OpenStack已经跑起来了可以通过http://你的IP/dashboard 访问web控制台。登录用户名是admin密码就是应答文件里设置的CONFIG_DEFAULT_PASSWORD。4. 网络配置与功能验证部署成功只是第一步要让OpenStack真正可用还需要配置网络。这是新手最容易卡住的地方我当初就在这里折腾了好久。首先检查br-ex网桥是否创建成功ovs-vsctl show如果发现br-ex没有绑定物理网卡需要手动配置cd /etc/sysconfig/network-scripts/ cp ifcfg-ens33 ifcfg-br-ex编辑ifcfg-br-ex文件TYPEOVSBridge DEVICETYPEovs DEVICEbr-ex ONBOOTyes然后修改ifcfg-ens33TYPEOVSPort DEVICETYPEovs OVS_BRIDGEbr-ex重启网络服务systemctl restart network现在可以在web控制台创建外部网络了。关键点供应商网络选择flat物理网络填写extnet要和应答文件里一致勾选外部网络选项创建实例前记得在安全组里放行ICMP和SSH流量否则无法ping通或远程连接。我创建的第一个实例就因为没配置安全组死活连不上。测试实例能否上网的小技巧创建cirros测试镜像的实例分配浮动IP进入控制台执行ping 114.114.114.1145. 常见问题排查与优化即使按照步骤操作也可能会遇到各种问题。这里分享几个我踩过的坑和解决方法。问题1Dashboard无法访问检查httpd服务是否运行systemctl status httpd查看防火墙是否关闭systemctl status firewalld查看SELinux状态getenforce问题2实例获取不到IP检查neutron-dhcp-agent是否正常systemctl status neutron-dhcp-agent查看网络命名空间ip netns list重启neutron服务systemctl restart neutron-server问题3创建实例失败查看nova日志tail -f /var/log/nova/nova-api.log检查计算资源是否充足nova hypervisor-stats查看镜像状态glance image-list对于性能优化我有几个实用建议修改nova.conf调整实例调度策略为qemu-kvm进程分配更多内存使用本地存储而不是默认的LVM卷如果磁盘空间不足可以扩展虚拟磁盘# 在VMware中扩展磁盘后 growpart /dev/sda 1 xfs_growfs /最后提醒一点这个单节点部署只适合测试和学习生产环境需要多节点部署和高可用配置。当你不小心删错了东西相信我这迟早会发生最简单的恢复方法就是重新运行Packstack部署。