最近加了一台esxi6.5,並裝了 vCenter Server Appliance6.5。 突然有一天發現登入 vCenter web client時,上面出現Could not connect to one or more vCenter Server systems:https://url:443/sdk的錯誤訊息,然後左手邊的目錄裡一直顯示在Loading。 查了老半天,有發現一篇文章說這是6.5的BUG,說接上USB裝置造成的,剛好自己有外接一個USB隨身碟,所以就把隨身碟移掉,重開整台實體機,升級vCenter,但問題一樣存在。 後來連上vCenter的shell,發現vmware-vpxd這支服務,一直無法啟動,所以就針對這個服務去找答案。 有人說是DNS的問題,是系統時間的問題,下指令把服務重開,通通都沒用。 最後去看了vpxd(/var/log/vmware/vpxd/vpxd.log)的log,裡面有一段錯誤訊息 ERROR: duplicate key value violates unique constraint "pk_vpx_vm_virtual_device"; 所以就Google這個錯誤訊息,找到這篇 http://www.desertpenguin.org/blog/could-not-connect-to-one-or.html。 解法就是 1. 先找到vCenter的DB log(/var/log/vmware/vpostgres),裡面會有一個像VCDB vc DETAIL: Key (id, device_key)=(101, 3002) already exists.的錯誤訊息,找到重覆的ID跟KEY. 2. 連上DB(/opt/vmware/vpostgres/current/bin/psql -U postgres ),不用密碼,然後在下(\c VCDB)跟(\dt)兩個指令,會看到一大堆資料庫。 3. 接著下搜尋指令(SELECT * FROM vpx_vm_virtual_device WHERE ID=101 AND DEVICE_KEY=3002; ),指令裡的ID跟KEY要改成自己之前在Log裡找到的,正常的話就會有找到資料。 4. 下指令把這個資料給刪了(DELETE FROM vpx_vm_virtual_device WHERE ID=101 AND DEVICE_KEY=3002;),接著重開機,就大功告成。 這是花了快一個星期才找到的,希望有相同問題的人也能得到幫助。