Software RAID 5 vs desempenho do RAID 6

1

Eu tinha uma instalação original do software RAID 5 no Ubuntu 10.04.03, 3 dispositivos, 64k pedaço. O desempenho foi aceitável:

# 4GB write
dd if=/dev/zero of=ddfile.big bs=1MB count=4k
4095290816 bytes (4.1 GB) copied, 51.743 s, 79.1 MB/s

# 4GB read
dd if=ddfile.big of=/dev/null
4095290816 bytes (4.1 GB) copied, 62.5932 s, 65.4 MB/s

Então eu fui para um software RAID 6 com 3 dispositivos (2 foram marcados como ausentes, preciso copiar os dados deles), 128k pedaço. Eu também configurei o LVM no novo array. O desempenho foi chocantemente pobre:

# 4GB write
dd if=/dev/zero of=ddfile.big bs=1MB count=4k
4096000000 bytes (4.1 GB) copied, 106.406 s, 38.5 MB/s 

# 4GB read
dd if=ddfile.big of=/dev/null
4096000000 bytes (4.1 GB) copied, 129.317 s, 31.7 MB/s

Estou tentando entender o que atrasou as leituras e as gravações pela metade. Poderia ser o LVM? Ou o estado degradado do novo array de raid? Ou poderia ser a diferença de tamanho do pedaço (64k vs 128k)? Além disso, estou usando o ext4 para o sistema de arquivos, sem opções.

    
por gerhard 17.08.2011 / 15:12

2 respostas

8

O número de coisas erradas com esta situação é o que é chocante aqui.

I went to a software RAID 6 with 3 devices

Um array RAID-6 tem duas paridades. Isso significa que para cada bit escrito há (essencialmente) dois cálculos feitos, um para cada paridade. Usar o RAID-6 em um array com menos de 5 não é recomendado (e em menos de 4 é contraproducente!). Essencialmente você está fazendo muito trabalho para nenhum ganho.

2 were marked as missing

E é aí que ele realmente começa a descer. Você está fazendo RAID-6 com dois dispositivos ausentes. Então você está calculando a paridade e colocando-a ... aonde? (Ei alguém com experiência em software RAID-6, isso é verdade? Ele ainda computa? Se sim, ele cai, ou tenta gravar paridade na unidade?)

E qualquer ganho que você teria obtido de vários fusos é totalmente eliminado porque você não tem nenhum outro fuso em uso.

Performance was shockingly poor

Não é tão chocante quanto óbvio neste momento. Você está fazendo toneladas de coisas para absolutamente nenhum benefício.

Então o que você deve fazer?

Faça algumas perguntas a você mesmo. Por que você quer o RAID-6? É porque é mais tolerante a falhas do que o RAID-5? Se assim for, você deve compreender quais os modos de falha que o RAID-6 o protege:

Tem duas paridades. Isso entra em jogo sempre que você sofre uma falha na unidade, em seguida, substitua a unidade e, em seguida, faça com que outra unidade falhe durante a reconstrução. Isso geralmente acontece quando você recebe um lote ruim de unidades, ou quando você tem unidades continuamente expostas a altas temperaturas (provavelmente mais altas do que você imagina). Além disso, há a possibilidade de um erro de leitura irrecuperável (URE) sobre uma vez a cada 10 ^ 14 bits lidos (que é um pouco mais de 11TB de dados). Se isso acontecer durante uma reconstrução RAID, bem, isso não é bom, e o RAID-6 pode proteger isso.

Fale mais sobre o array que você deseja criar. Por que você está construindo, o que a capacidade precisa ser e que tipo de desempenho você precisa dela? Com essa informação, podemos dar-lhe recomendações.

    
por 17.08.2011 / 15:47
1

Seu problema são os discos ausentes. O desempenho do RAID 5 degrada muito quando um dos discos está ausente. O RAID 6 se degrada quando 2 dos discos estão faltando. Basicamente, o sistema precisa regenerar a paridade para cada bloco, portanto, a desaceleração.

Você deve obter pelo menos um desempenho tão bom depois que os discos ausentes forem substituídos e a recompilação do raid for concluída.

    
por 17.08.2011 / 15:14