Como posso usar meu pequeno SSD como cache para um disco rígido maior?


58

Gostaria de usar um (pequeno) disco SSD como cache para um disco rígido grande. Sei que existem produtos baseados em hardware que fazem isso: HighPoint RocketHybrid HBA , Intel SmartResponse e outros. Só encontrei um produto somente de software: ExpressCache by Diskeeper :

O ExpressCache combina de maneira inteligente e automática os melhores atributos de SSDs e HDDs sem nenhum esforço ou conhecimento pré-requisito do usuário, para que os usuários obtenham o melhor dos dois mundos; desempenho dinâmico e capacidade escalável. Como SSDs tão pequenos quanto 4 GB podem ser usados, ele fornece uma solução incrivelmente acessível para os fabricantes.

Composto pelo modo Usuário e componentes do Modo Kernel, o ExpressCache usa o SSD como um cache inteligente, juntamente com um HDD, para melhorar o desempenho geral do sistema e acelerar bastante a inicialização do PC com Windows, o lançamento de aplicativos e a velocidade de acesso a dados.

No entanto, este produto é apenas OEM !

Procurei alternativas sem sucesso ... Não consigo entender isso: parece uma ótima idéia, não é necessário hardware adicional e poderia realmente melhorar o desempenho do disco sem gastar uma fortuna.

Então, estou perguntando se alguém conhece algum software que faça isso, seja para Windows ou Linux. Ou se você acha que é uma má ideia, eu gostaria de saber o porquê.

Nota: O ReadyBoost não é realmente adequado para isso. Ele é construído com a premissa de que as gravações em disco são realmente caras, têm muito pouco efeito em sistemas com bastante memória RAM e não são dimensionadas corretamente se o seu SSD tiver mais de 100 GB.


O PrimoCache (para Windows) pode fazer isso; é especialista no uso da RAM como cache, mas pode usar uma partição SSD como cache L2 - não acredito que seja limitado em tamanho e diz que pode acelerar o tempo de inicialização mesmo (supondo que você esteja usando um SSD e não apenas RAM).
BrainSlugs83

Respostas:


52

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.


2
Obrigado pela ótima resposta! Quanto à taxa de "esgotamento", acho que agora esta é a principal razão a maioria destes produtos são OEM-only, por exemplo OCZ Synapse (Cache SSD empacotado com Dataplex) é 50% overprovisioned ...
haimg

2
@Supercilious Por que não usar apenas um SLC ou eMLC SSD? Isso deve ser mais eficiente (e certamente mais confiável) do que a substituição frequente de flash MLC não confiável.
Miles Erickson

6
@ Supercilious É aqui que você está me perdendo. Longevidade ligeiramente maior? A longevidade do flash SLC e eMLC é de ordem de magnitude maior, não um pouco maior.
Miles Erickson

11
@ Firebug Estou inativo na pilha há algum tempo, mas a resposta que postei permanece. Embora os SSDs mais novos ofereçam resistência de gravação muito maior, eles ainda falham rapidamente. Nas minhas máquinas (principalmente HP DL360 G9 + algumas Lenovo), eu corro dezenas de SSDs para cada unidade SAS ou SATA mecânica. Em 2017, calculei a média de uma vida útil de 8 meses dos meus SSDs Samsung SM863a, que são os melhores que encontrei. Isso é completamente bom e vale totalmente o custo da minha carga de trabalho, mas vale a pena ter em mente e a constante atividade de gravação que matará qualquer SSD em um ano.
Supercilioso

11
@Firebug Sim, todo o trabalho pesado é feito nos meus servidores (principalmente HP DL360 Gen9), e a carga de trabalho é de 30% / 70% de leitura / gravação e os SSDs estão sendo martelados 24 horas por dia, 7 dias por semana, em torno de 300-350MB / s picos acima de 500MB / s. Todas as E / S são aleatórias com um tamanho de bloco de 64 KB e TRIMs em massa ocasionais de todo o SSD. No uso de desktop, levaria anos para matar esses SSDs de datacenter, mas os SSDs de consumidores têm 180 a 300 TB TBW, o que ainda é um IMO baixo.
Supercilioso

10

Existe um software muito interessante para Linux, usado por servidores muito ocupados:

https://github.com/facebook/flashcache

Em um SATAII, 8 unidades de rotação magnéticas em uma configuração RAID6, recebo um aumento de desempenho sério. Leitura aleatória com o dispositivo SSD SATAIII flashcache (540 leitura, 420 gravação) satura meu barramento SATAII para quase 90-95% - eu tenho 280MB de leitura (nos horários de pico), 270MB de gravação (somente em carga simulada ... nunca alcançada na produção) . Já dura cerca de meio ano. As gravações da unidade de disco são ... 20-30MB / s - use tempo de E / S de reposição ...


5

Qual é o tamanho do seu SSD?

Provavelmente, o melhor efeito que você obterá instalando todo o SO e software no SSD, enquanto armazena grandes quantidades de dados no seu HDD.

Se o seu SSD for pequeno, pode ser útil colocar um arquivo de paginação nele. Duvido que o Windows coloque muitos de seus arquivos em cache, mas, pelo menos, permitirá que você tenha memória de aplicativos usados ​​recentemente e cache de arquivos na RAM, permitindo alternar rapidamente para aplicativos usados ​​não tão recentes (que residir no arquivo de paginação que, por sua vez, está no SSD).


11
Meu SSD é de 120GB. Embora isso seja suficiente para um conjunto de trabalho ou cache , definitivamente não é o suficiente para hospedar todos os meus arquivos de sistema + aplicativos. Em segundo lugar, não quero manter, digamos, o código de amostra do MSSDK (leia raramente) no SSD e meu próprio código, que é acessado 100 vezes por dia, no disco. Além disso, eu precisaria de dois SSDs para RAID - Eu nunca confiar meus dados para apenas um disco, seja estado magnético ou sólida ...
haimg

2
Você pode usar links simbólicos e mover o cache do instalador do MSSDK / Windows / etc para o disco rígido (enquanto houver links simbólicos apontando para novos locais a partir dos caminhos necessários na unidade do sistema); e coloque seu próprio código no SSD (a parte dele que precisa de acesso aleatório rápido). E usar um backup provavelmente seria a melhor solução do que confiar no RAID.
penartur

3
+1 para esta solução. Na verdade, o uso de um SSD trará um desempenho muito melhor. É improvável que haja um benefício significativo de outro nível de cache, enquanto o uso de um SSD para a partição do sistema o fará.
Jesse

11
Estou usando o ssd para arquivos do sistema e o hdd para a pasta pessoal. Eu notei que o disco rígido é um gargalo, então você precisa ler muitos arquivos dele, por exemplo, o fir fire fox é iniciado pela primeira vez após a inicialização.
aisbaa

2

FancyFlash fez o trabalho. Eu tenho meu próprio servidor Hyper-V R2 @home para meus laboratórios e tenho uma unidade OCZ Revo Hybrid PCIe. Infelizmente, o driver de compilação no cache funciona apenas com o Windows 7. Não há plano para o Windows Server 2008 R2. Portanto, instalei o driver FancyFlash no meu host Hyper-V e configurei meu SSD no Revo Hybrid para atuar como cache do disco incorporado de 1 TB (onde estão meus VHD). TaDa! Funciona e acelera muito minhas VMs! :)

Espero que o lançamento final seja acessível $$$ ...


3
Você tem um link para este software?
haimg

Gostaria de saber se ele quis dizer "FancyCache" (agora conhecido como PrimoCache)? - Estava na versão beta (e o preço final era desconhecido) na época em que esta resposta foi postada (IIRC). Mas já faz dois anos e ele tem 21 pontos, então duvido que ele volte a entrar e nos conte. : - /
BrainSlugs83

2

O eBoostr é um aplicativo que armazena em cache grandes partes de aplicativos usados ​​regularmente, a fim de acelerar seu sistema. Normalmente, o objetivo é usar unidades USB ou RAM não utilizada, mas não há motivo real para que você não possa usar um SSD.

Está disponível para todas as principais versões do Windows e parece muito com o que você procura.

  • O eBoostr rastreia o uso de aplicativos em seu sistema e pode pré-armazenar em cache os dados mais utilizados, reduzindo atrasos de carga e otimizando o desempenho
  • A interface de arrastar e soltar fácil de usar permite aprimorar seletivamente os aplicativos em seu sistema, bem como priorizar os aplicativos aprimorados pelo eBoostr
  • Tempos de carregamento reduzidos e menos acesso ao disco rígido ajudam a prolongar a vida útil da bateria de laptops e netbooks usando o eBoostr

Leia mais: http://www.eboostr.com/feature


2

Embora seja certamente possível carregar um sistema operacional e aplicativos inteiros em um único SSD, você provavelmente não deveria. Com o tempo, os SSDs diminuem a velocidade de reescrita contínua e devem ser "atualizados" para acelerá-los. É melhor usar o disco rígido mais rápido possível, como uma unidade SATA de 600 Gbps e obter uma placa-mãe ou outro controlador que suporte o armazenamento em cache SSD no nível do hardware. Todas as placas-mãe Asus ROG Maximus suportam essa função integrada.

No entanto, até criar esse novo sistema, encontrei uma maneira de obter alguns benefícios de um SSD. Criei um cache de memória no SSD e, embora exista um no meu disco rígido principal, o Windows parece usar automaticamente o SSD mais rápido. Também mudei todo o cache do Internet Explorer para o SSD, que acelerou a navegação e o vídeo na Internet pelo menos 2 ou 3 vezes.

Eu estarei construindo meu novo sistema em torno da placa-mãe Asus Maximus VI Hero com um processador Intel i7 de quarta geração no formato de soquete 1150. Parece ser um bom nível de desempenho sem gastar milhares para chegar lá. O custo total é projetado para estar na faixa de US $ 800-900, para incluir uma nova versão do Windows.


2

Pode-se usar as tecnologias de E / S do Windows do ReadyDrive e ReadyBoost . Como essas tecnologias datam de antes da introdução dos SSDs, há poucas informações sobre se elas funcionam com SSD ou se estão bem.

Para o ReadyBoost, consulte algumas dicas sobre Como posso usar meu SSD como um disco de cache do ReadyBoost? , embora esse outro segmento afirme o contrário.

ReadyDrive é um recurso do Windows Vista que permite que computadores com Windows Vista ou posterior equipados com uma unidade híbrida ou outros caches de memória Flash (como a Intel Turbo Memory) sejam inicializados mais rapidamente e saiam da hibernação em menos tempo.

Também é possível colocar o arquivo de paginação no SSD, embora com melhorias limitadas, se a memória do sistema for suficiente.

A melhor melhoria virá, como observado pela penartur, na instalação do Windows no SSD.


11
A taxa de falha do SSD é significativamente menor do que os discos rígidos tradicionais - pode ter sido o contrário, mas não no momento desta pergunta e resposta. Havia uma série de preocupações sobre os ciclos de apagamento e gravação de SSD há alguns anos e todos pareciam esquecer temporariamente que os HDDs são extraordinariamente frágeis e falham regularmente, geralmente sem aviso. A preocupação com os ciclos de gravação quase nunca é um problema com o nível de desgaste moderno, a menos que você esteja gravando terabytes de dados toda semana por vários anos.
thomasrutter

1

Baixar ExpressCache

Você pesquisou o ExpresCache no Google ? Eu posso ver um pode baixá-lo de

  • SanDisk - link à direita; só funciona com SSDs da SanDisk
  • Lenovo - link abaixo no guia; poderia ter dependência de hardware também

Especialmente na Lenovo, você pode baixar uma versão x86 ou x64. O Sandisk parece oferecer apenas o ExpressCacheSetup.exe e não sei qual arquitetura ele suporta. Talvez um, talvez ambos ...


Ambos exigem hardware dos respectivos fornecedores. O software não será instalado corretamente, a menos que seja aprovado nas verificações de hardware.
Sun

0

O ExpressCache é apenas um produto OEM. Estou razoavelmente certo de que ele possui controles internos que impedem sua utilização em hardware que não seja os OEMs licenciados.

Parece que, no momento, o FancyCache é a única ferramenta viável para uso geral / não-OEM. Talvez eu entenda mal as coisas, mas acho que algo como o readyboost em um SSD queimará rapidamente seus ciclos de gravação. Para mim, a idéia aqui é ter apenas uma letra de unidade para cobrir o HDD principal e o SSD, colocando os arquivos estáticos mais acessados ​​e geralmente estáticos no SSD e armazenando os arquivos menos usados ​​e modificados no disco rígido. Isso daria o benefício de desempenho de um SSD e a viabilidade a longo prazo de um HDD e não exigiria que o usuário tentasse equilibrar o espaço no SSD com o do HDD. A necessidade disso é tão óbvia, pelo menos para mim, que estou surpreso com a falta de soluções para essa necessidade.


-2

Não é nomeado aqui é VeloSSD. Não posso dar uma boa reputação a esse software, pois ele destrói meus dados com frequência, mas outro usuário relatou que está funcionando bem


2
Apenas adicionar um nome de produto a uma lista de produtos não é considerado uma resposta, e esta "recomendação brilhante" não é muito útil. Com um pouco mais de representante, você pode postar isso como um comentário.
fixer1234
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.