Seminarunterlage Version: 5.05 Version 5.05 vom 23. Juli 2015
Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen oder eingetragene Warenzeichen der jeweiligen Firmen und beziehen sich auf Eintragungen in den USA oder USA-Warenzeichen. Weitere Logos und Produkt- oder Handelsnamen sind eingetragene Warenzeichen oder Warenzeichen der jeweiligen Unternehmen. Kein Teil dieser Dokumentation darf ohne vorherige schriftliche Genehmigung der weitergegeben oder benutzt werden. Die besitzt folgende Geschäftsstellen Adressen der Westernmauer 12-16 D-33098 Paderborn Tel.: (+49) 0 52 51 / 10 63-0 An der alten Ziegelei 5 D-48157 Münster Tel.: (+49) 02 51 / 9 24 35 00 Welser Straße 9 D-86368 Gersthofen Tel.: (+49) 08 21 / 507 492 0 Kreuzberger Ring 13 D-65205 Wiesbaden Tel.: (+49) 06 11 / 7 78 40 00 Wikingerstraße 18-20 D-51107 Köln Tel.: (+49) 02 21 / 8 70 61 0 Internet: http://www.ordix.de Email: training@ordix.de Seite 2 Version: 5.05
Inhaltsverzeichnis 1 Grundlagen der Hochverfügbarkeit... 6 1.1 Warum Hochverfügbarkeit?... 7 1.2 Zahlen und Begriffe... 9 1.3 Wie Hochverfügbarkeit erreichen?... 11 1.4 Cluster... 12 1.4.1 Begriffsdefinition... 12 1.4.2 Aktiv oder Passiv?... 13 1.4.3 Kommunikation... 14 1.4.4 Split Brain... 15 1.4.5 Datenintegrität... 16 1.5 Storage... 17 1.5.1 Allgemeines... 17 1.5.2 Shared Nothing... 18 1.5.3 Shared Disk... 19 1.5.4 NAS... 20 1.5.5 Datenreplikation... 21 2 Shared Storage mit DRBD... 22 2.1 Übersicht Distributed Replicated Block Device... 23 2.2 DRBD Features... 24 2.3 Single Primary Mode... 26 2.4 Dual Primary Mode... 27 2.5 Befehle und Dateien... 28 2.6 Auswahl und Vorbereitung des Lower-Level Storage... 29 2.7 Replikationsprotokolle... 30 2.8 Empfehlungen für die Netzwerkverbindung... 31 2.9 Konfiguration (drbd.conf)... 32 2.10 Erstmaliges Aktivieren einer Ressource... 35 2.11 Verwendung des Linux Logical Volume Manager... 37 2.12 drbdadm... 39 2.13 Grundbefehle zur Verwaltung von DRBD... 40 2.14 Veränderung der Konfiguration... 41 2.15 DRBD Monitoring und Status... 42 2.16 Dual-Primary Modus... 43 2.17 Größenänderungen von DRBD-Devices... 45 2.18 Online Device Verification... 48 2.19 Split-Brain aus DRBD -Sicht... 50 2.20 Automatische Split-Brain Auflösung... 52 2.21 Manuelle Split-Brain Auflösung... 54 2.22 Aufgaben... 56 2.23 Lösungen... 57 3 Pacemaker - Grundlagen... 60 3.1 Das Projekt... 61 3.2 Architektur... 62 3.2.1 Cluster Resource Manager CRM... 63 3.2.2 Local Resource Manager LRM... 64 3.2.3 Weitere Pacemaker Clusterkomponenten... 65 3.2.4 Cluster Information Base CIB... 66 3.3 Pacemaker als Cluster Resource Manager... 69 3.3.1 Ressourceagenten... 71 3.3.1.1 Übersicht... 71 3.3.1.2 LSB Ressourceagenten... 72 3.3.1.3 Heartbeat 1 Ressourceagenten... 73 3.3.1.4 OCF Ressourceagenten... 74 3.4 Nutzung OCF Ressourceagent durch Pacemaker... 76 3.4.1.1 STONITH Ressourceagenten... 77 3.5 Installation der Cluster Software... 78 Version: 5.05 Seite 3
4 Clusterkommunikation mit Corosync... 79 4.1 Heartbeat und Leitungen... 80 4.2 Start und Stopp der Clustersoftware... 81 4.3 Corosync - Aufbau der Konfigurationsdatei... 82 4.4 Konfiguration Corosync 1 aisexec und service... 83 4.5 Corosync totem... 84 4.6 Corosync Multicastkommunikation... 86 4.7 Corosync 1 Unicastkommunikation... 88 4.8 Corosync 2 Unicastkommunikation... 89 4.9 Status der Clusterkommunikationsleitungen... 90 4.10 Konfiguration der Protokollierung logging... 91 4.11 Corosync 1 Verschlüsselung der Clusterkommunikation... 93 4.12 Corosync 2 Verschlüsselung der Clusterkommunikation... 94 4.13 Corosync 2 votequorum-bibliothek... 95 4.14 Corosync 2 corosync_votequorum... 96 4.15 Corosync 2 - corosync-quorumtool... 100 4.16 Konfiguration Corosync Analyse von Fehlern... 101 4.17 Aufgaben... 102 4.18 Lösungen... 103 5 Pacemaker Administration... 105 5.1 Verwaltung des Cluster mit der CRM-Shell... 106 5.2 Übersicht über die CRM-Shell... 107 5.3 Benutzung der CRM-Shell... 110 5.4 Übersicht über die vorhandenen Ressourceagenten... 111 5.5 Anzeigen und Verändern globaler Clustereinstellungen... 113 5.6 Arten von Ressourceobjekten... 117 5.7 Eigenschaften primitiver Ressourcen... 119 5.8 Primitive Ressourcen mit der CRM-Shell erstellen und verändern... 121 5.9 Metaattribute von primitiven Ressourcen... 123 5.10 Konfiguration der Metaattribute von Ressourcen... 125 5.11 Ressourcen anlegen mit Templates... 126 5.12 Nutzung von Templates... 127 5.13 Anpassen der CRM-Shell an eigene Bedürfnisse... 130 5.14 Ressourcen verwalten mit der CRM-Shell... 132 5.15 Scores... 133 5.16 Bedingungen... 134 5.17 Anordnung der Ressourcen... 135 5.18 Beziehung zwischen Ressourcen (colocation)... 137 5.19 Platzieren von Ressourcen (location)... 139 5.20 Platzieren von Ressourcen nach Abhängigkeit der Last... 140 5.21 Konfiguration der Clusterknoten und Ressourcen für utilization Nutzung... 142 5.22 Festlegen der utilization Strategie... 143 5.23 Ressourcegruppen Übersicht... 145 5.24 Ressourcegruppen verwalten mit der CRM-Shell... 146 5.25 Metaattribute von Ressourcegruppen... 147 5.26 Ressourceclones Übersicht... 149 5.27 Arten von Ressourceclones... 150 5.28 Ressourceclones verwalten mit der CRM-Shell... 151 5.29 Metaattribute von Ressourceclones... 152 5.30 Multi-State Ressourcen Überblick... 154 5.30.1 DRBD Pacemaker Cluster Integration... 155 5.31 Metaattribute von Multi-State Ressourcen... 157 5.32 Aufgaben... 159 5.33 Lösungen... 162 6 Überwachung des Cluster... 167 6.1 crm_mon - Monitoring des Cluster... 168 6.2 Monitoring der Ressourcen... 170 Seite 4 Version: 5.05
6.3 Konfiguration des Monitoring mit der CRM-Shell... 171 6.4 Timeouts des Pacemaker Cluster... 173 6.5 Fehlerzähler von Ressourcen... 175 6.6 Fehlerzähler verwalten mit der CRM-Shell... 177 6.6.1 Monitoring des Ressourcennetzwerks ping Clone... 178 6.7 Monitoring des Public Network pingd-clone... 179 6.8 Monitoring des Ressourcennetzwerks ethmonitor Clone... 180 6.8.1 Monitoring des Public Network ethmonitor-clone... 181 6.9 Anzeige der Clusterkommunikationsleitungen... 182 6.10 Überwachung der Clusterknoten... 183 6.11 STONITH -Shot the other node in the head... 185 6.11.1 Übersicht... 185 6.12 Einsatz von STONITH durch den Cluster... 186 6.13 Fencingarten und Fencingklassen... 187 6.14 STONITH Implementierung... 189 6.14.1 STONITH Konfiguration... 191 6.15 Aufgaben... 194 6.16 Lösungen... 195 7 Wartung des Cluster... 196 7.1 Cluster Wartungsarbeiten... 197 7.2 Hinzufügen / Entfernen von Clusterknoten... 198 7.3 Wartung des Betriebssystems... 199 7.4 Wartung der Clustersoftware... 200 7.5 Wartung der Anwendungssoftware... 201 7.6 Logdateien der Policy Engine... 202 7.7 Auswerten der Logdateien des Cluster... 203 7.8 Verwendung der Clusterhistorie... 204 7.9 Access Control Lists mit Pacemaker... 206 7.10 Grundlagen der Access Control Lists... 207 7.11 Erstellen von Access Control Lists Rollen mit XPath... 208 7.12 Abkürzung der XPath Schreibweise... 210 7.13 Benutzer berechtigen für Access Control Lists... 211 7.14 Änderungen mit Hilfe von Shadow CIB s... 212 7.15 Benutzung der Shadow-CIB s... 213 7.16 Aufgaben... 216 7.17 Lösungen... 217 8 Synchrone Server mit Csync2 (Optional)... 219 8.1 Synchrone Server: Das Problem... 220 8.2 Synchrone Server: Die Lösung... 221 8.3 Synchronisation: Scannen der Daten... 222 8.4 Synchronisation: Update der Dateien... 223 8.5 Konfiguration des Csync2 daemon... 225 8.6 Konfiguration von Csync2... 226 8.7 Konfiguration von Gruppen und Schlüsseln... 228 8.8 Definition der Hosts... 229 8.9 Include/Exclude von Dateien... 230 8.10 Ausführen von Aktionen... 232 8.11 Anlegen von Backups... 234 8.12 Lösung von Konflikten... 235 8.13 Nutzung von Csync2... 236 8.14 Hinzufügen eines neuen Host... 237 8.15 Aufgaben... 238 8.16 Lösungen... 239 Version: 5.05 Seite 5