从零搭建OpenStack私有云实战
·
一、学习背景与目标
在云计算技术体系中,私有云凭借数据安全、自主可控、资源按需分配的核心优势,成为企业 IT 架构转型的主流选择。本次学习围绕OpenStack 开源私有云平台,完成从环境准备、集群部署到日常运维的全流程实操,目标是掌握私有云从 0 到 1 搭建的完整技术链路,理解 IaaS 层核心服务的运行原理,具备企业级私有云的部署与运维能力。
二、核心技术栈与环境准备
2.1 技术选型说明
本次实践采用 OpenStack Train 版本(企业级稳定版),核心服务组件如下:
表格
| 服务组件 | 核心作用 |
|---|---|
| Keystone | 身份认证与权限管理,所有服务的统一入口 |
| Glance | 镜像服务,管理虚拟机镜像的上传、存储与分发 |
| Nova | 计算服务,负责虚拟机实例的创建、调度与生命周期管理 |
| Neutron | 网络服务,实现虚拟网络、子网、路由、安全组等网络功能 |
| Cinder | 块存储服务,为虚拟机提供可挂载的块存储卷 |
| Horizon | 图形化管理控制台,提供 Web 界面管理私有云资源 |
2.2 实验环境规划
本次实践采用双节点集群架构(controller 控制节点 + compute 计算节点),环境配置如下:
- 操作系统:CentOS 7.9(稳定兼容 OpenStack Train 版本)
- 硬件配置:
- 控制节点:4 核 CPU、8GB 内存、200GB 系统盘
- 计算节点:8 核 CPU、16GB 内存、500GB 数据盘
- 网络规划:
- 管理网:192.168.10.0/24(节点间通信、服务调用)
- 数据网:192.168.20.0/24(虚拟机数据传输、存储通信)
- 外部网:192.168.30.0/24(虚拟机公网访问、NAT 映射)
- 依赖环境:关闭防火墙、SELinux,配置时间同步(chrony),安装 OpenStack 仓库源
三、私有云部署全流程(步骤化实操)
3.1 基础环境初始化(双节点通用)
- 系统基础配置
bash
运行
# 关闭防火墙与SELinux systemctl stop firewalld && systemctl disable firewalld setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config # 配置主机名与hosts解析 hostnamectl set-hostname controller # 控制节点 hostnamectl set-hostname compute # 计算节点 echo -e "192.168.10.10 controller\n192.168.10.20 compute" >> /etc/hosts # 配置时间同步 yum install -y chrony systemctl enable --now chronyd - 安装 OpenStack 仓库源
bash
运行
yum install -y centos-release-openstack-train yum upgrade -y yum install -y openstack-utils openstack-selinux
3.2 控制节点核心服务部署
- Keystone 身份服务部署
- 安装并配置 MariaDB 数据库,创建 keystone 数据库
- 部署 keystone 服务,配置认证端点与域
- 创建 admin 项目、用户、角色,初始化环境变量
- 验证:
openstack token issue成功获取 token 
- Glance 镜像服务部署
- 创建 glance 数据库与服务凭证
- 配置 glance-api 与 glance-registry 服务
- 上传 Cirros 测试镜像,验证镜像管理功能

- Nova 计算服务(控制节点)部署
- 创建 nova 数据库与服务凭证
- 配置 nova-api、nova-conductor、nova-scheduler 等组件
- 同步数据库,启动服务并验证

- Neutron 网络服务(控制节点)部署
- 创建 neutron 数据库与服务凭证
- 配置 ML2 插件、Linuxbridge 代理、DHCP 代理
- 配置网络节点,创建外部网络与虚拟路由器

- Cinder 块存储服务(控制节点)部署
- 创建 cinder 数据库与服务凭证
- 配置 cinder-api、cinder-scheduler、cinder-volume 组件
- 挂载数据盘,配置 LVM 存储后端

- Horizon 控制台部署
- 安装 openstack-dashboard 服务
- 配置本地访问权限,重启 httpd 服务
- 验证:通过浏览器访问
http://controller/dashboard,使用 admin 账号登录 
3.3 计算节点服务部署
- Nova 计算服务部署
- 配置 nova-compute 服务,对接控制节点
- 配置虚拟机虚拟化驱动(KVM)
- 启动服务并验证节点注册

- Neutron 网络服务(计算节点)部署
- 配置 Linuxbridge 代理,对接控制节点 ML2 插件
- 配置安全组与网络隔离
- 启动服务并验证网络连通性

3.4 部署验证与测试
- 服务状态验证
bash
运行
# 查看所有服务状态 openstack service list # 查看计算节点状态 openstack compute service list # 查看网络代理状态 openstack network agent list - 功能测试
- 创建虚拟机实例,验证实例创建、启动、远程连接
- 挂载 Cinder 块存储卷,验证存储功能
- 配置浮动 IP,验证虚拟机公网访问
- 通过 Horizon 控制台验证所有资源管理功能
四、私有云运维核心实践
4.1 日常运维监控
- 服务监控:通过
systemctl status openstack-*监控核心服务状态,配置 Zabbix 告警 - 资源监控:通过 OpenStack 内置命令
openstack server list、openstack volume list监控资源使用 - 日志排查:核心日志路径
/var/log/nova/、/var/log/neutron/、/var/log/keystone/,用于故障定位
4.2 常见故障与解决方案
表格
| 故障场景 | 根因分析 | 解决方案 |
|---|---|---|
| 虚拟机创建失败 | Nova 计算服务异常、网络配置错误 | 检查 nova-compute 状态,验证 Neutron 网络连通性 |
| 虚拟机无法访问外网 | 浮动 IP 未绑定、安全组规则限制 | 绑定浮动 IP,放行 ICMP、SSH 等端口规则 |
| 块存储挂载失败 | Cinder-volume 服务异常、LVM 存储池不足 | 重启 cinder-volume 服务,扩容存储池 |
| 控制节点服务无法调用 | Keystone 认证超时、时间不同步 | 检查 chrony 时间同步,重启 keystone 服务 |
4.3 运维优化建议
- 高可用优化:部署 Pacemaker+Corosync 实现控制节点 HA,避免单点故障
- 存储优化:采用 Ceph 分布式存储替代 LVM,提升存储扩展性与可靠性
- 网络优化:配置 SR-IOV 直通网卡,提升虚拟机网络性能
- 安全优化:配置细粒度 RBAC 权限,定期更新 OpenStack 补丁,加固系统安全
在编程的世界里,咱们经常会遇到需要存储数据的情况。比如说,当我们想记录一个数值,可以用这样的方式:
python复制插入
x = 5
y = 10
复制插入
这里的等号就像个快递员,把右边的数值送到左边的变量小仓库里。等到需要用到这些数值的时候,直接喊变量名就行:
python复制插入
total = x + y # 这时候total就变成15啦
复制插入
要是遇到复杂点的计算,比如求平方和公式: $$ a^2 + b^2 = c^2 $$ 咱们完全可以把这个数学关系转化成代码:
python复制插入
def calculate_hypotenuse(a, b):
return (a**2 + b**2)**0.5
复制插入
这种写法既保持了数学的严谨性,又让计算机能明白咱们的意图。下次遇到数学问题想编程解决时,不妨先试试把公式用代码表达出来哦~
更多推荐
所有评论(0)