Cinderで管理しているVolumeが削除できない(RDO版 python-cinder-2014.1-2.el7.noarch)
ボリュームが消せない...
cinderコマンドやhorizonからボリュームを削除しようとするとerror_deletingのまま削除できない現象に当たったので調べてみた。
エラーメッセージ(/var/log/cinder/volume.log)
cinderのボリュームノードでは以下のログが出力されている。
2014-09-04 13:40:57.017 18535 WARNING cinder.context [-] Arguments dropped when creating context: {'user': u'299a108b970b4407af22 b8da11ad3e6c', 'tenant': u'f537390fb838414082c266d476897231', 'user_identity': u'299a108b970b4407af22b8da11ad3e6c f537390fb838414 082c266d476897231 - - -'} 2014-09-04 13:40:57.084 18535 ERROR oslo.messaging.rpc.dispatcher [req-a7d9b1b8-19b5-4fc2-9ee3-3172c862acde 299a108b970b4407af22b 8da11ad3e6c f537390fb838414082c266d476897231 - - -] Exception during message handling: No target id found for volume 5f3e641b-a7b 2-407f-a239-cf63d1124106. 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher Traceback (most recent call last): 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/oslo/messaging/rpc/dis patcher.py", line 133, in _dispatch_and_reply 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher incoming.message)) 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/oslo/messaging/rpc/dis patcher.py", line 176, in _dispatch 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher return self._do_dispatch(endpoint, method, ctxt, args) 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/oslo/messaging/rpc/dis patcher.py", line 122, in _do_dispatch 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher result = getattr(endpoint, method)(ctxt, **new_args) 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 144, in lvo_inner1 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher return lvo_inner2(inst, context, volume_id, **kwargs) 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/cinder/openstack/common/lockutils.py", line 233, in inner 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher retval = f(*args, **kwargs) 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 143, in lvo_inner2 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher return f(*_args, **_kwargs) 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 416, in delete_volume 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher {'status': 'error_deleting'}) 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/cinder/openstack/common/excutils.py", line 68, in __exit__ 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher six.reraise(self.type_, self.value, self.tb) 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 400, in delete_volume 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher self.driver.remove_export(context, volume_ref) 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/cinder/volume/drivers/lvm.py", line 540, in remove_export 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher self.target_helper.remove_export(context, volume) 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/cinder/volume/iscsi.py", line 232, in remove_export 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher volume['id']) 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/cinder/db/api.py", line 234, in volume_get_iscsi_target_num 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher return IMPL.volume_get_iscsi_target_num(context, volume_id) 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/cinder/db/sqlalchemy/api.py", line 119, in wrapper 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher return f(*args, **kwargs) 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/cinder/db/sqlalchemy/api.py", line 1344, in volume_get_iscsi_target_num 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher raise exception.ISCSITargetNotFoundForVolume(volume_id=volume_id) 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher ISCSITargetNotFoundForVolume: No target id found for volume 5f3e641b-a7b2-407f-a239-cf63d1124106. 2014-09-04 13:40:57.084 18535 TRACE oslo.messaging.rpc.dispatcher 2014-09-04 13:40:57.089 18535 ERROR oslo.messaging._drivers.common [req-a7d9b1b8-19b5-4fc2-9ee3-3172c862acde 299a108b970b4407af22b8da11ad3e6c f537390fb838414082c266d476897231 - - -] Returning exception No target id found for volume 5f3e641b-a7b2-407f-a239-cf63d1124106. to caller 2014-09-04 13:40:57.090 18535 ERROR oslo.messaging._drivers.common [req-a7d9b1b8-19b5-4fc2-9ee3-3172c862acde 299a108b970b4407af22b8da11ad3e6c f537390fb838414082c266d476897231 - - -] ['Traceback (most recent call last):\n', ' File "/usr/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py", line 133, in _dispatch_and_reply\n incoming.message))\n', ' File "/usr/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py", line 176, in _dispatch\n return self._do_dispatch(endpoint, method, ctxt, args)\n', ' File "/usr/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py", line 122, in _do_dispatch\n result = getattr(endpoint, method)(ctxt, **new_args)\n', ' File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 144, in lvo_inner1\n return lvo_inner2(inst, context, volume_id, **kwargs)\n', ' File "/usr/lib/python2.7/site-packages/cinder/openstack/common/lockutils.py", line 233, in inner\n retval = f(*args, **kwargs)\n', ' File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 143, in lvo_inner2\n return f(*_args, **_kwargs)\n', ' File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 416, in delete_volume\n {\'status\': \'error_deleting\'})\n', ' File "/usr/lib/python2.7/site-packages/cinder/openstack/common/excutils.py", line 68, in __exit__\n six.reraise(self.type_, self.value, self.tb)\n', ' File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 400, in delete_volume\n self.driver.remove_export(context, volume_ref)\n', ' File "/usr/lib/python2.7/site-packages/cinder/volume/drivers/lvm.py", line 540, in remove_export\n self.target_helper.remove_export(context, volume)\n', ' File "/usr/lib/python2.7/site-packages/cinder/volume/iscsi.py", line 232, in remove_export\n volume[\'id\'])\n', ' File "/usr/lib/python2.7/site-packages/cinder/db/api.py", line 234, in volume_get_iscsi_target_num\n return IMPL.volume_get_iscsi_target_num(context, volume_id)\n', ' File "/usr/lib/python2.7/site-packages/cinder/db/sqlalchemy/api.py", line 119, in wrapper\n return f(*args, **kwargs)\n', ' File "/usr/lib/python2.7/site-packages/cinder/db/sqlalchemy/api.py", line 1344, in volume_get_iscsi_target_num\n raise exception.ISCSITargetNotFoundForVolume(volume_id=volume_id)\n', 'ISCSITargetNotFoundForVolume: No target id found for volume 5f3e641b-a7b2-407f-a239-cf63d1124106.\n']
調べてみる...
どうやらコレを引き当てている様子
1084046 NEW https://bugzilla.redhat.com/show_bug.cgi?id=1084046 cinder: can't delete a volume (raise exception.ISCSITargetNotFoundForVolume)
launchpadでも報告されている
cinder-2014.1.1では修正されるみたい ということで、
にある通り、パッチを当てて無事削除できるようになりました
--- /usr/lib/python2.7/site-packages/cinder/volume/iscsi.py.org 2014-04-22 05:09:40.000000000 +0900 +++ /usr/lib/python2.7/site-packages/cinder/volume/iscsi.py 2014-09-04 15:29:37.916931574 +0900 @@ -19,6 +19,7 @@ from oslo.config import cfg from cinder.brick import exception +from cinder import exception from cinder.brick.iscsi import iscsi from cinder.openstack.common.gettextutils import _ from cinder.openstack.common import log as logging