Erklär mir mal, worum es grundsätzlich geht. Ursprünglich hattest Du "Daten" geschrieben, jetzt schreibst Du aber "Programme".
Das sind grundsätzlich unterschiedliche Dinge.
Was ist Dein Ziel, bzw. was musst Du erreichen? Musst Du eine Applikation hochverfügbar (asufallsicher) machen?
Wenn ja, sind wir wieder beim Thema "Cluster". D.h. es braucht ein shared Storage (SCSI oder fiberoptisch, mit den entsprechenden Komponenten) sowie die entsprechenden Betriebssysteme; ausserdem muss die Applikation, die Du so aufziehen willst mal prinzipiell überhaupt clusterbar sein.
Zu beachten ist, dass MS-Cluster üblicherweise Aktiv-Passiv betrieben werden (ausser beim Beispiel mit mehreren MSSQL-Instanzen, da können die aktiven Instanzen "gleichmässig" auf alle Nodes (==> Server im Cluster) verteilt werden)
In diesem Fall ist der Server als ganzes doppelt, das Storage aber üblicherweise "single". Soll das Storage ebenfalls redundant sein (zwei oder mehrere Cabinets/Storageeinheiten), kommt da noch einiges mehr an infrastrukurellem Aufwand mit dazu.
Und bei solchen Infrastrukturen setzt man nicht "normale" NIC's ein, sondern sogenannte HBA's (Host Bus Adapter) und spezifische SAN-Switches / Fabrics.
Falls Du einen entsprechenden Auftrag hast (Vorgesetzte®, GL, Berechtige), rate ich Dir dringendst, hierzu einen Spezialisten beizuziehen.
Da ich den Hintergrund aber nicht kenne, kann ich für Deinen Fall nicht mit Sicherheit sagen, ob das der passende Ansatz ist.