プロンプトなしでNovaボリュームの分離が失敗し、計算ログにlibvirtError:無効な引数:ターゲットデバイスvdbがありません。

プロンプトなしでNovaボリュームの分離が失敗し、計算ログにlibvirtError:無効な引数:ターゲットデバイスvdbがありません。

Openstack Havanaを使用して、novaインスタンスからシンダーボリュームを分離してみました。

Nova ボリュームリストには、使用中としてマークされます。

| 34b0ea26-f85c-4b62-8ebd-884b0e63e2d5 | in-use | filestore | 256  | None| 4d05ffe4-d30a-4c93-b710-c9ec80dad1c2 |

ボリュームはiSCSI経由で接続されます。

# iscsiadm -m session
tcp: [5] 10.3.40.10:3260,1 iqn.2010-10.org.openstack:volume-34b0ea26-f85c-4b62-8ebd-884b0e63e2d5 (non-flash)

インスタンスには/dev/vdbとして表示され、マウントおよび読み取り/書き込みが可能です。

ただし、インスタンスからアンロードして発行

# nova volume-detach 4d05ffe4-d30a-4c93-b710-c9ec80dad1c2 34b0ea26-f85c-4b62-8ebd-884b0e63e2d5

分離されません。ボリュームはまだ「使用中」とマークされています。 Compute.log で次のエラーが発生します。

libvirtError: invalid argument: no target device vdb

コンピューティングノードで「virsh edit 4」を実行すると、vdb用のディスクデバイスが実際に欠落しています。しかし、「virsh dumpxml 4」を実行しても残ります!

この謎を解くにはどうすればいいですか?

Virsh dumpxmlと編集の違い: http://pastebin.com/3CrGbcwu

エラー Compute.log: http://pastebin.com/1UCahB3d

ベストアンサー1

XML ダンプの XML を独自のファイルにコピーし、次の方法で現在の構成に再更新して libvirt 構成を再同期することができました。

virsh attach-device 4 filestore.xml --config

その後、novavolume-detachを再実行します。コンピューティングノードが正常にクリーンアップされ、iscsiセッションがアイドル状態になりました。ただし、ボリュームは「分離」状態で停止しています。どこにもエラーがなく、なぜ「利用可能」を返さないのかわかりません。 tgt-adminを使用すると、オフラインにして準備状態に復元し、cinder Reset-stateを使用して利用可能な状態に復元できます。

おすすめ記事