btrfs RAID1 com diferentes tamanhos de disco

btrfs RAID1 com diferentes tamanhos de disco

Eu tenho sistemas de arquivos btrfs existentes em um disco de 2 TB e quero adicionar outro disco de 5 TB como redundância.

Posso simplesmente formatar o novo disco com btrfs e adicionar o dispositivo com

btrfs device add /dev/sdX /mymountpoint
btrfs filesystem balance start -dconvert=raid1 -mconvert=raid1 /mymountpoint

Acabarei com 2 TB de espaço utilizável em disco e tudo em ambos os discos. No entanto, eu poderia ter mais redundância se pudesse usar os 3 TB extras em meu disco de 5 TB, de modo que cada gravação fosse duas vezes para o disco maior (o disco de 2 TB armazena tudo uma vez, 5 TB armazena tudo duas vezes). Isso é possível?

Estou ciente das desvantagens, como maior latência, velocidade reduzida, etc.

Responder1

Tecnicamente, se você criar duas partições de 2 TB cada no disco maior, poderá usá-las junto com o disco menor (ousua partição) como três dispositivos de tamanho igual (ou quase igual).

Mesmo que você aceite as desvantagens, não faça isso. Esta é a razão:

O btrfs combina primeiro todos os dispositivos em um pool de armazenamento e depois duplica os pedaços à medida que os dados do arquivo são criados. RAID-1 é definido atualmente como “2 cópias de todos os dados em dispositivos diferentes”. Isso difere do MD-RAID e do dmraid, pois fazem exatamente n cópias para n dispositivos. Em um RAID-1 btrfs em três dispositivos de 1 TB, obtemos 1,5 TB de dados utilizáveis. Como cada bloco é copiado apenas para 2 dispositivos, a gravação de um determinado bloco requer apenas a gravação de exatamente 2 dispositivos; a leitura pode ser feita a partir de apenas um.

(fonte)

Portanto, pode (e irá) acontecer que alguns dados acabem nas duas partições do disco maior, mas não na menor. Eu acho que essa "redundância do pobre homem" às vezes pode ajudar se o disco maior falhar parcial/localmente. Se falhar como um todo, os dados armazenados nele duas vezes serão perdidos.

O que você deseja pode ser feito com a abordagem "n cópias para n dispositivos" (novamente: duas partições no disco maior são dispositivos neste contexto). Você pode estar interessadoRAID com LVM vs MDRAID - prós e contras.

Se eu fosse você, não faria isso. Nesta configuração, cada operação de gravação envolve as duas partições no mesmo dispositivo físico. Mesmo se você gravar sequencialmente em ambas as partições, essas serão gravações simultâneas que exigem que os cabeçotes se movam para frente e para trás; a menos que você consiga configurar especificamente as partições, as gravações correspondentes serão executadas por dois cabeçotes diferentes na mesma posição do braço comum. O firmware é capaz de escrever usando duas cabeças ao mesmo tempo? Os dados sempre chegarão para ambas as partições semi-simultaneamente? Nenhuma operação de leitura será agendada entre as gravações correspondentes nas duas partições? Duvido de tudo isso.

Portanto, é razoável supor que as cabeças viajarão mais do que em uma configuração não-RAID. Isto provavelmente reduzirá a vida útil do braço. Quando falha mecanicamente, todo o disco falha. Então não importa quantas cópias você tinha; o que resta é apenas o disco menor.

Conclusão: pode ser que a sua ideia aumente o risco de falha do tipo que (quando ocorre) torna a redundância adicional completamente irrelevante.

Responder2

Não há uma maneira direta de implementar isso com o btrfs. Mais importante ainda, porém, é uma configuração perigosa que não deve ser usada.

O objetivo do RAID1 é redundância. Armazenar dados duas vezes em um único disco não fornece redundância: se esse disco falhar, seus dados serão perdidos.

informação relacionada