ESXI6.0 時間(時區)顯示不一致
來源 http://blog.51cto.com/jdonghong/1957118
近日由於設置ESXI計划任務,無意間發現了esxi服務器客服端時間和系統顯示時間不一致的情況,導致了(我為了一致,通過SSH用命令修改了ESXI系統時間)虛擬機時間也不一致,最終導致虛擬服務器系統時間出錯。
相差大約八小時,可以通過客戶端顯示的時間CST,而ssh服務器用命令顯示為UTC時間。於是我查看了所有的ESXI服務器,發現都是一樣的情況,因為平時不在意(沒有關注這里的時間)沒有關注這一點,你會發現你的ESXI也是這樣的。當時我想到用命令(esxcli system time set)改為一樣不就行了,可以事與願違,改了后導致虛擬服務器時間也跟着變,導致系統錯誤。
最后查了下資料發現ESXI默認都是UTC時間,並且無法更改,更坑的是官方也是這樣說的,只有4.X下的版本的破解辦法,4.X以后官方也無解法。
於是自己搗鼓了下,發現ESXI上/etc下有個localtime ,於是聯想到了LINUX下的localtime,能否先設置好,再進行替換,於是進行了嘗試:
先把LINUX服務器時間設置好,再把localtime復制並上傳到ESXI服務器上,一定要上傳到數據存儲目錄,其它目錄ESXI重啟系統都會還原,文件也會丟失。這里目錄為:/vmfs/volumes/esxi26199
然后使用復制命令,覆蓋掉/etc下的localtime文件,cp /vmfs/volumes/esxi26199/localtime /etc/localtime。
然后date你會發現奇跡出現了:
時間變為了CST了,而且你用客戶端登陸發現時間也是正常的,沒有再變了,查看虛擬機時間也是正常的。
但是重啟ESXI后你會發現你所作的操作都是無用的,一切回到從前……
接着說解法吧:
剛剛為什么要把localtime文件拷到數據存儲目錄下也是有原因的,為了我們能重復使用。
在ESXI中,開機有會自動啟動腳本文件,路徑為:/etc/rc.local.d/local.sh查看屬性你會發現此文件為可讀寫可執行的。
添加一條命令在此文件中即可:cp /vmfs/volumes/esxi26199/localtime /etc/localtime
這樣即使ESXI主機重啟后,時間也會正確的了(可能會有幾秒延時)。
經過測試,c6和c7下的localtime都可以作為原文件進行替換。