Calculando o tamanho correto da faixa para matrizes Linux mdadm RAID10 no layout “far”

5

Estou criando um array RAID10 de 6 drives. Quando criado no layout próximo, por exemplo,

mdadm --create /dev/md2 --chunk=64 --level=10 --raid-devices=6 --layout=n2 /dev/sda1 ...

Verificando o tamanho da faixa conforme informado pelo sistema:

cat /sys/devices/virtual/block/md2/queue/optimal_io_size

O resultado é 196608, como esperado, e. 3 drives de dados (50% de 6 no total em RAID10) x 64K chunk = 192K stripe.

Agora, ao criar a mesma matriz com a opção --layout=f2 , optimal_io_size relatórios 393216 , por exemplo duas vezes maior.

Agora, de acordo com o Nail Brown (autor do mdadm raid10),

The "far" layout lays all the data out in a raid0 like arrangement over the first half of all drives, and then a second copy in a similar layout over the second half of all drives - making sure that all copies of a block are on different drives.

This would be expected to yield read performance which is similar to raid0 over the full number of drives, but write performance that is substantially poorer as there will be more seeking of the drive heads.

Portanto, parece que o SO está sugerindo que eu usaria melhor o tamanho da distribuição do tipo RAID0 (em todos os discos da matriz), e não o tamanho da distribuição "tradicional" do RAID10 (em metade dos discos da matriz). Isso tem implicações potencialmente sérias para o alinhamento do LVM e do sistema de arquivos, ajuste de stripe / stride, etc. No entanto, nunca vi sugestões em nenhum lugar para tratar o MDADM RAID10 no modo distante como RAID0.

Pergunta: Estou sentindo falta de algo aqui, ou estou correto em tratar o RAID10, f2 como RAID0 ao alinhar / ajustar o que está acima do RAID?

    
por haimg 31.08.2012 / 18:29

0 respostas