Für den Administrator, Performance

Storage-Konfigurationen für Datenbanken

Welche Anforderungen der Betrieb von Datenbanken an die Massenspeicher-Hardware stellt und welche Konfigurationen sinnvoll beziehungsweise zu vermeiden sind, ist oft noch nicht Allgemeinwissen. Gerade bei der Anschaffung neuer Server beim Endanwender sind immer noch Fehlkonfigurationen anzutreffen.


Während die maximale Cachegröße der Datenbank bei den aktuellen Hauptspeicherbestückungen meist kein Thema mehr ist, wird doch gelegentlich übersehen, das die Daten zunächst vom Datenträger in den Cache gelesen werden müssen. Auch jede Datenänderung muss natürlich auch wieder auf den Datenträger gespeichert werden. Ein unzureichend schnelles Storagesystem kann dabei als kräftige Bremse wirken.

Die Basis stellen heute in jedem Fall ein oder mehrere SSD-Datenträger dar, die Verwendung von Festplatten für die Datenbank ist unter dem Performanceaspekt nicht mehr zeitgemäß. Natürlich können Betriebssystem oder andere Userdaten weiterhin auf HDs gespeichert werden – meistens ist eine Mischkonfiguration mit HDs und SSDs sinnvoll. Die Speichergröße einer einzelnen SSD ist mit typischerweise 60 bis 480 GB für die .ca1 absolut ausreichend, ein RAID-1 mit zwei SSDs der neuesten Generation (beispielsweise Intel 520 oder Corsair Force GT) kann für rund 250 Euro realisiert werden und ist bei Random-Operationen selbst Festplatten mit 15.000/min um den Faktor 20 überlegen.

Ein wichtiger Vorteil der SSD liegt darin, das auch ein performanter Betrieb ohne zusätzlichen RAID-Controller möglich ist, was für HDs eben nicht gilt. Das Fehlen eines Schreibcaches bei den Onboard-Controllern reduziert die Schreibleistung eines hieran angeschlossenen HD-RAIDs auf das Niveau von Einzelplatten. Eine schlechte Write-Performance behindert aber auch parallele Lesezugriffe, wodurch insbesondere während Update-Events der Datenbank starke Verzögerungen beim Lesen entstehen können. Bei SSDs ist die Schreibleistung so hoch, das solche Effekte kaum spürbar sind.

Für hochperformante Systeme sollte trotzdem ein separater Controller in Form einer PCIe-Karte oder innerhalb einer SAN-Unit verwendet werden. Auch eine Konfiguration der SSDs als RAID-10 mit 4, 6 oder 8 Einheiten kann den Datendurchsatz weiter erhöhen. Auch beim Einsatz der SSDs sollte auf die RAID-Level 5, 6, 50, 60 etc. verzichtet werden, da die Schreibleistung dabei um mehr als die Hälfte sinkt.

Die maximale I/O-Leistung kann mit einer SSD in Form einer PCIe-Karte erreicht werden, da dabei der Umweg über SATA/SAS entfällt. Allerdings ist dies dann auch die teuerste Variante.

2 Kommentare

2 Kommentare “Storage-Konfigurationen für Datenbanken”

  1. Wir hatten in den letzten 3 Jahren keine SSD-Ausfälle, aber es gibt natürlich Ausfälle (dies ist auch bei HDs nicht anders). Probleme mit der Firmware gab es bei der Intel 320-Serie, allerdings sind auch HDs nicht immer von Firmware-Fehlern sicher. Waren denn die Ausfälle auf ein Fimware-Problem oder auf defekte Chips zurückzuführen?

    Grundsätzlich sollten SSDs im Server redundant sein, es heißt ja eben auch nicht, das alles auf SSDs liegen muss. Zur Absicherung kann man auch die Datenbankreplikation für ein HD-Zielverzeichnis aktivieren, das wirkt sich so gut wie überhaupt nicht auf die Performance aus.

  2. Ich persönlich bin auch ein SSD-Fan. Unser Hardware-Partner hat uns aber von SSDs im Servereinsatz abgeraten. Er hätte die Erfahrung gemacht, daß es öfters aufgrund fehlerhafter Firmaware etc. zu Datenverlusten kommt. Er hätte innerhalb eines halben Jahres drei SSDs verschliessen. Welche Erfahrungen haben Sie im Langzeiteinsatz? Macht es Sinn die Daten über Hotstandby auf eine HDD zu spiegeln? Was macht das für einen Performanceverlust aus?

Kommentar abgeben