简介
cinder 在虚拟机与具体存储设备之间引入了一层 “逻辑存储卷” 的抽象,为虚拟机提供持久化的块存储能力,实现虚拟机存储卷的创建、挂载、卸载、快照等生命周期管理。
cinder 本身并不是一种存储技术。它只是提供了一个中间抽象层,为后端不同的存储技术提供了统一的接口。不同的块设备服务厂商在 cinder 中以 driver 的形式实现这些接口来与 OpenStack 进行整合。
cinder 默认使用 LVM 作为后端存储。
结构
cinder 主要由 cinder-api、cinder-scheduler、cinder-volume 以及 cinder-backup 组成,它们之间通过 AMQP 消息队列进行通信。
- cinder-api :cinder 的 HTTP 接口。
- cinder-volume :运行在存储节点上,管理具体存储设备的存储空间。
- cinder-scheduler :根据预定的策略选择合适的 cinder-volume 节点来处理用户请求。如果用户明确指定了具体的存储节点,则该节点上的 cinder-volume 会进行处理,而无需 cinder-scheduler 的参与。
- cinder-backup :提供存储卷的备份功能,将存储卷备份到存储后端,如 swfit 。
调度
FilterScheduler 首先使用指定的 Filters 过滤得到符合条件的 cinder-volume 节点;然后对得到的主机列表计算权重并排序,选择最佳的一个。
管理卷
cinder-volume 用于管理存储卷的生命周期。
创建好的 volume 一般通过 iSCSI Target 的方式展现给 nova,这样 nova 就可以通过 iSCSI 协议将其连接到计算节点上供虚拟机使用。
- iSCSI 属于传输层协议,规定了 iSCSI Target 和 iSCSI Initiator 间的通信机制。
- iSCSI Target 通常指存储设备,iSCSI Initiator 则是指通过 iSCSI 协议访问 iSCSI Target 的客户端软件。
备份
cinder-backup 用于将 volume 备份到其他存储系统上去,默认使用 swift 作为备份后端。
不同的备份存储系统以 driver 的形式得以支持。
-
创建备份:cinder-backup 通过 RPC 请求 cinder-volume 服务提供需要备份的卷。
如果该卷处于可用状态,则直接将其返回给 cinder-backup。
如果该卷正在被使用,则创建该卷的一份快照或克隆,然后返回快照或克隆给 cinder-backup。
cinder-backup 收到备份卷后,把该卷挂载到本机,将数据备份到后端备份存储。
-
恢复备份:cinder-backup 将需要进行数据还原的卷挂载到本机,然后将数据从备份存储读出,恢复到卷上。
来源:CSDN
作者:W.T.F.
链接:https://blog.csdn.net/fcku_88/article/details/103693096