Sergej Khackimullin - Fotolia
Server reliability depends on identifying and recovering from errors that might otherwise crash a system -- crashing every VM on the server at the same time. Memory errors are one important example. Many memory errors are "soft" errors which are corrected and not easily repeated, but could crash an entire server without mitigation.
With advances in memory subsystem design, memory errors are recorded to small logs on serial presence detect chips located on each DIMM. The system can then use that error data to identify addresses that might be problematic, and avoid using those addresses or pages that include questionable address. An example here includes hot spare capability where a fault on one DIMM would cause content to be switched to a backup DIMM already installed and standing by on the system -- the server would simply stop using the questionable DIMM and alert a technician that a spare DIMM had been invoked.
Hypervisors can also read memory error logs and make intelligent determinations about questionable memory addresses. For example, a memory address that reports an unusual number of corrected errors -- such as errors fixed using error correcting code -- might signal an impending hard fault of the DIMM. Hypervisors like VMware's ESXi can stop using pages with problematic addresses, preventing memory errors from escalating and possibly disrupting a VM or the entire system.
At the same time, such error isolation behavior can report error findings to hypervisor event logs and even administrative trigger alerts for further investigation. This allows the server to continue running until a technician can migrate VMs to other servers and take the troubled system offline for detailed troubleshooting and repair. Even when memory troubleshooting tests are inconclusive, the questionable DIMMs might be replaced preemptively as a matter of course.
Memory is a critical resource for virtualization -- and is often the limiting resource for server consolidation -- but memory technologies are constantly improving. Hypervisors have long-supported overcommitment which can identify and reallocate idle memory, and emerging systems can share common memory content across multiple virtual machines while compression can cache idle pages without the need for disk swapping. All of these developments contribute to better resource utilization, greater consolidation levels, fewer memory errors and more reliability for virtual machine environments.
Solving the mystery of the disappearing VM
Troubleshooting VM migration errors
Top five VMware SRM errors and how to fix them
Dig Deeper on Server consolidation and improved resource utilization
Related Q&A from Stephen J. Bigelow
Navigating data center malfunctions when hardware is off premises can be tricky. Organizations must have strong SLAs with their colo provider to ... Continue Reading
Regression tests and UAT ensure software quality and both require a sizeable investment. Learn when and how to perform each one, and some tips to get... Continue Reading
Learn the meaning of functional vs. nonfunctional requirements in software engineering, with helpful examples. Then, see how to write both and build ... Continue Reading