Hochverfügbarkeit mit Linux Einführung - High Availability (kurz) Problemstellung - zentraler Fileserver HA - Lösungsansatz und verwendete Tools: heartbeat drbd mon Implementierung bei GSI Hardware Konfiguration Testbetrieb, erste Erfahrungen, Ausblick Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 1
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 2 High Availability - Überblick Vermeidung von Ausfallzeiten bei kritischen Servern (DNS, Gateway, Fileserver...) Hot Standby (automatisches Failover, bei GSI Webserver) C old Standby (Failover von Hand, z.b. bootp-server, Systemplatten...) Spezielle HW (shared storage, redundante Netzteile...) Spezielle Softwarepakete oder -komponenten, sowohl kommerziell als auch OS-Projekte
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 3 Linux-HA-Software LifeKeeper (Steeleye Inc. ) IBM Tivoli System Automation for Multiplatforms FailSafe (SGI, jetzt OS, Entwicklung gestoppt...) OS-Projekte: heartbeat, drbd... außerdem: Filesysteme, Überwachungssoftware Abhängig vom Service manc he SW enthält Failover-Lösungen (DNS, LDAP, DHCP...)
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 4 Problemstellung Gemeinsames /usr/local auf einem NFS- Server (lxfs01) für alle Linux-Clients Ausfall des NFS-Servers: Arbeit steht lxfs01 Stale NFS Mounts NFS-Server /usr/local/ Clients: NFS NFS NFS lxg0??? lxb0?? lxdv?? /usr/local/ /usr/local/ /usr/local/ USW.
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 5 HA -Lösungsansätze Hot-Standby: 2 identische Server mit - gemeinsamen Plattenspeicher (shared disk) - ausfallsicher oder single point of failure? - teuer oder - jeweils eigenem Plattenspeicher (shared nothing, individual disks) ---> Problem: Synchronisation des Dateisystems, Informationen über NFS-Mounts
Entscheidung shared disk individual disks NFS-Server A NFS-Server NFS-Server B NFS-Server NFS-Server A NFS-Server B /usr/local/ /usr/local/ /usr/local/ NFS NFS NFS NFS Client 1 /usr/local/ Client 2 /usr/local/ NFS Client 3 /usr/local/ USW. Client 1 /usr/local/ Client 3 /usr/local/ USW. NFS Client 2 /usr/local/ Spezielle SW für Datensynchronisation Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 6
NFS-Status-Informationen Informationen über NFS-Mounts: Clients mounten NFS-Verzeichnis von einer IP und merken bei Übernahme durch Slave-Server nichts davon Informationen über aktuelle Mounts gespeichert auf dem Server im System (/var/lib/nfs) /var/lib/nfs wird auf vom System auf das synchronisierte Dateisystem verschoben symbolischer Link von /var/lib/nfs auf gespiegeltes Dateisystem Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 7
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 8 heartbeat drbd mon Eingesetzte Linux-Tools gegenseitige Überwachung der Server Starten der Dienste Synchronisation des Dateisystems (/usr/local) Systemüberwachung Alle Tools OpenSource, GPL o.ä.
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 9 heartbeat Wie weiß der Backup-Server, wenn der Master versagt? Beide Rechner tauschen in regelmäßigen Abständen Nachrichten in Form eines ping aus (Herzschlag). Wenn diese Nachrichten ausbleiben, dann nimmt der Slave an, dass der Master ausgefallen ist. Der Slave-Server startet den Dienst.
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 10 heartbeat Server 1 eth0 ttys0 hallo -> <- hallo hallo -> <- hallo Server 2 eth0 ttys0 Normalbetrieb: Server 1 - Master für Service B Server 2 - Master für Service A Service A Service A Service B Service B Server 1 Server 2 Fehlerfall: Server 2 fällt aus heartbeat- Antwort bleibt aus Server 1 übernimmt Service A eth0 ttys0 Service A Service B hallo -> hallo -> eth0 ttys0 Service A Service B
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 11 heartbeat - Nachteile heartbeat prüft nur, ob der andere Node noch auf ping antwortet die Funtionsfähigkeit der Services wird nicht getestet auch wenn ping geht, kann der Server funktionsunfähig sein heartbeat stürzt ab, aber die Services laufen noch --> Abhilfe durch stonith, watchdog, Monitoring
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 12 Weitere heartbeat-funktionen watchdog - sobald der eigene Herzschlag ausbleibt, rebootet das System stonith - Shoot the other Node in the Head, Slave triggert bei Übernahme ein Reboot des Masters (über ssh oder Hardware) ipfail - überprüft die Verbindung zu einem ausgewählten PingNode auf dem Master und switched den Service bei Nichterreichbarkeit auf den Slave
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 13 drbd Distributed Replicated Block Device Kernelpatch für eine Zwischenschicht für Block-Devices über diese Schicht Spiegelung von Partitionen über das Netzwerk im Prinzip: ein RAID-1 Verbund über das Netzwerk
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 14 Funktionsweise drbd Server1 Server2 Dateisystem Dateisystem DRBD TCP/IP TCP/IP DRBD Disc-Treiber NIC Treiber NIC Treiber Disc-Treiber Netzwerk Festplatte Festplatte
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 15 Protokolle Schreibvorgang beendet, wenn... A:...auf lokaler Festplatte und im TCP- Sendepuffer B:...auf lokaler Festplatte und im Puffer des anderen Hosts C:...auf lokaler Festplatte und auf der Festplatte des anderen Hosts
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 16 Vor- und Nachteile doppelter Datenbestand kontinuierlich aktuell (--> i.g. zu rsync) Datenkonsistenz garantiert Zugriff auf Daten nur auf einem Node kein Loadbalancing schnelles Recovery bei Ausfall Overhead von drbd: Verlust von CPU-Leistung Schreibperformance sinkt, kein Einfluss auf Leseperformance
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 17 Einsatz heartbeat, drbd Typische Einsatzbereiche: Webservice, Datenbank (my SQL) Mail, Webmail, IMAP-Server (cyrus) Fileservice, Samba-Server, ftp Gateway, Proxy, Firewall DHCP, bootp, LDAP Referenzkunden : MAN Nutzfahrzeuge AG, Sony... http://linux-ha.org/heartbeat/users.html
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 18 mon Service Monitoring Daemon: Ressourcen-Monitoring Netzwerkverfügbarkeit Serverprobleme Umgebungsvariablen (z. B. Temperatur) Überwachung erfolgt mit individuellen Skripten Im Fehlerfall wird eine Aktion getriggert (Mail, Restart...)
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 19 Wozu ein Monitoring-Tool für heartbeat? Heartbeat prüft, ob der andere Server lebt. Es überwacht nicht den Service selbst. Mögliche Fehlerfälle: heartbeat fällt aus, der Service nicht beide heartbeat-verbindungen unterliegen einem Hardwaredefekt Master-Server fällt te ilweise aus ein Service fällt aus, heartbeat nicht
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 20 2 identische Server 1 Intel Xeon 2,4 Ghz 2GB RAM Hardware Adaptec-RAID-Controller 5 SCSI-Platten mit 73 GB, hotplug-fähig Raid 5, insgesamt 272GB 3 Netzwerkkarten, 1 x 100mb, 2 x 1Gb redundantes Netzteil
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 21 Netzwerk Master Slave lxha03 eth2 192.168.10.20 heartbeat eth2 192.168.10.30 eth1 192.168.1.2 heartbeat,drbd eth1 192.168.1.3 eth0 140.181.67.228 eth0 140.181.67.230 eth0:0 140.181.67.76 lxha01 eth0:0 140.181.67.76 lxi0xx /usr/local lxha02 NFS lxha03
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 22 Konfiguration drbd lxha02 HW-raid5, ~270 GB / /var /usr /tmp /data /data/var/lib/nfs lxha03 HW-raid5, ~270 GB / /var /usr /tmp /data /data/var/lib/nfs ext3 / ext2 xfs NFS /drbd/usr/local eth1 eth1 NFS /drbd/usr/local lxi0xx lxha01 /usr/local drbd-speicherplatz ~260 GB NFS: lxha01:/drbd/usr/local
Startvorgang Booten Laden des Treibers für drbd Starten der drbd-programme (ohne Setzen des Masters, ohne mount) Start von heartbeat Heartbeat startet drbd-master mounted drbd-partition aktiviert den Alias der Netzwerkkarte für lxha01 startet nun den NFS-Server Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 23
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 24 Startvorgang Bootvorgang: - insmod drbd - drbd start - heartbeat start - mon start heartbeat: - drbd - Master, mount drbd - Netzwerkadresse eth0:0 für lxha01 - nfsserver start mon - heartbeat - network - nfs /data (drbd) NFS eth0:0
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 25 local Monitoring des Systems drbd gestartet heartbeat gestartet nfs-verzeichnis erreichbar anderer Node ifconfig, wer hat eth0:0? extern von lxmon (Monitoring-Server): nfs-verzeichnis erreichbar mon - Prozess läuft
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 26 Internes und Externes Monitoring lxha02, lxha03 lxha01 lxmon Überwachungsskripte: rpc.monitor ifconfig.monitor heartbeat.monitor... Alertskripte: mail.alert log.alert restart.alert... drbd? heartbeat? rpc? ifconfig? no reply or error restart.alert Network NFS mon drbd heartbeat mail.alert ping.monitor? ok! rpc.monitor? ok! mon.monitor? no reply or error Überwachungsskripte: rpc.monitor ping.monitor mon.monitor... Alertskripte: mail.alert log.alert... mail.alert administrator@gsi.de
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 27 Erfahrungen bei Ausfall Bei Ausfall des NFS-Servers und Übernahme störungsfreies Weiterarbeiten auf dem Client Ausfallzeit hängt ab von der heartbeat- und der drbd-konfiguration Beispiel: Heartbeat alle 2 s, Totzeit 10 s, dann ist der Ausfall etwa 20 s Kopieren von einer Datei pro Sekunde bringt geringeren Ausfall bedingt durch Cache (~ 12 Dateien fehlen)
Replikation drbd full sync dauert etwa 5 h für 260 GB notwendig bei komplettem Datenverlust oder bei Neuinstallation ansonsten abhängig von der Änderung des Datenbestands während des Ausfalls Beispiel: drbd gestoppt, 1 GB geschrieben - sync auf Slave: 26s bis zum Start, 81s Synchronisation 1 GB gelöscht, 27 s bis zum Start, Synchronisationszeit praktisch 0 Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 28
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 29 write-performance gemessen mit iozone, 4GB Dateigröße Referenzwert (xfs-dateisystem ohne drbd, einfacher Zugriff): 28,9 MB/s im Betrieb (connected): 17,4 MB/s --> 60 % unconnected: 24,2 MB/s --> 84 % vierfacher Zugriff: 15,0 MB/s im Betrieb (connected) mit Protokoll A: 21,4 MB/s --> 74 % unconnected: 24,2 MB/s --> 84 %
Hochverfügbarkeit mit Linux DVEE/ 5. Oktober 2004 Karin Miers 30 Das ist noch zu tun... stonith-device (Hardware) evtl. heartbeat über serielle Schnittstelle ipfail - PingNode einrichten Monitoring... Tests unter höherer Load heartbeat-zeitkonstanten optimieren Umstellung der Linuxclients