software linux raid10, máquinas idênticas, resultados totalmente diferentes

4

Estou tendo desempenho e comportamento de software raid10 bastante diferentes em duas máquinas idênticas.

Eu tenho duas máquinas que são idênticas ao hardware, compradas ao mesmo tempo, com as mesmas versões de software, versões de hardware e versões de firmware. Cada um tem um controlador SAS com 8 x 6 Gb / s canais indo para um gabinete SAS que contém 12 discos SAS.

Na máquina 1, que é estável e parece estar funcionando perfeitamente, cada disco na matriz de ataque se comporta mais ou menos de forma idêntica: o tempo ocupado é igual (cerca de 33% em todos os discos em níveis de carga de produção) e verificação de raid de software é executado, escrever e ler o desempenho não é degradado. A verificação completa do ataque é concluída em cerca de um dia, usando toda a largura de banda disponível para concluir o mais rápido possível. Isso equivale a cerca de 200 MB / s enquanto esta verificação é concluída.

A Máquina 2 é um filho problemático. A verificação completa do ataque é concluída basicamente nunca, embora esteja configurada para também usar toda a largura de banda do disco disponível. Enquanto ele está tentando verificar, ele avança a 5 MB / seg, e o desempenho de gravação cai para cerca de 30 MB / seg durante esse tempo. Além disso, quatro discos estão com 35% ocupados, enquanto os restantes estão 22% ocupados, em média.

Após cancelar a verificação do ataque na máquina 2, a velocidade de gravação retorna para cerca de 160 MB / s.

Se eu usar dd para testar cada dispositivo mpath individual, na máquina 1 obtenho a maioria das velocidades em torno de 145 MB / s de leitura por unidade e a mais baixa de 119 MB / s seguida por 127 MB. O resto está na faixa de 145 MB / seg.

Na máquina 2, obtenho velocidades entre 107 MB (x 3 discos) e o resto está acima de 135 MB / seg, com o pico de 191 MB / seg (!) para um disco.

Eu admito estar bem fora da minha zona de conforto aqui, mas não consigo encontrar nenhuma evidência para tirar uma conclusão. Também verifiquei estatísticas SMART em cada disco em ambas as máquinas e, embora haja um número razoável de erros de "leitura corrigida" em todos os discos, parece não haver correlação entre os valores e o desempenho de leitura, nem entre a% de diferença ocupada .

Nada que eu possa encontrar explica o baixo desempenho ao realizar uma verificação RAID da matriz em uma caixa versus na outra. Sugestões sobre onde ir ao lado de depurar isso seriam apreciadas.

    
por Michael Graff 04.01.2016 / 23:50

1 resposta

3

Eu encontrei o problema. O cache de gravação foi desativado em 4 dos 12 discos na matriz de software.

Veja o que fiz para restringir isso:

Quebrei a matriz e usei dd com oflag = direct para testar a velocidade de gravação em cada disco. Descobri que aqueles com maior% ocupado também eram aqueles que só podiam escrever sobre 75 MB / s, enquanto todos os outros podiam fazer 180 MB / s para uma gravação de tamanho de dados sustentada de 1 GB e 10 GB.

No entanto, como os 4 discos lentos eram todos muito consistentes entre si, comecei a investigar e instalei o sdparm para permitir que eu mexesse nas páginas de parâmetros SCSI.

Uma vez que vi o padrão para o WCE (gravação do cache ativado), mas estes quatro discos estavam desligados, liguei-o. A velocidade de gravação subiu para a marca de 180 MB / s, e a matriz agora está sendo reconstruída a uma taxa de 1 GB / s (que é o máximo que esse conjunto de discos pode fazer com esse controlador).

O comando de verificação é sdparm --get=WCE /dev/mapper/mpatha e para defini-lo, sdparm --set=WCE --save /dev/mapper/mpatha para futuros usuários.

Além disso, a economia de energia estava ativada - isso impedia que o armazenamento em cache no nível do SO mantivesse a velocidade, embora oflag = direto ainda o fizesse.

    
por 07.01.2016 / 23:03