Configuração da unidade para 5 grandes bancos de dados

3

Eu tenho 5 bancos de dados, cada um com 300 GB, atualmente em uma matriz RAID 5 composta por 5 unidades. Todos os bancos de dados são usados intensamente, ao mesmo tempo, portanto, a velocidade da unidade é um problema.

Eu veria melhor desempenho se me livrasse da configuração do RAID 5 e colocasse cada banco de dados em uma unidade separada? A redundância fornecida pelo RAID 5 não é necessária devido ao espelhamento em outro lugar.

O servidor será capaz de executar leituras / gravações em diferentes unidades de bancos de dados em paralelo? Mais ainda pelo menos do que quando está no RAID?

Isso é tudo no Windows 2003 / SQL 2008.

    
por Mr. Flibble 28.04.2010 / 01:46

2 respostas

7

Ter os bancos de dados em fusos diferentes provavelmente será mais rápido se eles estiverem em uso ao mesmo tempo. Se eles experimentarem períodos ocupados que são deslocados uns dos outros, uma única matriz RAID funcionará mais rápido, já que as leituras de um único banco de dados serão distribuídas em várias unidades (o que nunca acontecerá se estiver em uma única unidade, é claro).

O RAID5 é muitas vezes um gargalo de desempenho para bancos de dados devido ao seu desempenho de gravação. Se a sua matriz for uma matriz de 5 unidades, então todos os blocos gravados em disco provavelmente resultarão em três leituras seguidas pela paridade calc seguida de duas gravações (o bloco atualizado e o bloco de paridade atualizado) e todas as páginas atualizadas em seu O banco de dados resultará em pelo menos duas gravações de bloco: uma para o log de transações e outra para o arquivo de dados. As coisas serão um pouco melhores se você estiver rodando 4 drives plus hot spare, mas não muito. É por isso que o RAID1 + 0 é normalmente usado em vez do RAID5 para o trabalho de banco de dados (ou, às vezes, o RAID1E ou similar, que, quando disponível, tem desempenho semelhante).

O fato de que tudo é gravado no log de transações, bem como no arquivo de dados, é um fato importante. Você pode acelerar as operações de inserção / atualização massivamente tendo o (s) arquivo (s) de log e o (s) arquivo (s) de dados em unidades diferentes (e assim em um conjunto diferente de cabeças). Você provavelmente seria melhor organizar os bancos de dados em torno das cinco unidades, de modo que cada um tenha seu log e dados em unidades diferentes. O modo como você organiza isso dependerá da atividade esperada de cada banco de dados - você quer evitar que dois bancos de dados que estejam ocupados ao mesmo tempo estejam nas mesmas unidades, se possível.

Outra opção seria ter dois arrays RAID1 separados - um para todos os arquivos de log e um para os arquivos de dados. Eu suspeito que você vai ver um desempenho visivelmente melhor deste tan de ter cada DB (ambos os dados + log) em sua própria unidade única. Ou se você realmente não se preocupa com redundância (por exemplo, se seus espelhos são mantidos usando um arranjo de replicação / cluster que significa que você perderá muito poucas transações se os DBs principais morrerem) você poderia ter um par de RAID0s em vez de um pouco de velocidade extra.

Se um pouco de dinheiro para três unidades não for um problema e sua máquina tiver espaço para mais unidades, você poderá ter um par de arrays RAID10 (uma para dados, uma para logs, 8 unidades no total) e sua redundância sem o problema de desempenho de gravação RAID5, você tem o aumento de desempenho de gravação de ter os logs e dados em unidades separadas e o potencial impulso de leitura + gravação visto frequentemente com RAID10 (RAID10 de 4 unidades com um bom controlador tende a ter desempenho semelhante a 2 drive RAID0). Alguns de nossos bancos de dados de produção estão nesse arranjo e posso dizer que eles voam em comparação com outros arranjos que testei. Se você tem um controlador de hardware suportando RAID1E (ele usa nomes diferentes em controladores diferentes, infelizmente), então você poderia fazer o mesmo com dois arrays RAID1E de 3 unidades, precisando apenas de 6 unidades.

    
por 28.04.2010 / 02:19
1

O RAID 5 tem um desempenho de gravação muito ruim. Você provavelmente está melhor com o RAID 10 para bancos de dados muito usados.

    
por 28.04.2010 / 01:59