系統(tǒng)時(shí)間問題看似很小,但是對(duì)于一些時(shí)效性要求較高的業(yè)務(wù)系統(tǒng),例如:考試系統(tǒng)、實(shí)時(shí)監(jiān)控系統(tǒng)等,時(shí)間問題影響甚大。我們?cè)趯?shí)際生產(chǎn)中也遇到一臺(tái)虛擬機(jī)安裝的Windows Server系統(tǒng)(操作系統(tǒng)時(shí)間同步NTP,未配置同步主機(jī))由于系統(tǒng)時(shí)間異常導(dǎo)致應(yīng)用服務(wù)出現(xiàn)問題。
Windows:Windows操作系統(tǒng)直接把CMOS時(shí)間認(rèn)定為當(dāng)前顯示時(shí)間,不根據(jù)時(shí)區(qū)轉(zhuǎn)換。這樣每調(diào)整一次系統(tǒng)時(shí)區(qū),系統(tǒng)會(huì)根據(jù)調(diào)整的時(shí)區(qū)來計(jì)算當(dāng)前時(shí)間,確定后,也就同時(shí)修改了CMOS內(nèi)的時(shí)間。
Linux:Linux和蘋果操作系統(tǒng)以當(dāng)前主板CMOS內(nèi)時(shí)間做為格林威治標(biāo)準(zhǔn)時(shí)間,再根據(jù)系統(tǒng)設(shè)置的時(shí)區(qū)來最終確定當(dāng)前系統(tǒng)時(shí)間。
計(jì)時(shí)器中斷
虛擬機(jī)與主機(jī)操作系統(tǒng)共享底層硬件,正在運(yùn)行的虛擬機(jī),有時(shí)也會(huì)延遲交付虛擬計(jì)時(shí)器中斷。虛擬機(jī)只在某些特定的時(shí)刻檢查掛起的虛擬計(jì)時(shí)器中斷,比如底層硬件接收到物理計(jì)時(shí)器中斷時(shí),讓虛擬機(jī)在精確指定的時(shí)間內(nèi),去請(qǐng)求物理計(jì)時(shí)器中斷。
因?yàn)榭蛻舨僮飨到y(tǒng)通過計(jì)算中斷來保持時(shí)間,所以當(dāng)存在計(jì)時(shí)器中斷積壓時(shí),由客戶操作系統(tǒng)測(cè)量的時(shí)間就會(huì)落后于實(shí)時(shí)時(shí)間。
VMware虛擬機(jī)如何處理計(jì)時(shí)器中斷?
VMware虛擬機(jī)通過跟蹤當(dāng)前計(jì)時(shí)器中斷待辦事項(xiàng)列表來處理這個(gè)問題,并在待辦事項(xiàng)列表過大時(shí)以更高的速度交付計(jì)時(shí)器中斷,以便趕上進(jìn)度。
如果虛擬機(jī)運(yùn)行得太慢,可能是由于與主機(jī)上運(yùn)行的其他虛擬機(jī)或進(jìn)程爭(zhēng)奪CPU時(shí)間的結(jié)果,則不能為虛擬機(jī)提供足夠的時(shí)間跟上進(jìn)度。
發(fā)生這種情況后,如果客戶操作系統(tǒng)安裝了VMware Tools并且時(shí)鐘同步功能啟用狀態(tài),VMware Tools會(huì)在客戶操作系統(tǒng)未來的某個(gè)時(shí)候,通過同步客戶操作系統(tǒng)與主機(jī)的時(shí)鐘校正時(shí)間。
ESXi主機(jī)時(shí)間
主機(jī)時(shí)間配置分為兩種:手動(dòng)配置、同步NTP服務(wù)器
主機(jī)時(shí)間配置
虛擬機(jī)時(shí)間配置
虛擬機(jī)時(shí)間配置:同步主機(jī)時(shí)間(注:必須安裝VMware Tools)
虛擬機(jī)時(shí)間配置-同步主機(jī)時(shí)間
虛擬機(jī)操作系統(tǒng)時(shí)間
Windows和Linux時(shí)間配置同樣分為:VMware Tools定期時(shí)鐘同步、手動(dòng)配置、同步網(wǎng)絡(luò)時(shí)間。一般是Microsoft W32Time for Windows和NTP for Linux,通常比 VMware Tools 周期性時(shí)間同步更準(zhǔn)確。
通常,在我們交付虛擬機(jī)時(shí),最好一次只使用一個(gè)時(shí)鐘同步服務(wù),以確保避免多個(gè)服務(wù)對(duì)時(shí)鐘進(jìn)行更改造成沖突的問題。
初始化時(shí)間
VMware虛擬機(jī)提供了與物理機(jī)器類似的機(jī)制:一個(gè)虛擬電池支持的CMOS時(shí)鐘和虛擬網(wǎng)卡,可以用來從網(wǎng)絡(luò)時(shí)間服務(wù)器獲取時(shí)間。另外還提供了一種機(jī)制:VMware Tools在啟動(dòng)時(shí)重置客戶操作系統(tǒng)的時(shí)鐘,以匹配主機(jī)的時(shí)鐘??蛻魴C(jī)和主機(jī)之間的接口使用UTC(協(xié)調(diào)世界時(shí),也稱為格林威治標(biāo)準(zhǔn)時(shí)間或GMT),因此客戶機(jī)和主機(jī)不必在同一時(shí)區(qū)。
注:UTC的偏移量與虛擬機(jī)的CMOS非易失性內(nèi)存的其他內(nèi)容一起存儲(chǔ)在虛擬機(jī)的nvram文件中的。
虛擬機(jī)管理操作
當(dāng)虛擬機(jī)停止一段時(shí)間并繼續(xù)運(yùn)行時(shí),客戶操作系統(tǒng)的時(shí)鐘通常會(huì)落后于實(shí)際時(shí)間——特別是在掛起并恢復(fù)、快照和還原為快照或VMotion操作之后。因此,如果在客戶操作系統(tǒng)中安裝了VMware Tools, VMware Tools守護(hù)進(jìn)程將在這些事件發(fā)生后,即時(shí)關(guān)閉了定期的時(shí)間同步也會(huì)糾正客戶操作系統(tǒng)時(shí)鐘。
VMware Tools周期同步
執(zhí)行時(shí)間同步之后,VMware Tools 會(huì)每分鐘檢查一次,以確定客戶機(jī)和主機(jī)操作系統(tǒng)上的時(shí)鐘是否仍然匹配。如果不匹配,則將同步客戶機(jī)操作系統(tǒng)上的時(shí)鐘以與主機(jī)上的時(shí)鐘匹配。
即使未打開周期性時(shí)間同步,虛擬機(jī)有時(shí)也會(huì)與主機(jī)同步時(shí)間。若要完全禁用時(shí)間同步,必須編輯虛擬機(jī)的配置文件(.vmx 文件),并將某些同步屬性設(shè)置為 FALSE。
tools.syncTime = 'FALSE' 是否定期同步
time.synchronize.continue = 'FALSE' 是否快照后同步
time.synchronize.restore = 'FALSE' 是否快照恢復(fù)后同步
time.synchronize.resume.disk = 'FALSE' 是否在從掛起恢復(fù)并使用VMware VMotion特性遷移到新主機(jī)后同步。
time.synchronize.shrink = 'FALSE' 是否在整理虛擬磁盤碎片后同步
time.synchronize.tools.startup = 'FALSE' 是否在工具守護(hù)進(jìn)程啟動(dòng)時(shí)同步,通常在客戶操作系統(tǒng)啟動(dòng)時(shí)同步。
操作系統(tǒng)內(nèi)禁用時(shí)間同步
有時(shí)候我們?cè)谔摂M機(jī)安裝完操作系統(tǒng)后,往往漏掉一些配置,例如:VMware Tools未安裝、操作系統(tǒng)時(shí)間是否同步網(wǎng)絡(luò)NTP或者關(guān)閉時(shí)間網(wǎng)絡(luò)同步而去同步主機(jī)時(shí)間等。我們需要根據(jù)實(shí)際情況,選擇一種比較適合自己環(huán)境的時(shí)間同步方式,從而保證系統(tǒng)及應(yīng)用程序的穩(wěn)定運(yùn)行。
聯(lián)系客服