bcache em md ou md em bcache

11
O bcache permite que uma ou mais unidades de disco rápidas, como drives de estado sólido baseados em flash (SSDs) funcionem como um cache para um ou mais discos rígidos unidades de disco .

Se eu entendi corretamente,

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

Eu estou querendo saber qual é a abordagem mais saudável. Ocorre-me que o crescimento de 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 backup ou qualquer outra coisa) para escolher uma abordagem sobre a outra (para um sistema de arquivos grande 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

    
por Jack Douglas 22.06.2014 / 20:10

2 respostas

5

Acho que fazer cache de todo o dispositivo md faz mais sentido.

Colocar o bcache para armazenar em cache todo o dispositivo md sacrifica toda a idéia de ter o raid, porque ele introduz outro ponto único de falha.

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

  • Outro fato é que existe uma sobrecarga computacional significativa de soft RAID-5; quando caching de cada membro do raide de spinning separadamente, o computador ainda tem que recalcular todas as paridades, mesmo em acertos do cache

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

  • As duas opções relativamente não afetam o tempo de crescimento do processo - embora a opção de unidades giratórias armazenadas em cache separadamente tenha potencial para ser mais lenta devido a mais tráfego de barramento.

É um processo rápido e relativamente simples para configurar o bcache para remover a unidade ssd, quando você precisar substituí-lo. Graças aos blocos , deve ser possível migrar a configuração do ataque de ambas as formas no local.

Você também deve lembrar que, no momento em que a maioria (todas?) as distribuições de CD ao vivo não suportam bcache , então você não pode simplesmente acessar seus dados com essas ferramentas, independentemente de a opção de layout bcache - mdraid que você escolheu.

    
por 26.06.2014 / 12:22
2

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

O bcache é projetado para passar leituras e gravações seqüenciais.

Se você separar cada dispositivo separadamente, logicamente, vários dispositivos se dividindo em um MD invadido ou despojado, a partir da perspectiva do bcache, estará constantemente escrevendo blocos aleatórios.

Enquanto um volume MD bcached parecerá normal, escrevendo arquivos no volume, em vez de blocos aleatórios para vários dispositivos.

O objetivo do hard e software raid é fazer a distribuição de dados no backend para que o sistema de arquivos resultante pareça um volume normal.

Isso pode não estar correto (já que o bcache devs pode ser inteligente e explicar esse tipo de situação), mas a melhor coisa lógica a fazer é armazenar em cache os volumes, em vez de bloquear os dispositivos.

    
por 12.12.2014 / 17:35