服務器可靠性取決于識別錯誤并從錯誤中迅速恢復,否則可能導致服務器上所有虛擬機同時宕機的系統錯誤,內存錯誤就是其中一個重要的示例。很多內存錯誤是不容易重現的“軟”錯誤,但如果沒有及時解決可能會導致整個服務器宕機。
隨著內存子系統設計的改進,內存錯誤記錄在每個DIMM上的部分串行存在檢查芯片的日志文件中。系統可以使用錯誤數據識別可能存在問題的地址,避免使用包括可疑地址的那些地址頁。例如熱備份功能, DIMM上的一個錯誤可能會導致內容被交換到一個已安裝的備份DIMM,服務器停止使用有問題的DIMM,并提醒技術人員空閑的DIMM已經被調用。
Hypervisor也可以讀取內存錯誤日志然后對有問題的內存地址做出正確的決策。例如,非常規數量的糾正錯誤,比如使用糾錯碼修正錯誤可能意味著DIMM即將發生“硬”錯誤。像VMware的ESXi這樣的hypervisor可能會停止使用有問題的地址頁,避免內存錯誤升級并可能破壞虛擬機或者整個系統。
同時,這類錯誤隔離行為能夠向hypervisor事件日志報告發現的錯誤,甚至觸發管理告警以便于進一步調查。服務器可以繼續運行直到技術人員能夠將虛擬機遷移到其他服務器并將遇到麻煩的系統下線以進行詳細的故障診斷與修復。即使內存故障診斷測試沒有給出確定的結論,預先替換可疑的DIMM也是理所當然的事兒。
內存是核心的虛擬化資源,往往也是服務器整合時很有限的資源,但內存技術一直在不斷完善。hypervisor一直都支持過度分配,能夠識別并重新分配空閑的內存,新系統能夠在多個虛擬機之間共享通用的內存內容,而壓縮能夠緩存空閑頁面,不需要進行磁盤交換。上述技術進步有助于更好地使用資源、提升整合比率、減少內存錯誤、提升虛擬環境的可靠性。