免責事項: これは英文の記事 「Unable to remove inaccessible datastore from vCenter server」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
事象:
VMware vCenter Server 6.5.x
VMware vCenter Server 6.7.x
VMware vCenter Server 7.x
VMware vCenter Server 8.x
VMware vCenter Server 9.0.x
この事象は以下のような原因から発生することがあります。
そのデータストアがマウントされていたすべてのクラスターで、クラスターレベルでストレージのリスキャンを実施してください。
もしクラスターレベルのリスキャンでも「アクセス不可」のデータストアが残る場合、以下のステップを実施してください。
注: VCDB に変更を加える前に、バックアップまたはスナップショットを確実にとってください。もし vCenter が拡張リンクモード (ELM) である場合、すべての ELM パートナーでオフラインスナップショットを事前に取得してください。VMware vCenter in Enhanced Linked Mode pre-changes snapshot (online or offline) best practice を参照してください。
VCDB から完全に削除するオブジェクトを特定し、削除する。
# service-control --stop vpxd
# /opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres
VCDB=# SELECT id FROM vpx_entity WHERE name = 'Datastore Name';
Example:
id -------- 169867 (1 row)
VCDB=# SELECT * FROM vpx_ds_assignment WHERE ds_id=169867;
VCDB=# SELECT * FROM vpx_ds_assignment WHERE ds_id=169867; ds_id | entity_id | accessible | mount_path | mount_id | mount_mode | mounted
--------+-----------+------------+------------+----------+------------+---------
169867 | 160136 | | | | |
169867 | 160148 | | | | |
(2 rows)
上記の例では、インベントリに二つのオブジェクトがまだ該当データストアに関連づけされていることがわかる。このオブジェクトの名前を得る。
例:
VCDB=# SELECT * FROM vpx_entity WHERE id=16##36; id | name | type_id | parent_id --------+-------------------+---------+----------- 160136 | <VM_Name> | 0 | 161290 (1 row)
VCDB=# SELECT * FROM vpx_entity WHERE id=16##48; id | name | type_id | parent_id --------+------------------+---------+----------- 160148 | <VM_Name> | 0 | 161290 (1 row)
VCDB=# DELETE FROM vpx_vm_ds_space WHERE ds_id=169867;
VCDB=# DELETE FROM vpx_ds_assignment WHERE ds_id=169867;
VCDB=# DELETE FROM vpx_datastore WHERE id=169867;
VCDB=# DELETE FROM vpx_entity where id=169867;
# service-control --start vpxd
またもし ESXi ホストから削除する前にデータストアを削除(破棄)してしまい、
という状況では、ESXi ホストをリブートすると解消することがあります。
注: その際は、vCenter で再度データストアが表れないようにするため、ストレージ上で ESXi に対するデータストア(LUN)のアサインが外れていることを確認してください。