The virtualization technology has been widely used in today's doud computing datacenters. With the virtualization technology, each physical machine in a datacenter can be logically divided into several virtual machines, on which different types of software services can host. However, many reasons may decrease the availability of the whole system. For example, a failed physical machine automatically fails all virtual machines on the physical machine, and consequently fails every software service on the virtual machines. It is difficult to detect failures efficiently in a general-purpose computer architecture because the hardware cannot provide enough information for fast failure detection. On the contrary, the ATCA (Advanced Telecommunications Computing Architecture) physical machines provide high hardware availability, and support IPMI (Intelligent Platform Management Interface) that can quickly detect the hardware status. In this paper, we developed a novel failure model and designed a symmetric fault-tolerant mechanism using ATCA physical machines and KVM to provide a solution for high system availability. The proposed fault-tolerant mechanism divides ATCA physical machines into pairs, such that each machine of a pair supports fault tolerance for each other. Once a failure is detected in the physical machine layer or the virtualization layer, the failed virtual machines are then recovered on the other physical machine. We have compared the proposed fault-tolerance mechanism with another prior VM-based fault-tolerance tool. The results show that the proposed mechanism significantly reduces the service downtime. That is, it provides better system availability for software services running on the virtual machines.