Dies ist eine alte Version des Dokuments!
Hochverfügbarkeit
- Allgemeine Hinweise und verschiedene Strategien finden sich im Shibboleth Wiki nebst Hinweisen zur Konfiguration des Memcached Storage Service.
- Ausführliche Diskussion bei SWITCH
- Thorsten Michels, TU Kaiserslautern: Shibboleth IdP und keepalived (Präsentation von der 65. DFN Betriebstagung)
Beispiel-Setup der DFN-Geschäftsstelle
Es gibt viele Möglichkeiten, ein ausfallsicheres Setup aufzubauen. Dies als Beispiel dafür gedacht, wie man ohne Loadbalancer-Appliance, den IdP redundant aufsetzen kann.
Loadbalancer
- 2 VMs (VRRP-Protokoll zwischen den Loadbalancern)
- keepalived zur Steuerung, welcher LB gerade aktiv ist
- Koppelung an laufenden HAProxy-Prozess → Schwenken der IP-Adressen wenn
- der passive Loadbalancer den aktiven nicht mehr über VRRP erreicht oder
- der HAProxy auf dem aktiven Loadbalancer nicht mehr läuft
- HAProxy bindet sich an die IP-Adresse(n) des IdP
- terminiert die SSL-Verbindung, setzt ein Cookie zur Wiederverbindung mit demselben Backend, verschlüsselt den Traffic zum gewählten IdP
- führt Health Checks aus, z.B. auf Layer 7 gegen die Statusseite des IdP
- Backchannel/Port 8443 wird einfach über TCP / auf Layer 4 nach hinten durchgereicht
IdP-Hosts
- 2 identisch konfigurierte IdPs
- Health Checks zur Datenbank
- Anbindung der Datenbank entweder über Service IP oder über lokal installierte HAProxys, die auf jeden IdP-Host einzeln den Zustand der Datenbank-Server prüfen (s.u. zu Percona Clustercheck)
Datenbank
In einem ersten Schritt könnten Sie einen Standalone Datenbank-Server hinter die beiden IdPs stellen. Um die Datenbank auch ausfallsicher zu machen, ist eine Möglichkeit ein Galera Cluster.
- MariaDB Galera Cluster (synchrone Multimaster-Replikation)
- ist nur ausfallsicher bei einer ungeraden Anzahl von Nodes, z.B. 3 (Quorum)
- Mit xinetd und Percona Clustercheck kann auf Port 9200 ein Dienst für Health Checks zur Verfügung gestellt werden. So kann man erkennen, dass nicht nur eine TCP-Verbindung zu Port 3006 aufgebaut werden kann, sondern dass der jeweilige Clusterknoten innerhalb des Galera Clusters in einem integeren Zustand ist.