有时,当计算服务器突然重新启动或在其他类似情况下,我们想要将evacuate
实例转移到另一台主机时,我们会从 Cinder 收到此错误。
我们的 Cinder 支持 Ceph
{'code': 400, 'created': '2022-09-26T15:34:22Z', 'message': 'Unable to update attachment.(Invalid volume: duplicate connectors detected on volume ....). (HTTP 500) (Request-ID:req-c....)'}
我想迁移或撤离实例,但出现此错误。我们该如何解决这个问题?
答案1
此行为通过在两个实例中安装相同的卷来防止数据损坏,如下所述:
https://opendev.org/openstack/cinder/commit/eadff0df7efbe662bf107f77e1b2ac96c912e4e0
如果同时请求多个连接,则一个卷可以多次附加到实例。
通过检测 _attachment_reserve 中发生的竞争并撤消其中一个无效的附件记录,可以修复此问题。
这意味着,如果对同一卷重复快速调用附件 API,某些请求可能会失败,但这比错误地创建多个附件要好得多。
我将尝试分离并重新连接卷到服务器以解决此问题(openstack server remove volume
和openstack server remove volume
)