Festplattenauslastung in einer VM oder auf dem Host führt zeitweise zur Kernelpanic in anderen VMs

Jun 8, 2018
24
2
8
35
Grüßt euch!

Wir benutzen begeistern seit einem Jahr Proxmox und seine tollen Features, jedoch haben wir ein Problem, zu welchem ich auch nach längerem Googeln keine Lösung habe.

Älterer Server, 24 treads, 32gb ram.. raidcontroller unterstützt leider keine SSDs.
Wir haben einige VMs installiert auf einem raid 5 mit regulären Festplatten.

Ein HDD Raid5 der von mehreren VMs geteilt wird bremst performancetechnisch natürlich.

Unser Problem ist jedoch, dass eine längere HDD Auslastung in einer VM oder am Host zeitweise zu kernelpanics zB unter Ubuntu führt, da dort (aus sicht des Betriebssystems) die Festplatte stopp/nicht reagiert ect.

Beispielsweise schreibt gerade ein samba share einige Gigabyte, und zum selben Zeitpunkt wird eine andere VM, auf der ein Webserver läuft abgewürgt.

In unserem neueren Server haben wir das Problem mit SSDs umgangen, haben jedoch gelernt, dass dies wohl ein generelles Problem ist.

Haben wir was übersehen, gibt es dazu eine generelle Lösung?

mit freundlichen Grüßen,
Josef Grassler
 
Hallo Josef und Herzlich Willkommen hier im Forum :)

In unserem neueren Server haben wir das Problem mit SSDs umgangen, haben jedoch gelernt, dass dies wohl ein generelles Problem ist.
Glaub ich nicht, wir habe Dutzenden Server am laufen ohne SSD's und die schnurren auch ganz normal. Der Unterschied ist das wir immer nur Raid10 verwenden. Da von Raid5 für Virtualisierung immer abgeraten wird. Ist aber auch Logisch. Wenn dann schon ein Raid50 und das auch nur mit mind. 2GB Cache.
Du hast genug RAM und CPU und steigst mit dem Raid5 vollens auf die Bremse. Das passt nicht zusammen, kann schon sein das das Teil dann mal im Overload ist.
Was sagt den "pveperf" auf dem Raid5?
 
  • Like
Reactions: Josef Grassler
Grüßt euch!

Wir benutzen begeistern seit einem Jahr Proxmox und seine tollen Features, jedoch haben wir ein Problem, zu welchem ich auch nach längerem Googeln keine Lösung habe.

Älterer Server, 24 treads, 32gb ram.. raidcontroller unterstützt leider keine SSDs.
Wir haben einige VMs installiert auf einem raid 5 mit regulären Festplatten.

Ein HDD Raid5 der von mehreren VMs geteilt wird bremst performancetechnisch natürlich.

Unser Problem ist jedoch, dass eine längere HDD Auslastung in einer VM oder am Host zeitweise zu kernelpanics zB unter Ubuntu führt, da dort (aus sicht des Betriebssystems) die Festplatte stopp/nicht reagiert ect.

Beispielsweise schreibt gerade ein samba share einige Gigabyte, und zum selben Zeitpunkt wird eine andere VM, auf der ein Webserver läuft abgewürgt.

In unserem neueren Server haben wir das Problem mit SSDs umgangen, haben jedoch gelernt, dass dies wohl ein generelles Problem ist.

Haben wir was übersehen, gibt es dazu eine generelle Lösung?

mit freundlichen Grüßen,
Josef Grassler
Hi Josef,
Du schreibst nicht um was für ein Raid-Controller es sich handelt, noch, welche Disks (Typ + Anzahl) Du verwendest.

Deiner Beschreibung nach ist dein IO-Subsystem gnadenlos unterdimensioniert, oder/und Dein Raid-Controller taugt nichts.

Wenn Du z.B. drei bis vier Sata 7200er Platten im Raid-5 hast, darfst Du da keine großen IO-Erwartungen dran haben.
Write-Speed bei Raid-Controllern kommt durch den (BBU gesicherten) Cache - ggf. ist Dein Cache a: viel zu klein, b: nicht aktiv wegen fehlender/defekter BBU?
Zum Teil kannst Du etwas Tuning am Raidcontroller machen durch Änderung der Schreib-/Lese-Preferenz - hängt vom Workload ab.

Wie Fireon schon schrieb: deutlich performanter wird's mit Raid 10, und iops geht über die Anzahl der Platten und Cache beim Schreiben.
Evtl. ist auch noch Feintuning durch die Wahl des Schedulers möglich... aber Zauberei ist damit auch nicht drin. Wenn es die Platten nicht hergeben, ist da höchstens eine leichte Minderung drin.

Du könntest noch gucken, ob die Platten in Ordnung sind (smart). Evtl. ist eine fischig, oder hat größere Blöcke remappt - dann muss beim Zugriff auf die Bereiche der Kopf im schlimmsten Fall erstmall an's andere Ende der Platte und von dort die Daten lesen - das kann ziemlich ausbremsen.

Udo
 
Grüße und danke für die Antworten!

Genauere Details habe ich nicht angegeben, da das IO-System beim älteren Server tatsächlich unterdimensioniert ist.
Normale 5400er nas platten, keine BBU ect. es ist ein HP DL 380 G7.
Es war ein günstiger Gebrauchtkauf vor einem Jahr, gedacht zum Experimentieren und Lernen.

Man kann zwar mit einer vm 100mb/s schreiben aber random Zugriffe sind sehr schlecht was bestimmt an der fehlenden BBU liegt ect.
Die Frage hat sich eher gestellt, weil die Performance "egal" wäre, wenn es nie zu Kernelpanics kommen würde.
Dann würde der gesammte Server für Backuplösungen ect. herhalten und ob er nun 1h oder 3h kopiert wäre egal.

Extrainfo, eventuell macht das einen Unterschied:
Wir haben alle Platten Luks verschlüsselt.
Also die virtuelle Platten, die der Raidcontroller aus dem Raid5 erzeugt ist verschlüsselt, nicht die Platten innerhalb der VMs.

Aber ok was ich aus euren Antworten herauslese:
*Von einem Raid5 mit Raidcontroller ohne writechache weil keine BBU sollte sich nichts erwarten, vorallem nicht wenn mehere VMs darauf arbeiten.
*Es gibt warscheinlich keine Konfigurationsspielereien, die helfen die Festplattenauslastung besser zu verteilen.


Hab mich dank eurer Infos etwas zum Thema Raid10 vs Raid5 eingelesen.
Deswegen zu unserem zweiten Setup:


Es ist ein HP ProLilant ML150 G9, 48gb RAM, 20Kerne/40Threads mit Smart HBA H240 Raidcontroller , BBU haben wir eingebaut.

Installiert sind 2x300gb SAS mit der PM installation.
4x5400rpm ST4000LM024-2AN1 4TB Platten im Raid5 Parity 1.
2x einzeln gemountete MX500 2TB SSDs

//Die initialen Anforderungen waren, dass wir einen Netzwerkspeicher mit Zukunftssicherheit brauchen, den Server gabs gebraucht 1000€ unterm Neupreis.
//nach einigen Monaten sind darauf dann Buildmachinen ect gelaufen, die sich gegenseitig, logischerweise, total ausgebremst haben. Deswegen kamen noch zwei SSDs nach um das Festplattenproblem in den Griff zu bekommen.

Neuigkeiten seit dem ersten Post:
Die Anforderungen an den Speicher sind gestiegen, es müssen einige Terrabyte gespeichert werden und schnell Verfügbar sein, und es werden öfters am Tag ~30gb an Daten generiert/kopiert ect.
Auch gibt es den Traum diese 30Gb Performant an mehrere User zu verteilen, Switch für link aggregation gäb es schon.


Ein kurzer Test des jetzigen Raid5 hat ergeben: Kopieren eines 4gb Files: mal 25mb/s mal 50 mb/s.
(Anmerkung quelle und Ziel liegen am selben raid5)
Der Host zeigt per iotop teils burst schreibraten von ~170mb/s an aber der durchschnitt liegt eben weit darunter.
Auch kopieren von SSD auf die Platen ist laut Kollegen unbrauchbar.
20 minuten buildtime auf der SSD und dann 2h kopieren ;) .

Fragen:

Haltet ihr etwas davon, aus den 4x4TB einen raid10 zu machen?
Kann man von viel besserer Performance ausgehen im Vergleich zu Raid5?

Kann es sein, dass der Raid10 in unserem Fall eine beispielsweise gar Verdoppelung der Geschwindigkeit bringt ?
Sollen wir eventuell ein neues Festplattensetup mit SAS Platten in Erwägung ziehen oder gar Proxmox auf einer anderen Platte installieren und die 6-8 Raidcontroller slots für eine andere Raidform mit den 5400rpm platten nutzen ?
Was würdet ihr vorschlagen.

Ordnet man in solchen Anwendungsgebieten gar jeder VM eigene Platten zu?
Sind gar festplatten sowieso schon der Falsche Ansatz bei solchen Schreibmengen?

Entschuldigt die Wall of Text :) ich versuche eine weitere Zwischenlösung zu vermeiden und hoffe auf eure Erfahrungen.

Vielen Dank!
mfg, Josef
 
Grüße und danke für die Antworten!

Genauere Details habe ich nicht angegeben, da das IO-System beim älteren Server tatsächlich unterdimensioniert ist.
Normale 5400er nas platten, keine BBU ect. es ist ein HP DL 380 G7.
Hi,
5400er Platten zum normalen Arbeiten kannste knicken!
Es war ein günstiger Gebrauchtkauf vor einem Jahr, gedacht zum Experimentieren und Lernen.
Da spricht ja nichts gegen
Man kann zwar mit einer vm 100mb/s schreiben aber random Zugriffe sind sehr schlecht was bestimmt an der fehlenden BBU liegt ect.
Nö, da liegste falsch. Die BBU würde beim Schreiben helfen, nicht beim lesen. Wenn Random-Read nicht performt, liegt das an den Platten.
5400er ist auch worst-case - besonders wenn es noch 3,5-Zoll Platten sind!!
Die Frage hat sich eher gestellt, weil die Performance "egal" wäre, wenn es nie zu Kernelpanics kommen würde.
Dann würde der gesammte Server für Backuplösungen ect. herhalten und ob er nun 1h oder 3h kopiert wäre egal.
Naja, kernel panics kenne ich davon nicht, was für ein scheduler hast Du aktiv?
Code:
cat /sys/block/sda/queue/scheduler
Extrainfo, eventuell macht das einen Unterschied:
Wir haben alle Platten Luks verschlüsselt.
Also die virtuelle Platten, die der Raidcontroller aus dem Raid5 erzeugt ist verschlüsselt, nicht die Platten innerhalb der VMs.
hmm, kann schon sein, dass das luks als zwischenschicht eher kontraproduktiv ist in diesem Fall
Aber ok was ich aus euren Antworten herauslese:
*Von einem Raid5 mit Raidcontroller ohne writechache weil keine BBU sollte sich nichts erwarten, vorallem nicht wenn mehere VMs darauf arbeiten.
*Es gibt warscheinlich keine Konfigurationsspielereien, die helfen die Festplattenauslastung besser zu verteilen.


Hab mich dank eurer Infos etwas zum Thema Raid10 vs Raid5 eingelesen.
Deswegen zu unserem zweiten Setup:


Es ist ein HP ProLilant ML150 G9, 48gb RAM, 20Kerne/40Threads mit Smart HBA H240 Raidcontroller , BBU haben wir eingebaut.

Installiert sind 2x300gb SAS mit der PM installation.
4x5400rpm ST4000LM024-2AN1 4TB Platten im Raid5 Parity 1.
2x einzeln gemountete MX500 2TB SSDs


//Die initialen Anforderungen waren, dass wir einen Netzwerkspeicher mit Zukunftssicherheit brauchen, den Server gabs gebraucht 1000€ unterm Neupreis.
//nach einigen Monaten sind darauf dann Buildmachinen ect gelaufen, die sich gegenseitig, logischerweise, total ausgebremst haben. Deswegen kamen noch zwei SSDs nach um das Festplattenproblem in den Griff zu bekommen.

Neuigkeiten seit dem ersten Post:
Die Anforderungen an den Speicher sind gestiegen, es müssen einige Terrabyte gespeichert werden und schnell Verfügbar sein, und es werden öfters am Tag ~30gb an Daten generiert/kopiert ect.
Auch gibt es den Traum diese 30Gb Performant an mehrere User zu verteilen, Switch für link aggregation gäb es schon.


Ein kurzer Test des jetzigen Raid5 hat ergeben: Kopieren eines 4gb Files: mal 25mb/s mal 50 mb/s.
(Anmerkung quelle und Ziel liegen am selben raid5)
Der Host zeigt per iotop teils burst schreibraten von ~170mb/s an aber der durchschnitt liegt eben weit darunter.
Auch kopieren von SSD auf die Platen ist laut Kollegen unbrauchbar.
20 minuten buildtime auf der SSD und dann 2h kopieren ;) .

Fragen:

Haltet ihr etwas davon, aus den 4x4TB einen raid10 zu machen?
Kann man von viel besserer Performance ausgehen im Vergleich zu Raid5?
"viel" wage ich zu bezweifeln, aber deutlich besser schon. Besser wären mindestens 7200er Platten.
Kann es sein, dass der Raid10 in unserem Fall eine beispielsweise gar Verdoppelung der Geschwindigkeit bringt ?
Sollen wir eventuell ein neues Festplattensetup mit SAS Platten in Erwägung ziehen oder gar Proxmox auf einer anderen Platte installieren und die 6-8 Raidcontroller slots für eine andere Raidform mit den 5400rpm platten nutzen ?
Was würdet ihr vorschlagen.
Mein Vorschlag: Finger weg von 5400er Platten, und auch von Consumer-SSDs!
Ordnet man in solchen Anwendungsgebieten gar jeder VM eigene Platten zu?
Sind gar festplatten sowieso schon der Falsche Ansatz bei solchen Schreibmengen?
gerade bei hohen Schreibmengen, wird gerne noch auf Platten gesetzt... allerdings sind hier mal 30GB und da mal 30Gb nicht wirklich hohe Schreibmengen. Nichts desto trotz sind 4 Spindeln dafür viel zu wenig...

Um "lahme" Festplatten zu pimpen bietet sich ZFS an - dann kannst Du mit einer schnellen SSD (besser NVMe) ein write und read-cache für die langsamen Platten anlegen.
Kommt auf euer Workflow an, aber wenn die Daten vom builden noch im Cache sind, geht das Kopieren dann sehr schnell.
Für ZFS brauchst Du RAM - viel hilft viel (und ein path trough fähigen Controller).

Evtl. kannst Du da ja mal eine Testinstallation machen.

Udo
 
Hi,
Nö, da liegste falsch. Die BBU würde beim Schreiben helfen, nicht beim lesen. Wenn Random-Read nicht performt, liegt das an den Platten.
5400er ist auch worst-case - besonders wenn es noch 3,5-Zoll Platten sind!!
Stimmt, beim Lesen hilft wohl kein cache.
Sind 3.5" gegenüber 2.5" stark im Nachteil?
Hab etwas gegoogelt:
2,5" sind besser was random acess und Stromverbauch angeht,
3,5" sind günstiger und haben besseren Durchsatz

Naja, kernel panics kenne ich davon nicht, was für ein scheduler hast Du aktiv?
Code:
cat /sys/block/sda/queue/scheduler

noop [deadline] cfq

Mein Vorschlag: Finger weg von 5400er Platten, und auch von Consumer-SSDs!

gerade bei hohen Schreibmengen, wird gerne noch auf Platten gesetzt... allerdings sind hier mal 30GB und da mal 30Gb nicht wirklich hohe Schreibmengen. Nichts desto trotz sind 4 Spindeln dafür viel zu wenig...

Um "lahme" Festplatten zu pimpen bietet sich ZFS an - dann kannst Du mit einer schnellen SSD (besser NVMe) ein write und read-cache für die langsamen Platten anlegen.
Kommt auf euer Workflow an, aber wenn die Daten vom builden noch im Cache sind, geht das Kopieren dann sehr schnell.
Für ZFS brauchst Du RAM - viel hilft viel (und ein path trough fähigen Controller).

Evtl. kannst Du da ja mal eine Testinstallation machen.

Udo
Danke für die Infos !

Das mit den 5400er Platten haben wir glaub ich gelernt, die gehören in ein NAS ;).

Über ZFS haben wir schon öfters diskutiert und sind am Überlegen.
Macht es Sinn ZFS zu nutzen, wenn man eh einen modernen Raid controller hat?
Wie schätzt ihr persönlich die Vorteile gegenüber und dem konfigurations-Mehraufwand ein?

Unserem ersten Testserver geht es jetzt bald an den Kragen:
(dl380 g7 mit raid5 ohne bbu..)
Von den 11 laufenden VMs (~5 idlen vor sich hin) sind uns gestern 4 VMs in der Kernelpanic gestorben und eine danach direkt wieder beim löschen von 100gb Daten in der VM. Ausgelöst durch ein Backup oder durch einen aide scan in eine vm.

Folgendes Beispielhaftes Upgrade:
Aus servershop24.de
2x Intel Xeon E5-2450L 8-Core 1.80 GHz mit HT
32 oder 48gb ram
Smart Array P420 mit 512 MB FBWC Cache (6G SAS / 6G SATA) - Battery pack haben die gebraucht um 20€
4x 4 TB 6G 7.2K SAS 3.5" Hot Swap Festplatten um 420€ -- oder doch lieber neue kaufen ?
=> für Raid10
Oder doch 6x3TB für Performance vs Stromverbrauch ?
~1300€

Der Server würde die jetzigen ~10 VMs übernehmen und das IO Problem hoffentlich lösen.
Die Extra 3.5" könnten für eine NAS funktion in der Zukunft herhalten.
Was haltet ihr davon?

mfg und danke, Josef
 
Über ZFS haben wir schon öfters diskutiert und sind am Überlegen.
Macht es Sinn ZFS zu nutzen, wenn man eh einen modernen Raid controller hat?
Wie schätzt ihr persönlich die Vorteile gegenüber und dem konfigurations-Mehraufwand ein?
Das kommt drauf an was du bezwecken möchtest. Einfach gesagt, benötigst du die Features die ZFS bietet nicht, macht es auch keinen Sinn. Ich persönlich würde ZFS nie und nimma gegen einen Raidcontroller tauschen. (nicht mehr) Da es viel zu viele Vorteile wie Nachteile hat.
 
Wollte mich kurz zurückmelden.
Raid 5 ohne BBU war, wie ihr richtig erkannt habt, ein Schmarn.
Mit Raid 10 und BBU und writechache, gibts auch unter last kaum noch io-delay und die Probleme sind Vergangenheit.
Vielen Dank!
 
  • Like
Reactions: fireon

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!