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

23

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

  • dm-cache (por Redhat - no kernel 3.9, então 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 deles é o melhor para uso normal de PCs desktop - para aumentar o desempenho de programas comuns, como navegadores ou jogos?

    
por Uli 04.05.2013 / 12:29

2 respostas

14

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

Vantagens / Desvantagens

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

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

  

O kernel do Linux 3.9 (disponibilizado em 28 de abril de 2013) apresenta o SSD   cache. O mapeador de dispositivos do kernel agora inclui um alvo de cache chamado   dm-cache que permite que SSDs ou outros dispositivos de armazenamento sejam usados como   cache para um disco rígido. Basicamente, acelera gravações de dados e lê   pois permite que o SSD mais rápido armazene primeiro os dados em cache e, em seguida, transfira-os   para o disco rígido mais lento.

Fonte: Iwn

  

Flashcache é um módulo originalmente escrito e lançado por   Facebook (Mohan Srinivasan, Paul Saab e Vadim Tkachenko) em abril de   2010. É um módulo do kernel que permite o armazenamento em cache de uma unidade em outra unidade. Isso é mais usado para armazenar em cache   unidade rotacional em uma unidade de estado sólido menor para desempenho   razões. Isso lhe dá a velocidade de um SSD e o tamanho de um padrão   unidade rotacional para arquivos recentemente armazenados em cache. FlashCache é um general   cache de bloco de write-back de propósito para o Linux.

Fonte: ArchLinux

  

Bcache é um cache de camada de bloco do kernel do Linux. Permite um ou mais rápido   unidades de disco, como unidades de estado sólido baseadas em flash (SSDs) para atuar como um   cache para uma ou mais unidades de disco rígido mais lentas.

     

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

     

Patches Bcache para o kernel do Linux permitem usar SSDs para cache   outros dispositivos de bloco. É análogo ao L2Arc para ZFS, mas o Bcache também   faz writeback cache (além de apenas escrever através do cache), e é   sistema de arquivos agnóstico. Ele foi projetado para ser ligado com um mínimo de   esforço, e para trabalhar bem sem configuração em qualquer configuração. De   padrão, ele não armazenará em cache IO sequencial, apenas as leituras e gravações aleatórias   que os SSDs se destacam. Ele é adequado para desktops, servidores,   high end storage arrays, e talvez até mesmo embutidos.

     

O objetivo do design é ser tão rápido quanto o SSD e o dispositivo em cache   (dependendo do acerto do cache versus a falta e do write-through versus write-back   escreve) dentro da margem de erro. Ainda não está lá,   principalmente para leituras sequenciais. Mas o teste mostrou que é   enfaticamente possível, e mesmo 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 que é executada abaixo da camada do aplicativo.   permitindo que os aplicativos utilizem os benefícios de desempenho dos SSDs   sem grandes mudanças na infraestrutura de TI. Um cache SSD pode render mais   dos benefícios de mudar de HDDs para SSDs em uma fração do   custo de um sistema all-SSD. Um sistema em cache normalmente opera com menos   potência do que um sistema baseado em HDD de desempenho similar, e que   cria um benefício colateral ao reduzir os requisitos de resfriamento.

     

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

     

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

Fonte: Stec-Inc

  

bcache é o mais inútil de todos, porque requer especialmente   partição de dados preparada (formatada). Isso dificulta (se   possível) para anexar cache à partição existente com dados como se fosse   precisa de 200% de capacidade e para realizar longos movimentos de dados, a fim de   ativar / desativar o armazenamento em cache.

     

O brilho do EnhanceIO é que ele não precisa de intermediários   dispositivo em tudo e pode ser anexado a qualquer dispositivo de bloco on-the-fly mesmo   quando o dispositivo já estiver montado. Outra coisa super legal é que você   pode anexar o cache EnhanceIO não apenas para particionar, mas para particionar   bloquear dispositivo para armazenar em cache todas as suas partições de uma só vez. Assim como flashcache   Os módulos do enchanceio são construídos com DKMS e podem ser usados com   kernels.

Fonte: Debian

  

Vantagens do Cache do DM

     

Os caches DM usam uma arquitetura simplificada, o que os torna adaptáveis   e fácil de personalizar. Os usuários podem ajustar o tamanho do bloco e o cache   capacidade com base na quantidade de dados que terá de manipular ou no   valor dos dados. Se um aplicativo específico precisar armazenar um ótimo   lidar de dados em seqüência, os usuários podem configurar o cache para que   propósito. Se um usuário quiser registrar informações em um banco de dados   simultaneamente com o cache, que não irá interferir com o cache do   operações.

     

Desvantagens do Cache do DM

     

Uma desvantagem de usar um cache DM é que o sistema operacional Linux   tem espaço limitado para armazenar metadados. Se o cache for grande e   inclui muitos blocos pequenos, que somam muitos metadados para   a informação armazenada. Para resolver este problema, o usuário deve aumentar   o tamanho do bloco. Outro problema possível é que, depois de um servidor   travar, 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, a partir das informações acima, fica claro que o EnhanceIO é o caminho a percorrer, mas, na minha opinião, como é baseado no Flashcache, eu usaria o cache de flash. Mas com certeza vou experimentar os dois antes de tomar uma decisão final.

    
por Mitch 18.05.2013 / 11:16
1

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

    
por Kairuri 10.11.2015 / 22:15