Cinder架构原理
当有用户或Nova compute提供创建卷的请求时,首先由Cinder API接收请求,然后以消息队列的形式发送给Cinder Scheduler来调用,Cinder Scheduler 侦听到来自Cinder API的消息队列后,到数据库中取查询当前存储节点的状态信息,并根据预定策略选择卷的最佳volume service节点,然后将调度的结果发布出来给volume service来调用,当volume service收到volume scheduler 的调度结果后,会去查找volume providers, 从而在特定存储节点上创建相关的卷,然后将相关结果返回给用户,同时将修改的数据写入到数据库中。
部署
创建cinder数据库
1 | # 在任意控制节点创建数据库,后台数据自动同步,以controller01节点为例; |
创建cinder-api
1 | # 在任意控制节点操作,以controller01节点为例; |
创建cinder用户
1 | # service项目已在glance章节创建; |
cinder赋权
1 | # 为cinder用户赋予admin权限 |
创建cinder服务实体
1 | # cinder服务实体类型”volume”; |
创建cinder-api
1 | # 注意--region与初始化admin用户时生成的region一致; |
1 | # v3 public api |
安装cinder
1 | # 在全部控制节点安装cinder服务,以controller01节点为例 |
配置cinder.conf
1 | # 在全部控制节点操作,以controller01节点为例; |
配置nova.conf
1 | # 在全部控制节点操作,以controller01节点为例; |
同步cinder数据库
1 | # 任意控制节点操作; |
启动服务
1 | # 全部控制节点操作; |
验证
1 | [root@controller01 ~]# . admin-openrc |