Existem várias maneiras de usar um SSD como cache para o seu disco rígido normal. Esta não é uma idéia nova e já possui várias implementações.
No Windows:
A melhor implementação é do NVelo: Dataplex - Possui cache de leitura e cache de gravação opcional. Infelizmente, como o ExpressCache, ele está disponível apenas para OEMs. A maneira mais barata de obtê-lo é comprar um SSD da OCZ que empacote um adaptador PCIE com um pequeno SSD e use o software dataplex para armazenar em cache o disco rígido existente.
No entanto, também existem implementações puras de software: FancyCache - funciona como você pode esperar executando um cache de leitura e gravação na camada de blocos. Ele existe principalmente como um cache de memória, mas recentemente ganhou suporte para um cache SSD de segunda camada (um pouco como o ZFS L2ARC), que pode ser arbitrariamente grande.
Se você deseja maximizar o IOPS com o custo da durabilidade da gravação (perfeitamente bem em conjunto com um no-break, por exemplo), uma alternativa pode ser algo como: SuperCache - isso usará apenas RAM, sem SSD. Mas, diferentemente dos outros, felizmente excederá 100.000 IOPS em hardware comum. Muito útil para armazenar em cache o dispositivo de bloco que contém índices de banco de dados, por exemplo. Essencialmente, oferecendo desempenho semelhante ao disco RAM para qualquer volume de tamanho (assumindo que o dispositivo subjacente possa acompanhar o volume de gravação).
No Linux, as coisas são um pouco melhores:
Como um pôster anterior mencionado, você possui o Flashcache - ele funciona muito bem, mas seu desempenho varia muito com a sua carga de trabalho. Em muitos casos, com localidade de acesso ruim, ele não terá o desempenho esperado. Não sei por que, mas para a maioria das cargas de trabalho, essa é uma ótima opção.
A melhor opção (embora o código ainda não esteja "pronto para produção") é o bcache (mais informações aqui , embora algumas estejam desatualizadas) - ele tem o melhor desempenho de qualquer cache SSD que eu já tentei e diferente de todos os outros As opções mencionadas suportam o armazenamento em cache de vários dispositivos de bloco em um único cache. Ele também suporta (embora eu ainda não tenha tentado isso, ainda não funcionou) vários dispositivos de cache, para que você possa usar vários SSDs mais baratos para maximizar seus IOPS. O código está em um repositório git: git: //evilpiepirate.org/~kent/linux-bcache.git . Fala-se em fundi-lo na próxima versão do kernel, embora ainda não tenha sido decidido com certeza.
Pessoalmente, acho que a opção com melhor desempenho é o bcache (minha carga de trabalho é principalmente relacionada ao banco de dados, embora eu também armazene em cache o meu laptop principal na sua totalidade). Na minha experiência, a taxa de transferência de gravação sequencial do HDD costuma ser o gargalo, pois o cache fica mais rápido e o HDD precisa gravar os setores em cache, portanto, quanto mais rápido, melhor. Obviamente, isso é para uma carga de trabalho pesada de gravação; em uma carga de trabalho de leitura e gravação mais equilibrada, as coisas provavelmente serão diferentes.
Também devo avisá-lo que, a toda velocidade, você queimará rapidamente os limites de gravação do seu SSD. Atualmente, estou no meu terceiro OCZ Vertex 3. Os SSDs, embora muito rápidos, simplesmente não são muito duráveis, portanto, espere substituí-los a cada poucos meses.