MD Algoritmo de balanceamento de leitura de Raid 1

2

Eu pesquisei pelo google, mas não encontrei nenhuma informação sobre o algoritmo de balanceamento de leitura para MD raid1.

Alguns anos atrás eu talvez tenha lido em algum lugar que ele usa hashing the process id para determinar qual dispositivo ele usa, mas não tenho certeza.

Eu tenho virtualização KVM + LVM no topo do raid1 e testemunhei várias vezes que leituras de várias máquinas virtuais vão para o mesmo disco, indo 100% de utilização e o outro disco no raid1 está ocioso. (via iostat -x)

EDIT: a questão também é sobre vários processos dentro da VM. O balanceamento de leitura acontecerá mesmo dentro da VM?

As leituras são balanceadas? Se sim, qual algoritmo?

A razão pela qual estou perguntando é porque atualmente estou dedicando entre duas variantes

  1. LUKS no topo do dispositivo MD único
  2. MD em cima de dois dispositivos LUKS

A segunda variante usa mais CPU, mas isso não é uma preocupação.

    
por Sidias-Korrado 20.01.2017 / 09:10

1 resposta

1

A implementação Linux do RAID1 acelera as operações de leitura de disco, desde que sejam executadas duas operações de leitura de disco separadas por vez. Isso significa que ler um arquivo não será mais rápido no RAID1 do que no disco único, mas a leitura de dois arquivos distintos ao mesmo tempo será mais rápida.

Leia o teste concluído com o DD e o cache de leitura desativado:

Test single file:
1048576000 copied @ 224MB/s

Test same file 2 transfers:
Test single file:
1048576000 copied @ 116MB/s
1048576000 copied @ 104MB/s

Test 2 files 2 transfers:
1048576000 copied @ 212MB/s
1048576000 copied @ 217MB/s

Quanto às opções, o LUKS em cima do único dispositivo MD soa mais lógico.

O problema com as leituras que acontecem no mesmo disco pode ser alterado com os parâmetros best_dist_disk e best_pending_disk . Você pode ver um exemplo completo aqui .

    
por 20.01.2017 / 10:07