Wie kann ich meine kleine SSD als Cache für eine größere Festplatte verwenden?

58

Ich möchte eine (kleine) SSD als Cache für eine große Festplatte verwenden. Mir ist klar, dass es hardwarebasierte Produkte gibt, die dies tun: HighPoint RocketHybrid HBA , Intel SmartResponse und andere. Es gibt nur ein Software-Produkt, das ich finden konnte: ExpressCache von Diskeeper :

ExpressCache kombiniert die besten Eigenschaften von SSDs und HDDs auf intelligente Weise und automatisch, ohne dass der Benutzer sich anstrengen oder die erforderlichen Kenntnisse erwerben muss, damit der Benutzer das Beste aus beiden Welten herausholen kann. dynamische Leistung und skalierbare Kapazität. Da SSDs mit einer Größe von nur 4 GB verwendet werden können, ist dies eine unglaublich erschwingliche Lösung für Hersteller.

ExpressCache besteht aus Komponenten für den Benutzermodus und den Kernelmodus und verwendet die SSD als intelligenten Cache in Verbindung mit einer Festplatte, um die Gesamtsystemleistung zu verbessern und den Start des Windows-PCs, das Starten von Anwendungen und den Datenzugriff erheblich zu beschleunigen.

Dieses Produkt ist jedoch nur OEM !

Ich habe erfolglos nach Alternativen gesucht ... Ich kann das nicht verstehen: Es klingt nach einer großartigen Idee, es wird keine zusätzliche Hardware benötigt und es könnte die Festplattenleistung wirklich steigern, ohne ein Vermögen auszugeben.

Also frage ich, ob jemand eine Software kennt, die dies tut, entweder für Windows oder Linux. Oder wenn Sie denken, dass dies eine schlechte Idee ist, würde ich gerne wissen, warum.

Hinweis: ReadyBoost ist dafür nicht wirklich geeignet. Es basiert auf der Annahme, dass Schreibvorgänge auf Datenträgern sehr teuer sind, nur geringe Auswirkungen auf Systeme mit viel RAM haben und nicht richtig skaliert werden können, wenn Ihre SSD über 100 GB verfügt.

haimg
quelle
PrimoCache (für Windows) kann dies tun; Es ist auf die Verwendung von RAM als Cache spezialisiert, kann jedoch eine SSD-Partition als L2-Cache verwenden. Ich glaube nicht, dass die Größe begrenzt ist, und es kann sogar die Startzeiten beschleunigen (vorausgesetzt, Sie verwenden eine SSD und nicht nur eine RAM).
BrainSlugs83

Antworten:

52

Es gibt verschiedene Möglichkeiten, eine SSD als Cache für Ihre normale Festplatte zu verwenden. Dies ist keine neue Idee und hat bereits mehrere Implementierungen.

In Windows:

Die beste Implementierung stammt von NVelo: Dataplex - Es verfügt über Lese-Caching und optionales Schreib-Caching. Leider ist es wie ExpressCache nur für OEMs verfügbar. Am günstigsten ist es, eine OCZ-SSD zu erwerben, die einen PCIE-Adapter mit einer kleinen SSD enthält und die vorhandene Festplatte mithilfe der Dataplex-Software zwischenspeichert.

Es gibt jedoch auch reine Software-Implementierungen: FancyCache - Es funktioniert so, als würde man erwarten, dass Lese- und Schreibcaches auf der Blockebene ausgeführt werden. Es existiert hauptsächlich als Speicher-Cache, hat jedoch kürzlich Unterstützung für einen SSD-Cache der zweiten Ebene (ein bisschen wie der ZFS L2ARC) erhalten, der beliebig groß sein kann.

Wenn Sie nur IOPS auf Kosten der Schreibbeständigkeit optimieren möchten ( z. B. in Verbindung mit einer USV), ist eine Alternative möglicherweise SuperCache - Hier wird nur RAM verwendet, keine SSD. Aber im Gegensatz zu den anderen wird es bei Commodity-Hardware deutlich über 100.000 IOPS liegen. Sehr nützlich zum Zwischenspeichern von Blockgeräten, die beispielsweise Datenbankindizes enthalten. Im Wesentlichen RAM-Disk-ähnliche Leistung für jedes Volume (vorausgesetzt, das zugrunde liegende Gerät kann mit dem Schreibvolumen mithalten).

Unter Linux sieht es ein bisschen besser aus:

Wie bereits erwähnt, haben Sie Flashcache. Es funktioniert recht gut, aber die Leistung hängt stark von Ihrer Arbeitsbelastung ab. In vielen Fällen mit schlechtem Zugang wird die Leistung nicht so gut sein, wie Sie es vielleicht erwarten. Ich weiß nicht, warum das so ist, aber für die meisten Workloads ist dies eine großartige Option.

Die beste Option (obwohl der Code noch nicht ganz "produktionsbereit" ist) ist bcache (weitere Informationen hier , obwohl einige davon veraltet sind) - Es hat die beste Leistung aller bisher getesteten SSD-Caches und im Gegensatz zu allen anderen Die genannten Optionen unterstützen das Zwischenspeichern mehrerer Blockgeräte in einem einzigen Cache. Es werden auch mehrere Cache-Geräte unterstützt (obwohl ich dies noch nicht persönlich ausprobiert habe, funktioniert es möglicherweise noch nicht), sodass Sie mehrere billigere SSDs zur Maximierung Ihres IOPS verwenden können. Der Code befindet sich in einem Git-Repository: git: //evilpiepirate.org/~kent/linux-bcache.git . Es ist die Rede davon, es in der nächsten Kernel-Version zusammenzuführen, obwohl es noch nicht sicher ist.

Persönlich finde ich, dass die leistungsstärkste Option bcache ist (meine Arbeitslast hängt hauptsächlich von der Datenbank ab, obwohl ich auch meinen Haupt-Laptop in seiner Gesamtheit zwischenspeichere). Nach meiner Erfahrung ist der sequenzielle Schreibdurchsatz der Festplatte häufig der Engpass, da sich der Cache schnell füllt und die Festplatte die zwischengespeicherten Sektoren schreiben muss. Je schneller desto besser. Dies gilt natürlich für eine hohe Schreiblast. Bei einer ausgeglicheneren Lese- / Schreiblast werden die Dinge wahrscheinlich anders sein.

Ich sollte Sie auch warnen, dass Sie bei voller Geschwindigkeit die Schreibbeschränkungen Ihrer SSD ziemlich schnell durchbrechen werden. Ich arbeite derzeit an meiner dritten OCZ Vertex 3. SSDs sind zwar sehr, sehr schnell, aber nicht sehr langlebig. Erwarten Sie daher, sie alle paar Monate zu ersetzen.

Hochnäsig
quelle
2
Vielen Dank für die tolle Antwort! Wie für die „Burnout“ Rate, denke ich jetzt dies der Hauptgrund ist , die meisten dieser Produkte sind OEM-only, zB OCZ Synapse (Cache SSD gebündelt mit Dataplex) 50% overprovisioned ...
haimg
2
@Supercilious Warum nicht einfach eine SLC- oder eMLC-SSD verwenden? Das muss effizienter (und mit Sicherheit zuverlässiger) sein als das häufige Ersetzen eines unzuverlässigen MLC-Blitzes.
Miles Erickson
6
@Supercilious Hier verlierst du mich. Etwas längere Lebensdauer? Die Lebensdauer von SLC- und eMLC-Blitzgeräten ist um Größenordnungen höher und nicht geringfügig höher.
Miles Erickson
1
@Firebug Ich war einige Zeit im Stapel inaktiv, aber die Antwort, die ich gepostet habe, steht. Die neueren SSDs bieten zwar eine viel höhere Schreibfestigkeit, scheitern jedoch recht schnell. In meinen Maschinen (hauptsächlich HP DL360 G9 + einige Lenovo) verbrenne ich Dutzende von SSDs für jedes einzelne mechanische SAS- oder SATA-Laufwerk. 2017 habe ich mit meinen Samsung SM863a SSDs im Durchschnitt 8 Monate gelebt. Das sind die besten, die ich gefunden habe. Dies ist völlig in Ordnung und die Kosten für meine Arbeit wert, aber es lohnt sich zu berücksichtigen, dass eine ständige Schreibaktivität jede SSD innerhalb eines Jahres tötet.
Supercilious
1
@Firebug Ja, all das schwere Heben wird auf meinen Servern ausgeführt (meistens HP DL360 Gen9), und die Arbeitslast beträgt 30% / 70% beim Lesen / Schreiben, und die SSDs werden im Grunde genommen rund um die Uhr mit 300-350 MB / s ausgelastet, was selten vorkommt Spitzenwerte über 500 MB / s. Alle E / A sind zufällig mit einer Blockgröße von 64 KB und gelegentlichen Massen-TRIMs der gesamten SSD. Unter Desktop-Nutzung würde es Jahre dauern, diese SSDs für Rechenzentren zu entfernen, aber SSDs für Endverbraucher haben eine TBW von 180 bis 300 TB, was immer noch recht niedrig ist.
Supercilious
10

Es gibt eine sehr interessante Software für Linux, die von stark ausgelasteten Servern verwendet wird:

https://github.com/facebook/flashcache

Auf einem SATAII, 8 magnetischen Rotationslaufwerken in einem RAID6-Setup bekomme ich ernsthafte Leistungssteigerungen. Zufälliges Lesen mit SATAIII-Flashcache-SSD-Gerät (540 Lesen, 420 Schreiben) sättigt meinen SATAII-Bus auf fast 90-95% - ich habe 280 MB Lese- (in Spitzenzeiten), 270 MB Schreibzugriff (nur bei simulierter Last ... in der Produktion nie erreicht) . Es dauert jetzt etwa ein halbes Jahr. Die Schreibgeschwindigkeit der Festplatte beträgt ... 20-30MB / s - Verwenden Sie freie E / A-Zeit ...

Matej Kovac
quelle
5

Wie groß ist deine SSD?

Der wahrscheinlich beste Effekt, den Sie erzielen, wenn Sie das gesamte Betriebssystem und die gesamte Software auf der SSD installieren und gleichzeitig große Datenmengen auf Ihrer Festplatte speichern.

Wenn Ihre SSD klein ist, kann es nützlich sein, eine Auslagerungsdatei darauf abzulegen. Ich bezweifle, dass Windows einen Großteil Ihrer Dateien in den Cache stellen wird, aber zumindest können Sie den Arbeitsspeicher und den Dateicache der zuletzt verwendeten Anwendungen im RAM speichern, während Sie schnell zu nicht so zuletzt verwendeten Anwendungen wechseln können (was der Fall sein wird) befinden sich in der Auslagerungsdatei, die sich wiederum auf der SSD befindet).

penartur
quelle
1
Meine SSD hat 120 GB. Dies reicht zwar für ein funktionierendes Set oder einen Cache aus , es reicht jedoch definitiv nicht aus, alle meine Systemdateien und Apps zu hosten. Zweitens möchte ich nicht sagen, dass der MSSDK-Beispielcode (selten gelesen) auf der SSD und mein eigener Code, auf den 100 Mal am Tag zugegriffen wird, auf der Festplatte gespeichert werden. Außerdem brauche ich zwei SSDs für RAID - ich vertraue meinen Daten nie nur auf eine Festplatte, sei es im magnetischen oder im festen Zustand ...
haimg
2
Sie können symbolische Links verwenden und den MSSDK / Windows-Installationscache / etc auf Ihre Festplatte verschieben (während symbolische Links von den erforderlichen Pfaden auf Ihrem Systemlaufwerk auf neue Speicherorte verweisen). und speichern Sie Ihren eigenen Code auf der SSD (der Teil davon, der schnellen Direktzugriff benötigt). Und ein Backup wäre wahrscheinlich die bessere Lösung, als sich auf RAID zu verlassen.
penartur
3
+1 für diese Lösung. Die tatsächliche Verwendung einer SSD führt zu einer weitaus besseren Leistung. Es ist unwahrscheinlich, dass eine weitere Cache-Ebene einen signifikanten Nutzen bringt, während die Verwendung einer SSD für Ihre Systempartition dies bewirkt.
Jesse
1
Ich benutze ssd für Systemdateien und hdd für den Home-Ordner. Ich habe bemerkt, dass HDD ein Flaschenhals ist, dann müssen Sie eine Menge Dateien von ihm lesen, zB Feuerfuchs, der zuerst nach dem Booten startet.
Aisbaa
2

FancyFlash hat den Job gemacht. Ich habe einen eigenen Hyper-V R2-Server @home für meine Labore und ein OCZ Revo Hybrid-PCIe-Laufwerk. Leider funktioniert der eingebaute Cache-Treiber nur unter Windows 7. Für Windows Server 2008 R2 ist kein Plan vorhanden. Also habe ich den FancyFlash-Treiber auf meinem Hyper-V-Host installiert und meine SSD auf Revo Hybrid so konfiguriert, dass sie als Cache für die eingebettete 1-TB-Festplatte fungiert (auf der sich meine VHD befindet). TaDa! Funktioniert und beschleunigt meine VMs sehr! :)

Ich hoffe, die endgültige Veröffentlichung wird erschwinglich sein $$$ ...

Spider_s
quelle
3
Haben Sie einen Link zu dieser Software?
Haimg
Ich frage mich, ob er "FancyCache" (jetzt als PrimoCache bekannt) gemeint hat. - Es war in der Beta (und der endgültige Preis ist nicht bekannt), als diese Antwort veröffentlicht wurde (IIRC). Aber es sind zwei Jahre vergangen und er hat 21 Punkte. Ich bezweifle, dass er sich jemals wieder einloggen und es uns mitteilen wird. : - /
BrainSlugs83
2

eBoostr ist eine Anwendung, die große Teile regelmäßig verwendeter Anwendungen zwischenspeichert, um Ihr System zu beschleunigen. Normalerweise sind USB-Laufwerke oder nicht verwendeter RAM vorgesehen, aber es gibt keinen wirklichen Grund, warum Sie stattdessen keine SSD verwenden können.

Es ist für alle Hauptversionen von Windows verfügbar und klingt sehr nach dem, was Sie suchen.

  • eBoostr verfolgt die Verwendung von Anwendungen auf Ihrem System und kann die Daten der am häufigsten verwendeten Anwendungen vorab zwischenspeichern. Dadurch werden Verzögerungen beim Laden verringert und die Leistung optimiert
  • Die benutzerfreundliche Drag-and-Drop-Oberfläche ermöglicht es Ihnen, Anwendungen auf Ihrem System selektiv zu erweitern und Anwendungen zu priorisieren, die von eBoostr erweitert wurden
  • Reduzierte Ladezeiten und weniger Festplattenzugriff verlängern die Akkulaufzeit von Laptops und Netbooks mit eBoostr

Lesen Sie mehr: http://www.eboostr.com/feature

Mokubai
quelle
2

Es ist zwar durchaus möglich, ein gesamtes Betriebssystem und Anwendungen auf eine einzige SSD zu laden, dies sollte jedoch nicht der Fall sein. Mit der Zeit verlangsamen sich SSDs durch kontinuierliches Neuschreiben und sollten "aufgefrischt" werden, um die Sicherung zu beschleunigen. Verwenden Sie besser die schnellste Festplatte, die Sie finden können, z. B. ein SATA 600-Gbit / s-Laufwerk, und erwerben Sie ein Motherboard oder einen anderen Controller, der das SSD-Caching auf Hardwareebene unterstützt. Alle Asus ROG Maximus-Motherboards unterstützen diese integrierte Funktion.

Bis ich dieses neue System baue, habe ich jedoch einen Weg gefunden, von einer SSD zu profitieren. Ich habe einen Speichercache auf der SSD erstellt, und obwohl sich auf meiner Hauptfestplatte einer befindet, scheint Windows stattdessen automatisch die schnellere SSD zu verwenden. Ich habe auch meinen gesamten Internet Explorer-Cache auf die SSD verschoben, wodurch das Surfen und Internetvideo mindestens zwei- oder dreimal schneller wurde.

Ich werde mein neues System um das Asus Maximus VI Hero-Motherboard mit einem Intel i7-Prozessor der 4. Generation im 1150-Sockelformat aufbauen. Scheint eine gute Leistung zu sein, ohne Tausende aufzuwenden, um dorthin zu gelangen. Die Gesamtkosten werden voraussichtlich zwischen 800 und 900 US-Dollar liegen, einschließlich einer neuen Windows-Version.

JDinFL
quelle
2

Man kann die Windows-I / O-Technologien von ReadyDrive und ReadyBoost verwenden . Da diese Technologien aus der Zeit vor der Einführung von SSDs stammen, gibt es nur wenige Informationen darüber, ob und wie gut sie mit SSDs funktionieren.

Hinweise zu ReadyBoost finden Sie unter Wie kann ich meine SSD als ReadyBoost-Cache-Datenträger verwenden? , obwohl dieser andere Thread das Gegenteil behauptet.

ReadyDrive ist eine Funktion von Windows Vista, mit der Computer mit Windows Vista oder höher, die mit einem Hybridlaufwerk oder anderen Flash-Speicher-Caches (z. B. Intel Turbo Memory) ausgestattet sind, schneller gestartet und in kürzerer Zeit aus dem Ruhezustand reaktiviert werden können.

Sie können die Auslagerungsdatei auch auf der SSD ablegen, allerdings mit begrenzter zu erwartender Verbesserung, wenn der Systemspeicher ausreicht.

Die beste Verbesserung ergibt sich, wie von penartur bemerkt, aus der Installation von Windows auf der SSD.

Harrymc
quelle
1
Die Ausfallrate von SSDs ist erheblich niedriger als bei herkömmlichen Festplatten. Möglicherweise war es einmal umgekehrt, aber zum Zeitpunkt dieser Frage und Antwort noch nicht. Vor ein paar Jahren gab es einige Bedenken hinsichtlich der SSD-Löschzyklen, und alle schienen vorübergehend zu vergessen, dass Festplatten außerordentlich zerbrechlich sind und regelmäßig ausfallen, oft ohne Vorwarnung. Die Sorge um Schreibzyklen ist bei der modernen Abnutzungskorrektur so gut wie nie ein Problem, es sei denn, Sie schreiben mehrere Jahre lang wöchentlich Terabytes an Daten.
Thomasrutter
1

Laden Sie ExpressCache herunter

Haben Sie in Google nach ExpresCache gesucht ? Ich kann sehen, dass man es von herunterladen kann

  • SanDisk - Link auf der rechten Seite; Funktioniert nur mit SanDisk SSDs
  • Lenovo - Link unten in der Anleitung; könnte auch hardwareabhängig sein

Insbesondere bei Lenovo können Sie eine x86- oder eine x64-Version herunterladen. Sandisk bietet anscheinend nur ExpressCacheSetup.exe an, und ich weiß nicht, welche Architektur es unterstützt. Vielleicht eins vielleicht beides ...

Robert Koritnik
quelle
Beide erfordern Hardware von den jeweiligen Anbietern. Die Software wird erst korrekt installiert, wenn die Hardwareprüfungen bestanden wurden.
So
0

ExpressCache ist nur ein OEM-Produkt. Ich bin mir ziemlich sicher, dass es interne Kontrollen gibt, die verhindern, dass es auf anderer Hardware als den lizenzierten OEMs verwendet wird.

Es scheint, dass FancyCache derzeit das einzige brauchbare Tool für den allgemeinen Gebrauch / Nicht-Oems ist. Ich kann Dinge falsch verstehen, aber ich würde denken, dass so etwas wie Readyboost auf einer SSD ihre Schreibzyklen ziemlich schnell durchbrennt. Für mich ist die Idee hier, nur einen Laufwerksbuchstaben für die Hauptfestplatte und die SSD zu haben, die am häufigsten verwendeten und im Allgemeinen statischen Dateien auf der SSD abzulegen und die weniger häufig verwendeten und häufig geänderten Dateien auf der Festplatte zu speichern. Dies würde den Leistungsvorteil einer SSD und die langfristige Rentabilität einer HDD bieten und es nicht erforderlich machen, dass der Benutzer versucht, den Speicherplatz auf der SSD mit dem der HDD abzugleichen. Die Notwendigkeit dafür ist zumindest für mich so offensichtlich, dass ich über den Mangel an Lösungen für dieses Bedürfnis verblüfft bin.

Tumbleweed_Biff
quelle
-2

Nicht genannt ist hier VeloSSD. Ich kann dieser Software keinen guten Ruf verleihen, da sie meine Daten zu oft ruiniert hat, aber andere Benutzer haben gemeldet, dass sie einwandfrei funktioniert

vander
quelle
2
Das Hinzufügen eines Produktnamens zu einer Produktliste wird nicht als Antwort angesehen, und diese "leuchtende Empfehlung" ist nicht sehr nützlich. Mit etwas mehr Wiederholungen können Sie dies als Kommentar posten.
Fixer1234