虚拟机部署OpenStack的实践指南
部署前的准备工作
在虚拟机环境中部署OpenStack是一项复杂但可行的任务,尤其适合测试和小规模场景,需要确保宿主机硬件资源充足,建议至少16GB内存、8核CPU及200GB存储空间,虚拟化平台推荐使用KVM(Kernel-based Virtual Machine),因其与OpenStack兼容性最佳,操作系统选择CentOS 7或Ubuntu 20.04 LTS,并确保已安装必要的依赖包,如Python 3、libvirt及 qemu-kvm。

网络规划是关键步骤,建议采用三网分离架构:管理网络(用于组件间通信)、数据网络(用于虚拟机流量)和外网API(用于用户访问),需提前规划IP地址段,例如管理网使用192.168.100.0/24,数据网使用10.0.0.0/24,关闭宿主机的SELinux和防火墙(或配置相应规则),避免权限和网络访问问题。
环境配置与组件安装
-
基础环境配置
在虚拟机中创建controller和compute节点(可合并部署于单台虚拟机),使用virt-manager或virsh工具创建虚拟机,配置如下:- controller节点:4核CPU、8GB内存、50GB磁盘
- compute节点:4核CPU、8GB内存、50GB磁盘
为每个节点配置静态IP地址,并修改/etc/hosts文件实现主机名解析。
-
安装OpenStack仓库
在所有节点上执行以下命令(以Ubuntu为例):sudo apt update sudo apt install -y software-properties-common sudo add-apt-repository cloud-archive:train sudo apt update
若使用CentOS,需启用EPEL源并安装RDO仓库。
-
核心组件安装
OpenStack采用模块化架构,核心组件包括:- Keystone:身份服务,用于认证和授权
- Glance:镜像服务,管理虚拟机镜像
- Nova:计算服务,管理虚拟机生命周期
- Neutron:网络服务,提供虚拟网络功能
- Cinder:块存储服务,提供持久化存储
- Horizon:仪表盘,提供Web管理界面
在controller节点上依次安装这些组件,
sudo apt install -y keystone glance-api nova-api neutron-server horizon
compute节点仅需安装nova-compute和neutron-linux-agent。
核心服务配置与初始化
-
数据库与消息队列配置
安装并初始化MySQL和RabbitMQ:
sudo apt install -y mysql-server rabbitmq-server sudo mysql_secure_installation
创建OpenStack专用的数据库和用户,
CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
-
Keystone配置
编辑/etc/keystone/keystone.conf文件,配置数据库连接和token提供者,初始化Keystone服务:sudo su -s /bin/sh -c "keystone-manage db_sync" keystone sudo keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone sudo keystone-manage bootstrap --bootstrap-password ADMIN_PASS \ --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 CLI:
export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3
-
Glance与Nova配置
创建Glance服务用户和实体,上传测试镜像(如cirros):openstack image create "cirros" --file cirros-0.4.0-x86_64-disk.img --disk-format qcow2 --container-format bare
配置Nova时,需指定计算节点、网络类型和镜像服务,确保数据库连接正确。
网络与存储服务部署
-
Neutron网络配置
安装Neutron组件后,配置ML2插件(支持VXLAN和VLAN),创建网络、子网和路由器,openstack network private-net --share --external openstack subnet create --subnet-range 10.0.0.0/24 --network private-net private-subnet openstack router create router1 openstack router add subnet router1 private-subnet
在compute节点上配置OVS(Open vSwitch)以实现虚拟机网络互通。
-
Cinder存储配置
若需要块存储服务,可配置LVM后端,在controller节点安装cinder-volume,并创建逻辑卷:
sudo pvcreate /dev/sdb sudo vgcreate cinder-volumes /dev/sdb
修改cinder.conf文件以启用LVM驱动,并创建类型和卷类型。
验证与常见问题解决
部署完成后,可通过以下命令验证服务状态:
openstack compute service list openstack network agent list openstack volume service list
创建测试实例并验证网络连通性:
openstack server create --flavor m1.tiny --image cirros --network private-net test-vm
常见问题包括:
- 网络不通:检查Neutron代理状态和防火墙规则。
- 实例创建失败:查看Nova日志定位原因,如资源不足或镜像格式错误。
- 认证失败:确认Keystone服务运行正常及环境变量配置正确。
总结与优化建议
虚拟机部署OpenStack为学习和测试提供了灵活的环境,但需注意性能瓶颈,建议通过以下方式优化:
- 使用SSD存储提升虚拟机性能。
- 调整虚拟机资源配额,避免宿主机过载。
- 定期更新OpenStack版本以获取安全补丁和新功能。
对于生产环境,建议采用物理服务器部署或云平台托管服务,以保障稳定性和性能,通过合理规划与细致配置,虚拟机环境中的OpenStack仍能充分发挥其云平台管理能力。















