Seminarunterlage Version: 5.08 Version 5.08 vom 17. August 2017
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 Karl-Schurz-Straße 19a D-33100 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: seminare@ordix.de Seite 2 Version: 5.08
Inhaltsverzeichnis 1 Grundlagen der Hochverfügbarkeit... 7 1.1 Warum Hochverfügbarkeit?... 8 1.2 Zahlen und Begriffe... 10 1.3 Wie Hochverfügbarkeit erreichen?... 12 1.4 Cluster... 13 1.4.1 Begriffsdefinition... 13 1.4.2 Aktiv oder Passiv?... 14 1.4.3 Kommunikation... 15 1.4.4 Split Brain... 16 1.4.5 Datenintegrität... 17 1.5 Storage... 18 1.5.1 Allgemeines... 18 1.5.2 Datenreplikation... 19 2 Shared-Storage mit DRBD... 20 2.1 Übersicht Distributed Replicated Block Device... 21 2.2 DRBD Features... 22 2.3 Single Primary Mode... 24 2.4 Dual Primary Mode... 25 2.5 Befehle und Dateien... 26 2.6 Auswahl und Vorbereitung des Lower-Level Storage... 27 2.7 Replikationsprotokolle... 28 2.8 Empfehlungen für die Netzwerkverbindung... 29 2.9 Konfiguration (drbd.conf)... 30 2.10 Erstmaliges Aktivieren einer Ressource... 33 2.11 Auto-Promotion von Ressourcen in DRBD 9... 35 2.12 Verwendung des Linux Logical Volume Manager... 36 2.13 drbdadm... 38 2.14 Grundbefehle zur Verwaltung von DRBD... 39 2.15 Veränderung der Konfiguration... 40 2.16 DRBD Monitoring und Status (bis DRBD 8.X)... 41 2.17 DRBD Monitoring und Status (ab DRBD 9)... 42 2.18 Dual-Primary Modus... 43 2.19 Größenänderungen von DRBD-Devices... 45 2.20 Online Device Verification... 48 2.21 Split-Brain aus DRBD -Sicht... 50 2.22 Automatische Split-Brain Auflösung... 52 2.23 Manuelle Split-Brain Auflösung... 54 3 Pacemaker - Grundlagen... 56 3.1 Das Projekt... 57 3.2 Architektur... 58 3.2.1 Cluster Resource Manager CRM... 60 3.2.2 Local Resource Manager LRM... 61 3.2.3 Weitere Pacemaker Clusterkomponenten... 62 3.2.4 Cluster Information Base CIB... 63 3.3 Pacemaker als Cluster Resource Manager... 66 3.3.1 Ressourceagenten... 68 3.3.1.1 Übersicht... 68 3.3.1.2 LSB Ressourceagenten... 69 3.3.1.3 OCF Ressourceagenten... 70 3.3.1.4 Nutzung der OCF Ressourceagent durch Pacemaker... 72 3.3.1.5 STONITH Ressourceagenten... 73 3.3.1.6 Systemd / Upstart /Service Ressourceagenten, Nagios-Plugins... 74 3.4 Installation der Cluster Software... 75 4 Clusterkommunikation mit Corosync... 76 4.1 Heartbeat und Leitungen... 77 Version: 5.08 Seite 3
4.2 Start und Stopp der Clustersoftware... 78 4.3 Corosync - Aufbau der Konfigurationsdatei... 79 4.4 Konfiguration Corosync 1 aisexec und service... 80 4.5 Corosync totem... 81 4.6 Corosync Multicastkommunikation... 83 4.7 Corosync 1 Unicastkommunikation... 85 4.8 Corosync 2 Unicastkommunikation... 86 4.9 Status der Clusterkommunikationsleitungen... 87 4.10 Konfiguration der Protokollierung logging... 88 4.11 Corosync 1 Verschlüsselung der Clusterkommunikation... 90 4.12 Corosync 2 Verschlüsselung der Clusterkommunikation... 92 4.13 Corosync 2 votequorum-bibliothek... 93 4.14 Corosync 2 corosync_votequorum... 94 4.15 Corosync 2 - corosync-quorumtool... 98 5 Pacemaker Administration... 99 5.1 Verwaltung des Cluster mit der CRM-Shell... 100 5.2 Übersicht über die CRM-Shell... 101 5.3 Benutzung der CRM-Shell... 104 5.4 Übersicht über die vorhandenen Ressourceagenten... 105 5.5 Anzeigen und Verändern globaler Clustereinstellungen... 107 5.6 Arten von Ressourceobjekten... 111 5.7 Eigenschaften primitiver Ressourcen... 113 5.8 Primitive Ressourcen mit der CRM-Shell erstellen und verändern... 115 5.9 Ressourcen verwalten mit der CRM-Shell... 117 5.10 Testen von Clusterressourcen... 119 5.11 Metaattribute von primitiven Ressourcen... 121 5.12 Konfiguration der Metaattribute von Ressourcen... 123 5.13 Anpassen der CRM-Shell an eigene Bedürfnisse... 124 5.14 Scores... 126 5.15 Bedingungen... 127 5.16 Anordnung der Ressourcen... 128 5.17 Beziehung zwischen Ressourcen (colocation)... 130 5.18 Platzieren von Ressourcen (location)... 131 5.19 Resource Sets... 132 5.20 Verwendung von Resource Sets... 134 5.21 Ressourcegruppen Übersicht... 135 5.22 Ressourcegruppen verwalten mit der CRM-Shell... 136 5.23 Metaattribute von Ressourcegruppen... 137 5.24 Ressourceclones Übersicht... 139 5.25 Arten von Ressourceclones... 140 5.26 Ressourceclones verwalten mit der CRM-Shell... 141 5.27 Metaattribute von Ressourceclones... 142 5.28 Multi-State Ressourcen Überblick... 144 5.29 DRBD Pacemaker Cluster Integration... 145 5.30 Metaattribute von Multi-State Ressourcen... 147 6 Überwachung des Cluster... 149 6.1 crm_mon - Monitoring des Cluster... 150 6.2 Monitoring der Ressourcen... 152 6.3 Konfiguration des Monitoring mit der CRM-Shell... 153 6.4 Timeouts des Pacemaker Cluster... 155 6.5 Fehlerzähler von Ressourcen... 157 6.6 Fehlerzähler verwalten mit der CRM-Shell... 159 6.7 Monitoring des Ressourcennetzwerks ping Clone... 160 6.8 Monitoring des Public Network pingd-clone... 161 6.9 Monitoring des Ressourcennetzwerks ethmonitor Clone... 162 6.10 Monitoring des Public Network ethmonitor-clone... 163 6.11 Anzeige der Clusterkommunikationsleitungen... 164 6.12 Überwachung der Clusterknoten... 165 Seite 4 Version: 5.08
7 Pacemaker - Fencing... 167 7.1 STONITH -Shot the other node in the head... 168 7.2 Einsatz von STONITH durch den Cluster... 169 7.3 Fencingarten und Fencingklassen... 170 7.4 STONITH Implementierung... 172 7.5 STONITH Konfiguration... 174 7.6 Sensitive Daten in der Cluster Information Base... 177 8 Wartung des Cluster... 178 8.1 Cluster Wartungsarbeiten... 179 8.2 Hinzufügen / Entfernen von Clusterknoten... 180 8.3 Wartung des Betriebssystems... 181 8.4 Wartung der Clustersoftware... 182 8.5 Wartung eines Clusterknoten... 183 8.6 Wartung der Anwendungssoftware... 184 8.7 Auswerten der Logdateien des Cluster... 185 8.8 Verwendung der Clusterhistorie... 186 8.9 Access Control Lists mit Pacemaker... 188 8.10 Grundlagen der Access Control Lists... 189 8.11 Erstellen von Access Control Lists Rollen mit XPath... 190 8.12 Abkürzung der XPath Schreibweise... 192 8.13 Benutzer berechtigen für Access Control Lists... 193 8.14 Änderungen mit Hilfe von Shadow CIB s... 194 8.15 Benutzung der Shadow-CIB s... 195 9 Active/Active Komponenten... 198 9.1 Übersicht OCFS2, GFS2, clvm... 199 9.2 Global File System 2 (GFS2)... 200 9.3 Befehle im gfs2-utils Paket... 201 9.4 Konfiguration des Distributed Lock Manager in Pacemaker... 202 9.5 Erstellung GFS2 Dateisystem... 203 9.6 GFS2 Dateisystemmount... 204 9.7 Oracle Cluster File System 2 (OCFS2)... 205 9.8 Fähigkeiten von OCFS2... 206 9.9 Eingesetzte Befehle im OCFS2 Kontext... 207 9.10 Konfiguration des Distributed Lock Manager... 208 9.11 Erstellung OCFS2 Dateisystem... 209 9.12 OCFS2 Dateisystemmount... 210 10 Pacemaker Virtualisierung im Cluster... 211 10.1 Virtualisierung von Systemen... 212 10.2 Voraussetzungen für Virtualisierungscluster... 213 10.3 Erstellung eines KVM Virtualisierungscluster... 214 10.4 Voraussetzungen für Live-Migrationen... 215 10.5 Einstellungen für die Live-Migration... 217 10.6 Konfiguration von libvirt... 218 10.7 Konfiguration VirtualDomain-Ressourceagent... 219 10.8 Platzieren von Ressourcen nach Abhängigkeit der Last... 221 10.9 Konfiguration der Clusterknoten und Ressourcen für utilization Nutzung... 223 10.10 Festlegen der utilization Strategie... 224 11 Synchrone Server mit Csync2 (Optional)... 226 11.1 Synchrone Server: Das Problem... 227 11.2 Synchrone Server: Die Lösung... 228 11.3 Synchronisation: Scannen der Daten... 229 11.4 Synchronisation: Update der Dateien... 230 11.5 Konfiguration des Csync2 daemon... 232 11.6 Konfiguration von Csync2... 233 11.7 Konfiguration von Gruppen und Schlüsseln... 235 11.8 Definition der Hosts... 236 Version: 5.08 Seite 5
11.9 Include/Exclude von Dateien... 237 11.10 Ausführen von Aktionen... 239 11.11 Anlegen von Backups... 241 11.12 Lösung von Konflikten... 242 11.13 Nutzung von Csync2... 243 11.14 Hinzufügen eines neuen Host... 244 Seite 6 Version: 5.08