[SOLVED] ZFS trim und Geschwindigkeit

Oct 29, 2017
109
4
23
52
Hi, hat geholfen, aber konnte trotzdem nicht booten.
Jetzt fährt er zwar hoch, aber ich bekomme die Meldung:

INACCESSIBLE BOOT DEVICE
Blue Screen und neustart. Ich habe versucht die Startreparatur durchzuführen, aber die kann das nicht ....
Meine Treiber im Gerätemanager:

QEMU HARDDISK ATA DEVIDE
QEMU QUEMU HARDDISK SCSI DISK DEVICE
Red Hat VirtlO SCSI Disk Device

Die neue SCSI Platte die ich eingebunden habe, läuft...


Mit denen müsste das doch eigentlich gehen, oder?

Das Bild hat wohl nicht geklappt...
 
Last edited:
Oct 29, 2017
109
4
23
52
Also, zusammenfassendes zum Thema trimm:
Wenn ich das Laufwerk der virtuellen Maschine auf scsi stelle und in den Platteneigenschaften "discard" aktiviere, dann trimmt das Betribsystem des Gastes und in zfs wird der speicher dann wieder frei und auch so angezeigt:
Code:
# vor dem Löschen einer Datei:
root@ts-cs01:~# zfs list -r speicher01
NAME                                      USED  AVAIL  REFER 
speicher01/vm-801-disk-1   33.0G   763G  3.97G  -

# nach dem Löschen einer Datei:
root@ts-cs01:~# zfs list -r speicher01
NAME                                      USED  AVAIL  REFER
speicher01/vm-801-disk-1   33.0G   767G   652K
Kann man davon ausgehen, dass das auch hardwareseitig auf den ssd so ist? Oder werden die nur als gelöscht markiert und müssen vor dem Beschreiben der Speicherzellen immer noch gelöscht werden? Dann wurde zwar der Speicher nicht voll laufen, aber die Schreibgeschwindigkeit sinken, oder?
Aber gute ssds wurden dann ja dennoch selber trimmen ... (Hoffe ich doch...) ;-)
 
  • Like
Reactions: stenzelprox

HBO

Active Member
Dec 15, 2014
257
14
38
Germany
ZFS macht kein (noch) Trim, das Trim findet nur auf der virtuellen HDD statt. Bringt halt vor allem beim Overprovisioning seine Vorteile.
 
Oct 29, 2017
109
4
23
52
Hi, ich noch mal ... ;-)
Ich habe jetzt die Server SSDs mit allem Schnick schnack ...
Wenn ich nun teste kommen ganz passable Ergebnisse raus.
Was wurdet Ihr am Gast als Cache für die Laufwerke (Mirrow aus zwei Enterprice SSDs) einstellen?
write back unsave ?
Weil die Enterprice SSDs ja den Cache sichern? Das wurde die besten Ergebnisse auf dem Gast liefern.
Bei guten Backups müsste man keine Log SSD haben, oder?
Da wurden mir die pcie slotts ausgehen ...

Sorry, aber die Menge an Infos erschlägt einen ja fast...
Man könnte sich glatt verlaufen ...
 

LnxBil

Famous Member
Feb 21, 2015
4,675
474
103
Germany
Das wurde die besten Ergebnisse auf dem Gast liefern.
Willst du Performance oder Konsistenz? Die Standard-Einstellungen bei PVE spiegeln eigentlich immer den aktuell besten Wert dar, daher würde ich nie an den Werte rumdrehen wollen - es sei denn "man weiß was man tut" .. in dem Fall frägt man aber nicht im Forum nach :p

Caches hast du sehr viele involviert: Disk-Cache, Controller-Cache, ARC, dann innerhalb der VM dann nochmal die Einstellung dort, dann den Cache (ggf. mehrere) vom Betriebssystem. An jeder Schraube kann man drehen um das System schneller und somit unsichere zu machen. Mathematisch betrachtet kann immer was passieren und der Murphy hat da auch noch seine Finger im Spiel. Aus dem Bauch heraus würde ich nichts einsetzen wollen, bei dem schon "unsafe" dabei steht - denn wenn es dir nur um performance geht würde ich gleich alles im RAM machen.

Ob ein SLOG device bei SSDs noch viel bringt weiß ich mangels Erfahrung nicht. Fraglich ist auch, ob du viel synchronen Traffic hast, der dann entsprechend im SLOG landen würde. SLOG ist klasse bei Festplatten, aber wenn die SSDs eh schon super schnell sind müsste das SLOG ja überproportional nochmal schneller sein um dann einen Vorteil ausspielen zu können.
 
Oct 29, 2017
109
4
23
52
Hallo LNXBIL,
vielen Dank für die echt aufschlussreiche Antwort!
Grundsätzlich hast Du natürlich recht...
... aber wenn man was verstehen will ist das nachfragen im Forum wohl nicht verkehrt! ;-)

Eine Frage habe ich aber dennoch:
Was stelle ich im Gast bezüglich Cache ein. Bei Windows kann ich z.B einstellen, es soll überhaupt nicht gecached werden, oder es soll nicht gewartet werden bis der Cache auf die Platte geschrieben ist. Wenn ich jetzt ssds habe und der Cache dort durch Kondensator gesichert ist, dann wäre es doch OK Wenn Windows den Plattenchache aktiviert hat, aber nicht auf das leeren des selbigen wartet. Oder sind bei verwendung von VMs in Proxmox die Einstellungen diesbezüglich im Gast wurscht?

LG
Thomas


Aber wie dem auch sei, Deine Antwort hat mir sehr geholfen das etwas besser zu verstehen! Danke!
 

LnxBil

Famous Member
Feb 21, 2015
4,675
474
103
Germany
Was stelle ich im Gast bezüglich Cache ein. Bei Windows kann ich z.B einstellen, es soll überhaupt nicht gecached werden, oder es soll nicht gewartet werden bis der Cache auf die Platte geschrieben ist. Wenn ich jetzt ssds habe und der Cache dort durch Kondensator gesichert ist, dann wäre es doch OK Wenn Windows den Plattenchache aktiviert hat, aber nicht auf das leeren des selbigen wartet. Oder sind bei verwendung von VMs in Proxmox die Einstellungen diesbezüglich im Gast wurscht?
Gibt eine klare Antwort: Kommt darauf an :-D

Dinge wie z.B. eine Datenbank schreiben normalerweise immer synchron auf die Platte und wollen genau wissen, dass der Schreibvorgang als erfolgreich quittiert wird. Das sollte normalerweise alle Write-Back-Caches umgehen, denn nur wenn es wirklich "von unten" als geschrieben markiert wird kann eine Datenbank konsistent wegschreiben. Der (Betriebssystem-)Cache wird somit durch das Betriebssystem umgangen. Was der Harddisk-Cache an der Stelle macht weiß oft keiner, da das ja eine Einheit ist, die man da käuft. SSDs machen hier mittlerweile sehr viel besser als die Festplatten, aber auch hier ist nicht alles Gold.

Wichtig ist, dass die Einstellungen im virtuellen Windows nicht mit den Einstellungen im physikalischen Client zu tun haben, denn der Sinn der Virtualisierung ist ja, dass man genau das abstrahiert und eben keinen direkten Zugriff hat. Somit ist der Festplattencache, den du im virtualisierten Windows siehst nur der eben der virtuelle Festplattencache, deiner virtualisierten Festplatte. Die Einstellungen in Qemu bzw. PVE sind dann diese Einstellung der Platte, wie man auch daran erkennt, dass man diese pro Disk manuell und individuell einstellen kann. Das hat aber natürlich dann auch wieder nichts mit den realen Caches der SSDs zu tun. Ist alles recht komplex. Für bestimmte Anwendungsfälle geht man meistens hin und trennt die Daten wie z.B. Platten für eine Datenbank getrennt von den Platten des Betriebssystems und dann kann man dort andere Caching-Verfahren wählen um alles weiter zu optimieren. Wenn man das jetzt ganz, ganz hart betrachtet kann jeglicher Datenverlust - auch ein einzelnes Bit - dazu führen, dass nachher nichts mehr geht.

Fraglich ist auch die Risikoabschätzung hierbei: Wenn der Server recht redundant ausgelegt ist, d.h. Festplatten und Netzteile (+USV), dann hat man sehr wenig Ausfallwahrscheinlichkeit des gesamten Systems, sodass es zu diesem Cache-Problem äußerst selten kommt. Hardwarefehler gibt es aber immer und Dinge wie Kosmische Strahlung und Bitflips im RAM und auf der Festplatte ist oft wahrscheinlicher (zumindest in meiner Beobachtung). RAM hat man mittels ECC eigentlich gut abgedeckt und Festplatten mit ZFS. Wenn der Rechner mal abschmiert ist man eh im Crash-Recovery-Prozess und er ist auch nicht immer anständig, denn oft sind Daten inkonsistent, weil die meisten Anwendung schlicht keinen Wert auf solche Dinge legen wie z.B. Datenbankarbeiten/OLTP in einzelne Transaktionen zu packen um logisch alles versuchen konsistenz zu halten. (Nicht, dass es nur so Dinge gibt, aber viele Software arbeitet nunmal so). Wenn man einfach so das Kabel zieht und viele gleichzeitigen Transaktionen auf einer Datenbank somit unterbrochen werden hat man halt keine Ahnung wie es aktuell aussieht. Solche Szenarien versucht man natürlich immer in Software "von innen" zu lösen, d.h. eine Datenbankclusterlösung ala Real-Application-Cluster von Oracle, bei dem die Transaktion im Ausfall zurückgerollt und auf den anderen Server erneut gestartet wird. Somit umgeht man diese Problematik komplett.

Um jetzt aber nochmal auf das Thema zurückzukommen: In den meisten Fällen sind die Standardeinstellungen von PVE ein gutes Maß. Erklärung inkl. Risikoabschätzung findest du hier:

https://pve.proxmox.com/wiki/Performance_Tweaks
 
Oct 29, 2017
109
4
23
52
Die Antwort mag nicht ganz klar sein, aber dennoch aussagekräftig! Danke!!!!
Ich habe mir mal den Link angeschaut. Da finde ich zu Cache das worüber ich schon mal gestolpert bin:
balances performance and safety (better writes) bei "writethrough"
balances performance and safety (better reads) "bei none"
Das ist das worüber ich mir den Kopf zerbrochen habe... Bei Datenbanken also eher "none", gell! ;-)
Aber ich glaube jetzt kann ich mir die passenden Einstellungen zusammenfinden... Danke!
Ich markiere das mal als gelöst!
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE 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 your own in 60 seconds.

Buy now!