我們非常看重虛擬機的可伸縮性及容錯性,但是當電力供應中斷時會發生什么呢?規模較大的企業能夠使用發電機供電或者快速切換到遠程的數據中心,但依賴于服務器備用電池的公司應該怎么辦呢?我們需要考慮一下能夠采用的降低電源消耗、提升最為重要的虛擬機在線運行機率的策略。
當電力供應中斷時你必須打開蓄電池,目標必須是確保系統盡可能運行足夠長的時間而且要知道在什么時候開始關閉虛擬機以確保在蓄電池電量耗盡之前有時間來關閉服務器。盡管這一概念似乎非常簡單,但蓄電池電源管理卻是一門藝術。
做好電力供應中斷響應計劃
你需要考慮的第一點就是蓄電池能夠支撐多長時間,而這通常沒有明確的答案。然而對蓄電池在正常負載下能夠支撐多長時間有一個估算是非常重要的,然后你才可以編制電力供應中斷響應計劃。
盡管主機服務器具備蓄電池備份是非常重要的,但是你不能只關注服務器電源,因為虛擬主機與其他硬件緊密相連。例如,主機服務器是否與SAN或者集群共享卷相連?如果是這樣,外部存儲同樣需要被蓄電池保護,那么蓄電池供電能夠堅持多長時間?
同樣應該將網絡硬件比如交換機考慮在內。只有集群節點能夠彼此通信時,主機服務器集群才能夠正常工作。因此,在電力供應中斷時蓄電池必須能夠為網絡交換機供電,直至虛擬主機正常關閉。
當然,無論是在物理數據中心還是虛擬數據中心都應該考慮上述因素。然而,服務器虛擬化面臨著一些特有的挑戰。
虛擬化面臨特有的挑戰
之前我提到過采用蓄電池供電時確定虛擬主機能夠運行多長時間非常困難。其中一個因素就是蓄電池能夠支撐服務器運行的時間更多取決于服務器的負載。服務器負載很高往往要比處于空閑狀態時消耗的功率更大。
事實的確如此。在采用蓄電池供電時你應該關注降低服務器功耗的方法。你可能能夠做的一件事就是最開始關閉優先級較低的虛擬機,例如可以關閉一些冗余的域控制器。采取上述步驟將有助于完成兩件事。
首先,關閉低優先級虛擬機能夠幫助降低電源消耗(盡管在關閉虛擬機時由于存儲I/O增加電源消耗將會達到峰值)。關閉低優先級虛擬機還能夠降低主機負載,減少在必要情況下關閉主機所需要的時間。
需要考慮的另外一點就是多臺主機服務器是否共用蓄電池。在理想情況下每臺主機服務器應該有自己的蓄電池。然而由于IT預算一直在削減,管理員可能必須要共用蓄電池。
如果多臺主機共享蓄電池,你可以將虛擬機在線遷移至其他主機然后關閉空閑的主機服務器嗎?如果可以,那么就能夠顯著降低蓄電池功耗。然而,為使主機服務器集群持續發揮作用必須保留足夠多的物理主機。
你還應該考慮電力快消耗完時應該做什么。你應該將虛擬機置于掛起狀態還是關閉該虛擬機?將虛擬機置于掛起狀態需要的時間更短,但是有些應用從掛起狀態恢復時會遇到困難。例如,如果虛擬機在運行數據庫應用,那么最好是關閉該虛擬機而不是強制將其置于掛起狀態。
最后一個值得考慮的問題就是如何自動響應供電發生故障時的情況。如果供電出現故障并且主機由蓄電池供電,你不想手動遷移虛擬機或者關閉不必要的硬件。幸運的是你可以使用IT自動化軟件來實現該過程的自動化。
供電中斷對IT人來說從來都不是什么好事兒,服務器虛擬化增加了應對供電中斷的挑戰。關鍵在于制定計劃并具備正確的策略來快速應對這些挑戰以確保關鍵虛擬機盡可能處于運行狀態。