Depende de qué tipo de aplicaciones vayan a ejecutar el el cluster. Existen muchas formas de implementarlos.
Es posible, por ejemplo, que ambos servidores estén operativos en paralelo capaces de resolver peticiones ambos (balanceo) y que si uno cae, el otro continúe operativo. También es posible que solo uno opere y que el otro esté en stand-by monitorizando que el otro está operativo y, si no, ponerse en funcionamiento.
Lo más normal es que, efectivamente, haya un sistema de almacenamiento compartido para que los datos sean accesibles para ambas máquinas. Si no hay que tener algún sistema que replique los datos en ambos almacenamientos locales, que tiene más riesgo y, en ocasiones, más coste.
Si la aplicación es una aplicación web y es J2EE, los software servidor de aplicación suelen tener ya la posibilidad de construir clusters incluso de conjuntos de servidores heterogéneos con todos los servidores activos.
Si es aplicación es windows normal, buscar información en microsoft sobre las versiones enterprise de windows server y la instalación en cluster. Tened en cuenta que si aplicaciones y bases de datos están preparadas para cluster no habrá problema, si no hay veces que pueden hacerse parches para que funcione en condiciones pero no siempre es posible (ficheros temporales, accesos exclusivos a fichero, etc.).