O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Clusterbau: Hochverfügbarkeit mit Linux, 3rd Edition

Book Description

Von modernen IT-Diensten wird erwartet, dass sie ohne wahrnehmbare Ausfallzeit kontinuierlich zur Verfügung stehen.

Wie Systemadministratoren dies mit Hilfe der intelligenten Clustersoftware pacemaker erreichen können, zeigt Hochverfügbarkeitsexperte Dr. Michael Schwartzkopff in diesem Handbuch. Er beleuchtet, was Hochverfügbarkeit eigentlich bedeutet, führt in die Grundlagen von Clustern ein und erklärt praxisnah die Arbeitsweise der verschiedenen Programme.

Nach der Installation geht es um die Einrichtung und Verwaltung der Ressourcen. Neben den Tipps und Tricks zu Planung und Betrieb profitieren Sysadmins vor allem von den Erläuterungen typischer Szenarien wie einer hochverfügbaren Firewall und einem zentralen Fileserver, der Plattenplatz mittels iSCSI vergibt. In dieser durchgehend aktualisierten dritten Auflage wird die Konfiguration mithilfe von corosync und pacemaker vorgestellt. Beim Thema Load Balancing geht der Autor auf den Linux Virtual Server mit ipvs und ldirectord ein.

Table of Contents

  1. Clusterbau: Hochverfügbarkeit mit Linux
  2. Vorwort
    1. Aufbau des Buchs
    2. Die in diesem Buch verwendeten Konventionen
    3. Danksagung
  3. 1. Einleitung
    1. Hochverfügbarkeit
      1. Was heißt »immer«?
      2. Was heißt »Dienst«?
      3. Gekoppelte Systeme
        1. Serielle Kopplung
        2. Parallele Kopplung und Redundanz
        3. Komplexe zusammengesetzte Systeme
    2. Linux Virtual Server (LVS)
      1. Die Verteilung der Verbindungen
        1. Weiterleitung per NAT
        2. Weiterleitung durch direktes Routing
        3. Weiterleitung per IP-Tunnel
      2. Vor- und Nachteile von LVS
    3. Linux-HA
  4. 2. Grundlagen
    1. Theorie
      1. Aufbau und Funktion
      2. Split-Brain
      3. Quorum
      4. Fencing
      5. Data Sharing
    2. Linux-Cluster
      1. Version 1
      2. Version 2
      3. Der CRM wird zu pacemaker
    3. Änderungen an der Clusterkommunikation
      1. heartbeat
      2. OpenAIS
    4. Fähigkeiten der Clustersoftware
    5. Ein typischer Clusteraufbau
    6. Terminologie
    7. Architektur der Software
      1. Komponenten der Software
        1. Die Infrastruktur
        2. Der Cluster-Manager
      2. Ablauf
    8. Die Pakete
    9. Gemeinsam genutzte Daten
    10. Die Zukunft der Clustersoftware
  5. 3. Installation und erste Konfiguration
    1. Installation unter openSUSE
    2. Installation unter Fedora
    3. Installation unter RHEL, CentOS oder SLES
    4. Installation unter Debian Squeeze
    5. Installation unter Ubuntu
      1. Ubuntu LTS
    6. Installation aus dem Quelltext
      1. cluster-glue
      2. resource-agents
      3. corosync
      4. pacemaker
      5. Die pacemaker-GUI
    7. Eine Anfangskonfiguration mit heartbeat
      1. Die Datei ha.cf
        1. Konfiguration der Kommunikation im Cluster
      2. authkeys
    8. Eine Anfangskonfiguration mit corosync
    9. Erste Eindrücke
      1. heartbeat
      2. Start mit corosync
    10. Für die Ungeduldigen: ein Mini-Cluster
  6. 4. Ressourcen einrichten
    1. XML – die Sprache der CIB
    2. Die globalen Einstellungen der CIB
    3. Knoten in der CIB
    4. Einfache Ressourcen
      1. Attribute
      2. Globale Vorgaben
      3. Operationen
    5. Bedingungen
      1. Anordnung (rsc_order)
      2. Co-Lokation (rsc_colocation)
      3. Platzierung (rsc_location)
      4. Regeln
    6. Das Punktesystem
    7. Ressourcen für Fortgeschrittene
      1. Gruppen
      2. Klone
      3. Multi-State-Ressourcen
      4. Ressourcen migrieren
    8. Bedingungen für Fortgeschrittene
      1. Anordnungen von Bedingungen
      2. Bedingungen im Zusammenhang mit Multi-State-Ressourcen
      3. Bedingungen, die sich auf Knoten-Attribute beziehen
      4. Zeitliche Vorgaben für Bedingungen
      5. Erreichbarkeit im Netz
      6. Frei definierbare Kriterien
      7. Failover erst nach »N« Fehlern
    9. Systemgesundheit
  7. 5. Verwaltung des Clusters
    1. Die GUI
      1. Start der GUI
      2. Übersicht
      3. Knoten
      4. Management
      5. Ressourcen
        1. Einfache Ressourcen
        2. Gruppen
        3. Klone
        4. Multi-State-Ressourcen
      6. Bedingungen
        1. Anordnungen
        2. Co-Lokationen
        3. Platzierungen
      7. Der restlichen Schaltflächen
    2. Die Befehle
      1. crm_mon
        1. Syntax
        2. Optionen
        3. Operationsmodi
        4. Optionen zur Anzeige
        5. Zusätzliche Optionen
      2. cibadmin
        1. Syntax
        2. Operationen
        3. Der Datenteil
        4. Beispiele
      3. crm_verify
        1. Optionen
        2. Beispiel
      4. crm_resource
        1. Queries
        2. Kommandos
        3. Befehle für Fortgeschrittene
        4. Zusätzliche Optionen
        5. Beispiele
      5. crm_failcount
        1. Syntax
        2. Optionen
        3. Kommandos
        4. Zusätzliche Optionen
        5. Beispiel
      6. crm_standby
        1. Syntax
        2. Kommandos:
        3. Beispiele
      7. attrd_updater
        1. Syntax
        2. Optionen:
        3. Kommandos
        4. Beispiele
      8. crm_attribute
        1. Syntax
        2. Optionen
        3. Befehle
        4. Zusätzliche Optionen
      9. crm_diff
        1. Syntax
        2. Original-XML
        3. Operationen
        4. Zusätzliche Optionen
        5. Beispiele
      10. crm_shadow
        1. Syntax
        2. Queries
        3. Befehle
        4. Beispiele
      11. ptest
        1. Syntax
        2. Optionen
        3. Beispiele
    3. Die Subshell zum CRM
      1. Shell-Erweitung und Highlighting
      2. Der Abschnitt node
      3. Der Befehl cib
      4. Der Befehl resource
      5. Der Befehl ra
      6. Der Befehl configure
        1. Einfache Ressourcen: primitive
        2. Gruppen: group
        3. Klone: clone
        4. Multi-State-Ressourcen: ms
        5. Platzierungen: location
        6. Co-Lokationen: colocation
        7. Anordnungen: order
        8. Clustereigenschaften: property
        9. Überprüfung der Konfiguraion: show, verify und ptest
        10. Überprüfung der Änderungen: show changed
        11. Luxus: edit, delete und rename
      7. Backup und Restore (save und load)
      8. Anwendung
    4. Java-GUI
    5. High Availability Web Konsole (HAWK)
      1. Installation unter SUSE
      2. Andere Distributionen
      3. Benutzung
    6. Benutzerrechte
    7. Zukunft
      1. Master Control Process
      2. Quorum-Dienst
      3. Utilization
  8. 6. Planung, Aufbau und Betrieb
    1. Technische Voraussetzungen
      1. Hardware
        1. Redundanz der Hardware
      2. Software
      3. Vorbereitung des Systems
        1. Zeitabgleich
    2. Planung
    3. Aufbau und Tests
    4. Betrieb
    5. Fehlersuche
    6. Upgrade
      1. Shutdown
      2. Rolling Upgrade
      3. Disconnect und Reattach
    7. Löschen und Austauschen von Knoten
      1. Austausch defekter Knoten
    8. STONITH
      1. STONITH-Konfiguration
    9. Eine weitere Applikation
      1. logd
    10. Weitere Hilfsprogramme
      1. ptest
      2. hb_report
        1. Analyse
      3. ocf-tester
        1. Beispiele
      4. corosync-cfgtool
  9. 7. Infrastruktur
    1. Stromversorgung
      1. Unterbrechungsfreie Stromversorgung (USV)
    2. Netzwerkanbindung
      1. Zwei Netzwerkkarten
      2. Überwachung der Schnittstellen
        1. miimon
        2. arping
      3. Beispiel
      4. Virtueller Port-Channel mit Cisco Nexus
      5. Layer 3
    3. Plattenspeicher
      1. RAID
      2. Direct Attached Storage
      3. Network Attached Storage
      4. Storage Attached Network
        1. Fiber Channel
        2. iSCSI
      5. Multipath
    4. Überwachung
  10. 8. Agenten
    1. init-Skripte (LSB-kompatibel)
    2. OCF-Agenten
      1. Aktionen von OCF-Agenten
      2. Parameter
      3. Debuggen von OCF-RAs
      4. anything
      5. AoEtarget (ATA over Ethernet)
        1. Parameter
        2. Beschreibung
      6. apache
        1. Parameter
        2. Beschreibung
      7. asterisk
        1. Parameter
      8. AudibleAlarm
        1. Parameter
      9. ClusterMon
        1. Parameter
      10. conntrackd
        1. Parameter
      11. CTDB
      12. db2
        1. Parameter
      13. Delay
        1. Parameter
      14. drbd
        1. Parameter
        2. Anwendung
      15. Dummy
        1. Parameter
      16. eDir88
        1. Parameter
      17. ethmonitor
      18. Evmsd
        1. Parameter
      19. EvmsSCC
        1. Parameter
      20. exportfs
        1. Parameter
      21. Filesystem
        1. Parameter
      22. fio
      23. ICP
        1. Parameter
      24. ids
        1. Parameter
      25. IPaddr
        1. Parameter
      26. IPaddr2
        1. Parameter
        2. Load-Sharing-Cluster
      27. IPsrcaddr
        1. Parameter
      28. iscsi
        1. Parameter
      29. iSCSILogicalUnit
        1. Parameter
      30. iSCSITarget
        1. Parameter
      31. jboss
      32. ldirectord
        1. Parameter
      33. LinuxSCSI
        1. Parameter
      34. LVM
        1. Parameter
      35. lxc
        1. Parameter
      36. MailTo
        1. Parameter
      37. ManageRAID
        1. Parameter
      38. ManageVE
        1. Parameter
      39. mysql
        1. Parameter
      40. mysql-proxy
        1. Parameter
      41. nfsserver
      42. nginx
      43. oracle
        1. Parameter
      44. oralsnr
        1. Parameter
      45. pgsql
        1. Parameter
      46. ping
        1. Parameter
      47. portblock
        1. Parameter
      48. postfix
        1. Parameter
      49. proftpd
        1. Parameter
      50. Pure-FTPd
        1. Parameter
      51. Raid1
        1. Parameter
      52. Route
        1. Parameter
      53. rsyncd
        1. Parameter
      54. SAPInstance
        1. Parameter
        2. Beispiel
      55. SAPDatabase
        1. Parameter
        2. Beispiel
      56. scsi2reservation
      57. SendArp
        1. Parameter
      58. ServeRAID
        1. Parameter
      59. sfex
        1. Parameter
      60. slapd
      61. SphinxSearchDaemon
        1. Parameter
      62. Squid
        1. Parameter
      63. Stateful
        1. Parameter
      64. SysInfo
        1. Parameter
        2. Beschreibung
      65. syslog-ng
      66. tomcat
        1. Parameter
      67. Varnish
      68. VIPArip
        1. Parameter
      69. VirtualDomain
        1. Parameter
      70. vmware
        1. Parameter
      71. WAS
        1. Parameter
      72. WAS6
        1. Parameter
      73. WinPopup
        1. Parameter
      74. Xen
        1. Parameter
      75. Xinetd
        1. Parameter
    3. OCF-Agenten von pacemaker
      1. ClusterMon
      2. controld
        1. Parameter
      3. HealthCPU
        1. Parameter
      4. HealthSMART
        1. Parameter
    4. Sonstige OCF-Agenten
    5. Eigene OCF-Agenten
    6. STONITH-Agenten
      1. Syntax
      2. Optionen
        1. Parameter
      3. apcmaster
      4. apcmastersnmp
      5. apcsmart
      6. baytech
      7. bladehpi
      8. cyclades
      9. drac3
      10. external/drac5
      11. external/dracmc-telnet
      12. external/hmchttp
      13. external/ibmrsa
      14. external/ibmrsa-telnet
      15. external/ipmi
      16. external/ippower9258
      17. external/kdumpcheck
      18. external/libvirt
      19. external/nut
      20. external/rackpdu
      21. external/riloe
      22. external/sbd
      23. external/ssh
      24. external/vmware
      25. external/xen0
      26. external/xen0-ha
      27. ibmhmc
      28. ipmilan
      29. meatware
      30. nw_rpc100s
      31. rcd_serial
      32. rps10
      33. suicide
      34. wti_mpc
      35. wti_nps
      36. Beispiele
        1. Der external/ssh-Agent
        2. Der IBMHMC-Agent
  11. 9. Beispielszenarien
    1. Die Nutzung von DRBDs
      1. Installation von DRBD
      2. Konfiguration und Tests
      3. DRBDs im Cluster
      4. Rettung nach einem Problem
      5. Automatisches Recovery
    2. DRBD: Konfiguration für Fortgeschrittene
      1. Ein neue Konfiguration
      2. Fehlersuche
    3. Anwendung: Ein hochverfügbarer NFS-Server
      1. Clusterkonfiguration
      2. Einbau im Cluster
      3. NFSv4
      4. NFSv4 und Kerberos
    4. Anwendung: iSCSI-Targets
      1. Der iSCSI-Client
      2. Das LIO-Target
    5. Virtuelle Rechner als Clusterressource
      1. Installation von KVM und libvirt
      2. Clustern des Rechners
      3. Überwachung der virtuellen Rechner
      4. Live-Migration
    6. Eine hochverfügbare Firewall mit VPN-Endpunkt
      1. Grundsystem
        1. Netzwerk
        2. Das Betriebssystem
      2. Die Firewall im Cluster
      3. Firewall mit fwbuilder
        1. Der Regelsatz
      4. Abgleich der Verbindungstabellen
      5. VPN
        1. IPsec mit OpenS/WAN
        2. OpenVPN
      6. Die komplette Firewall-Konfiguration
      7. Synchronisation der Konfiguration
  12. 10. Linux Virtual Server
    1. Der LVS-Director als Ressource unter pacemaker
      1. Das Kernelmodul
      2. Start durch init
      3. Die Konfiguration von ldirectord
      4. Dynamische Änderungen
      5. Der ldirectord als Ressource im Cluster
      6. Die Cluster-IP-Adressen
    2. Das Director als Applikationsserver
      1. Die Konfiguration im Netzwerk
      2. Die Director
      3. Die Clusterkonfiguration
  13. 11. Überwachung und Sicherheit
    1. Überwachung
      1. Ein kurzer Exkurs über SNMP
      2. Der SNMP-Subagent von Linux-HA
      3. Quick-and-dirty-SNMP
      4. nagios und das SNMP-Plug-in
      5. Überwachung des Clusters per SNMP
      6. Überwachung des Fehlerzählers
      7. SNMP-Traps von crm_mon
    2. Sicherheit
      1. Clusterkommunikation
      2. GUI
      3. Zugangskontrolle
  14. A. Die Konfigurationsdateien
    1. Die Konfiguration von heartbeat in ha.cf
    2. Die Konfiguration von corosync
  15. B. Über die Autoren
  16. Stichwortverzeichnis
  17. Kolophon
  18. Impressum