OpenStack-Cinder创卷代码走读(Grizzly)END
来源:互联网 发布:门户网站访问效率优化 编辑:程序博客网 时间:2024/06/10 19:46
25.volume_rpcapi.create_volume是调用manager.py中的create_volume方法, 该方法先从数据库中取出volume的信息,然后调用 volume_utils.notify_about_volume_usage方法(是不是通知RabbitMQ?)。然后继续从volume信息中取vol_name,vol_size,并且如果入参中有snapshot_id,说明从快照创建卷,则从DB中取该snapshot的信息,如果入参中有source_volID,说明是从已有卷创建卷,则从DB中取该源卷信息,如果入参中有image_id,说明是从镜像创建卷,则从glance中获取镜像服务器信息,镜像ID,镜像位置,镜像的metadata.然后调用该类的私有方法_create_volume,该方法首先判断如果snapshot_ref,imag_id,srcvol_ref都是空,则说明是创建一个空卷,就调用driver.create_volume去创卷,如果有snapshot_ref参数,则调用driver.create_volume_from_snapshot方法去创卷,如果请求中有源卷的参数,则调用driver.create_cloned_volume去创卷(实际上就是克隆一个卷)。如果请求中有镜像参数,则调用driver.clone_image方法去创卷,如果clone_image失败,则调用普通创卷方法先创建个空卷,然后将卷状态置为downloading,然后调用_copy_image_to_volume方法把镜像内容拷贝入卷中。
26._create_volume方法会有两个返回值,model_update和cloned.如果有创卷中有异常,会判断如果是根据源卷创建的话,则回滚源卷的状态。同时从新进行调度。
27.如果返回值model_update为true,会在数据库中更新创建好的卷,同时如果是从卷创建卷的方式时,还有把源卷的Glance metadata拷贝一份给新的卷,也就是说新卷将保留源卷的metadata.
28.然后会调用driver.create_export方法,这个方式似乎是根据不同的存储返回卷的位置,例如huawei iscsi driver中返回的是lun_id.
29.流程继续,会根据请求如果有snapshot_id,也会拷贝Glance metadata(应该是这个快照对应的卷的metadata)给新卷。如果是从image创建卷的方式,如果image有metadata,也会拷贝镜像的属性到volume_glance_metadata表中。会写入这个卷对应镜像的ID,名称及其他属性。
30.最后更新数据库中的卷状态和创建时间,并调用_notify_about_volume_usage方法通知“create.end”,并返回卷ID。
- OpenStack-Cinder创卷代码走读(Grizzly)END
- OpenStack-Cinder创卷代码走读(Grizzly)上
- OpenStack-Cinder创卷代码走读(Grizzly)中
- OpenStack-Cinder创卷代码走读(Grizzly)下
- OpenStack-Cinder创卷代码走读(Grizzly)
- OpenStack-Cinder挂卷接口代码走读(Grizzly)
- OpenStack-Cinder卸卷接口代码走读(Grizzly)
- OpenStack-Cinder强制卸载卷接口代码走读(Grizzly)上
- OpenStack-Cinder强制卸载卷接口代码走读(Grizzly)下
- OpenStack(Grizzly) Cinder基本状态图
- OpenStack(Grizzly) Cinder整体框架图
- OpenStack(Grizzly) cinder-volume时序图
- OpenStack Grizzly实例重启之后cinder-volume服务无法启动的解决办法
- Openstack Cinder创建卷错误排错过程
- [OpenStack Cinder] 配置multi-backend 存储卷及其Tempest测试
- Openstack Cinder 服务启动代码分析
- Openstack、Cinder
- Ubuntu12.04.2 OpenStack Grizzly 安装(Bridge)
- RTX二次开发笔记1
- HDU1465:不容易系列之一
- jQuery焦点图轮播slide插件
- jquery插件编写
- 五子棋
- OpenStack-Cinder创卷代码走读(Grizzly)END
- 开源:云寻觅中文分词 (Yunxunmi Chinese Word Segmentation) ,词汇440万,10万字文章分词并计算频率不超过1秒
- RTX二次开发笔记2
- 实现行列二维到一维转换的EXCEL VBA代码
- AS3 实现数组冒泡算法排序
- Linux下实现全自动安装LAMP、PPTPD(VPN)、MAIL
- IOS学习笔记—IOS通知中心 .
- 谈谈对BPM的理解
- Struts2.2.1.1生成chm格式帮助文档