Seite wählen

NETWAYS Blog

Hochverfügbarkeit bei Datenbanken, wofür ist das gut?

Hallo, ich bin Valeria, Junior-Developerin bei NETWAYS und habe mich lange damit beschäftigt, über welches Thema ich in meinem nächsten Blogpost schreiben soll. Vor Kurzem habe ich an einer MySQL-Schulung von NETWAYS teilgenommen und mich anschließend mit dem Thema der Hochverfügbarkeit bei Datenbanken in einem Projekt auseinandergesetzt. Da ich das Thema sehr interessant fand, möchte ich nun mein Wissen gerne mit Euch teilen.

  • Was bedeutet Hochverfügbarkeit?
  • Warum ist es so wichtig, Daten permanent abrufen zu können?
  • Wie kann man Hochverfügbarkeit gewährleisten?
  • Welche Varianten gibt es?
  • Fazit

 

Was bedeutet Hochverfügbarkeit?

In einer Welt, in der Daten für Unternehmen immer wichtiger werden, ist es entscheidend, dass diese Daten immer verfügbar sind. Abhilfe schafft hier Hochverfügbarkeit oder auch HADR (High Availability and Disaster Recovery). Datenbanken sind demnach so eingerichtet, dass sie selbst bei einem Ausfall eines Servers oder einer anderen kritischen Komponente, unabhängig von äußeren Einflüssen wie Hardwareausfällen, Netzwerkausfällen oder Stromausfällen, weiterhin verfügbar sind.

 

Warum ist es so wichtig, Daten permanent abrufen zu können?

Es gibt einige Bereiche, in denen Hochverfügbarkeit von Daten nicht mehr wegzudenken ist. Stell Dir vor, Du betreibst eine große E-Commerce-Plattform, welche für ein paar Stunden nicht abrufbar ist. Was passiert?

Der fehlende Zugriff auf Unternehmensdaten kann einen massiven Umsatzverlust bedeuten. Wenn ein Kunde nicht auf seine Kundendaten zugreifen kann, kann er keine Bestellungen aufgeben, wodurch potenzielle Einnahmen verloren gehen.

Dies führt in der Regel auch zu einer sinkenden Kundenzufriedenheit und/oder möglicherweise sogar zu Kundenverlusten. Wenn ein Unternehmen nicht in der Lage ist, seinen Kunden einen effektiven und reibungslosen Service zu bieten, wird er es schwer haben, neue Kunden zu gewinnen.

Wenn ein Kunde die Webseite nicht aufrufen kann, wird er sich mit großer Wahrscheinlichkeit auf die Suche nach einer anderen Webseite machen, was die Chance diesen Kunden zu gewinnen zunichte macht.

In diesem Beispiel ging es „nur“ um Verluste, die mit einer Minderung des Umsatzes einhergehen. Doch wie sieht es in anderen Bereichen aus?

Wenn Datenbanken im Bereich autonomer Fahrzeuge ausfallen, kann dies schwerwiegende Konsequenzen haben. Zum Beispiel kann es dazu führen, dass die autonomen Fahrzeuge nicht mehr in der Lage sind, ihre Umgebung korrekt wahrzunehmen und somit Unfälle oder andere sicherheitsrelevante Vorfälle verursachen.

Auch könnten wichtige Informationen wie Verkehrsdaten, Wetterinformationen oder Straßenbedingungen nicht mehr verfügbar sein, was die Sicherheit und Zuverlässigkeit der autonomen Fahrzeuge beeinträchtigen würde. Zudem könnten Service- und Wartungsprozesse beeinträchtigt werden, was zu Verzögerungen oder Ausfällen führen könnte.

Auch im Gesundheitswesen, Flugverkehr, Energieversorgung, Finanzdienstleistungen, Sicherheitsbehörden ect. spielt Hochverfügbarkeit eine große Rolle.

 

Wie kann man Hochverfügbarkeit gewährleisten?

  1. Vermeidung eines Single Point of Failure (SPoF). Dies beschreibt eine Komponente in einem System, bei deren Ausfall das gesamte System ausfallen würde. Ein Beispiel hierfür wäre ein Server, auf dem eine Anwendung läuft. Wenn dieser Server ausfällt, ist die Anwendung nicht mehr verfügbar.
  2. Redundanz integrieren. Dadurch wird sichergestellt, dass eine Backup-Komponente einspringen kann, falls eine Komponente ausfällt. Es ist dabei wichtig, dass ein zuverlässiges Crossover oder Failover gewährleistet ist, um einen Wechsel von der ausgefallenen Komponente zur Backup-Komponente ohne Datenverlust oder Leistungseinbußen zu ermöglichen.
  3. Monitoring. Um die Erkennbarkeit von Ausfällen zu gewährleisten, sollten Systeme über Mechanismen verfügen, um Fehler automatisch zu erkennen und zu beheben. Es sollten auch eingebaute Mechanismen zur Vermeidung von Fehlern mit gemeinsamer Ursache vorhanden sein, bei denen mehrere Komponenten gleichzeitig ausfallen können. Dadurch kann sichergestellt werden, dass Ausfälle schnell erkannt und behoben werden können, um eine schnelle Wiederherstellung des Systems zu gewährleisten.

 

Welche Varianten für Hochverfügbarkeitslösungen bei Datenbanken gibt es?

Ein häufig verwendetes Konzept ist die Verwendung von Redundanz und Replikation. Dabei werden die Daten auf mehreren Servern repliziert. Im Falle eines Serverausfalls kann ein anderer Server sofort einspringen und die Daten bereitstellen.

Es gibt zwei Arten von Replikationen: Master-Slave- und Multi-Master-Replikationen.

Bei einer Master-Slave-Replikation wird der Master-Server als Hauptserver betrachtet welcher alle Zugriffsverhältnisse beherrscht. Der Slave-Server stellt nur Lese-Zugriff zur Verfügung. Das bedeutet, dass die Suchlast auf den Slave-Servern verteilt werden kann.

Kommt es jedoch zu einem Ausfall des Master-Servers, kann dies zu einer Unterbrechung des Schreibzugriffs führen, da kein Knoten als neuer Masterknoten fungieren kann, bis der ursprüngliche Masterknoten wieder verfügbar ist. Infolgedessen ist der Masterknoten ein Single Point of Failure, der das gesamte System beeinträchtigen kann.

Bei einer Master-Slave-Kombination sollte insbesondere sichergestellt werden, das der Master-Server die indizierende Datenmenge auch bewältigen kann. Wenn große Datenmengen zu indizieren sind, empfiehlt es sich dann die Indizes aufzuteilen und mehrere Master-Server einzusetzen.

Bei einer Multi-Master-Replikation sind alle Server gleichwertig und replizieren Daten untereinander. Wenn ein Server ausfällt, übernehmen die verbleibenden Server seine Aufgaben. Doch hier wird es kniffelig. Wenn alle Server gleiches Stimmrecht haben, was passiert wenn mehrere Server an der selben Datei zeitgleich eine Änderung vornehmen?

Es kann zu einem „Split-Brain“ kommen. Jeder Knoten glaubt, dass er der Hauptknoten ist, was zu Inkonsistenzen und Datenverlust führen kann. Diese müssen manuell aufgelöst werden, bevor die Änderungen an alle Knoten weitergeleitet werden und sich der Cluster abschaltet.

Um dies zu vermeiden wird immer eine ungerade Anzahl an Knoten empfohlen, damit ein Quorum (eine Mehrheit der verfügbaren Knoten) bestimmt werden kann. Wenn beispielsweise ein Cluster aus fünf Knoten besteht, würde das Quorum aus mindestens drei Knoten bestehen. Wenn das Quorum unterschritten wird, kann es zu einem Ausfall des Clusters kommen.

Ein Quorum stellt somit sicher, dass immer eine ausreichende Anzahl von Knoten verfügbar ist, um eine Abstimmung über Datenänderungen durchzuführen.

Zudem sind Multi-Master-Systeme in der Regel etwas komplexer als Master-Slave-Systeme und erfordern mehr Konfiguration und Wartung, was zu höheren Betriebskosten führen kann.

Welche der Varianten genutzt wird, hängt letztendlich von den spezifischen Anforderungen und Bedürfnissen des Datenbanksystems ab. Wenn die Anwendung eine hohe Schreiblast aufweist und eine hohe Verfügbarkeit erfordert, kann eine Multi-Master-Replikation bevorzugt werden, da sie eine effiziente Lastverteilung und eine schnelle Wiederherstellung nach einem Ausfall ermöglicht. Wenn jedoch die Schreiblast nicht so hoch ist und die Konsistenz der Daten wichtiger ist als die Verfügbarkeit, kann eine Master-Slave-Replikation bevorzugt werden, da sie eine strengere Konsistenz der Daten gewährleistet.

Fazit:

Die Bedeutung von Hochverfügbarkeit nimmt in der heutigen Zeit immer mehr zu, da die Abhängigkeit von Daten und Systemen in allen Bereichen des Lebens und der Wirtschaft zunimmt. Unternehmen müssen in der Lage sein, ihre Daten und Anwendungen rund um die Uhr zu nutzen, um wettbewerbsfähig zu bleiben und Kundenbedürfnisse zu erfüllen. Dies gilt nicht nur für große Unternehmen, sondern auch für kleine und mittelständische Unternehmen, die auf stabile und verlässliche IT-Infrastrukturen angewiesen sind. Zudem wird die Verfügbarkeit von Daten auch in immer mehr Bereichen des täglichen Lebens wichtiger, beispielsweise im Gesundheitswesen oder in der öffentlichen Verwaltung.

Valeria Thiele
Valeria Thiele
Junior Developer

Valeria unterstützt seit September 2022 das NETWAYS Managed Services Team. Als Auszubildende Fachinformatikerin für Anwendungsentwicklung packt sie stets der Ehrgeiz, etwas zu programmieren. Sie ist aber auch sehr gespannt und neugierig, was sie in ihrer Ausbildung noch alles erwarten wird. In ihrer Freizeit findet man sie nahezu überall: auf dem Bike in den Bergen, am Piano spielend, nächtelang Zocken oder Netflixen, auf Wanderwegen, in Museen interessante Dinge entdecken oder auf dem Wasser im Kajak. Sie ist einfach immer wieder auf der Suche nach neuen Entdeckungen und Abenteuern, digital wie analog, offline wie auch online.

MSSQL databases from Icinga Web 2

Disclaimer: This guide is only for RedHat and CentOS 7, using the PHP SCL packages with the official icingaweb2 package.
Often when we help customers implement Icinga 2, Icinga Web 2 and Director, they use custom imports to pull in data to their monitoring config. Whenever data is in need to be pulled from a MSSQL database, this can be challenging. Their are multiple guides around the Internet, even from Microsoft.
This post should clear things how to achieve this with the official Icinga packages and their requirements.

Requirements

Basic Installation Icinga Web 2

First of all icingaweb2 and PHP needs to be installed – usually you should have this already…

# on RedHat
subscription-manager repos --enable rhel-7-server-optional-rpms
subscription-manager repos --enable rhel-server-rhscl-7-rpms
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# on CentOS
yum install centos-release-scl epel-release
yum install httpd icingaweb2
systemctl start httpd.service
systemctl enable httpd.service
echo "date.timezone = Europe/Berlin" > /etc/opt/rh/rh-php71/php.d/timezone.ini
systemctl start rh-php71-php-fpm.service
systemctl enable rh-php71-php-fpm.service

Please also see the official documentation.

MSSQL PDO driver for PHP

Their are multiple ways to install a MSSQL compatible driver, but with icingaweb2 and the ZendFramework below in mind, we need to use pdo_dblib with FreeTDS as driver implementation. I prepared a RPM spec file for you to build and install, it is based on the php-extras packages shipped with Fedora’s EPEL, only updated for PHP 7.1 SCL.
You can setup a small RPM build environment on a RedHat or CentOS machine with the required repositories.

sudo yum install rpm-build rpmdevtools yum-utils gcc gcc-c++ scl-utils scl-utils-build
rpmdev-setuptree
cd ~/rpmbuild/SPEC
wget https://github.com/lazyfrosch/rpm-php-extras/raw/epel7/php-extras.spec
cd ../SOURCES
spectool -gf ../SPECS/php-extras.spec
cd ~/rpmbuild
rpmbuild -bs SPECS/php-extras.spec
sudo yum-builddep SRPMS/rh-php71-php-extras*.src.rpm
rpmbuild --rebuild SRPMS/rh-php71-php-extras*.src.rpm

With the built RPM files under RPMS/ you are good to go to your Icinga machine. Basically you only need to copy rh-php71-php-mssql*.rpm over and install it there.

yum install rh-php71-php-mssql*.rpm
scl enable rh-php71 -- php -m

After restarting php-fpm the driver has been loaded.

systemctl restart rh-php71-php-fpm.service

Patching Icinga Web 2

In Icinga Web 2.5.1 and before there is an error in detecting MSSQL correctly, detection only works in PHP 5.x. A fix has been suggested in PR#3400.
To manually patch this, you only need to fix a single line in /usr/share/php/Icinga/Application/Platform.php

--- /usr/share/php/Icinga/Application/Platform.php.orig 2018-03-27 06:02:59.454240788 -0400
+++ /usr/share/php/Icinga/Application/Platform.php 2018-03-27 00:38:15.967639651 -0400
@@ -351,7 +351,7 @@
 */
 public static function hasMssqlSupport()
 {
- return static::extensionLoaded('mssql') && static::classExists('Zend_Db_Adapter_Pdo_Mssql');
+ return static::extensionLoaded('pdo_dblib') && static::classExists('Zend_Db_Adapter_Pdo_Mssql');
 }
 /**

I hope this helps you getting started, feel free to ask questions in the comments.

NETWAYS offers professional support for Icinga and other Open Source tools, check our Website about Support.
The image used in this article is from johnmartel.blogspot.de, we assume fair use by mentioning the author.

Jetzt aber schnell!!!!

Letzte Chance den Early Bird zu nutzen: Nur noch bis heute Nacht, 24:00 Uhr, gelten die vergünstigten Frühbucherpreise für die OSDC 2012. Deshalb jetzt ganz flux zum Online-Anmeldeformular und sich die Teilnahme sichern!
Das Vortragsprogramm ist mittlerweile fast vollständig und wir dürfen uns auf eine ganze Reihe ausgewiesener internationaler Open Source Spezialisten freuen, die mit Ihren Beiträgen den diesjährigen Themenschwerpunkt „Agile Infrastructures“ von allen Seiten beleuchten werden.
Noch einmal ganz deutlich vertiefen kann man seine Kenntnisse mit der Teilnahme an einem der drei Workshops am Vortag der Konferenz (24. April 2012). Hier stehen die aktuellen Themen OpenNebula, IPv6  und Puppet Configuration Management für einen ganzen Tag im Mittelpunkt der Aufmerksamkeit. Weitere Infos zu den Intensiv-Workshops und was die Zusatzpakete konkret beinhaltet finden Sie hier.
So, nun aber auf zum Endspurt und noch schnell einen frühen Vogel schnappen!!!

Pamela Drescher
Pamela Drescher
Head of Marketing

Seit Dezember 2015 ist Pamela Anführerin des Marketing Teams. Mit ihrer stetig wachsenden Mannschaft arbeitet sie daran, NETWAYS nicht nur erfolgreicher, sondern auch immer schöner zu machen. Privat ist sie Dompteurin einer Horde von drei Kindern, zwei Pferden, drei Katzen und einem Hund. Für Langeweile bleibt also keine Zeit!

OSDC 2012: CfP erfolgreich beendet – erste Programminhalte online

Mit dem Abschluß des Call for Papers beginnt nun für uns die Detailarbeit am Vortragsprogramm. Wobei wir uns sehr freuen, bereits jetzt die ersten, hochkarätigen Referenten bekannt geben zu können. Mit dabei sein werden unter anderem die Open Source Spezialisten

  • Mark Burgess (CFEngine)
  • Kris Buytaert (inuits)
  • Kristian Köhntopp (booking.com)
  • Benedikt Stockebrand (IPv6)
  • Constantino Vázquez Blanco (OpenNebula)

Alle Informationen zum Konferenzprogramm mit dem Schwerpunktthema „Agile Infrastructures“ werden auf www.netways.de/osdc ständig aktualisiert und sukzessive erweitert.
Ansonsten heißt es für alle Teilnahmewilligen schnell sein, denn die vergünstigten Frühbucherpreise sind nur noch bis 15. Februar zu haben. Also am besten gleich online anmelden!
Sinnvoll erweitern läßt sich der Konferenzbesuch übrigens mit den am Vortag der Konferenz (24. April) stattfindenden 1-Tages-Intensiv-Workshops zu den Themen Puppet Configuration Management, IPv6 und OpenNebula.
Im Zentrum der OSDC wird auch in diesem Jahr wieder das Zusammentreffen von und mit der Open Source Community, der Erfahrungsaustausch der Teilnehmer untereinander sowie die vielen spannenden Diskussionen rund um Open Source Data Center Solutions mit den OS-Experten stehen. Wir freuen uns schon sehr und sind gespannt, wen wir am 25. & 26. April bei uns in Nürnberg persönlich begrüßen dürfen!

Pamela Drescher
Pamela Drescher
Head of Marketing

Seit Dezember 2015 ist Pamela Anführerin des Marketing Teams. Mit ihrer stetig wachsenden Mannschaft arbeitet sie daran, NETWAYS nicht nur erfolgreicher, sondern auch immer schöner zu machen. Privat ist sie Dompteurin einer Horde von drei Kindern, zwei Pferden, drei Katzen und einem Hund. Für Langeweile bleibt also keine Zeit!