首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

OpenStack从数据库回复Volume状态

2012-11-11 
OpenStack从数据库恢复Volume状态 select * from volumes where id 40\G*************************** 1.

OpenStack从数据库恢复Volume状态

select * from volumes where id = 40\G*************************** 1. row *************************** created_at: 2012-10-29 07:00:23 updated_at: 2012-10-29 13:41:56 deleted_at: 2012-10-29 13:44:36 deleted: 1 id: 40 ec2_id: NULL user_id: 397dd3be88b6492caa88521502b07617 project_id: c6159a4f3dd34a2b83527499a40dbd2b host: store2.sigsit.org size: 20 availability_zone: nova instance_id: NULL mountpoint: NULL attach_time: NULL status: deleting attach_status: detached scheduled_at: 2012-10-29 07:00:23 launched_at: 2012-10-29 07:00:25 terminated_at: 2012-10-29 13:41:55 display_name: testdisplay_description: provider_location: 10.61.2.14:3260,5 iqn.2010-10.org.openstack:volume-00000028 1 provider_auth: NULL snapshot_id: NULL volume_type_id: NULLselect * from volume_metadata where volume_id = 40\Gselect * from iscsi_targets where volume_id = 40\Gselect * from block_device_mapping where volume_id = 40\G*************************** 1. row *************************** created_at: 2012-10-29 11:55:36 updated_at: NULL deleted_at: 2012-10-29 11:58:36 deleted: 1 id: 49 instance_id: 70 device_name: /dev/vdcdelete_on_termination: 0 virtual_name: NULL snapshot_id: NULL volume_id: 40 volume_size: NULL no_device: NULL connection_info: {"driver_volume_type": "iscsi", "data": {"device_path": "/dev/disk/by-path/ip-10.61.2.14:3260-iscsi-iqn.2010-10.org.openstack:volume-00000028-lun-1", "target_discovered": false, "target_iqn": "iqn.2010-10.org.openstack:volume-00000028", "target_portal": "10.61.2.14:3260", "volume_id": 40, "target_lun": 1}}*************************** 2. row *************************** created_at: 2012-10-29 12:00:32 updated_at: NULL deleted_at: 2012-10-29 13:10:51 deleted: 1 id: 50 instance_id: 70 device_name: /dev/vdcdelete_on_termination: 0 virtual_name: NULL snapshot_id: NULL volume_id: 40 volume_size: NULL no_device: NULL connection_info: {"driver_volume_type": "iscsi", "data": {"device_path": "/dev/disk/by-path/ip-10.61.2.14:3260-iscsi-iqn.2010-10.org.openstack:volume-00000028-lun-1", "target_discovered": false, "target_iqn": "iqn.2010-10.org.openstack:volume-00000028", "target_portal": "10.61.2.14:3260", "volume_id": 40, "target_lun": 1}}select * from sm_volume where id = 40\G

相关结论
创建Volume对数据库的修改 修改volumes表,添加一条Volume记录。 修改iscsi_targets表,寻找一个可用的target记录,将该记录的volume_id设置为新添volume的id。target记录有target_num和host信息,然后nova会用这两个值去相应的主机用这个target_num创建Volume。挂载Volume对数据库的修改 修改volumes表,设置instance_id、mountpoint为实例id、设备名,修改Volume的状态status、attach_status为in-use、attached修改block_device_mapping表,添加一条映射记录,包括包含实例和卷的信息,特别是卷的连接信息。 卸载Volume对数据库的修改 修改volumes表,设置instance_id、mountpoint为null,修改Volume的状态status、attach_status为available、detached修改block_device_mapping表,修改相应的映射记录,设置deleted_at时间及deleted为1。 删除Volume对数据库的修改 修改volumes表,设置deleted_at时间及deleted为1。 修改iscsi_targets表,修改将volume_id对应的记录,设置volume_id为null。

在数据库中修改以上四个数值,Volume可以成功挂载、卸载到其它实例,原来的问题实例也可以正常删除了。当然具体情况还得具体分析,我已经查看过Volume的状态知道已经实质上被卸载了,没有客户端连接到该Volume上,所以只要在数据库中将该Volume恢复成未挂载状态即可。

因此,当Volume处于不一致的状态时,首先应当登录Volume所在的存储节点,通过tgtadm --lld iscsi --mode target --op show命令查看Volume的状态:Volume是不是还存在?有没有连接的客户端?然后修改相关的数据库状态值。

北方工业大学 | 云计算研究中心 | 姜永

热点排行