XFS desempenho lento no RAID do LVM, mais rápido quando RAW ou não LVM

2

Eu tenho um problema estranho com um servidor que estou configurando. É para um site do tipo compartilhamento de arquivos, portanto IO rápido e muita capacidade são os requisitos. OS é o CentOS 6.4 de 64 bits

O servidor em questão é um HP DL360p, com compartimentos de unidade de 18x preenchidos com unidades SAS de 2 TB no RAID50

Há também um compartimento de expansão HP StorageWorks SAS com mais 12x2TB, também em RAID50

O RAID foi configurado usando o utilitário de configuração do BIOS do servidor, os controladores usados são muito bons com backup de bateria e FWBC de 2 GB.

Agora, originalmente os definimos como volumes separados, mas devido às especificações de nosso software, seria muito melhor ter um volume único e grande.

Então, eu configurei um volume LVM combinando esses dois volumes e, em seguida, formatei o volume lógico usando o XFS

O problema é que a velocidade resultante é decepcionante. Rodando hdparm -tT dá uma melhor velocidade de leitura de 300MB / s

Então eu fiz alguns testes e consegui isso:

sem LVM, XFS em ambos: Ambos os volumes têm velocidades de leitura de cerca de 700MB / s

com LVM, mas volume não montado: 1000-1100MB / s

com LVM no modo listrado, volume não montado: 1100-1300MB / s

Então, de alguma forma, o XFS parece estar restringindo a velocidade ... Eu tentei algumas opções mais avançadas ao formatar e montar, como -l internal, permitindo lazy-count, nobarrier, mas isso não gerou melhorias.

A única coisa que achei que pode ser um problema, o tamanho da faixa dos volumes RAID não coincidiu (um foi definido como 512 KB e o outro como 256 KB), então estou re-configurando-os para corresponder, o que levará mais algumas horas. Eu também reformatei o volume com su = 512k, sw = 28 (sw = 28 é apenas um palpite, pois há 28 HDDs ativos no total ... ou devo definir isso como 2 para os volumes RAID?)

Estou tentado a acabar com tudo e experimentar o ZFS, parece promissor, mas acho que configurá-lo está muito além do meu nível de habilidade ...

Então, se alguém tiver alguma experiência ou conselho sobre isso, seria muito apreciado!

    
por eTiMaGo 25.06.2013 / 13:25

1 resposta

2

Quais são os requisitos de IOPS e taxa de transferência de leitura / gravação do seu aplicativo? O desempenho de armazenamento nem sempre é sobre o rendimento da matriz ou a largura de banda bruta. Leituras / escritas sequenciais são apenas uma facção da atividade de E / S.

Um teste mais preciso seria um bonnie ++ ou iozone é executado em um sistema de arquivos montado ... Ou até mesmo rodando seu aplicativo e medindo a carga de trabalho real .

Se eu fosse você, despejaria os controladores internos e externos e os consolidaria em um Controlador HP Smart Array P822 - Parte nº 615418-B21.

Isso permitiria que você endereçasse seus discos internos e o gabinete externo em um array. O P822 também tem o Conjunto de recursos do Smart Array Advanced (SAAP) ativado por padrão. Nesse ponto, você pode criar o array adequadamente com o nível de RAID correto (provavelmente RAID 1 + 0) e a capacidade de atribuir uma ou mais hot-spares globais à configuração. O controlador também aproveitará os caminhos duplos para seu armazenamento externo. Você também pode organizar coisas para distribuir ou espelhar seus pares de unidades entre o armazenamento interno e externo. Muita flexibilidade.

A maior vantagem dessa configuração, no entanto, é o SSD HP SmartCache incluído recurso de armazenamento em cache . Isso é semelhante ao Cachecade do LSI . Armado com um SSD ou dois, você pode manter os dados quentes em SSDs com latência mais baixa, em vez de precisar girar o disco.

Isso é apenas o lado do hardware, embora ...

Para volumes XFS e especialmente em equipamento HP, não uso o LVM ( algumas pessoas fazem, embora ). Com os controladores HP, a apresentação do dispositivo de bloco é abstraída, então eu uso uma string de formatação de sistema de arquivos bem básica:

mkfs.xfs -f -d agcount=32 -l size=128m,version=2 /dev/sdX'

O fstab tem algumas opções de montagem:

UUID=4a0e1757 /data   xfs     noatime,logbufs=8,logbsize=256k 1 2

Mas, com o RHEL6, há também alguns recursos de ajuste de agendamento e desempenho que você deve levar em consideração. O principal deles é o framework sintonizado.

yum install tuned tuned-utils
tuned-adm profile enterprise-storage 

Isso definirá o elevador de E / S, desativará as barreiras de gravação e definirá algumas outras opções voltadas para o desempenho em tempo real, de acordo com a programação abaixo.

OZFSnestaconfiguraçãonãoajudarávocê.VocêteriaquedescartartotalmenteoscontroladoresSmartArrayeirpara SAS HBAs ou perde toda a funcionalidade ZFS RAID e usa um grande dispositivo de bloco (que se beneficiaria do Smart Array P822 que eu propus acima). Ambos exigiriam alguma forma de cache de gravação (ZIL) e não acho que isso resolva o problema de gerenciabilidade. O ZFS exige muito mais planejamento antecipado .

    
por 25.06.2013 / 15:06