调整实例大小后,附加到该实例的一些卷已正确重新附加,但许多卷现在陷入“附加”状态。
我无法分离任何卷以重新连接它们,因为它们的状态不正确:
# nova volume-detach d7d22b3c-f7a8-4e3d-9cf4-8588ca3c2b4e b3d7b7f4-e7af-493b-9a47-fabcda03d259
ERROR (BadRequest): Invalid volume: Invalid input received: Invalid volume: Unable to detach volume. Volume status must be 'in-use' and attach_status must be 'attached' to detach. (HTTP 400
) (Request-ID: req-57cb42eb-e47a-476a-a9d7-f6234a7fb5ab) (HTTP 400) (Request-ID: req-fa52d6e4-76e0-441c-8c59-c1ea557f1c59)
openstackvolumeshow命令显示没有附件且状态为“附加”。
我在 redhat kb 上遇到了类似的问题,但不幸的是,发布的解决方案是这需要数据库工作,并且应该联系 redhat 同事: https://access.redhat.com/solutions/5277781
如何解决此问题并重新附加卷?
通过在 nova 数据库的 block_device_mapping 表和 cinder 数据库的volume_attachments 表中将卷的条目标记为已删除,并使用 重新附加卷来解决此问题
nova volume-attach <server> <volume>
并关闭并打开有问题的服务器。
我猜消息队列有问题。
我遇到了这个问题,并使用此文档进行修复:
https://docs.openstack.org/nova/2024.1/admin/configuration/service-user-token.html#service-user-token
nova.conf,neutron.conf,cinder.conf
nova.conf
cinder.conf
[keystone_authtoken] service_token_roles = Role_signed_to_cinder_nova_neutron_like_admin service_token_roles_required = true[服务用户] send_service_user_token = true auth_url = http://控制器:5000/身份 auth_strategy = 基石 身份验证类型 = 密码 项目域名=默认 项目名称=服务 用户域名称 = 默认 用户名 = 新星 密码=NOVA_PASS
transport_url = rabbit://openstack:RABBIT_PASS@controller:5672/
然后你必须重新启动你更改.conf文件的所有服务,或者重新启动每个节点