OpenStack-Cinder创卷代码走读(Grizzly)下

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方法开始创卷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值