A: Fault tolerance allows a virtual machine (VM) to carry on running without interruption, even in unplanned host failures such as a host crashing. This is different from high availability, part of Hyper-V, which in a host failure moves VMs to another host but has to restart the VMs, incurring a small outage to the VM. This is also different from planned outages, which allow a VM to be moved between hosts with no downtime using technologies such as Live Migration.

This fault tolerance is achieved by the VM running on multiple hosts with changes from the master replicated in real time to the slave. It should be noted that fault tolerance protects only from a crash of the host; any problem within the guest OS isn't protected by fault tolerance as any guest problem would just replicate to the copy.

Hyper-V doesn't have a built-in fault tolerant solution, but there are some options from third parties you can evaluate. However, typically fault tolerance of an application is better handled through application-aware solutions or guest clustering, that provide protection from guest OS crashes.  (A good discussion of this can be found at this MSDN blog.)  The two main third-party solutions are as follows: