08.存储Cinder→4.Cinder组件详解→3.cinder-volume
cinder-volume 在存储节点上运行,OpenStack 对 Volume 的操作,最后都是交给 cinder-volume 来完成的。cinder-volume 自身并不管理真正的存储设备,存储设备是由 volume provider 管理的。cinder-volume 与 volume provider 一起实现 volume 生命周期的管理。功能包括:
- 通过 Driver 架构支持多种 Volume Provider,cinder-volume 为这些 volume provider 定义了统一的接口,volume provider 只需要实现这些接口,就可以 Driver 的形式即插即用到 OpenStack 系统中。
- 在 /opt/stack/cinder/cinder/volume/drivers/ 目录下查看到 OpenStack 源代码中已经自带了很多 volume provider 的 Driver。参考见08.存储Cinder→3.Cinder架构→2.物理部署方案
- 存储节点在配置文件 /etc/cinder/cinder.conf 中用 volume_driver 选项配置使用的driver:这里 LVM 是我们使用的 volume provider。
- 定期向 OpenStack 报告存储节点的状态
- cinder-scheduler 会用到 CapacityFilter 和 CapacityWeigher,它们都是通过存储节点的空闲容量来做筛选。cinder-volume 会定期向 Cinder 报告使得Cinder得知每个存储节点的空闲容量信息
- 查看cinder-volume的日志:root@controller:~# journalctl -af --unit devstack@c-vol.service
- Notifying Schedulers of capabilities:通知调度器存储节点的capabilities
- Running periodic [ˌpɪriˈɑdɪk] task :运行周期性任务
- Updating volume stats:更新卷状态
- “vgs”Display information about volume groups和”lvs”Display information about logical volumes这两个命令获取 LVM 的容量使用信息
oslo.service:Library for running OpenStack services
oslo.concurrency:OpenStack library for all concurrency-related( [kən'kʌrənsɪ],并发(性);) code
- 实现 volume 生命周期管理
- Cinder 对 volume 的生命周期的管理最终都是通过 cinder-volume 完成的,包括 volume 的 create、extend、attach、snapshot、delete 等。