2017/04/02

vCenter Server Appliance6.5 web client錯誤 : Could not connect to one or more vCenter Server systems:https://url:443/sdk

最近加了一台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;),接著重開機,就大功告成。
這是花了快一個星期才找到的,希望有相同問題的人也能得到幫助。

沒有留言:

張貼留言