Cache nur für ein Volume?

Nemo56

Benutzer
Mitglied seit
12. Sep 2018
Beiträge
16
Punkte für Reaktionen
0
Punkte
1
Hallo
In meiner DS920+ (mit DSM7) hab ich 3 Volumes.
Für die wollte ich jetzt einen SSD cache einrichten, hab also 2 x 250GB SSDs eingebaut.
Was als erstes schon mal komisch ist, ist dass - obwohl die SSDs korrekt erkannt werden, links im Speichermanager der Menüpunkt dafür fehlt, aber nun gut, zum Erstellen braucht's den eh nicht.

Ich hab also als erstes mal einen Raid 0 Lese Cache für Volume 1 eingerichtet mit knapp 40% der SSD Kapazität - kein Problem.

Jetzt kann ich allerdings keinen Cache mehr für Volume 2 und 3 einrichten. Wenn ich das versuche, kommt die Meldung "Keine SSDs zum Erstellen von Caches verfügbar", obwohl 60% Kapazität noch übrig sind.
Was mache ich falsch?
 

stulpinger

Benutzer
Mitglied seit
27. Mai 2009
Beiträge
505
Punkte für Reaktionen
62
Punkte
54
Du machst nichts falsch, Cache nur für 1 Volume ...
 

Nemo56

Benutzer
Mitglied seit
12. Sep 2018
Beiträge
16
Punkte für Reaktionen
0
Punkte
1
Danke für die schnelle Antwort.
Na da lohnt sich's ja richtig, vor allem mit der Option, nur einen Teil des Platzes reservieren zu können.
Wenn man wenigstens eine SSD für ein Volume und die andere für ein anders verwenden könnte ...

War das immer schon so oder wurde das mit DSM7 so verbockt?
 

stulpinger

Benutzer
Mitglied seit
27. Mai 2009
Beiträge
505
Punkte für Reaktionen
62
Punkte
54
War schon immer so
Es gibt aber einen "Hack" mit dem man zumindest M2 SSDs als Volume verwenden kann, finde es aber momentan hier im Forum nicht
 

Nemo56

Benutzer
Mitglied seit
12. Sep 2018
Beiträge
16
Punkte für Reaktionen
0
Punkte
1
Ich werd mich mal umsehen, danke.
Aber erst mal werd ich sie ganz traditionell als Lese/Schreib-Cache im Raid 1 laufen lassen.
 

himitsu

Benutzer
Mitglied seit
22. Okt 2018
Beiträge
1.737
Punkte für Reaktionen
120
Punkte
83
Wenn man selbst Hand anlegt, dann geht auch mehr,
also mehrere RAIDs auf die NVMe-SSDs und dann kann jedes RAID für je ein Volume genutzt werden,

aber ja, DSM selber bietet sowas leider nicht an.

Theoretisch ginge Schreib-/Lese-Cache auch ohne RAID, aber der Datensicherheit wäre es nicht zuträglich, falls eine SSD mal kaputt geht.

Bei Einigen DS kann man auch SSDs in den normalen SATA-Einschüben für Cache verwenden ... k.A. ob man dort auch mehrere SSDs für mehrere Volumes nutzen kann.
 

mb01

Benutzer
Mitglied seit
13. Mrz 2016
Beiträge
452
Punkte für Reaktionen
36
Punkte
28
Die Option, eine Cachegröße kleiner als die eigentliche Größe der SSD einzurichten, hat schon seinen Sinn ... Stichwort Over-Provisioning & Erhöhung der Lebensdauer der SSD / Performance. Der für den SSD-Cache reservierte Bereich läuft ja, anders als bei normalen Volumen oder bei anderen Anwendungen, stetig zu und bleibt dann bei 100% Platzbedarf, d.h. da hat dann TRIM keine Chance einzugreifen.
 

himitsu

Benutzer
Mitglied seit
22. Okt 2018
Beiträge
1.737
Punkte für Reaktionen
120
Punkte
83
Eine kleinere Cachepartition auf die SSD zu machen und den Rest nicht zu nutzen,
verringert eher die Lebensdauer der SSD, da mehr geschrieben wird, weil weniger Speicher nutzbar ist,
also Daten eher aus dem Cache rausfliegen und neu drin gespeichert werden.

Wird wirklich nur das genutzt, was verfügbar ist (Cache größer als die Daten, die man darin speichert), dann verbessert es nichts, gegenüber der Cachepartition über die gesamte SSD, weil das Gespeicherte ja gleich bleibt.
Auch als Schreibcache fällt das Problem hierbei mehr auf, bzw. es wird verständlicher: Wenn man 500 TB durch einen 500 GB-Cache schreibt, dann wird in der SSD genauso viel geschrieben, als wenn man die 500 TB durch einen 1000 GB-Cache schreibt ... die Datenmenge bleibt gleich.


Der Vorteil einer kleineren Cache-Partition besteht nur darin, dass man dann noch weitere Cache-Partition(en) für andere Volume auf die selbe SSD bekommen könnte.
 

mb01

Benutzer
Mitglied seit
13. Mrz 2016
Beiträge
452
Punkte für Reaktionen
36
Punkte
28
Nö, würde ich nicht sagen ;) ...

Der freie Platz hilft dem Controller in der SSD beim Wear-Leveling, sprich dem Verteilen der Schreib-Zyklen auf möglichst viele Zellen. So ein SSD-Controller ist ja recht intelligent und "eigenständig", sprich er schiebt in Idle-Phasen gerne selbst seine Daten herum. Nur ein Teil der Cache-Daten sind ja meist wirklich "hot", sprich werden ständig geändert. Die "kalten" Daten liegen einfach nur rum und belegen wertvollen Platz, welcher nicht direkt für Wear-Leveling genutzt werden kann, sondern nur mit erhöhtem Aufwand. Wenn die SSD nun voll ist, bleibt dem SSD-Controller nur die "vom Hersteller vorgesehenen" Cache- bzw. Overprovisioning-Bereiche, um sich zu optimieren bzw. die Zyklen zu verteilen, sprich das Problem "Write Amplification" wird ein Thema (IIRC). Für eine perfekte Lebensdauer einer SSD müssen ja im Prinzip alle Zellen gleich viele Zyklen aufweisen. Lässt man den Controller zusätzlichen ungenutzten Platz, dann kann er den für diese Optimierung/Verteilung nutzen, was meist auch der Performance zugute kommt.

Um diese Vorteile von Overprovisioning (negativ) zu kompensieren, müsste die Schreiblast auf dem tatsächlich genutzten Platz der SSD ja signifikant größer sein. Ich hab mal irgendwo white paper zu Synologys SSD Cache gesehen, aber die gingen IIRC auch nicht auf das Detail ein. Von daher weiß vermutlich niemand genau, wie der Cache genau arbeitet bzw. wie die Größe dort reinspielt. Aber spielen wir das mal durch, Annahme dürfte ja sein, dass der Cache nicht weiß, ob er nun eine 250 GB SSD voll ausfüllt oder nur die Hälfte einer 500er SSD benutzt. Also wird er seinen Algorithmus so optimieren, dass er möglichst viel "hot data" unterbekommt und den Rest seines Platzes wird er dann mit eher "lauwarmen" Cachedaten füllen. Und viele Daten, z.B. sequentielle Transfers landen ja gar nicht erst im Schreib-Cache. Final kommt es daher wohl darauf an, wie viel "hot data" das jeweilige System produziert. Ich würde mal behaupten, dass in den meisten Anwendungsfällen dieser im Vergleich zur Cache-Größe nur gering ist. Erst wenn die "heißen Daten" größer als die (reduzierte) Cache-Größe sind, sollte eine erhöhte Schreiblast auf dem genutzten SSD-Bereich auftreten, wobei es dann vermutlich auf die Auslegung des SSD-Controllers ankommt, inwiefern er das verteilen kann. Gut, in so einem Dauerlastfall ist eine Consumer-SSD vielleicht überfordert bzw. auch die falsch Wahl.

Naja, ich bin der Meinung, dass es für die SSD-Lebensdauer wichtiger ist, dass der Controller die sich häufig ändernden Daten bzw. deren Schreibzyklen möglichst gut auf die insgesamt vorhandenen Zellen verteilen kann. Der eher kalte (und dadurch ggf. größenmäßig verringerte) Bereich des Caches, wo sich die Daten nur wenig ändern, dürfte im Vergleich zu einer Vollbelegung nur wenig zusätzliche Schreibzyklen produzieren. Denn eine volle SSD produziert aufgrund der Wear-Leveling-Mechanismen ja auch zusätzliche (versteckte) Schreibzyklen.

Und Annahme bei allem, was auch der Fallstrick meiner Argumentation sein könnte: ... ein halbwegs intelligentes SSD-Cache-Management vorausgesetzt, von daher :LOL:.
 
Zuletzt bearbeitet von einem Moderator:

himitsu

Benutzer
Mitglied seit
22. Okt 2018
Beiträge
1.737
Punkte für Reaktionen
120
Punkte
83
Verschieben die SSDs nicht inzwischen auch ab und an Daten?
Um das Scheiben noch besser verteilen zu können?
 

himitsu

Benutzer
Mitglied seit
22. Okt 2018
Beiträge
1.737
Punkte für Reaktionen
120
Punkte
83
Hab selbst aktuell nur ein Volume und das mit RW-Cache.


Und wenn du nur eine SSD anhakst?

Oder eine SSD einbauen, den ersten ReadCache erstellen,
denn die zweite SSD rein und versuchen den anderen ReadCache zu erstellen?
 

Nemo56

Benutzer
Mitglied seit
12. Sep 2018
Beiträge
16
Punkte für Reaktionen
0
Punkte
1
An die zweite Methode hab ich schon gedacht, aber noch nicht ausprobiert.
Nur eine anhaken ging jedenfalls nicht.
 
Zuletzt bearbeitet von einem Moderator:
NAS-Central - Ihr Partner für NAS Lösungen