OpenStack-Cinder创卷代码走读(Grizzly)下
2013-04-24 17:39
295 查看
20.调用Quita的方法创建reservations(应该是资源的预留).这块如果有异常,会分为volume size不足和volume个数不足抛异常。
21.获取availability_zone参数,如果为null,则取默认值。如果请求中没有volume_type和source_volume,则volume_type去默认值,如果请求中没有volume_type,但是有source_volume,则取source_volume的volume_type_id值。否则从volume_type取volume_type_id的值。
22.检查请求中的metadata
23.组装options,包括了各种校验后的参数,然后将创卷数据插入数据库,插入数据库时会生成卷ID(uuid),QUTAS也提交资源预留值。失败则都回归
24.组装request_spec,并调用私有方法_cast_create_volume,该方法做以下几个判断:
1. 如果请求request_spec中有snapshot_id(从快照创建卷)并且snapshot_same_host开关是true,则取该快照的源卷所在的主机作为新创建卷的主机,scheduled_at选取为now,并更新数据库,然后调用volume_rpcapi.create_volume开始创卷。
2. 如果请求中指定了源卷(从卷创建卷),则从数据库中取源卷的主机,scheduled_at选取为now,并更新数据库,然后调用volume_rpcapi.create_volume开始创卷
3. 其他情况则调用scheduler_rpcapi.create_volume方法开始创卷。
21.获取availability_zone参数,如果为null,则取默认值。如果请求中没有volume_type和source_volume,则volume_type去默认值,如果请求中没有volume_type,但是有source_volume,则取source_volume的volume_type_id值。否则从volume_type取volume_type_id的值。
22.检查请求中的metadata
23.组装options,包括了各种校验后的参数,然后将创卷数据插入数据库,插入数据库时会生成卷ID(uuid),QUTAS也提交资源预留值。失败则都回归
24.组装request_spec,并调用私有方法_cast_create_volume,该方法做以下几个判断:
1. 如果请求request_spec中有snapshot_id(从快照创建卷)并且snapshot_same_host开关是true,则取该快照的源卷所在的主机作为新创建卷的主机,scheduled_at选取为now,并更新数据库,然后调用volume_rpcapi.create_volume开始创卷。
2. 如果请求中指定了源卷(从卷创建卷),则从数据库中取源卷的主机,scheduled_at选取为now,并更新数据库,然后调用volume_rpcapi.create_volume开始创卷
3. 其他情况则调用scheduler_rpcapi.create_volume方法开始创卷。
相关文章推荐
- OpenStack-Cinder创卷代码走读(Grizzly)上
- OpenStack-Cinder创卷代码走读(Grizzly)中
- OpenStack-Cinder创卷代码走读(Grizzly)END
- OpenStack-Cinder创卷代码走读(Grizzly)
- OpenStack-Cinder强制卸载卷接口代码走读(Grizzly)上
- OpenStack-Cinder强制卸载卷接口代码走读(Grizzly)下
- OpenStack-Cinder挂卷接口代码走读(Grizzly)
- OpenStack-Cinder卸卷接口代码走读(Grizzly)
- OpenStack Grizzly实例重启之后cinder-volume服务无法启动的解决办法
- OpenStack(Grizzly) cinder-volume时序图
- Openstack Cinder 服务启动代码分析
- OpenStack(Grizzly) Cinder整体框架图
- OpenStack(Grizzly) Cinder基本状态图
- 代码走读
- 【OpenStack】Quantum(Grizzly)中的agent
- OpenStack Cinder源码分析之八
- webrtc自带client的音频引擎创建代码走读
- openstack运维实战系列(十九)之cinder与ceph结合
- 掌握 Cinder 的设计思想 - 每天5分钟玩转 OpenStack(46)
- openstack controller ha测试环境搭建记录(十三)——配置cinder(控制节点)