数据存储区“datastore name”与数据中心内具有相同 URL 的现有数据存储区冲突
摘要: 从 vCenter 清单中移除无法访问的数据存储区时出现以下错误:错误:数据存储区“datastorename(XX)”与数据中心内具有相同 URL (ds://vmfs/volumes/UUID/) 但由不同物理存储支持的现有数据存储区冲突。
症状
将 ESXi 主机从装系统并从 vCenter 服务器添加到以前属于数据中心或群集一部分的 vCenter 服务器时,会出现以下症状:
- 数据存储“esxi13”不可访问,并显示类似以下内容的错误:
原因
出现此问题的原因是 vCenter Server 数据库中的数据存储区 UUID 条目重复。
解决方案
[!NOTE]
提醒:在执行以下步骤之前,请拍摄 vCenter 的快照。
- 使用 SSH 连接到 vCenter Server。
- 使用以下命令访问 Bash Shell:
shell.set --enabled true
OR type:
shell
- 停止
vpxd service
使用以下命令:
service-control --stop vmware-vpxd
- 使用以下命令访问 Postgres 数据库:
/opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres
- 为 vCenter 6.5 运行以下查询:
select id,storage_url from vpx_datastore;
- 为 vCenter 6.7、7.x 或 8.x 运行以下查询:
select * from vpx_datastore;
或者,您也可以运行:
select * from vpx_datastore where storage_url='<storage URL from the error message>';
select * from vpx_entity where name = 'DatastoreName';
- 查找受影响的 数据存储区 UUID 以查找 ID。
- 运行 以下命令以确认正确的 ID:
select * from vpx_entity where id=58011(ID found on previous step);
- 从 中删除 条目
vpx_ds_assignment
、vpx_vm_ds_space
、vpx_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;
要从数据库 退出 ,请使用
\q
。- 启动
vmware-vpxd service
为了反映更改:
service-control --start vmware-vpxd
- 一旦
vmware-vpxd service
重新启动,请再次将 ESXi 主机 添加 回 vCenter Server。