OpenStack 每日学习课程
日期: 2026年4月1日
主题: Nova - 计算服务
🎯 核心概念:云端的"任务调度中心"
想象你经营一家大型酒店:
- Nova 就像酒店的前台+调度中心
- 客人(用户)来前台说:"我要一间房"
- 前台查看哪些房间空闲,安排入住
- 房间就是虚拟机实例
- 不同楼层就是不同的计算节点
Nova 的本质:管理虚拟机的全生命周期——创建、调度、停止、迁移、销毁。
⚙️ 工作原理:关键组件协作
Nova 采用分布式架构,各司其职:
| 组件 | 角色 | 职责 |
|---|---|---|
| nova-api | 前台接待 | 接收用户请求,参数校验 |
| nova-scheduler | 调度员 | 决定在哪台机器创建虚拟机 |
| nova-compute | 执行者 | 在计算节点上实际创建/管理虚拟机 |
| nova-conductor | 协调员 | 数据库访问代理,解耦 compute 与数据库 |
| nova-console | 窗口服务 | 提供 VNC/SPICE 远程控制台访问 |
创建虚拟机的流程:
- 用户通过 API/Horizon 发起创建请求
- nova-api 接收并校验
- nova-scheduler 根据策略(CPU、内存、权重)选出目标计算节点
- nova-compute 在目标节点调用底层 Hypervisor 创建虚拟机
- 虚拟机启动,用户可通过 console 访问
🏢 实际应用场景
场景一:弹性扩容
电商大促期间,流量激增。运维通过 Nova 快速创建数十台虚拟机实例,部署应用服务,活动结束后自动销毁,按需付费。
场景二:开发测试环境
开发团队需要隔离的测试环境。通过 Nova 创建多套独立的虚拟机,每套配置不同版本依赖,互不干扰,用完即删。
场景三:故障迁移
某计算节点硬件故障,Nova 可将运行的虚拟机热迁移到其他健康节点,业务不中断。这是 Nova 的高级特性,依赖共享存储。
🛠️ 动手练习
- 命令行体验: 使用
openstack server list查看已有实例 - 创建实例: 尝试
openstack server create --flavor m1.small --image cirros test-vm - 思考题: nova-scheduler 有多种过滤策略(FilterScheduler),如果所有计算节点负载都很高,会发生什么?
📊 今日总结
| 维度 | 内容 |
|---|---|
| 是什么 | OpenStack 的计算服务,管理虚拟机全生命周期 |
| 核心能力 | 创建、调度、迁移、销毁虚拟机实例 |
| 关键组件 | api、scheduler、compute、conductor |
| 依赖关系 | 需要 Keystone 认证、Glance 镜像、Neutron 网络 |
| 类比理解 | 酒店:Nova=前台调度,虚拟机=房间,计算节点=楼层 |
| 一句话记忆 | Nova 是 OpenStack 的"计算大脑",决定 VM 在哪跑、怎么跑 |
💡 下期预告: Neutron - 网络服务,虚拟世界的"网线"与"路由器"