프롬프트 없이 Nova 볼륨 분리가 실패했으며 계산 로그에 libvirtError:잘못된 인수: 대상 장치 vdb가 없습니다.

프롬프트 없이 Nova 볼륨 분리가 실패했으며 계산 로그에 libvirtError:잘못된 인수: 대상 장치 vdb가 없습니다.

Openstack Havana를 사용하여 nova 인스턴스에서 cinder 볼륨을 분리해 보았습니다.

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를 사용하여 사용 가능한 상태로 복원할 수 있습니다.

관련 정보