mitternachtssurfer
Goto Top

Verteilung von Partitionen auf HDD und SSD

Hallo liebe Administratoren Kollegen,

für einen anstehendes SQL-Server-Upgrade plane ich für zwei RAID 1 Verbunde - eines aus 2 SSDs und eines aus 2 HDDs.

Mein ursprüngliches Konzept lag darin auf die SSDs das Serverbetriebssystem, das SQL Serverprogramm (MSSQL) und die SQL Datenbankdateien zu packen und auf die HDDs Backups und andere nicht so performante Daten.
Nun habe ich mich gefragt, welche Daten müssen bei einem SQL Server eigentlich performant sein?
  • Backups und andere nicht so performante Daten sind klar auf HHD
  • Das Betriebssystem wird (logischerweise) nur selten gestartet. Ob dies bei einem Neustart von HDD 5 Minuten dauert oder von SSD 4 Minuten dauert ist dabei nicht so relevant. Die meiste Zeit beim Start des Systems geht für die ganzen Post-OS-Vorgänge drauf (Memtest, Raid-Test, ...) und bei denen macht es keinen Unterschied ob das OS auf SSDs ist oder nicht.
  • Das SQL-Serverprogramm (MSSQL) ist ein Dienst, welcher beim Systemstart, meines Verständnisses nach inklusive aller Abhängigkeiten, eh in den RAM wandert und die ganze Zeit aktiv ist. (P.S.: RAM 96GB)
  • Nur von und in die Datenbankdateien wird häufig gelesen und geschrieben. Bei MSSQL sind das mdf und ldf Dateien, bei MySQL sind das im Vergleich ibd Dateien.

Hat jemand Erfahrung mit solchen Konstellationen? Was KANN eigentlich auf die HDDs und was MUSS auf die SSDs?

Ich hoffe ich kann hier ein wenig zu einer Diskussion anregen und ein bisschen Erfahrung austauschen.


Mit freundlichsten Grüßen

Jan

Content-Key: 366959

Url: https://administrator.de/contentid/366959

Printed on: April 20, 2024 at 09:04 o'clock

Member: aqui
aqui Mar 05, 2018 updated at 14:53:37 (UTC)
Goto Top
Backups und andere nicht so performante Daten sind klar auf HHD
Backups gehören aber nie auf Platten im gleichen Server sondern auf ein abgesetztes NAS oder ein anderes externes Medium !
Member: Penny.Cilin
Penny.Cilin Mar 05, 2018 at 15:05:56 (UTC)
Goto Top
Hallo,

um welche Datenbanken handelt es sich?
Welche bzw. wieviele IOs?
Wie groß ist die Datenbank, oder die Datenbanken?
Failover, daran gedacht? - So wie es aussieht, ist es ein einzelner Server. Was ist, wenn dieser ausfällt, dann fällt das ganze Datenbanksystem aus.

Das sind nur mal ein paar der relevanten Informationen, welche Du Dir stellen solltest.

Überlege Dir bitte nochmal Dein Szenario. Ich denke da können andere Administratoren weitere Denkanstöße geben.

Existiert ein Lasten- / Pflichtenheft? - Wenn NEIN, warum nicht???

Gruss Penny
Member: mitternachtssurfer
mitternachtssurfer Mar 05, 2018 at 16:17:43 (UTC)
Goto Top
Hallo aqui,

die Backups und Protokolle werden stündlich zusätzlich auf ein NAS geschrieben. Das Zwischenspeichern auf der internen Festplatte war die ursprüngliche Lösung des ersten Administrations im Unternehmen. Warum meine Kollegen und ich das seither noch nie geändert haben, weiß ich auch nicht. face-smile Wäre mal ein mittelfristiges Projekt.

Danke für den Hinweis!
Member: mitternachtssurfer
mitternachtssurfer Mar 05, 2018 at 17:01:33 (UTC)
Goto Top
Hallo Penny,

es handelt sich um einen MSSQL Server 2012. Es ist eine Andress- und Kontaktverwaltungsdatenbank mit über 300.000 Einträgen. Diese wird von ca. 75 Personen parallel verwendet.
Es gibt deutlich mehr Lese- als Schreibzugriffe. Über die genau Höhe der IOs habe ich aber keinen Überblick. Ich lasse gerade mal ein Protokoll schreiben. Mir ist aber bekannt, dass es zu Spitzen kommt. Die "durchschnittliche" Auslastung wird nicht so hoch sein, aber wenn meine Kollegen Recherchen laufen lassen und davon noch mehrere parallel, zwingt das die Performance schon arg in die Knie. Deswegen gibt es das Upgrade (CPU, RAM, SSDs). Aktuell ist es nur ein "kleines und kostengünstiges" Upgrade. Der Plan ist einen komplett neuen Server innerhalb der kommenden 2 Jahre anzuschaffen. Leider muss davon noch die Geschäftsführung überzeugt werden.
Im Zuge dieser Planung wird der alte (jetzige) Server als Failover dienen. Beide Server dann jeweils als VM-Host mit dem eigentlichen Datenbankserver als Virtualisierung, gespiegelt auf den alten Server auch als VM.

Mir kamen die ganzen Gedanken mit den HDDs und SSDs, weil ich gelesen habe, dass bei Virtualisierungen das Host-System auch auf HDDs laufen kann und die einzelnen VMs auf SSDs und dies wohl keine Performanceeinbußen bringt. Diesen Gedanken habe ich noch weiter runter gebrochen und frage mich, wie das bei diesem Hardware-SQL-Server ist!?

Es existiert keine Lasten- / Pflichtenheft. Betriebsintern wird so etwas für solche Projekte nicht gepflegt / keine Zeit dafür bereitgestellt.

Ich wollte hiermit auch keine perfekte Lösung für mich und mein Unternehmen. Es ging mir mehr um einen Denkanstoß und allgemeine Erfahrungen damit.

Aber vielen Dank für dern Input. face-smile

LG
Member: lcer00
lcer00 Mar 06, 2018 at 06:30:05 (UTC)
Goto Top
Hallo

Warum nimmst Du nicht 2x(raid 1 ssd) - ein ssd-raid für das OS und eins für SQL. Wenn sonnst nix drauf ist, sollte das auch mit ssd preislich im Rahmen bleiben.

Grüße

lcer
Member: mitternachtssurfer
mitternachtssurfer Mar 06, 2018 at 07:18:43 (UTC)
Goto Top
Hallo Icer,

mein ursprünglicher Gedanke war es auch das OS und die SQLs auf die SSD zu legen. Meine Frage ist, ob das überhaupt einen Performance-Unterschied macht, wenn das OS nicht auf der SSD, sondern auf der HDD liegt?

Grüße
Member: lcer00
lcer00 Mar 06, 2018 updated at 08:19:29 (UTC)
Goto Top
Hallo,
mein ursprünglicher Gedanke war es auch das OS und die SQLs auf die SSD zu legen. Meine Frage ist, ob das überhaupt einen Performance-Unterschied macht, wenn das OS nicht auf der SSD, sondern auf der HDD liegt?

Sicher macht es das

zwischen: (alles auf einer HDD) und (OS auf SSD-Raid-1 und SQL auf anderem SSD-Raid-1) liegen Performanceunterschiede und dazwischen ist alles möglich.

Du willst nicht wissen, ob es einen Performanceunterschied macht, Du willst wissen, ob die Performancedifferenz den Mehraufwand rechtfertigt. Das kann man so aus der Ferne nicht sagen. Dazu kommt noch der Controller sowie die Stripe-Einstellungen der Platten, und natürlich die Frage wie viele und welche SQL-Operationen pro Zeit erfolgen werden und ob lese oder Schreibzugriff.

Kurz um - eine Gleichung mit zu vielen Variablen, als dass man hier eine Lösung finden könnte. Theroretisch müsstest Du den Real-Life-Betrieb messen und dann auf einem Testsystemsystem mit Konfiguration Deiner Wahl nochmal messen.

Ich würde, wenn es Plattenplatz/Kostenmäßig im Rahmen bleibt, mit nur SSDs arbeiten. Und man könne noch überlegen, ob ein Raid 10 für das SQL eine Option wäre - also 6(1+1 und 2x(1+1) ) Platten face-smile .

Grüße

lcer