OpenStack 云操作系统完整教程:核心原理 + 双节点一键脚本部署实战
2026/7/12 3:03:28 网站建设 项目流程

一、文章前言

大家好,本文结合课堂 PPT 理论 + 企业实训脚本完整流程,系统讲解OpenStack 底层原理、核心组件协作、双节点(Controller+Compute)一键脚本部署全流程,适合云计算初学者、运维、高校实训学员。 OpenStack 是业界主流开源 IaaS 云操作系统,统一管理数据中心计算、存储、网络资源,支持多租户隔离、按需弹性扩容,广泛用于私有云、政企云平台搭建。本文分为两大模块:理论原理篇上机部署实战篇,全部内容基于 CentOS7 一键 iaas 自动化脚本环境,步骤可复现。

二、OpenStack 基础理论入门

2.1 OpenStack 是什么?

OpenStack 是云操作系统,统一管控数据中心级计算、存储、网络资源池;管理员通过 Web 仪表盘统一管控资源,普通用户通过 Web 界面自助申请虚拟机、云硬盘、虚拟网络等资源。 架构分层定位:OpenStack 仅负责云控制面,底层硬件资源(服务器、存储、交换机)、虚拟化层 KVM/QEMU、计费运营系统为配套基础设施。

2.2 虚拟化 vs 云计算

  1. 虚拟化:核心是硬件资源切分,一台物理机虚拟多台虚拟机,提升硬件利用率,只解决资源分配问题;
  2. 云计算:在虚拟化基础上对外提供标准化服务,核心特性:多租户隔离、按需使用、按量计费、弹性伸缩。

2.3 OpenStack 三大设计理念

  1. 开放:完全开源,最大限度复用现有成熟开源项目;
  2. 灵活:无绑定私有闭源组件,全架构插件化,可替换数据库、虚拟化驱动;
  3. 可扩展:模块化独立项目、无中心化架构、无状态服务,天然支持高可用集群扩容。

2.4 OpenStack 整体分层架构

整体分为三层:底层硬件资源池、IaaS 核心服务层、PaaS 扩展服务层、统一公共基础组件。

1)公共基础组件(所有服务依赖)
  • Keystone:统一认证鉴权中心,所有组件 API 调用都需要 Token 身份校验;
  • Database:MySQL/GaussDB,持久化存储租户、虚拟机、网络、存储配置数据;
  • Message Queue:RabbitMQ 消息队列,组件间异步通信核心。
2)IaaS 核心基础服务(必装五大组件)

表格

组件名称服务中文名核心作用
Horizon仪表盘Web 可视化管理控制台,对接所有组件 API
Nova计算服务管理虚拟机全生命周期(创建、开机、迁移、销毁)
Glance镜像服务统一管理操作系统镜像,镜像文件后端存储在 Swift
Cinder块存储服务提供持久化云硬盘、快照、备份,对接 SAN/LVM/Ceph
Neutron网络服务SDN 虚拟网络,二层交换、三层路由、DHCP、安全组、负载均衡
3)PaaS 扩展增值服务
  • Swift:对象存储,存放镜像、文件、静态资源;
  • Heat:资源编排,批量自动化创建云资源栈;
  • Ceilometer:计量监控,采集资源使用量,对接计费系统;
  • Trove:数据库云服务;Sahara:大数据集群服务;Ironic:裸金属管理。

2.5 创建一台虚拟机完整业务流程

用户登录 Horizon 页面创建云主机,组件协同流程:

  1. Keystone 校验用户账号、权限,下发访问令牌 Token;
  2. Neutron 分配虚拟网卡、子网、路由、安全组;
  3. Cinder 按需挂载云硬盘卷;
  4. Glance 调取操作系统镜像(镜像实体存储在 Swift 对象存储);
  5. Nova 调度器筛选空闲计算节点,下发指令至计算节点 nova-compute;
  6. 底层 KVM/QEMU 虚拟化监视器完成虚拟机创建与启动。

三、三大核心组件深度原理

3.1 Nova 计算核心组件(OpenStack 核心)

Nova 只管理虚拟机生命周期,不管理物理服务器硬件监控。

核心服务模块
  1. nova-api:接收用户 Web/API 请求,权限校验;
  2. nova-conductor:中间指令转发,隔离数据库访问;
  3. nova-scheduler:调度器,根据资源负载、亲和规则选择计算节点;
  4. nova-compute(计算节点):对接底层 Hypervisor(KVM),执行虚拟机创建、启停操作。
Nova 关键概念
  • Instance/Server:云虚拟机实例;Flavor:虚拟机规格模板(CPU / 内存 / 磁盘);
  • Quota:租户资源配额,限制最大虚拟机、硬盘数量;
  • Host Aggregate:主机聚合,统一调度同硬件配置服务器;
  • Server Group:虚拟机亲和 / 反亲和策略,主备业务分散部署。

3.2 Cinder 块存储服务

为云平台提供统一块存储接口,支持云硬盘创建、挂载、快照、扩容、备份,兼容 LVM、SAN、分布式存储 Ceph。

  1. cinder-api:接收存储操作请求;
  2. cinder-scheduler:筛选可用存储后端;
  3. cinder-volume:对接存储驱动,管理 LUN、iSCSI 存储链路; 虚拟机通过 iSCSI/FC 协议挂载远程块存储卷。

3.3 Neutron 网络 SDN 组件

实现网络即服务,为租户隔离虚拟网络,核心代理组件:

  1. neutron-server:网络 API 总入口;
  2. L2 Agent(所有计算节点部署):基于 OVS 虚拟交换机,处理二层 VLAN;
  3. L3 Agent:三层路由、外网网关、浮动 IP;
  4. DHCP Agent:自动分配虚拟机 IP 地址; 支持 VLAN、VXLAN 网络模式,实验环境采用 VLAN 租户网络。

四、双节点部署架构规划

4.1 硬件节点划分

  1. Controller 控制节点:20.0.0.10,部署 Keystone、Horizon、Nova 控制端、Glance、Neutron 控制端、Cinder 控制端、Swift 控制端;
  2. Compute 计算节点:20.0.0.20,部署 nova-compute、neutron 计算代理、cinder 存储客户端、Swift 计算端;

4.2 网卡规划(VMware 虚拟机环境)

  • 外网网卡 ens33:NAT 模式,192.168.1.x 网段,访问互联网、Dashboard 页面;
  • 管理内网网卡 ens34:仅主机模式,20.0.0.x 网段,OpenStack 组件内部通信、虚拟机流量。

4.3 网络流量划分

  1. OpenStack 内部服务网络:Controller 与 Compute 节点通信(20.0.0.0/24);
  2. 虚拟机业务流量网络:租户 VLAN 虚拟网络;
  3. 公网:外网 NAT 网段,虚拟机访问外网、外部访问云平台。

五、实战:一键脚本完整部署流程(CentOS7 iaas 自动化脚本)

5.0 前置卸载旧环境(清空残留)

两台节点分别执行卸载脚本,截图保存 9-1.jpg、9-2.jpg

bash

运行

# Controller & Compute 节点 /usr/local/bin/iaas-uninstall-all.sh

5.1 基础环境初始化(主机名 + 网卡配置)

  1. Controller 节点

bash

运行

hostnamectl set-hostname controller # 查看网卡配置确认IP cat /etc/sysconfig/network-scripts/ifcfg-ens34 exec bash
  1. Compute 节点

bash

运行

hostnamectl set-hostname compute cat /etc/sysconfig/network-scripts/ifcfg-ens34 exec bash

执行结果截图:9-3.jpg、9-4.jpg

5.2 搭建本地 FTP 镜像源(Controller)

bash

运行

yum -y install vsftpd vi /etc/vsftpd/vsftpd.conf # 添加配置 anon_root=/opt/ # 开机自启 systemctl start vsftpd systemctl enable vsftpd

Compute 节点验证 yum 源可用,两台节点截图 9-5.jpg、9-6.jpg

5.3 全局环境变量配置(核心配置文件 /etc/xiandian/openrc.sh)

两台节点安装配置工具并统一修改配置文件:

bash

运行

yum install iaas-xiandian -y vi /etc/xiandian/openrc.sh

完整关键配置参数:

bash

运行

# 节点IP主机名 HOST_IP=20.0.0.10 HOST_NAME=controller HOST_IP_NODE=20.0.0.20 HOST_NAME_NODE=compute # 消息队列、数据库密码 RABBIT_USER=openstack RABBIT_PASS=000000 DB_PASS=000000 DOMAIN_NAME=demo # 各服务统一密码 ADMIN_PASS=000000 DEMO_PASS=000000 KEYSTONE_DBPASS=000000 GLANCE_DBPASS=000000 GLANCE_PASS=000000 NOVA_DBPASS=000000 NOVA_PASS=000000 NEUTRON_DBPASS=000000 NEUTRON_PASS=000000 METADATA_SECRET=000000 # 网络配置 INTERFACE_NAME=ens33 Physical_NAME=provider minvlan=101 maxvlan=201 # 存储磁盘分区 BLOCK_DISK=sdb1 OBJECT_DISK=sdc1 STORAGE_LOCAL_NET_IP=20.0.0.10 # Cinder、Swift、Heat、Ceilometer数据库密码统一000000

5.4 系统基础预配置(两台节点同步执行)

bash

运行

# 主机环境初始化 iaas-pre-host.sh reboot

重启后部署数据库服务:

bash

运行

# Controller iaas-install-mysql.sh # Compute yum -y install MySQL-python

5.5 分步安装 OpenStack 核心组件(Controller 优先)

1)Keystone 认证服务(仅 Controller)

bash

运行

iaas-install-keystone.sh
2)Glance 镜像服务(仅 Controller)

bash

运行

iaas-install-glance.sh # 导入CentOS镜像 source /etc/keystone/admin-openrc.sh glance image-create --name "CentOS7.0" --disk-format qcow2 --container-format bare --progress < /opt/images/CentOS_6.5_x86_64_XD.qcow2
3)Nova 计算服务

bash

运行

# Controller iaas-install-nova-controller.sh # Compute(控制节点安装完成后执行) iaas-install-nova-compute.sh
4)Neutron 网络服务(重点)
  1. 安装服务,截图 9-7.jpg、9-8.jpg

bash

运行

# Controller iaas-install-neutron-controller.sh # Compute iaas-install-neutron-compute.sh
  1. 修改网络为 VLAN 模式(Controller,截图 9-9.jpg)

bash

运行

openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types vlan systemctl restart neutron-server openstack-config --set /etc/neutron/l3_agent.ini DEFAULT external_network_bridge br-ex systemctl restart neutron-l3-agent
  1. 创建 VLAN 租户网络(截图 9-10.jpg)

bash

运行

neutron net-create demo-net --tenant-id `openstack project list |grep -w admin |awk '{print $2}'` --provider:network_type vlan
5)Horizon Web 控制台(Controller)

bash

运行

iaas-install-dashboard.sh

宿主机 VMware 网卡 vmnet1 配置 IP 20.0.0.1/24,浏览器访问http://20.0.0.10/dashboard,账号 admin/000000 登录。

6)Web 端创建子网(截图 9-11.jpg、9-12.jpg)

项目→网络→demo-net→创建子网,参数:

  • 子网地址:10.10.1.0/24,网关 10.10.1.1
  • 启用 DHCP,地址池 10.10.1.2~10.10.100
  • DNS 服务器:10.90.87.88
7)Cinder 块存储服务

bash

运行

# Controller 截图9-13.jpg iaas-install-cinder-controller.sh # Compute:修改yum源IP为20.0.0.10后执行,截图9-14.jpg iaas-install-cinder-compute.sh
8)Swift 对象存储服务(部署收尾)

bash

运行

# Controller 截图9-15.jpg iaas-install-swift-controller.sh # Compute 截图9-16.jpg iaas-install-swift-compute.sh

六、部署常见问题与避坑总结

  1. 节点互通失败:检查内网网卡 ens34 IP 是否 20.0.0.x,关闭防火墙、SELinux;
  2. Neutron 网络不通:确认 ml2 配置 tenant_network_types 为 vlan,重启 neutron-server 与 l3-agent;
  3. 虚拟机无法获取 IP:DHCP Agent 未正常运行,VLAN 区间 minvlan/maxvlan 配置冲突;
  4. 存储卷挂载失败:检查 sdb1/sdc1 磁盘分区未格式化,Cinder 后端驱动配置错误;
  5. Dashboard 无法访问:宿主机 vmnet1 网卡配置 20.0.0.1/24,关闭宿主机防火墙。

七、总结

  1. 理论层面:OpenStack 是模块化 IaaS 云操作系统,Keystone 统一鉴权,Nova/Cinder/Neutron 分别管理计算、块存储、虚拟网络,组件依靠 RabbitMQ 消息队列异步通信;
  2. 实操层面:采用 Controller+Compute 双节点架构,通过 iaas 一键脚本自动化部署,流程标准化、适合实训教学;
  3. 拓展方向:可基于本环境扩展多计算节点、Ceph 分布式存储、OpenStack 高可用集群、Heat 资源编排自动化运维。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询