Raid-5 Desempenho por escala de fuso

2

Então eu estou preso em um canto, eu tenho um projeto de armazenamento que é limitado a 24 eixos, e requer pesado aleatório Write (o lado de leitura correspondente é puramente seqüencial). Precisa de todo o espaço em minhas unidades, ~ 13TB total em um n-1 RAID-5, e tem que ir rápido, mais de 2GB / s rápido.

A resposta óbvia é usar um Stripe / Concat (Raid-0/1), ou melhor ainda um ataque-10 no lugar do ataque-5, mas isso não é permitido por razões além do meu controle. Então, estou aqui pedindo ajuda para obter uma configuração otimizada para ser tão boa quanto possível.

O array construído em unidades SAS-2 10K rpm conectadas diretamente, apoiado por um controlador da série ARECA 18xx com 4 GB de cache. Listras de matriz de 64k e um sistema de arquivos XFS alinhado com faixa de 4K, com 24 grupos de alocação (para evitar um pouco da penalidade por ser a invasão 5).

O coração da minha pergunta é o seguinte: Na mesma configuração com 6 spindles / AGs eu vejo um desempenho limitado em disco próximo na gravação, ~ 100MB / s por fuso, em 12 spindles eu vejo essa queda para ~ 80MB / se em 24 ~ 60MB / s.

Eu esperaria que, com uma paridade distribuída e AGs correspondidas, o desempenho fosse escalonado com o número de spindles ou pior nas contagens de fusos pequenos, mas essa matriz está fazendo o oposto.

O que estou perdendo?

O desempenho do Raid-5 deve ser escalonado com # de fusos?

Muito obrigado pelas suas respostas e quaisquer ideias, sugestões ou orientações.

- Bill Editar: Melhorando o desempenho do RAID O outro tópico relevante que pude encontrar, discute alguns dos mesmos problemas nas respostas, embora ainda me deixe sem uma resposta sobre a escala de desempenho.

    
por Bill N. 10.04.2012 / 18:20

3 respostas

1

Sua limitação aqui é seu controlador de raid. Random escreve como um cache grande, e RAIDs baseados em paridade, como uma calculadora de paridade rápida. Quanto mais discos você adicionar a uma matriz RAID baseada em paridade (como RAID 5 ou 6) em um controlador conectado localmente, o desempenho inferior que você verá por fuso. O armazenamento anexado direto grande (acima de 8 unidades ou mais) costuma ser um ataque 10 para evitar esse problema. A única razão para usar o RAID baseado em paridade (5 ou 6) é se beneficiar de uma proporção maior de espaço utilizável. A desvantagem é que, se você perder uma unidade, a reconstrução levará mais tempo se a RAID for grande.

Nenhum novo hardware

Se o seu hardware for fixo e você precisar fazer com que isso funcione da melhor forma possível, o melhor desempenho seria do RAID 10, mas você perderia metade do espaço disponível. Além disso, embora pareça mais resiliente no início porque você pode perder até metade das unidades sem uma falha, ainda assim você poderá perder dados se perder as duas unidades erradas.

A outra opção para armazenamento anexado localmente é o ZFS. Eu não pretendo saber seu funcionamento interno, mas meu entendimento é que ele ignorará completamente a placa RAID e funcionará nos discos subjacentes. Pode ter uma penalidade menor na paridade para pequenas gravações, se você configurá-lo corretamente.

Novo hardware

Se você tem dinheiro para consertar este problema, você estaria bem servido para investir em um controlador RAID melhor. Algo com mais cache e um processador mais rápido. Se você decidir usar o RAID baseado em paridade, será melhor atendê-lo fazendo vários RAIDs - de preferência 3 grupos com 8 fusos cada.

Ainda melhor do que isso seria obter algum armazenamento externo: algo que tenha um controlador de armazenamento que lide com todo o cache e o cálculo de paridade, e simplesmente permita o acesso ao armazenamento via SAS ou canal de fibra.

    
por 11.04.2012 / 14:43
6

QUALQUER RAID 5 é sub-ótimo, um array R5 de 24 discos é um pouco além de estúpido, não quero ser rude, mas a maioria dos controladores de array de hardware não deixa < /> você cria um array de 24 discos R5, pense em quantos dados você pode estar perdendo sem nem mesmo saber. Além disso, se você estiver fazendo algum tipo de escrita, o RAID5 ou o 6 não são o caminho a seguir, de fato, adicionar mais fusos provavelmente retardará as coisas.

Tanto de uma perspectiva de desempenho quanto de confiabilidade você PRECISA converter isso para RAID 10 o mais rápido possível, é realmente o único caminho a seguir, qualquer outra coisa é apenas polir um covarde.

    
por 10.04.2012 / 18:26
2

O que são os diferentes níveis de RAID amplamente utilizados e quando devo considerá-los?

O RAID-5 nessa escala pode ser problemático (tempos de reconstrução, maior chance de falha na matriz). Sua velocidade de gravação aleatória não será razoável (talvez a largura de banda de um único disco), nem será dimensionada com fusos.

    
por 10.04.2012 / 18:27