数据存储区“datastore name”与数据中心内具有相同 URL 的现有数据存储区冲突

摘要: 从 vCenter 清单中移除无法访问的数据存储区时出现以下错误:错误:数据存储区“datastorename(XX)”与数据中心内具有相同 URL (ds://vmfs/volumes/UUID/) 但由不同物理存储支持的现有数据存储区冲突。

症状

将 ESXi 主机从装系统并从 vCenter 服务器添加到以前属于数据中心或群集一部分的 vCenter 服务器时,会出现以下症状:

  • 数据存储“esxi13”不可访问,并显示类似以下内容的错误:

CleanShot 2024-12-28 at 14.47.18@2x

CleanShot 2024-12-28 at 14.49.15@2x

CleanShot 2024-12-28 at 14.49.59@2x

原因

出现此问题的原因是 vCenter Server 数据库中的数据存储区 UUID 条目重复。

解决方案

[!NOTE]

提醒:在执行以下步骤之前,请拍摄 vCenter 的快照。

  1. 使用 SSH 连接到 vCenter Server
  2. 使用以下命令访问 Bash Shell
shell.set --enabled true 
OR type:
shell
  1. 停止 vpxd service 使用以下命令:
service-control --stop vmware-vpxd
  1. 使用以下命令访问 Postgres 数据库
/opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres
  1. 为 vCenter 6.5 运行以下查询:
select id,storage_url from vpx_datastore;

CleanShot 2024-12-28 at 14.51.21@2x

  1. 为 vCenter 6.7、7.x 或 8.x 运行以下查询:
select * from vpx_datastore;

CleanShot 2024-12-28 at 14.53.03@2x

或者,您也可以运行:

select * from vpx_datastore where storage_url='<storage URL from the error message>';
select * from vpx_entity where name = 'DatastoreName';

CleanShot 2024-12-28 at 14.57.17@2x

CleanShot 2024-12-28 at 14.55.18@2x

  1. 查找受影响的 数据存储区 UUID 以查找 ID。
  2. 运行 以下命令以确认正确的 ID:
select * from vpx_entity where id=58011(ID found on previous step);

CleanShot 2024-12-28 at 14.59.11@2x

  1. 从 中删除 条目 vpx_ds_assignmentvpx_vm_ds_spacevpx_datastore以及 vpx_entity 使用以下查询。

ID = 24 的示例:

delete from vpx_ds_assignment where ds_id=24;
delete from vpx_vm_ds_space where ds_id=24;
delete from vpx_datastore where id=24;
delete from vpx_entity where id=24;
  1. 要从数据库 退出 ,请使用 \q

    CleanShot 2024-12-28 at 15.00.49@2x

  2. 启动 vmware-vpxd service 为了反映更改:
service-control --start vmware-vpxd
  1. 一旦 vmware-vpxd service 重新启动,请再次将 ESXi 主机 添加 回 vCenter Server。

CleanShot 2024-12-28 at 15.01.49@2x