Quali sono i vantaggi / gli svantaggi delle diverse opzioni di cache da SSD a HDD (dm-cache, flashcashe ...)?


23

Sembra che ci siano diverse tecnologie disponibili per utilizzare un SSD per fungere da cache per HHD. Quelli che conosco:

  • dm-cache (di Redhat - nel kernel 3.9, quindi dovrebbe essere in Ubuntu 13.10)
  • Flashcache (sviluppato e utilizzato da Facebook)
  • Bcache (sviluppato e utilizzato da Google)
  • EnhanceIO (di STEC; basato su Flashcache)

Ci sono differenze degne di nota nelle varie implementazioni? Quale è il migliore per un normale uso di PC desktop - per aumentare le prestazioni dei normali programmi come browser Web o giochi?


Per aumentare le prestazioni ho scoperto che l'installazione di Ubuntu a 64 bit, ha funzionato alla grande, la mia macchina è diventata ancora più veloce di prima! Inoltre, riguardo alla cache dovresti usare la cache compressa ram con questo pacchetto zram-configche avrà la priorità sull'uso dello swap. E, archivia il gioco sull'SDD e testalo. Alcuni giochi non funzioneranno molto più velocemente, altri funzioneranno alla grande! Preferisco non usare SDD come cache a causa del suo limite di scritture, ma gli SDD stanno diventando più economici, quindi non è più così preoccupante :)
Aquarius Power

Risposte:


14

Davvero non so da dove cominciare, dato che tutto ciò è un'informazione eccellente. Inizierò con alcune informazioni su SSD, quindi una descrizione di tutti i diversi metodi di memorizzazione nella cache e passerò da lì. Spero che tu

Vantaggi e svantaggi

  • Prezzo: gli SSD sono in qualche modo costosi
  • Capacità massima e comune: gli SSD ad alta capacità sono molto rari e costosi
  • Velocità: è qui che gli SSD ottengono il vantaggio
  • Durabilità: un SSD non ha parti in movimento

Meglio avere un sistema ibrido, avere il meglio di entrambi i mondi (capacità, affidabilità, velocità, ecc.)

Il kernel Linux 3.9 (reso disponibile il 28 aprile 2013) introduce la cache SSD. Il Device Mapper del kernel ora include un target cache chiamato dm-cache che consente di utilizzare SSD o altri dispositivi di archiviazione come cache per un disco rigido. In sostanza, accelera la scrittura e la lettura dei dati poiché consente all'SSD più veloce di memorizzare prima i dati nella cache e quindi trasferirli sul disco rigido più lento.

Fonte: Iwn

Flashcache è un modulo originariamente scritto e rilasciato da Facebook (Mohan Srinivasan, Paul Saab e Vadim Tkachenko) nell'aprile del 2010. È un modulo del kernel che consente la memorizzazione nella cache di Writethrough di un'unità su un'altra unità. Questo viene spesso utilizzato per la memorizzazione nella cache di un'unità rotazionale su un'unità a stato solido più piccola per motivi di prestazioni. Questo ti dà la velocità di un SSD e le dimensioni di un'unità di rotazione standard per i file memorizzati di recente nella cache. FlashCache è una cache di blocco writeback per scopi generici per Linux.

Fonte: ArchLinux

Bcache è una cache del livello di blocco del kernel Linux. Consente a una o più unità disco veloci come unità a stato solido (SSD) basate su flash di fungere da cache per una o più unità disco rigido più lente.

I dischi rigidi sono economici e grandi, gli SSD sono veloci ma piccoli e costosi. Non sarebbe bello se tu potessi ottenere in modo trasparente i vantaggi di entrambi? Con Bcache puoi avere la tua torta e mangiarla anche tu.

Le patch bcache per il kernel Linux consentono di utilizzare SSD per memorizzare nella cache altri dispositivi a blocchi. È analogo a L2Arc per ZFS, ma Bcache esegue anche la cache di writeback (oltre a scrivere tramite la cache), ed è indipendente dal filesystem. È progettato per essere acceso con il minimo sforzo e per funzionare bene senza alcuna configurazione. Per impostazione predefinita, non memorizza nella cache I / O sequenziali, solo le letture e le scritture casuali in cui eccellono gli SSD. È pensato per essere adatto a desktop, server, array di archiviazione di fascia alta e forse anche incorporato.

L'obiettivo di progettazione è quello di essere veloci quanto l'SSD e il dispositivo memorizzato nella cache (a seconda dell'hit della cache rispetto a quello perso e delle scritture writewrrough vs. writeback) entro il margine di errore. Non è ancora del tutto lì, principalmente per letture sequenziali. Ma i test hanno dimostrato che è enfaticamente possibile, e anche in alcuni casi fare di meglio, principalmente scritture casuali.

Fonte: Bcache

Bcache ha un grosso svantaggio e che toglie memoria al sistema per implementare la cache.

EnhanceIO è una soluzione che funziona al di sotto del livello dell'applicazione, consentendo alle applicazioni di utilizzare i vantaggi in termini di prestazioni degli SSD senza grandi cambiamenti nell'infrastruttura IT. Una cache SSD può offrire la maggior parte dei vantaggi del passaggio da HDD a SSD a una frazione del costo di un sistema tutto SSD. Un sistema con cache funziona in genere con meno energia rispetto a un sistema basato su HDD con prestazioni simili e ciò crea un vantaggio laterale riducendo i requisiti di raffreddamento.

Una cache SSD può anche prolungare la vita utile di un sistema esistente migliorando le prestazioni per soddisfare le crescenti richieste attraverso un investimento incrementale, piuttosto che attraverso un aggiornamento / sostituzione all'ingrosso del sistema esistente.

La memorizzazione nella cache consente inoltre un accesso più rapido ai dati senza l'ulteriore sovraccarico dell'amministrazione dello storage di acquisire e installare nuovi shelf di dischi, configurando nuovi LUN e migrando i dati verso i nuovi LUN. La memorizzazione nella cache è quasi trasparente e richiede tempi di inattività minimi. EnhanceIO si basa su Flashcache.

Fonte: Stec-Inc

bcache è il più inutile di tutti perché richiede una partizione di dati (formattata) appositamente preparata. Ciò rende difficile (se possibile) collegare la cache alla partizione esistente con i dati in quanto si richiederebbe una capacità del 200% ed eseguire lunghi spostamenti di dati per attivare / disattivare la memorizzazione nella cache.

Il vantaggio di EnhanceIO è che non necessita affatto di un dispositivo intermedio e può essere collegato al volo a qualsiasi dispositivo a blocchi anche quando il dispositivo è già montato. Un'altra cosa fantastica è che puoi collegare la cache EnhanceIO non solo alla partizione ma al dispositivo a blocchi partizionato per memorizzare in cache tutte le sue partizioni contemporaneamente. Proprio come i moduli enchanceio di flashcache sono creati con DKMS e possono essere usati con kernel più vecchi.

Fonte: Debian

Vantaggi della cache DM

Le cache DM utilizzano un'architettura semplificata, che le rende adattabili e facili da personalizzare. Gli utenti possono regolare la dimensione del blocco e la capacità della cache in base alla quantità di dati che dovrà gestire o al valore dei dati. Se una particolare applicazione deve archiviare una grande quantità di dati in sequenza, gli utenti possono configurare la cache a tale scopo. Se un utente desidera registrare informazioni in un database contemporaneamente alla cache, ciò non interferirà con le operazioni della cache.

Svantaggi della cache DM

Uno svantaggio dell'utilizzo di una cache DM è che il sistema operativo Linux ha uno spazio limitato per l'archiviazione dei metadati. Se la cache è di grandi dimensioni e include molti piccoli blocchi, ciò aggiunge molti metadati per le informazioni memorizzate. Per risolvere questo problema, l'utente deve aumentare la dimensione del blocco. Un altro possibile problema è che, dopo un arresto anomalo del server, i metadati della cache potrebbero non corrispondere più al contenuto della cache, sebbene alla fine sia possibile ripristinare la configurazione corretta.

Fonte: complementi di Fraser Sherman

Quindi dalle informazioni di cui sopra è chiaro che EnhanceIO è la strada da percorrere, ma a mio avviso poiché è basato su Flashcache, andrei con la cache flash. Ma proverò sicuramente entrambi prima di prendere una decisione finale.


EnhanceIO: un driver basato sul software di cache SSD EhanceIO derivato dal progetto Flashcache open source di Facebook, utile per utilizzare SSD come dispositivi cache per i tradizionali HDD. webupd8.org/2013/05/get-better-linux-desktop-performance.html
Qasim

Grazie per la risposta! Speriamo che EnhanceIO arrivi nel kernel 3.10 e sia disponibile nella prossima versione di Ubuntu.
Uli,

1
Bella scrittura, ma devo evidenziare che la cache DM è totalmente sicura, se si verifica un arresto anomalo, ovviamente non si stanno perdendo dati. In pratica, la cache potrebbe essere meno efficiente per qualche tempo fino a quando i metadati non vengono rigenerati.
lzap,

3
Il commento sull'uso della memoria di bcache non è corretto, così come quello (citato) sulla conversione.
Gabriel,

@Gabriel sentiti libero di modificare, ma includi la fonte. :)
Mitch

1

Feedback: Ho installato i pacchetti deb standard di flashcache su Ubuntu circa un anno fa in modalità write-back su cache / home (2TB) su una porzione da 50 GB su un SSD. Si è comportato meravigliosamente senza problemi. Ho avuto alcuni "blocchi" relativi all'X (cioè non imputabili a flashcache) e ho usato "Ctrl-Alt-PrtScr REISUB" alcune volte per recuperare senza problemi e senza problemi di corruzione. Ho usato flashcache perché a) c'erano dei debs disponibili eb) non richiedeva un backup e un ripristino di / home.

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.