OpenStack 每日学习课程

日期: 2026年4月7日
主题: Cinder — 块存储服务


一、核心概念:云端的"移动硬盘"

想象你的电脑硬盘不够用了,你会怎么办?买个移动硬盘插上,数据就有了新家。

Cinder 就是 OpenStack 云里的"移动硬盘管理员"

它不关心硬盘里存什么文件,只负责:

  • 给虚拟机"插上"一块新硬盘(创建卷)
  • 把硬盘从一台虚拟机拔下来插到另一台(卷迁移)
  • 给硬盘做个快照备份
  • 管理不同"品牌"的硬盘(后端存储驱动)

类比:Cinder 像公司的设备管理员,你申请"我要一个 500G 硬盘",他给你办好手续、插到你的工位上。至于你存什么文件,他不管。


二、工作原理:谁在协作?

用户请求 → Cinder-API → Cinder-Scheduler → Cinder-Volume → 存储后端
                                    ↓
                              数据库(记录卷信息)

关键组件:

组件 职责
cinder-api 接收 REST 请求,像"前台接待"
cinder-scheduler 选择最优存储节点,像"调度员"
cinder-volume 与存储后端交互,真正的"干活者"
cinder-backup 备份卷到备份存储(如 Swift)

创建卷的流程:

  1. 用户调用 API:"我要一个 100G 的卷"
  2. Scheduler 根据容量、可用区选择后端
  3. Volume 驱动调用存储后端(LVM/Ceph/NFS/商业存储)创建
  4. 数据库记录卷的元数据
  5. 用户将卷 attach 到虚拟机,变成 /dev/vdb

三、实际应用场景

场景 1:数据库持久化存储

MySQL 跑在虚拟机上,虚拟机删除后数据怎么办?
→ 把数据库目录挂载到 Cinder 卷上,数据与虚拟机生命周期解耦。

场景 2:快照与回滚

测试环境要测危险操作,怕搞坏环境?
→ 操作前对卷打快照,出问题直接从快照恢复,秒级回滚。

场景 3:跨虚拟机共享数据

A 虚拟机处理完数据,B 虚拟机要继续处理?
→ 卷 detach from A,attach to B,数据无缝流转。


四、动手练习

  1. 创建一个 1G 的卷:

    openstack volume create --size 1 my-first-volume
    
  2. 查看卷列表:

    openstack volume list
    
  3. 将卷挂载到虚拟机:

    openstack server add volume my-vm my-first-volume
    
  4. 思考题: 如果 Cinder 后端同时有 SSD 和 HDD,如何让用户选择"我要高性能存储"?


五、今日总结

维度 内容
是什么 块存储服务,为虚拟机提供持久化卷
核心能力 创建/删除/挂载/快照/迁移/备份
关键组件 api、scheduler、volume、backup
后端支持 LVM、Ceph、NFS、商业存储(NetApp、EMC 等)
与 Nova 关系 Nova 管虚拟机,Cinder 管硬盘,两者协作 attach/detach
与 Swift 区别 Cinder 是块存储(像硬盘),Swift 是对象存储(像网盘)

明日预告: Heat — 编排服务,用模板一键部署整套云资源。

results matching ""

    No results matching ""