Как лучше всего исправить ситуацию, когда база данных nova содержит вложение, а Cinder нет?
В нашем облаке OpenStack есть сервер сserver_id
и том с<volume_id>
. Мы находимся в ситуации, когда есть том, который кажется прикрепленным с точки зрения Nova, но не с точки зрения Cinder. В базе данных nova есть запись об этом вложении:MariaDB [(none)]> select * from block_device_mapping where instance_uuid = "<volume_id>"
, показывает запись.
Нова показывает вложение:
openstack server show <server_id>
+-------------------------------------+----------------------------------------------------------+
| Field | Value |
+-------------------------------------+---------------------------------------------------------
| volumes_attached | id='...' |
| | id='<volume_id' |
+-------------------------------------+----------------------------------------------------------+
Зола, не знает об этом вложении:
openstack volume show <volume_id>
+--------------------------------+--------------------------------------+
| Field | Value |
+--------------------------------+--------------------------------------+
| attachments | [] |
Изнутри виртуальной машины том кажется подключенным и с ним можно работать.
Я попробовал установить громкость наavailable
иdetached
состояние, но невозможно прикрепить его ни в одном состоянии, которое я пробовал.
Он также попытался полностью удалить вложение. При бегеopenstack server remove volume
илиnova volume-detach
команда завершается без ошибок, и журнал Cinder показывает:Roll detaching of volume completed successfully.
Однако ситуация не меняется.
Как лучше всего выйти из этой ситуации? Я думаю, что для этой конкретной виртуальной машины я мог бы удалить запись базы данных изblock_device_mapping
и пересобрать виртуальную машину? На будущее хотелось бы знать, можно ли также исправить ситуацию в OpenStack, чтобы она отражала ситуацию в реальном мире. Это значит, могу ли я каким-либо образом добавить вложение, чтобы оно также было видно в Cinder?