bcache em md ou md em bcache

bcache em md ou md em bcache

bcachepermite que uma ou mais unidades de disco rápidas, como unidades de estado sólido (SSDs) baseadas em flash, atuem como cache para uma ou mais unidades de disco rígido mais lentas.

Se bem entendi,

  • um SSD * pode ser atribuído ao cache de vários HDDs de apoio e, em seguida, os dispositivos em cache resultantes podem ser RAID com mdadm
    ou
  • vários HDDs podem ser RAID em um único dispositivo MD de apoio e o SSD atribuído para armazenar em cache esse

Estou me perguntando qual é a abordagem mais sensata. Ocorre-me que desenvolver um RAID5/6 pode ser mais simples com uma ou outra técnica, mas não tenho certeza de qual!

Existem boas razões (por exemplo, aumentar o armazenamento de apoio ou qualquer outra coisa) para escolher uma abordagem em vez de outra (para um grande sistema de arquivos não raiz contendo arquivos de apoio da VM)?


* por "um SSD" quero dizer algum tipo de dispositivo SSD redundante, por exemplo, um RAID1 de dois SSDs físicos

Responder1

Acho que armazenar em cache todo o dispositivo MD faz mais sentido.

Colocar o bcache para armazenar em cache todo o dispositivo MD sacrifica toda a ideia de ter raid, porque introduz outro ponto único de falha.

  • As falhas OTH de discos SSD são relativamente raras, e o bcache pode ser colocado no modo writethrough/ writearound(em contraste com o writebackmodo), onde não há dados armazenados apenas no dispositivo de cache, e a falha do cache não mata as informações em o ataque o torna uma opção relativamente segura.

  • Outro fato é que há uma sobrecarga computacional significativa no RAID-5 suave; ao armazenar em cache cada membro do ataque giratório separadamente, o computador ainda precisa recalcular todas as paridades, mesmo em ocorrências de cache

  • Obviamente, você sacrificaria algum espaço SSD caro se armazenasse em cache cada unidade giratória separadamente.- A menos que você planeje usar o cache SSD invadido.

  • Ambas as opções relativamente não afetam o tempo do processo de crescimento - embora a opção com unidades giratórias armazenadas em cache separadamente tenha potencial para serMais devagardevido ao maior tráfego de ônibus.

É um processo rápido e relativamente simples configurar o bcache para remover a unidade SSD, quando você precisar substituí-la. Graças aoblocosdeve ser possível migrar a configuração do ataque nos dois sentidos no local.

Você também deve se lembrar que no momento a maioria (todas?) das distribuições de CD ao vivonão apoiebcache, então você não pode simplesmente acessar seus dados com essas ferramentas, independentemente da opção bcachede mdraidlayout escolhida.

Responder2

Eu acho que a abordagem sensata é armazenar em cache o dispositivo MD resultante.

O bcache foi projetado para passar leituras e gravações sequenciais.

Se você armazenar em cache cada dispositivo separadamente, logicamente, vários dispositivos distribuídos em um MD invadido ou removido estarão, da perspectiva do bcache, gravando constantemente blocos aleatórios.

Embora um volume MD armazenado em cache pareça normal, gravando arquivos no volume, em vez de blocos aleatórios em vários dispositivos.

O objetivo do ataque de hardware e software é fazer a distribuição de dados no back-end para que o sistema de arquivos resultante pareça um volume normal.

Isso pode não estar correto (já que os desenvolvedores do bcache podem ser inteligentes e responder a esse tipo de situação), mas a coisa lógica ideal a fazer é armazenar volumes em cache, em vez de bloquear dispositivos.

informação relacionada