服务器可靠性取决于识别错误并从错误中迅速恢复,否则可能导致服务器上所有虚拟机同时宕机的系统错误,内存错误就是其中一个重要的示例。很多内存错误是不容易重现的“软”错误,但如果没有及时解决可能会导致整个服务器宕机。
随着内存子系统设计的改进,内存错误记录在每个DIMM上的部分串行存在检查芯片的日志文件中。系统可以使用错误数据识别可能存在问题的地址,避免使用包括可疑地址的那些地址页。例如热备份功能, DIMM上的一个错误可能会导致内容被交换到一个已安装的备份DIMM,服务器停止使用有问题的DIMM,并提醒技术人员空闲的DIMM已经被调用。
Hypervisor也可以读取内存错误日志然后对有问题的内存地址做出正确的决策。例如,非常规数量的纠正错误,比如使用纠错码修正错误可能意味着DIMM即将发生“硬”错误。像VMware的ESXi这样的hypervisor可能会停止使用有问题的地址页,避免内存错误升级并可能破坏虚拟机或者整个系统。
同时,这类错误隔离行为能够向hypervisor事件日志报告发现的错误,甚至触发管理告警以便于进一步调查。服务器可以继续运行直到技术人员能够将虚拟机迁移到其他服务器并将遇到麻烦的系统下线以进行详细的故障诊断与修复。即使内存故障诊断测试没有给出确定的结论,预先替换可疑的DIMM也是理所当然的事儿。
内存是核心的虚拟化资源,往往也是服务器整合时很有限的资源,但内存技术一直在不断完善。hypervisor一直都支持过度分配,能够识别并重新分配空闲的内存,新系统能够在多个虚拟机之间共享通用的内存内容,而压缩能够缓存空闲页面,不需要进行磁盘交换。上述技术进步有助于更好地使用资源、提升整合比率、减少内存错误、提升虚拟环境的可靠性。
本文转自d1net(转载)