虚拟化技术(六) OpenStack使用部署

一、部署方式选择

OpenStack 部署方式主要有:

  1. DevStack
    • 适合学习与开发,单机快速体验,不推荐生产环境。
  2. Packstack
    • 适合小规模测试、PoC,自动化脚本,已逐步被 Kolla-Ansible 取代。
  3. Kolla-Ansible
    • 官方推荐生产级部署方案,基于 Docker 容器,支持多节点高可用。
  4. OpenStack-Ansible
    • 企业级部署,基于LXC容器,适合大规模场景。
  5. 手动部署
    • 适合定制化极强、组件极少的特殊场景,维护复杂。

生产环境强烈推荐 Kolla-Ansible 或 OpenStack-Ansible。


二、典型架构和节点规划

常见三节点高可用架构:

  • 控制节点(Controller):Keystone、Glance、Cinder、Neutron-server、MariaDB、RabbitMQ、Horizon等
  • 计算节点(Compute):Nova-compute、Neutron-agent
  • 存储节点(可选):Cinder-volume、Ceph等

也可单节点(All-in-One)部署用于测试。


三、环境准备

1. 硬件/系统要求

  • 至少2-3台64位服务器(虚拟机也可)
  • 推荐8GB+内存/节点,100G+磁盘,双网卡(管理/业务分离更优)
  • 操作系统:CentOS 7/8、Rocky Linux、Ubuntu 20.04/22.04

2. 基础配置

  • 关闭SELinux、firewalld(或开放相关端口)
  • 配置时间同步(chrony/ntpd)
  • 设置主机名和/etc/hosts,节点间网络可达
  • 配置无密码SSH互信(Kolla-Ansible自动化需要)

四、Kolla-Ansible自动化部署(以CentOS/Ubuntu为例)

1. 安装依赖

# Python3和pip
yum install -y python3 python3-pip  # 或 apt install python3 python3-pip

# Ansible和Kolla-Ansible
pip3 install -U pip
pip3 install 'ansible>=5,<8'  # 要求Ansible 5-7版本
pip3 install kolla-ansible

2. 配置Kolla-Ansible

# 复制配置模板
cp -r /usr/local/share/kolla-ansible/etc_examples/kolla /etc/
cp /usr/local/share/kolla-ansible/ansible/inventory/all-in-one /etc/kolla/all-in-one

# 生成随机密码
kolla-genpwd
  • /etc/kolla/globals.yml:全局配置(管理网段、VIP、镜像源、启用组件、节点角色等)
  • /etc/kolla/passwords.yml:组件密码(自动生成)

常用参数示例(globals.yml):

kolla_base_distro: "centos"   # 或 ubuntu
kolla_install_type: "source"
network_interface: "eth0"
neutron_external_interface: "eth1"
kolla_internal_vip_address: "192.168.100.100"
openstack_release: "zed"      # 指定OpenStack版本

3. 编辑 Ansible Inventory

  • /etc/kolla/all-in-one(单节点)
  • 多节点环境可自定义 inventory 文件,分配 controller/compute/storage 节点

4. 启动部署

# 初始化环境
kolla-ansible -i /etc/kolla/all-in-one bootstrap-servers

# 预部署检查
kolla-ansible -i /etc/kolla/all-in-one prechecks

# 部署 OpenStack
kolla-ansible -i /etc/kolla/all-in-one deploy

# 部署后初始化
kolla-ansible post-deploy

# 获取 admin-openrc.sh(环境变量)
cp /etc/kolla/admin-openrc.sh ~/
source ~/admin-openrc.sh

5. 验证部署

# 检查服务状态
kolla-ansible -i /etc/kolla/all-in-one check

# 查看容器和服务
docker ps
openstack service list
openstack hypervisor list

五、OpenStack基础使用操作

1. 用户和项目管理

openstack project create demo
openstack user create --password demo demo
openstack role add --project demo --user demo user

2. 镜像管理

openstack image create "cirros" --file cirros.img --disk-format qcow2 --container-format bare --public
openstack image list

3. 网络与安全组

openstack network create net1
openstack subnet create --network net1 --subnet-range 192.168.10.0/24 subnet1
openstack security group rule create --protocol icmp default
openstack security group rule create --protocol tcp --dst-port 22 default

4. 云主机生命周期

openstack flavor create --ram 1024 --disk 10 --vcpus 1 m1.small
openstack server create --flavor m1.small --image cirros --network net1 --security-group default vm1
openstack server list
openstack server delete vm1

5. 分配浮动IP(公网访问)

openstack floating ip create public
openstack server add floating ip vm1 203.0.113.10

6. Web界面(Horizon)

  • 访问 http://<VIP或Controller IP>/
  • 使用 admin/自定义用户登录,进行图形化管理。

六、常见问题与排查

  1. 服务启动失败、端口冲突:检查端口占用、配置文件、容器日志。
  2. 节点间网络不通:核查物理网络、VLAN、VXLAN、iptables、SELinux。
  3. 虚拟机无法启动/访问外网:检查 Neutron 配置、网桥、浮动IP、DHCP。
  4. 磁盘/镜像/卷操作异常:检查存储后端、Ceph/NFS挂载、权限。
  5. 组件密码/密钥丢失:可通过 kolla-genpwd 重新生成,注意与数据库保持一致。

七、工程实践与优化建议

  1. 生产环境建议多节点高可用,控制节点/计算节点/存储节点分离。
  2. 网络建议物理隔离管理/业务/存储流量,提升安全与性能。
  3. 存储推荐 Ceph RBD,支持弹性扩容和高可用。
  4. 定期备份数据库、配置、镜像,防止数据丢失。
  5. 结合 Ansible/Terraform 自动化运维和资源编排。
  6. 监控和日志分析,及时发现并处理故障。

八、参考文档与工具


九、总结

OpenStack 已成为企业级云平台的主流选择。通过 Kolla-Ansible 等自动化工具,可以快速、可靠地完成多节点高可用部署。实际工程中建议结合自动化运维、网络与存储优化、监控和安全加固,打造弹性、稳定、可扩展的云基础设施。

十、多节点生产环境架构详解

1. 推荐节点角色划分

  • 控制节点(Controller)
    Keystone、Glance、Cinder API、Neutron Server、Horizon、数据库、消息队列、负载均衡器
  • 计算节点(Compute)
    Nova Compute、Neutron Agent、KVM/QEMU
  • 存储节点(Storage)
    Cinder Volume、Ceph OSD/MON/MGR
  • 网络节点(可选)
    Neutron L3/LB/DHCP/DNS Agents,负责公网出口、负载均衡、浮动 IP

2. 高可用设计

  • 控制节点采用 VIP + HAProxy + Keepalived 实现高可用。
  • 数据库(MariaDB/Galera)主从或集群。
  • RabbitMQ 多节点集群。
  • Ceph 存储多副本冗余。

3. 部署示意图

[LB/VIP]
  |
[Controller1] [Controller2] [Controller3]
  |         |         |
[Compute1] [Compute2] ...
  |
[Storage1] [Storage2] ...

十一、网络高级配置与最佳实践

1. 多网卡与物理网络分离

  • 管理网:OpenStack组件内部通信
  • 业务网:云主机实际业务流量
  • 存储网:Ceph/NFS等后端存储流量
  • 外部网:浮动IP、公网出口

2. Neutron网络模式

  • Flat Network:所有虚拟机在同一物理网段,简单但不隔离。
  • VLAN Network:不同租户、网络通过 VLAN 标签隔离,适合企业环境。
  • VXLAN/GRE Overlay:虚拟网络通过隧道隔离,适合大规模云平台。
  • SR-IOV/PCI Passthrough:为高性能网络需求(如金融、AI)提供物理网卡直通。

3. 网络高可用

  • L3/LB/DHCP Agents 多副本,Keepalived 或 VRRP 实现 VIP 切换。
  • Open vSwitch (OVS) 支持多路径冗余和 SDN 控制器。

4. 网络故障排查

  • 检查安全组、端口、路由、浮动 IP 分配
  • 使用 openstack port listneutron agent-listovs-vsctl show 等命令排查
  • 容器化环境下建议用 docker exec -it <container> bash 进入网络容器调试

十二、存储高级配置与 Ceph 集成

1. Cinder 后端支持

  • LVM:本地磁盘,简单但扩展性有限
  • NFS/iSCSI:适合传统 SAN/NAS
  • Ceph RBD:推荐生产环境,支持弹性扩容、高可用、快照、克隆

2. Ceph 集群部署要点

  • 至少 3 个 OSD 节点,3 副本冗余
  • 公网/存储网分离,提升性能
  • Ceph MON/MGR 多副本
  • 配置 OpenStack 与 Ceph 的密钥和客户端权限

3. Glance 镜像、Cinder 卷、Nova 实例统一用 Ceph 后端

  • enable_ceph: "yes"(Kolla-Ansible配置)
  • 配置 rbd_poolrbd_userrbd_secret_uuid 等参数
  • 验证挂载、快照、扩容等功能

十三、自动化运维与资源编排

1. 日常运维自动化

  • Ansible/SaltStack 脚本批量管理节点、服务、配置
  • 定期快照、备份数据库、镜像、卷
  • 自动化扩容/缩容(新增计算/存储节点)

2. 资源编排与应用部署

  • Heat 模板定义多层应用(Web+DB+LB等),一键部署
  • Terraform 编排 OpenStack 资源,支持多云/混合云场景

3. 云主机自动初始化

  • Cloud-Init 支持 SSH 密钥、主机名、配置文件自动注入
  • 镜像预装 Cloud-Init,创建云主机时传递 user-data

十四、故障排查与日志分析

1. 组件日志路径

  • Nova:/var/log/nova/
  • Neutron:/var/log/neutron/
  • Keystone:/var/log/keystone/
  • Glance:/var/log/glance/
  • Cinder:/var/log/cinder/
  • Ceph:/var/log/ceph/

2. 常见故障解决思路

  • 服务无法启动:检查端口冲突、依赖服务、配置文件
  • 虚拟机无法创建/启动:检查资源配额、镜像、网络、存储
  • 网络不通:检查安全组、路由、端口、物理交换机配置
  • 存储卷挂载失败:检查 Ceph/NFS 状态、密钥权限

3. 实用排查命令

openstack server list
openstack hypervisor list
openstack network list
openstack volume list
openstack service list
systemctl status docker libvirtd openvswitch
docker ps

十五、性能优化与扩展建议

  • 控制节点、数据库、消息队列多副本,避免单点瓶颈
  • 网络用 VXLAN/SR-IOV/DPDK 提升性能
  • 存储用 Ceph RBD,合理分配 OSD、监控 IOPS
  • 计算节点合理分配 vCPU/vMEM,防止超分
  • 使用 Prometheus/Grafana/ELK 监控全链路指标与日志

十六、与 KVM、容器、云原生的集成

  • OpenStack 默认通过 libvirt/KVM 管理虚拟机,支持 PCI/GPU/网络直通
  • Magnum 项目支持自动化部署 Kubernetes 集群(容器云)
  • KubeVirt 可在 OpenStack 上统一编排 VM 和容器,实现混合云原生平台
  • Ceph 后端支持对象、块、文件多种存储,弹性扩容

十七、工程落地细节与建议

  1. 生产环境建议多节点高可用,控制、计算、存储节点分离
  2. 网络/存储物理隔离,提升安全与性能
  3. Ceph 集群建议 3+ OSD,合理规划 MON/MGR
  4. 自动化运维、备份、监控全流程覆盖
  5. 定期演练故障恢复,确保业务高可用
  6. 结合 Terraform/Ansible/Heat 实现资源自动化编排

十八、参考文档与工具


十九、总结

OpenStack 的生产级部署与使用,涉及多节点高可用架构、网络与存储高级配置、自动化运维、性能优化和故障排查。结合 KVM、Ceph、容器等现代技术,可构建弹性、稳定、可扩展的企业云基础设施。工程实践需关注安全、监控、自动化和业务高可用,持续优化平台性能与运维效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猩火燎猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值