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

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

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-volume服务状态down的解决方法 cinder-volume服务的状态如果是down,有可能的问题就是两个节点时间不一致导致的(可以分别查看一下两个节点的时间是否一致,不一致的话就按如下操作同步时间),两个节点分别同步一下时间即可。[此方法适合解决两个节点时间不一致所导致的cinder-volume服务状态down的问题] 在controller节点查看一下服务 #source /etc/keystone/admin-openrc.sh //运行环境变量 #cinder service-list //查看cinder服务 阅读详情

相关推荐

OpenStack】Nova中的create_image

Nova中的create_image 本博客欢迎转发,但请保留原作者信息 新浪微博:@孔令贤HW; QQ:363210168 博客地址:http://blog.csdn.net/lynn_kong 内容系本人学习、研究和总结,如有雷同,实属荣幸! 更新记录: 2013.4.22  增加G版中对live snapshot的约束 在Nova的core api中,对于虚拟机(se

代码改变世界 5658

openstack 磁盘建和删除慢

1.日志 BuildAbortException: Build of instance 90b17c47-5f5c-43cc-92f5-a5debd6bce57 aborted: Volume 3b5a1ec8-1bc4-497e-a2a9-7bb9c47fb556 did not finish being created even after we waited 188 seconds or ...

火云邪神的博客 1785

sysrepo 开发者指南(一个基于libyang与支持rpc的数据库)

sysrepo 开发者指南(一个基于libyang与支持rpc的数据库) 日志记录 默认情况下,所有 Sysrepo 日志记录都处于关闭状态。如果启用,日志消息有 3 种输出。它们可以写入stderr、由 处理syslog或简单地传递给回调。 请务必注意,启用 Sysrepo 日志记录也会修改libyang日志记录设置。错误消息被视为标准 Sysrepo 错误,其他严重性较低的消息完全隐藏。要更改此行为,只需在启用 Sysrepo 日志记录后调整libyang日志记录设置。 此外,几乎每个 Sysrepo

weixin_43489394的博客 9121

云主机建失败

OpenStack建云主机时报错。 OpenStack建云主机的时候,网络、租户、路由、镜像都建没有问题,然后在建云主机的时候,指定了云主机选择源是一个镜像cirros,主机类型选m1.tiny最小的,然后选择网络,但是建中就报错,Block Device Mapping is Invalid。 在网上找了很多办法一一尝试。 openstack volume service list查看到cinder-volume 的状态一直为down。 原因是在于我没有。使用命令 cinde

qq_26350199的博客 6388

OpenStack(Train版)安装部署(十七)】之Cinder的API测试,报错处理

文章目录本文章由公号【开发小鸽】发布!欢迎关注!!!1.cinder服务的API测试(1)的概述(2)的状态(3)获取所有的类型(4)类型(5)获取所有可访问的(6)获取所有的的详细信息(7)建单个(8)删除单个(9)扩展一个的大小(10)将作为镜像上传到glance中(11)列出所有的快照的简单信息(12)建指定的快照(13)列出所有的快照的详细信息(14)删除指定的快照 本文章由公号【开发小鸽】发布!欢迎关注!!! 老规矩–妹妹镇楼: 1.cinder服务的A

开发小鸽 1288

openstack部署及使用过程中遇到的问题汇总

报错01 Applying 10.130.0.148_controller.pp 10.130.0.148_controller.pp: [ ERROR ] Applying Puppet manifests [ ERROR ] ERROR : Error appeared during Puppet run: 10.130.0.148_controller.pp Error: /Stage[main]/Gnocch

qq_25650463的博客 4万+

OpenStack-Cinder代码走读Grizzly)上

刚开始学习OpenStack,第一次走读代码,有很多不懂的地方,欢迎大家指正。 这块也是在看代码过程中写下的笔记,记录在这里: 1.  api-paste.ini中定义了请求消息的路由路径,分为V1,V2两个版本的API。 2.  [composite:openstack_volume_api_v1] 3.  [composite:openstack_volume_api_v2]

sxmatch的技术人生 1299

OpenStack-Cinder强制卸载接口代码走读Grizzly)下

4.  在terminate_connection方法中的主要作用就是清除connector所表示的主机和之间的connection,首先根据volume_id从DB中取出volume_ref,然后调用响应driver的terminate_connection方法,该方法在不同的driver中实现完全不同,有些driver中直接pass,例如在iscsidriver,sheepdogdriver

sxmatch的技术人生 1469

OpenStack-Cinder接口代码走读(Grizzly)

接口os-attach,接口参数有:【ID,要挂的虚拟机的UUID,挂载点】 1.  Os_attach接口属于openstack的扩展接口,其controller是volume_action.py中的VolumeActionsController类 2.  通过routes的URL映射,挂的请求被dispatch到了volume_action.py中的VolumeActio

sxmatch的技术人生 1544

OpenStack-Cinder代码走读Grizzly

http://blog.csdn.net/sxmatch/article/details/8839892 刚开始学习OpenStack,第一次走读代码,有很多不懂的地方,欢迎大家指正。 这块也是在看代码过程中写下的笔记,记录在这里: 1.  api-paste.ini中定义了请求消息的路由路径,分为V1,V2两个版本的API。 2.  [composite:openst

ztejiagn的专栏 1353

OpenStack-Cinder接口代码走读(Grizzly)

接口os-detach ,接口参数有:【ID】 1.  Os_detach接口属于openstack的扩展接口,其controller是volume_action.py中的VolumeActionsController类 2.  通过routes的URL映射,卸的请求被dispatch到了volume_action.py中的VolumeActionsController类,并调用卸

sxmatch的技术人生 1020

OpenStack-Cinder强制卸载接口代码走读Grizzly)上

1.  Os-force_detach接口属于openstack的扩展接口,其controller是admin_action.py中的VolumeAdminController类 2.  通过routes的URL映射,强制卸载的请求被dispatch到了admin_action.py中的VolumeAdminController类,并调用强制卸载的方法def _force_detach(se

sxmatch的技术人生 1459

OpenStack-Cinder代码走读Grizzly)中

继续 11.除了name和description外,然后根据参数中volume_type的ID,从数据库中获取对应的volume_type的值,放入kwargs中,如果volumeType未找到,则会报异常。 12.取metadata参数,放入kwargs中 13.如果参数中有snapshot ID参数,则从数据库中取快照的信息放入kwargs中,否则置为none; 14.取s

sxmatch的技术人生 1059

CentOS 6.4 Openstack Grizzly 安装配置 (Open VSwitch 单节点)

转载请注明出处,谢谢 微博:http://weibo.com/u/2644902257 欢迎大家一起讨论交流! 参考文献 Red Hat OpenStack Preview https://access.redhat.com/site/documentation/Red_Hat_OpenStack_Preview/ CentOS 6.3 Openstack Folsom 安

1万+

OpenStack-Cinder代码走读Grizzly)下

20.调用Quita的方法建reservations(应该是资源的预留).这块如果有异常,会分为volume size不足和volume个数不足抛异常。 21.获取availability_zone参数,如果为null,则取默认值。如果请求中没有volume_type和source_volume,则volume_type去默认值,如果请求中没有volume_type,但是有source_v

sxmatch的技术人生 884

openstack cinder中的iscsitarget和tgt

根据《Ubuntu13.04安装OpenStack Grizzly》,安装Cinder组件: apt-get install-y cinder-api cinder-scheduler cinder-volume iscsitargetopen-iscsi iscsitarget-dkms 在/etc/cinder/cinder.conf文件中,更改对应iscsitarget 组件的配置:

epugv的专栏 7113

openstack Grizzly多节点部署方案

从F版就开始用github上推荐的一个多节点部署方案,但是由于之前出现问题没有把耐心放的足够多,在F版上遇到的网络问题没有解决。刚好现在这个阶段有时间,于是又重新按这里提供的多节点部署G版方案,把G版部署到了物理机上,目前我的这个集    群已经正常运行。以下就按这里提供的方案,将其装载翻译过来,并指出我自己在安装过程中遇到的问题。     他提供的至少要求是三个节点,每个节点上跑ubu

胡伟的专栏 3379

OpenStack Grizzly 安装指南(Openvswitch模式)

内容列表 0. 简介 1. 环境搭建 2. 控制节点 3. 计算和网络节点 4. OpenStack使用 5. 参考文档 0. 简介 OpenStack Grizzly安装指南旨在让你轻松建自己的OpenStack云平台。 状态: Stable 1. 环境搭建 节点角色: NICs 控制节点: eth0 (10.10.10.51), eth

xiaoliang_199的专栏 2114

OpenStackGrizzlycinder-volume时序图

崔炳华 1806
上一篇: OpenStack-Cinder创卷代码走读(Grizzly)下
下一篇: OpenStack-Cinder强制卸载卷接口代码走读(Grizzly)上
sxmatch
博客等级 码龄19年 15粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值