您的位置:首页 > 编程语言

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方法开始创卷。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: