Wir betreiben 2 selbstkonfigurierte Server in unserer Praxis, die sämtliche Daten (Betriebssystem-, Datenbank- und Programmdaten aller Server und angeschlossener Clients) in nahezu Echtzeit synchronisieren. Bei einem Ausfall des Hauptserver kann innerhalb weniger Minuten auf den Ersatzserver umgestiegen werden. Jeder Server verfügt darüber hinaus über ein redundantes Speichersubsystem, welches den Ausfall mehrerer Festplatten gleichzeitig toleriert.
Der Server stellt folgende Dienste bereit:
Windows Terminal Server: Darauf greifen 12 Clients aus dem lokalen Netz und von einer Zweigstelle aus zu. Die Clients müssen quasi nur ein einziges Mal eingerichtet werden (auf ihnen wird Turbomed nicht installiert) und greifen per RDP auf den Server zu, der Turbomed und andere Software bereit stellt.
NFS: Stellt Netzwerkspeicher im Netzwerk bereit
iSCSI: Alle Clients verfügen über keine lokale Festplatte, sondern booten ein Windows XP per Netzwerk
Virtuelle Clients: 2 Clients in der Anmeldung, die wir als wichtigste Arbeitsplätze in der Praxis sehen (da ansonsten kein Ausdruck von Rezepten und keine Terminvergabe mehr möglich ist), werden durch den Server emuliert.
Ich möchte skizzenhaft die Software vorstellen:
Basis ist die Virtualisierungssoftware ESXi in der Version 5.0 Update 1 (es ist bereits die Version 5.1 vorhanden, die wir nicht benutzen konnten, da sie einen Bug beim Hardware-Passthrough mittels VT-d hat). Mithilfe dieser Software ist es möglich, mehrere Betriebssystem parallel auf dem Server auszuführen:
1.) FreeNAS. An FreeNAS wird per PCI Passthrough und VT-d der HDD Controller des Mainboards durchgereicht. FreeNAS basiert auf FreeBSD, in welches ZFS von Sun (neuerdings Oracle) integriert ist. ZFS zu beschreiben, würde diesen Beitrag sprengen. ZFS ist das - meiner Meinung nach - derzeit beste Dateisystem weltweit und stellt sehr sinnvolle Funktionen wie Prüfsummen auf Block Basis und Selbstheilungsfunktionen bereit. Es gehört zu einer neuen Generation von Dateisystemen, über die wir in Zukunft - meiner Meinung nach - noch einiges hören werden (vergleichbar ist ZFS mit btrfs unter Linux, was noch im experimentellen Stadium ist, und ReFS von Microsoft, was auch noch nicht verfügbar ist). Der Vorteil von ZFS ist, dass es jetzt verfügbar ist und im Serverumfeld durch Sun sehr intensiv getestet wurde (ZFS gibt es inzwischen seit 11 Jahren). Ich möchte auf diese Beiträge verweisen, die ZFS genauer erklären:
http://www.youtube.com/watch?v=2iCLaFaMzJw
http://en.wikipedia.org/wiki/ZFS
Auf FreeNAS werden nun 2 Speicherorte erstellt: einmal aus 2 SSDs im Raidz1 (mirror) und 4 HDDs im Raidz2 (Ausfallsicherheit von 2 Festplatten). Dieser Platz wird lokal vom ESXi wieder importiert und als Speicherort für die Contrainer der virtuellen Instanzen der restlichen Betriebssysteme verwendet. Desweiteren wird FreeNAS benutzt, um per iSCSI das Booten von XP Clients im Netzwerk ohne lokale Festplatte zu ermöglichen.
2.) Eine Linux Instanz, auf der ein tftp Server und ein PXE Image liegen. Per DHCP Server wird den XP Clients mitgeteilt, dass sie ein PXE Image vom tftp Server beziehen sollen. Das PXE Image versteht wiederum iSCSI, dass das boot volume dann vom iSCSI Dienst mountet und wie eine lokale Festplatte verwendbar macht.
3.) Windows Terminal Server: Auf diesem läuft (unter anderem) Turbomed und stellt dies per RDP allen lokalen und in der Zweigstelle lokalisierten Clients zur Verfügung. Er wird für maximale Performance auf dem SSD Volume betrieben.
4.) Virtuelle Clients: 2 Clients in der Anmeldung werden ebenfalls über den Server realisiert. Dazu wird per VT-d jeweils ein kompletter USB Controller an eine virtuelle XP Instanz durchgereicht. An diesen USB Controller werden ganz normal die Tastatur und Maus und zusätzlich eine USB Grafikkarte angeschlossen. Im Netzwerk verhält sich ein solcher virtueller Client genauso wie ein normaler (iSCSI) Client und verbindet sich per RDP mit dem Server. Der Vorteil (aus unserer Sicht) ist, dass diese Clients dieselbe (hohe) Verfügbarkeit wie die Server haben. Wir haben damit die wichtigsten Clients in der Anmeldung ersetzt. Der Nachteil könnte eine geringere Stabilität des Servers sein, da VT-d nur für Storagelösungen (Controller) primär gedacht ist. Wir haben jedoch seit einem Jahr keinen einzigen Absturz unseres Servers beobachtet!
Die Server synchronisieren sich automatisch alle 15 Minuten per ZFS send/receive. Es liegen sämtliche Daten inklusive der der Clients zentral auf dem Server, es werden somit sämtliche Daten auch auf den Ersatzserver synchronisiert. Teil der Backupstrategie sind die ZFS Snapshots, die den Zustand der Daten auch während des Betriebs einfrieren. Wir haben ZFS Snapshots alle 15 Minuten der letzten 2 Wochen und Snapshots jede Woche, die Monate lang vorgehalten werden.
Im Anhang befindet sich ein Screenshot, auf der man einen Überblick des Servers mit den darauf laufenden virtuellen Instanzen sieht.

Zu diskutieren wäre, ob man anstatt FreeNAS Solaris 11 oder ein Solaris Derivat (z.B. OpenIndiana) verwendet. Solaris soll performanter sein (habe ich nie getestet), bietet jedoch von Haus nicht die einfache Konfiguration per WebGUI von FreeNAS. Es gibt jedoch ein Projekt namens napp-it, womit sich eine WebGUI in Solaris nachtrüsten lässt.
Viele Grüße
Dr. Thieme