Die Vorbereitung eines Betriebssystems für hochverfügbare Datenbankinstallationen wie PostgreSQL oder MySQL ist entscheidend, um Performance, Stabilität und Ausfallsicherheit zu gewährleisten. Neben der richtigen Hardware spielt die OS-Konfiguration eine zentrale Rolle, da sie das Fundament für Replikation, Failover und konsistente Transaktionsverarbeitung bildet.
Hardware- und OS-Prerequisites
Bevor eine Datenbank hochverfügbar betrieben werden kann, sollten die OS- und Hardware-Bedingungen überprüft und angepasst werden.
CPU und Speicher
- Mehrkernprozessoren, vorzugsweise mit Hyperthreading für parallele Query-Verarbeitung
- Ausreichend RAM, um Buffer-Pools und Shared Memory effizient zu nutzen
- CPU-Affinity bei Bedarf für Datenbankprozesse festlegen
taskset -c 0-3 postgres
Storage
- SSD/NVMe für niedrige Latenzen
- Separate Partitionen für
/var/lib/postgresqloder/var/lib/mysqlund/var/log - Mount-Optionen wie
noatime,nodiratimezur Reduktion von I/O-Overhead
mount -o noatime,nodiratime /dev/nvme0n1 /var/lib/postgresql
Networking
- Stabile Netzwerkverbindung zwischen Master- und Replica-Nodes
- Separate Interfaces oder VLANs für Replikation und Client-Traffic
- MTU-Anpassung bei Jumbo Frames, wenn große Datenmengen repliziert werden
Kernel und OS-Tuning
Die Standardwerte des Linux-Kernels sind häufig nicht optimal für Hochverfügbarkeits-Datenbanken.
Shared Memory und Semaphores
- PostgreSQL benötigt ausreichendes Shared Memory:
shmmaxundshmallanpassen
sysctl -w kernel.shmmax=17179869184
sysctl -w kernel.shmall=4194304
sysctl -w kernel.sem="250 32000 100 128"
File Descriptors und Limits
- Datenbankprozesse benötigen viele offene Dateien:
ulimit -n 65535
/etc/security/limits.conf setzenIO-Scheduler und Storage Tuning
- Für NVMe-Disks:
noneodermq-deadlineals Scheduler verwenden
echo none > /sys/block/nvme0n1/queue/scheduler
blockdev --setra 128 /dev/nvme0n1
OS Security Hardening
High Availability erfordert nicht nur Performance, sondern auch Sicherheit, um unbefugten Zugriff zu verhindern.
SELinux/AppArmor
- Richtlinien aktivieren, aber Prozesse nicht blockieren: permissive Mode zu Testzwecken
setenforce 1 # SELinux enforcing
User & Permissions
- Datenbank als dedizierter User betreiben
- Nur notwendige Berechtigungen für Datenbank- und Replikationsverzeichnisse
chown -R postgres:postgres /var/lib/postgresql
chmod 700 /var/lib/postgresql
Replikation und HA-spezifische OS-Anpassungen
Die OS-Umgebung sollte Failover und Replikation ohne Störungen unterstützen.
TCP Keepalive und Timeouts
- Verbindung zwischen Master und Replica stabil halten:
sysctl -w net.ipv4.tcp_keepalive_time=60
sysctl -w net.ipv4.tcp_keepalive_intvl=10
sysctl -w net.ipv4.tcp_keepalive_probes=5
Crash Recovery & Journaling
- Dateisysteme mit
data=orderedoderext4Journaling für konsistente Snapshots - fsync-Parameter in DB konfigurieren, OS muss disk sync zuverlässig unterstützen
Network Namespaces und Firewalls
- Trennung des Datenbankverkehrs vom Managementnetz
- Firewall Regeln minimal halten, nur Replikation und Client-Ports öffnen
iptables -A INPUT -p tcp --dport 5432 -s 10.0.0.0/24 -j ACCEPT
Monitoring und Observability
Ein robustes Setup benötigt OS- und DB-spezifische Monitoring-Metriken.
Beispiele
- CPU, Memory, Disk IO, Network Latency
- Database Replication Lag (Postgres:
pg_stat_replication) - Process Health (
systemd status postgresql,mysqladmin ping)
Automation & Reproducibility
Alle OS-Prerequisites sollten versioniert und automatisiert bereitgestellt werden, z.B. über Ansible oder Terraform, um in Multi-Node HA-Setups konsistente Baselines zu gewährleisten.
Beispiel Ansible Task
- name: Set kernel shared memory
sysctl:
name: kernel.shmmax
value: 17179869184
state: present
Wichtige Empfehlungen
- Testen Sie OS-Tuning und Limits vor Go-Live
- Dokumentieren Sie alle Anpassungen für Compliance und DR-Szenarien
- Regelmäßige Updates und Sicherheitsprüfungen durchführen
- Monitoring und Alerts für Replikation, Ressourcen und Netzwerk aktivieren
Mit einem korrekt vorbereiteten Betriebssystem legen Sie die Grundlage für hochverfügbare Postgres- und MySQL-Installationen. Die richtige Abstimmung von Ressourcen, Limits, Security und Netzwerk sorgt dafür, dass Datenbanken stabil, performant und sicher betrieben werden können – auch in Multi-Node HA-Setups.
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.











