Come posso usare il mio piccolo SSD come cache per un disco rigido più grande?


58

Vorrei utilizzare un disco (piccolo) SSD come cache per un disco rigido di grandi dimensioni. Mi rendo conto che ci sono prodotti basati su hardware che fanno questo: HighPoint RocketHybrid HBA , Intel SmartResponse e altri. Esiste un solo prodotto software che sono riuscito a trovare: ExpressCache di Diskeeper :

ExpressCache combina in modo intelligente e automatico i migliori attributi di SSD e HDD senza alcuno sforzo o conoscenza preliminare da parte dell'utente, in modo che gli utenti ottengano il meglio da entrambi i mondi; prestazioni dinamiche e capacità scalabile. Poiché è possibile utilizzare SSD di soli 4 GB, offre una soluzione incredibilmente conveniente per i produttori.

Composto dalla modalità Utente e dai componenti della modalità Kernel, ExpressCache utilizza l'SSD come cache intelligente, abbinata a un HDD, per migliorare le prestazioni complessive del sistema e accelerare notevolmente l'avvio del PC Windows, l'avvio delle applicazioni e la velocità di accesso ai dati.

Tuttavia, questo prodotto è solo OEM !

Ho cercato alternative, senza successo ... Non riesco a capirlo: sembra un'ottima idea, non è necessario alcun hardware aggiuntivo e potrebbe davvero migliorare le prestazioni del disco senza spendere una fortuna.

Quindi, sto chiedendo se qualcuno conosce qualche software che lo fa, sia per Windows o Linux. O se pensi che questa sia una cattiva idea, mi piacerebbe sapere perché.

Nota: ReadyBoost non è adatto a questo scopo. È basato sul presupposto che le scritture su disco sono molto costose, ha un effetto molto scarso su sistemi con molta RAM e non si adatta correttamente se il tuo SSD è 100 GB +.


PrimoCache (per Windows) può farlo; è specializzato nell'uso della RAM come cache, ma può usare una partizione SSD come cache L2 - non credo sia di dimensioni limitate e dice che può accelerare anche i tempi di avvio (supponendo che tu stia usando un SSD e non solo RAM).
BrainSlugs83,

Risposte:


52

Esistono diversi modi per utilizzare un SSD come cache per il normale disco rigido. Questa non è una nuova idea e ha già diverse implementazioni.

In Windows:

La migliore implementazione è di NVelo: Dataplex - Ha la cache di lettura e cache di scrittura opzionale. Sfortunatamente, come ExpressCache è disponibile solo per gli OEM. Il modo più economico per ottenerlo è acquistare un SSD OCZ che comprime un adattatore PCIE con un piccolo SSD e utilizza il software dataplex per memorizzare nella cache il disco rigido esistente.

Esistono tuttavia anche pure implementazioni di software: FancyCache - Funziona come ci si potrebbe aspettare eseguendo la cache di lettura e scrittura a livello di blocco. Esiste principalmente come cache di memoria, ma recentemente ha ottenuto il supporto per una cache SSD di secondo livello (un po 'come ZFS L2ARC), che può essere arbitrariamente grande.

Se stai solo cercando di massimizzare gli IOPS a scapito della durata in scrittura (perfettamente bene insieme ad un UPS per esempio), un'alternativa potrebbe essere qualcosa di simile a: SuperCache - Questo utilizzerà solo RAM, nessun SSD. Ma a differenza degli altri, supererà felicemente 100.000 IOPS sull'hardware delle materie prime. Molto utile, ad esempio, per memorizzare nella cache il dispositivo a blocchi contenente indici di database. Essenzialmente fornendo prestazioni come RAM-Disk per qualsiasi volume di dimensioni (supponendo che il dispositivo sottostante possa tenere il passo con il volume di scrittura).

In Linux, le cose sono un po 'più belle:

Come menzionato in un precedente poster, hai Flashcache : funziona piuttosto bene, ma le sue prestazioni variano notevolmente con il tuo carico di lavoro. In molti casi con località di accesso scadente non funzionerà come ci si potrebbe aspettare. Non sono sicuro del perché, ma per la maggior parte dei carichi di lavoro questa è un'ottima opzione.

L'opzione migliore (anche se il codice non è ancora del tutto "pronto per la produzione") è bcache (maggiori informazioni qui , anche se alcune sono obsolete) - Offre le migliori prestazioni di qualsiasi cache SSD che abbia mai provato, e diversamente da tutte le altre le opzioni menzionate supportano la memorizzazione nella cache di più dispositivi a blocchi su un'unica cache. Supporta anche (anche se non l'ho provato personalmente, potrebbe non funzionare ancora) più dispositivi cache, quindi puoi utilizzare più SSD più economici per massimizzare il tuo IOPS. Il codice è in un repository git: git: //evilpiepirate.org/~kent/linux-bcache.git . Si parla di fonderlo nella prossima versione del kernel, anche se non è ancora stato deciso con certezza.

Personalmente trovo che l'opzione con le migliori prestazioni sia bcache (il mio carico di lavoro è principalmente legato al database, anche se memorizzo nella cache il mio laptop principale nella sua interezza). Nella mia esperienza, il throughput in scrittura sequenziale dell'HDD è spesso il collo di bottiglia, poiché la cache si riempie rapidamente e l'HDD deve scrivere i settori memorizzati nella cache, quindi più veloce è, meglio è. Questo è ovviamente per un carico di lavoro pesante in scrittura, in un carico di lavoro in lettura-scrittura più bilanciato le cose saranno probabilmente diverse.

Dovrei anche avvertirti che, a tutta velocità, brucerai i limiti di scrittura del tuo SSD abbastanza rapidamente. Sono attualmente al mio terzo OCZ Vertex 3. Gli SSD, anche se molto veloci, semplicemente non sono molto resistenti, quindi aspettatevi di sostituirli ogni pochi mesi.


2
Grazie per l'ottima risposta! Per quanto riguarda il tasso di "burnout", penso che questo sia il motivo principale per cui molti di questi prodotti sono solo OEM, ad esempio OCZ Synapse (Cache SSD in bundle con Dataplex) è sottoposto a overprovisioning del 50% ...
ha

2
@Supercilious Perché non usare solo un SSD SLC o eMLC? Deve essere più efficiente (e sicuramente più affidabile) della frequente sostituzione di flash MLC inaffidabili.
Miles Erickson

6
@Supercilious Questo è dove mi stai perdendo. Longevità leggermente maggiore? La longevità di SLC ed eMLC flash è di ordini di grandezza maggiori, non leggermente maggiori.
Miles Erickson,

1
@Firebug Sono stato inattivo in pila per un po 'di tempo, ma la risposta che ho pubblicato è valida. Mentre i nuovi SSD offrono una resistenza di scrittura molto più elevata, continuano a fallire abbastanza rapidamente. Nelle mie macchine (principalmente HP DL360 G9 + alcuni Lenovo) masterizzo dozzine di SSD per ogni singolo disco meccanico SAS o SATA. Nel 2017 ho calcolato una durata media di 8 mesi dai miei SSD Samsung SM863a, che sono i migliori che ho trovato. Questo è completamente bene e vale totalmente il costo per il mio carico di lavoro, ma vale la pena ricordare e la costante attività di scrittura ucciderà qualsiasi SSD entro un anno.
Supercilious

1
@Firebug Sì, tutto il sollevamento pesante viene eseguito sui miei server (principalmente HP DL360 Gen9) e il carico di lavoro è 30% / 70% in lettura / scrittura e gli SSD vengono praticamente martellati 24/7 a circa 300-350 MB / s con rare picchi superiori a 500 MB / s. Tutti gli I / O sono casuali con una dimensione di blocco di 64 KB e TRIM di massa occasionali dell'intero SSD. Sotto l'uso del desktop ci vorrebbero anni per uccidere questi SSD datacenter, ma gli SSD consumer hanno 180-300 TB TBW che è ancora abbastanza basso IMO.
Supercilious

10

Esiste un software molto interessante per Linux, utilizzato da server molto impegnati:

https://github.com/facebook/flashcache

Su un SATAII, 8 unità di rotazione magnetiche in una configurazione RAID6 ottengo un notevole aumento delle prestazioni. La lettura casuale con il dispositivo SSD flashcache SATAIII (540 letti, 420 scritti) satura il mio bus SATAII di quasi il 90-95% - Ho 280 MB di lettura (nelle ore di punta), 270 MB di scrittura (solo con carico simulato ... mai raggiunto in produzione) . Dura circa un anno e mezzo ormai. Le scritture del disco fisso sono ... 20-30MB / s - usa tempo di I / O di riserva ...


5

Quanto è grande il tuo SSD?

Probabilmente l'effetto migliore che otterrai ottenendo installando l'intero sistema operativo e il software su SSD, memorizzando allo stesso tempo grandi quantità di dati sul tuo HDD.

Se il tuo SSD è piccolo, potrebbe essere utile inserire un file di paging. Dubito che Windows metterà molti dei tuoi file nella cache, ma, almeno, ti permetterà di avere la memoria delle applicazioni usate di recente e la cache dei file nella RAM, consentendo al contempo il passaggio rapido ad applicazioni usate non così recenti (che risiede nel file di paging che è, a sua volta, su SSD).


1
Il mio SSD è di 120 GB. Anche se questo è sufficiente per un set o cache funzionante , non è sicuramente sufficiente per ospitare tutti i miei file di sistema + app. In secondo luogo, non voglio mantenere, ad esempio, il codice di esempio MSSDK (leggere raramente) su SSD e il mio codice a cui si accede 100 volte al giorno, su disco. Inoltre, avrei bisogno di due SSD per RAID - non mi fido mai dei miei dati su un solo disco, sia esso magnetico o solido ...
ha

2
È possibile utilizzare i collegamenti simbolici e spostare MSSDK / cache di installazione di Windows / etc sul disco rigido (pur avendo collegamenti simbolici che puntano a nuove posizioni dai percorsi richiesti sull'unità di sistema); e inserisci il tuo codice su SSD (la parte di esso che necessita di un accesso casuale veloce). E l'utilizzo di un backup sarebbe probabilmente la soluzione migliore che fare affidamento su RAID.
penartur,

3
+1 per questa soluzione. In realtà l'utilizzo di un SSD produrrà prestazioni molto migliori. È improbabile che ci sia un vantaggio significativo da un altro livello di cache, mentre l'utilizzo di un SSD per la partizione di sistema lo farà.
Jesse,

1
Sto usando ssd per i file di sistema e hdd per la cartella home. Ho notato che l'hdd è un collo di bottiglia, quindi è necessario leggere molti file da esso, perché Fire Fox inizia dopo l'avvio.
aisbaa,

2

FancyFlash ha fatto il lavoro. Ho il mio server Hyper-V R2 @home per i miei laboratori e ho ottenuto un'unità PCIe ibrida OCZ Revo. Sfortunatamente, il driver cache incorporato funziona solo con Windows 7. Nessun piano per Windows Server 2008 R2. Quindi ho installato il driver FancyFlash sul mio host Hyper-V e ho configurato il mio SSD su Revo Hybrid in modo che fungesse da cache per il disco incorporato da 1 tb (dove sono i miei dischi rigidi virtuali). Tada! Funziona e accelera molto le mie macchine virtuali! :)

Spero che la versione finale sarà conveniente $$$ ...


3
Hai un link per questo software?
haimg

Mi chiedo se intendesse "FancyCache" (ora noto come PrimoCache)? - Era in beta (e il prezzo finale sconosciuto) all'epoca in cui questa risposta è stata pubblicata (IIRC). Ma sono passati due anni e ha un punteggio di 21 punti, quindi dubito che accederà mai di nuovo e ci dirà. : - /
BrainSlugs83,

2

eBoostr è un'applicazione che memorizza nella cache gran parte delle applicazioni utilizzate regolarmente per accelerare il sistema. In genere è destinato a utilizzare unità USB o RAM inutilizzata, ma non esiste un vero motivo per cui non è possibile utilizzare un SSD.

È disponibile per tutte le principali versioni di Windows e suona molto come quello che stai cercando.

  • eBoostr tiene traccia dell'uso delle applicazioni sul tuo sistema e può pre-memorizzare nella cache i dati di quelli più frequentemente utilizzati, questo riduce i ritardi di carico e ottimizza le prestazioni
  • L'interfaccia drag-and-drop facile da usare ti consente di migliorare selettivamente le applicazioni sul tuo sistema e di dare la priorità alle applicazioni migliorate da eBoostr
  • Tempi di caricamento ridotti e meno accesso al disco rigido aiutano a prolungare la durata della batteria di laptop e netbook utilizzando eBoostr

Ulteriori informazioni: http://www.eboostr.com/feature


2

Sebbene sia certamente possibile caricare un intero sistema operativo e applicazioni su un singolo SSD, probabilmente non dovresti. Nel tempo, gli SSD rallentano con la riscrittura continua e dovrebbero essere "aggiornati" per accelerare il backup. Stai meglio usando il disco rigido più veloce che puoi trovare, come un'unità SATA da 600 Gbps e ottieni una scheda madre o un altro controller che supporta la cache SSD a livello hardware. Le schede madri Asus ROG Maximus supportano tutte questa funzione integrata.

Tuttavia, fino a quando non creo questo nuovo sistema, ho trovato il modo di ottenere alcuni vantaggi da un SSD. Ho creato una cache di memoria sull'SSD e anche se ce n'è una sul mio disco rigido principale, Windows sembra invece utilizzare automaticamente l'SSD più veloce. Ho anche spostato tutta la mia cache di Internet Explorer sull'unità SSD, che ha accelerato la navigazione e i video su Internet almeno 2 o 3 volte.

Costruirò il mio nuovo sistema attorno alla scheda madre Asus Maximus VI Hero con un processore Intel i7 di quarta generazione nel formato socket 1150. Sembra essere un buon livello di prestazioni senza spendere migliaia per arrivarci. Il costo totale dovrebbe essere compreso tra $ 800-900 e includere una nuova versione di Windows.


2

È possibile utilizzare le tecnologie I / O di Windows di ReadyDrive e ReadyBoost . Poiché queste tecnologie risalgono a prima dell'introduzione degli SSD, ci sono poche informazioni sul loro funzionamento con SSD o su quanto bene.

Per ReadyBoost, vedere alcuni suggerimenti su Come posso utilizzare il mio SSD come disco cache di ReadyBoost? , sebbene quest'altro thread rivendichi il contrario.

ReadyDrive è una funzionalità di Windows Vista che consente ai computer Windows Vista o successivi dotati di un'unità ibrida o di altre cache di memoria Flash (come Intel Turbo Memory) di avviarsi più rapidamente e riprendere dal letargo in meno tempo.

Si può anche mettere il file di paging sull'SSD, anche se con un miglioramento atteso limitato se la memoria del sistema è sufficiente.

Il miglior miglioramento arriverà, come osservato da penartur, dall'installazione di Windows sull'SSD.


1
Il tasso di errore dell'SSD è significativamente inferiore rispetto ai dischi rigidi tradizionali: una volta potrebbe essere stato il contrario, ma non al momento di questa domanda e risposta. Qualche anno fa c'era una grande preoccupazione per i cicli di cancellazione della scrittura SSD e tutti sembravano dimenticare temporaneamente che gli HDD sono straordinariamente fragili e si guastano regolarmente, spesso senza preavviso. La preoccupazione per i cicli di scrittura non è quasi mai un problema con il moderno livellamento dell'usura, a meno che non si scrivano terabyte di dati ogni settimana per diversi anni.
thomasrutter,

1

Scarica ExpressCache

Hai cercato su Google ExpresCache? Vedo che è possibile scaricarlo da

  • SanDisk : collegamento a destra; Funziona solo con SSD SanDisk
  • Lenovo : link sotto nella guida; potrebbe anche avere una dipendenza hardware

Soprattutto da Lenovo, è possibile scaricare una versione x86 o x64. Sandisk sembra offrire solo ExpressCacheSetup.exe e non so quale architettura supporta. Forse uno forse entrambi ...


Entrambi richiedono hardware dai rispettivi fornitori. Il software non verrà installato correttamente a meno che non superi i controlli hardware.
Sun

0

ExpressCache è solo un prodotto OEM. Sono ragionevolmente certo che abbia controlli interni che ne impediscono l'utilizzo su hardware diverso dagli OEM con licenza.

Sembra che in questo momento, FancyCache sia l'unico strumento praticabile per uso generale / non OEM. Potrei fraintendere le cose, ma penserei che qualcosa come readyboost su un SSD brucerebbe i suoi cicli di scrittura abbastanza velocemente. Per me, l'idea qui è di avere solo una lettera di unità per coprire l'HDD principale e l'SSD, mettendo i file più comunemente accessibili e generalmente statici sull'SSD e archiviando i file meno comunemente usati e spesso modificati sul disco rigido. Ciò darebbe il vantaggio in termini di prestazioni di un SSD e la fattibilità a lungo termine di un HDD e non richiederebbe all'utente di dover cercare di bilanciare lo spazio sull'SSD con quello dell'HDD. La necessità di questo è così ovvia, almeno per me, che sono sbalordito dalla mancanza di soluzioni per questa necessità.


-2

Non chiamato qui è VeloSSD. Non posso dare una buona reputazione a questo software, dal momento che ha rovinato i miei dati spesso, ma altri utenti hanno riferito che funziona bene


2
L'aggiunta di un nome di prodotto a un elenco di prodotti non è considerata una risposta e questa "raccomandazione luminosa" non è molto utile. Con un po 'più di rappresentante, puoi pubblicare questo come commento.
fixer1234,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.