虛擬機(jī)管理程序快照針對(duì)虛擬機(jī)潛在危險(xiǎn)的保護(hù)是很好的。例如,一些管理者在執(zhí)行操作系統(tǒng)補(bǔ)丁更新之前創(chuàng)建一個(gè)快照。這樣,如果由于補(bǔ)丁修補(bǔ)引起了問題,虛擬機(jī)可以回滾到補(bǔ)丁前的狀態(tài)。
雖然虛擬機(jī)管理程序快照是非常有用的,但并不意味著它們沒有問題。當(dāng)應(yīng)用到應(yīng)用服務(wù)器時(shí),快照很可能出問題。事實(shí)上,一些微軟的應(yīng)用支持策略明確禁止使用虛擬機(jī)管理程序快照。
應(yīng)用感知通過進(jìn)化,可以緩解這些問題,但在我們討論它是如何工作之前,讓我們先做一下回顧。
想要了解為什么快照會(huì)導(dǎo)致應(yīng)用程序的問題,我們有必要了解一下快照的工作方式。虛擬機(jī)管理程序快照通常是基于差分磁盤。一個(gè)差分磁盤是一個(gè)虛擬磁盤,它和另一個(gè)VHD是父子關(guān)系。當(dāng)一個(gè)虛擬機(jī)的快照被創(chuàng)建時(shí),它的VHD變成只讀的。一個(gè)差分磁盤被創(chuàng)建,所有的寫操作將在這個(gè)磁盤上進(jìn)行。這確保了原來的VHD仍然停留在原始的狀態(tài)。如果需要回滾虛擬機(jī),差分磁盤將被刪除,寫入操作重定向到原來的VHD。這時(shí)虛擬機(jī)就處于快照被創(chuàng)建的時(shí)間點(diǎn)上。
為什么快照會(huì)引起應(yīng)用程序問題有許多原因。例如,一些虛擬機(jī)監(jiān)控程序,創(chuàng)建差分磁盤快照時(shí),忽略了虛擬機(jī)的內(nèi)存和虛擬CPU的內(nèi)容。如果這種類型的快照是針對(duì)正在運(yùn)行中的應(yīng)用服務(wù)器的,由于內(nèi)存數(shù)據(jù)不被保存,應(yīng)用快照將不可避免地導(dǎo)致數(shù)據(jù)的丟失。即使虛擬機(jī)監(jiān)控程序執(zhí)行的快照也包括了內(nèi)存和CPU的內(nèi)容,運(yùn)行中的應(yīng)用程序服務(wù)器做快照仍然是個(gè)問題。
給你一個(gè)更加具體的例子,想象一下,如果你執(zhí)行一個(gè)exchange郵箱服務(wù)器的快照會(huì)發(fā)生什么。執(zhí)行快照可以有各種各樣的副作用。執(zhí)行快照時(shí),在消息隊(duì)列中的信息會(huì)被再次發(fā)出。從快照創(chuàng)建時(shí)積累的事務(wù)日志將被刪除,以及有可能是任何已經(jīng)添加到郵箱數(shù)據(jù)庫中的信息,如日歷,聯(lián)系人或者任務(wù)。如果有任何新的郵箱被創(chuàng)建,作為執(zhí)行快照的結(jié)果,都有可能造成AD和郵箱數(shù)據(jù)庫的不匹配。
這些只是對(duì)一個(gè)exchang服務(wù)器執(zhí)行快照可能引起的問題的一小部分。這些問題也可能由服務(wù)器的角色,exchange服務(wù)器版本和快照機(jī)制等引起。值得慶幸的是,這些類型的問題可能很快就會(huì)變成過去式。虛擬機(jī)管理程序快照的下一個(gè)巨大的演變就是應(yīng)用感知。
微軟會(huì)在下一代Hyper-V中,推出一個(gè)叫做生產(chǎn)檢查點(diǎn)的功能。當(dāng)快照(或者檢查點(diǎn),微軟喜歡這樣稱呼)創(chuàng)建時(shí),Hyper-V會(huì)調(diào)用卷影復(fù)制服務(wù)(VSS),它和創(chuàng)建應(yīng)用感知備份采用相同的機(jī)制。雖然關(guān)于這個(gè)功能沒有太多的相關(guān)信息,但是微軟透露,VSS將設(shè)備的應(yīng)用程序一致狀態(tài)作為檢查點(diǎn)進(jìn)程的一部分。在檢查點(diǎn)被執(zhí)行時(shí),這將有效的消除應(yīng)用程序一致性的問題。
也有人擔(dān)心,VSS會(huì)減慢檢查點(diǎn)進(jìn)程,由于該任務(wù)需要進(jìn)行應(yīng)用程序一致性任務(wù)的檢查。然而,值得注意的是,應(yīng)用程序的一致性消除了內(nèi)存和CPU狀態(tài)數(shù)據(jù)在檢查點(diǎn)被保留的必要。這將會(huì)有助于抵消一部分所需的開銷。
雖然VSS是備份windows服務(wù)器的一項(xiàng)技術(shù),Linux服務(wù)器也能從生產(chǎn)檢查點(diǎn)中獲益。代替使用VSS,Hyper-V會(huì)使用一種緩沖區(qū)沖洗技術(shù)來保證linux虛擬機(jī)處于一致性的狀態(tài)。
應(yīng)用感知使虛擬機(jī)管理程序快照更加有用。在未來,回滾快照會(huì)產(chǎn)生類似于恢復(fù)備份的結(jié)果,并且不必占用很長的恢復(fù)時(shí)間。