Before we get started I want to go over what it means to be highly available/fault tolerant. To have a pair of machines (the minimum!) in a cluster that provides redundency to a service or set of services. High availability is usually accomplished by a cluster framework like the one we will be using in this post. That being said there are a lot of tutorials online that show a partial implementation of this setup. My objective here is to have a more complete resource in one place. That said, this post still only scratches the surface of what you can do with Pacemaker/CoroSync.