Quais são as vantagens / desvantagens das diferentes opções de cache de SSD para HDD (cache dm, flashcashe…)?

23

Parece haver várias tecnologias diferentes disponíveis para usar um SSD para atuar como um cache para HHDs. Os que eu conheço:

  • dm-cache (por Redhat - no Kernel 3.9, por isso deve estar no ubuntu 13.10)
  • Flashcache (desenvolvido e usado pelo facebook)
  • Bcache (desenvolvido e usado pelo Google)
  • EnhanceIO (por STEC; baseado em Flashcache)

Existem diferenças notáveis ​​nas várias implementações? Qual é o melhor para o uso regular de PCs desktop - para aumentar o desempenho de programas comuns, como navegadores da web ou jogos?

Uli
fonte
Para aumentar o desempenho, descobri que a instalação do ubuntu de 64 bits funcionou muito bem, minha máquina ficou ainda mais rápida do que antes! Além disso, sobre o cache, você deve usar o cache compactado em memória RAM com este pacote zram-configque terá prioridade no uso da troca. E, armazene o jogo no SDD e teste-o. Alguns jogos não funcionam muito mais rápido, outros funcionam muito bem! Eu prefiro não usar SDD como esconderijo por causa de seu limite de gravações, mas CTD estão ficando mais baratos, e isso não tanto preocupação mais :)
Aquarius Poder

Respostas:

14

Realmente não sei por onde começar, pois tudo isso é uma informação excelente. Começarei com algumas informações sobre SSDs, depois uma descrição de todos os diferentes métodos de armazenamento em cache, e apenas a partir daí. Eu espero que você

Vantagens desvantagens

  • Preço: SSDs são de alguma forma caros
  • Capacidade máxima e comum: SSDs de alta capacidade são muito raros e caros
  • Velocidade: é aqui que os SSDs ganham vantagem
  • Durabilidade: Um SSD não possui partes móveis

Melhor ter um sistema híbrido, ter o melhor dos dois mundos (capacidade, confiabilidade, velocidade, etc.)

O kernel Linux 3.9 (disponibilizado em 28 de abril de 2013) apresenta o cache do SSD. O mapeador de dispositivos do kernel agora inclui um destino de cache chamado dm-cache que permite que os SSDs ou outro dispositivo de armazenamento sejam usados ​​como cache para um disco rígido. Essencialmente, acelera a gravação e a leitura de dados, pois permite que o SSD mais rápido armazene em cache primeiro os dados e depois transfira-os para o disco rígido mais lento.

Fonte: Iwn

O Flashcache é um módulo originalmente escrito e lançado pelo Facebook (Mohan Srinivasan, Paul Saab e Vadim Tkachenko) em abril de 2010. É um módulo do kernel que permite o armazenamento em cache Writethrough de uma unidade em outra unidade. Isso costuma ser usado para armazenar em cache uma unidade rotacional em uma unidade de estado sólido menor por motivos de desempenho. Isso fornece a velocidade de um SSD e o tamanho de uma unidade rotacional padrão para arquivos armazenados em cache recentemente. FlashCache é um cache de bloco de write-back de uso geral para Linux.

Fonte: ArchLinux

Bcache é um cache da camada de bloco do kernel do Linux. Ele permite que uma ou mais unidades de disco rápidas, como SSDs (unidades de estado sólido) baseadas em flash, atuem como um cache para uma ou mais unidades de disco rígido mais lentas.

Os discos rígidos são baratos e grandes, os SSDs são rápidos, mas pequenos e caros. Não seria legal se você pudesse obter as vantagens de ambos de forma transparente? Com o Bcache, você pode comer o seu bolo e comê-lo também.

Os patches do Bcache para o kernel Linux permitem o uso de SSDs para armazenar em cache outros dispositivos de bloco. É análogo ao L2Arc para ZFS, mas o Bcache também faz cache de write-back (além de apenas gravar por meio de cache), e é independente do sistema de arquivos. Ele foi projetado para ser ligado com o mínimo de esforço e para funcionar bem sem configuração em nenhuma configuração. Por padrão, ele não armazena em cache IO sequencial, apenas as leituras e gravações aleatórias nas quais os SSDs se destacam. Ele deve ser adequado para desktops, servidores, matrizes de armazenamento de ponta e talvez até incorporado.

O objetivo do projeto é ser tão rápido quanto o SSD e o dispositivo em cache (dependendo do acerto do cache x erro e gravação x gravação x write-back) dentro da margem de erro. Ainda não está lá, principalmente para leituras sequenciais. Mas os testes mostraram que é enfaticamente possível e, em alguns casos, fazer melhor - principalmente gravações aleatórias.

Fonte: Bcache

O Bcache tem uma grande desvantagem e tira a memória do sistema para implementar o cache.

O EnhanceIO é uma solução executada abaixo da camada de aplicativos, permitindo que os aplicativos utilizem os benefícios de desempenho dos SSDs sem grandes alterações na infraestrutura de TI. Um cache SSD pode render a maioria dos benefícios da mudança de HDDs para SSDs por uma fração do custo de um sistema totalmente SSD. Um sistema em cache normalmente opera com menos energia do que um sistema baseado em HDD de desempenho semelhante e isso cria um benefício colateral ao reduzir os requisitos de refrigeração.

Um cache SSD também pode estender a vida útil de um sistema existente, melhorando o desempenho para atender às crescentes demandas por meio de um investimento incremental, e não por uma atualização / substituição em atacado do sistema existente.

O armazenamento em cache também permite acesso mais rápido aos dados sem a sobrecarga adicional de administração de armazenamento para adquirir e instalar novas prateleiras de disco, configurando novos LUNs e migrando dados para os novos LUNs. O armazenamento em cache é quase transparente e requer pouco ou nenhum tempo de inatividade. O EnhanceIO é baseado no Flashcache.

Fonte: Stec-Inc

O bcache é o mais inútil de todos porque requer uma partição de dados especialmente preparada (formatada). Isso dificulta (se possível) anexar o cache à partição existente com dados, pois seria necessário 200% da capacidade e executar uma longa movimentação de dados para ativar / desativar o cache.

O brilhantismo do EnhanceIO é que ele não precisa de dispositivo intermediário e pode ser conectado a qualquer dispositivo de bloco imediatamente, mesmo quando o dispositivo já estiver montado. Outra coisa super legal é que você pode anexar o cache do EnhanceIO não apenas à partição, mas ao dispositivo de bloco particionado para armazenar em cache todas as suas partições de uma só vez. Assim como os módulos flashcache enchanceio são criados com DKMS e podem ser usados ​​com kernels mais antigos.

Fonte: Debian

Vantagens do cache do DM

Os caches de DM usam uma arquitetura simplificada, o que os torna adaptáveis ​​e fáceis de personalizar. Os usuários podem ajustar o tamanho do bloco e a capacidade do cache com base na quantidade de dados que ele precisará manipular ou no valor dos dados. Se um aplicativo específico precisar armazenar uma grande quantidade de dados em sequência, os usuários poderão configurar o cache para esse fim. Se um usuário quiser registrar informações em um banco de dados simultaneamente com o cache, isso não interferirá nas operações do cache.

Desvantagens do cache do DM

Uma desvantagem do uso de um cache DM é que o sistema operacional Linux possui espaço limitado para armazenar metadados. Se o cache for grande e incluir muitos blocos pequenos, isso adiciona muitos metadados às informações armazenadas. Para resolver esse problema, o usuário deve aumentar o tamanho do bloco. Outro possível problema é que, após uma falha no servidor, os metadados do cache podem não corresponder mais ao conteúdo do cache, embora seja possível restaurar a configuração correta eventualmente.

Fonte: Complementos de Fraser Sherman

Portanto, pelas informações acima, fica claro que o EnhanceIO é o caminho a seguir, mas, na minha opinião, como é baseado no Flashcache, eu usaria o cache flash. Mas definitivamente vou tentar os dois antes de tomar uma decisão final.

Mitch
fonte
EnhanceIO: um driver baseado no software de cache EhanceIO SSD, derivado do projeto Flashcache de código aberto do Facebook, útil para usar SSDs como dispositivos de cache para HDDs tradicionais. webupd8.org/2013/05//get-better-linux-desktop-performance.html
Qasim
Obrigado pela resposta! Esperançosamente, o EnhanceIO chegará ao kernel 3.10 e estará disponível na próxima versão do Ubuntu.
Uli
1
Boa redação, mas devo destacar que o cache do DM é totalmente seguro; se você tiver uma falha, não estará perdendo nenhum dado, é claro. Na prática, o cache pode ser menos eficiente por algum tempo até que os metadados sejam regenerados.
lzap
3
O comentário sobre o uso da memória bcache está incorreto, assim como o (citado) sobre conversão.
Gabriel
@ Gabriel, sinta-se à vontade para modificar, mas inclua a fonte. :)
Mitch
1

Feedback: Instalei os pacotes deb padrão do flashcache no Ubuntu há cerca de um ano no modo write-back para armazenar em cache / home (2TB) em uma fatia de 50 GB em um SSD. Ele executou maravilhosamente sem problemas. Eu tive alguns "travamentos" relacionados ao X (ou seja, não atribuíveis ao flashcache) e usei o "Ctrl-Alt-PrtScr REISUB" algumas vezes para recuperar sem problemas e sem problemas de corrupção. Eu usei o flashcache porque a) havia debs disponíveis eb) não exigia backup e restauração de / home.

Kairuri
fonte