Flashcache, per coloro che non l'hanno mai visto prima, è un metodo per estendere la block-cache di Linux con un'unità SSD. È più economico che eseguire un server con mezza TB di RAM solo per la memorizzazione nella cache.
Funzionerà anche questo?
Dovrebbe. La block-cache di Linux funziona memorizzando nella cache i blocchi accessibili , non i file . Finché non stai dando alle macchine KVM l'accesso diretto ai dispositivi a blocchi (non lo sei), la Block Block Cache di Linux sarà in gioco. Tuttavia, se si sta dando macchine KVM accesso diretto del blocco-device la risposta non è meno chiaro.
Se stai usando dischi virtuali supportati da file, funzionerà sicuramente.
Se stai usando dischi virtuali con supporto LV, non lo so.
Quanto mi aspetto di aumentare le prestazioni?
Questo è qualcosa a cui non possiamo rispondere. Dipende da una varietà di cose. In astratto, otterrai le migliori prestazioni per ridimensionare il tuo SSD in modo che sia più grande del set attivo di blocchi. Se si ottiene una cache perfetta, le prestazioni saranno simili all'esecuzione dell'intero sistema su SSD. Cosa che effettivamente farai.
Quanto deve essere grande l'SSD?
Scoprire le dimensioni esatte di cui hai bisogno è qualcosa con cui non possiamo fare a meno. Più è meglio, ovviamente, ma trovare il rapporto esatto tra cache-SSD e archiviazione primaria non è una questione semplice.
A complicare ciò sono le scritture impostate per svuotare immediatamente, come alcune operazioni del file system e alcune configurazioni del database. Tali scritture verranno memorizzate nella cache solo brevemente e le loro prestazioni non saranno influenzate in alcun modo dalla presenza o dall'assenza di flashcache.
Cosa succede se l'SSD muore?
La stessa cosa accade quando dici a Linux di lasciare la cache, ma con una svolta. Con drop-cache, tutte le scritture non svuotate che si trovano nella block-cache verranno scaricate sul disco. Cosa succede quando l'SSD scompare dipende dalla modalità di memorizzazione nella cache :
Writethrough : tutte le scritture vengono scritte nella cache e nella memoria primaria in parallelo, quindi le possibilità di una perdita improvvisa dell'SSD che causa errori sulle macchine virtuali sono molto ridotte.
Writearound : tutte le scritture vengono scritte nella memoria principale e memorizzate nella cache solo quando vengono lette. Nessuna possibilità di errori nelle macchine virtuali.
Writeback : tutte le scritture vanno prima nella cache e vengono scritte nella memoria principale in background. La maggior parte delle probabilità di causare errori nelle macchine virtuali in caso di errore dell'SSD e non utilizzerei questa modalità in produzione.
Quanto più veloce sarebbe il writeback rispetto a writethrough e writearound?
Dipende da quanto stai scrivendo. Se le tue scritture saturano periodicamente lo spazio di archiviazione principale, l'aumento delle prestazioni potrebbe essere piuttosto significativo. Se per lo più sei letto con qualche scrittura, probabilmente non noterai miglioramenti.
Inoltre, il writeback è una cattiva politica per quello che stai facendo, quindi non usarlo.