Wie verwende ich eine SSD zum Zwischenspeichern, damit meine Festplatten heruntergefahren werden können?

9

Ich habe einen Dateiserver mit mehreren Festplatten, die zusammen in einem BTRFS-Pool ausgeführt werden, und möchte eine SSD zum Zwischenspeichern hinzufügen. Ich bin nicht hauptsächlich nach dem Beschleunigen der Dinge, sondern möchte die regulären kleinen Zugriffe abfangen, um die Festplatten die meiste Zeit herunterfahren zu können, wenn sie nicht stark beansprucht werden (wenn sie nicht rund um die Uhr laufen, wird Energie gespart und sollte das machen Festplatten halten länger).

Soweit ich weiß, sind derzeit zwei SSD-Caching-Techniken unter Linux implementiert: dm-cache und bcache. Der dm-Cache soll immer noch effizienter sein, aber die Entwicklung läuft für beide und ich muss mich nicht auf die absolute maximale Effizienz einstellen.

Beim Lesen der Dokumentation von bcache stieß ich auf folgende Optionen:

writeback_delay : Wenn schmutzige Daten in den Cache geschrieben werden und zuvor keine enthielten, wird einige Sekunden gewartet, bevor das Zurückschreiben eingeleitet wird. Der Standardwert ist 30.

writeback_percent : Wenn ungleich Null, versucht bcache, diesen Prozentsatz des Caches schmutzig zu halten, indem das Zurückschreiben im Hintergrund gedrosselt und ein PD-Controller verwendet wird, um die Rate reibungslos anzupassen.

writeback_running : Wenn diese Option deaktiviert ist, werden schmutzige Daten überhaupt nicht zurückgeschrieben. Schmutzige Daten werden weiterhin zum Cache hinzugefügt, bis sie größtenteils voll sind. nur zum Benchmarking gedacht. Der Standardwert ist on.

Das Festlegen eines ausreichend großen Werts für writeback_delayscheint den Job für mich zu erledigen: Schreiben Sie nur einmal pro Stunde zurück oder (ich gehe davon aus, dass dies passieren würde), wenn der Cache voll ist.

Ist dies ein vernünftiges Setup, und habe ich noch etwas in Betracht gezogen, um die Festplatten erfolgreich herunterzufahren? Ich kann auch einen ganz anderen Weg gehen, wenn er meine Anforderungen erfüllt.

Es scheint, dass @gorkypl nach einer anderen Lösung für ein ähnliches Problem sucht , jedoch andere Anforderungen und Umgebungen hat und auch noch keine Antwort erhalten hat.

Jens Erat
quelle
Verwenden bcacheSie bitte.
Mikeserv

Antworten:

1

Ich denke, Ihr Ansatz ist zu kompliziert.

Lesen Sie Caching : Hier gibt es nichts zu tun. Wenn Sie genug RAM haben, geschieht dies automatisch unter Linux.

Schreib-Caching Grundsätzlich ist dies das, was Sie wollen. Aber wenn die Schreibvorgänge am Ende auf die Festplatte gehen, führt dies ebenfalls zu einem Aufwecken.

Sie können also betroffene Dateisysteme stattdessen direkt auf ram-disk / dev / shm oder ssd ablegen.

Energiesparen : Ich glaube nicht, dass häufiges Herunterfahren / Hochfahren Strom spart. Im Gegenteil, die Festplatten könnten früher absterben, so dass ein zusätzlicher Energieverbrauch für den Produktionsprozess entsteht. Auch das Hochdrehen ist sehr energieintensiv.

Nils
quelle