O raid 5 é adequado para uma instalação do mysql?
Deixe-me explicar melhor a minha aplicação. Meu aplicativo é uma programação de soquete que se conectará ao dispositivo gps para receber a string gps e depois fará um processamento adicional. A programação do socket será em outro servidor e db em outro servidor. Portanto, durante o processamento posterior, é onde ele consultará o banco de dados. Então aqui eu acho que haverá muitos ritos de i/o. No mínimo, durante o processamento adicional, haverá um mínimo de 5 seleções e a inserção será no mínimo 1, mas às vezes pode ser no mínimo 4 ou mais e também várias atualizações. Espero ter sido mais claro agora.
Em um ambiente de leitura pesada e baixa gravação em um RAID5, eu deixaria isso para o orçamento, a tolerância e a pressão sanguínea de cada um.
Em um ambiente de gravação pesada, baixa leitura ou gravação pesada, leitura pesada, o RAID5 está simplesmente fora de questão . Isso é especialmente verdadeiro para o InnoDB. Pense na interação de tabela de um InnoDB.
InnoDBGenericName
Se você não usar innodb_file_per_table , OMG toda a atividade seria centrada em apenas um arquivo, ibdata1. O que está contido em ibdata1?
Mesmo as leituras no InnoDB tendem a cobrir as linhas com proteção MVCC para permitir leituras repetíveis e permitir que as transações atinjam as mesmas linhas que estão sendo lidas. Portanto, leituras e gravações produzem E/S de disco em ibdata1.
O uso de innodb_file_per_table pode aliviar parte da E/S do disco, separando as páginas Table Data e Index de ibdata1 em
.ibd
arquivos. No entanto, eu esperaria uma melhoria de desempenho perceptível apenas por um tempo limitado em um ambiente RAID5. A interação da tabela ainda é um pouco a mesma. Todo acesso a um.ibd
arquivo é sempre precedido por verificações de referência contra ibdata1.Embora a separação possa trazer mudanças significativas de desempenho, o RAID5 seria o que chamam no mundo da química, um reagente limitante. Quaisquer benefícios esperados das alterações de layout do InnoDB seriam neutralizados por fatores externos, como RAID5. A presença de arquivos de espaço de tabela extra devido a innodb_file_per_table não lhe dá nada ao longo do tempo, mas apenas a presença de arquivos de espaço de tabela extra.
MyISAMGenericName
Quando se trata de MyISAM, o RAID5 é bom em um ambiente de leitura pesada e baixa gravação, desde que você mapeie todas as tabelas temporárias (usando tmpdir ) para outro disco, separado do RAID5.
Lembre-se de que as páginas de dados da tabela residem em
.MYD
arquivos e suas páginas de índice correspondentes residem em.MYI
arquivos. Um ambiente de gravação pesada (INSERTs, UPDATEs, DELETEs) obrigará o RAID5 a desacelerar as coisas. Dado o comportamento de bloqueio do MyISAM (bloqueio completo da tabela com cada INSERT, UPDATE e DELETE) em um ambiente de gravação pesada, um fluxo constante de DML manterá o RAID5 bastante ocupado e fará com que os usuários do banco de dados entrem em um breve, mas irritante, time warp esperando por DML completar.Conclusão
Sob o capô, RAID5 tem as seguintes características para escrever com paridade
Se qualquer uma dessas etapas apresentar a menor intermitência, o conjunto RAID5 entrará em um breve, mas irritante, intervalo de tempo. Multiplique isso por um grande número de gravações e você sentirá isso no desempenho do banco de dados. Cada uma dessas etapas pode ser um ponto de falha. Por quê?
De acordo com a Wikipédia
Recomendação
O RAID10 não apenas fornece estabilidade, mas permite alguma margem de manobra na manutenção do disco sem derrubar o mysql na maioria dos casos. Quando os dados são espelhados, você sabe para onde os dados estão indo e de onde os dados estão sendo lidos.
ATUALIZAÇÃO 2012-02-14 17:55 EDT
Depois de ler sua atualização de pergunta, eu diria que vá com RAID10. A menos que você não se importe com longos períodos de inatividade, você não pode se dar ao luxo de fazer a manutenção do disco RAID5 em vez da sincronização do disco. Na verdade, quanto menores os discos que você distribuir no RAID10, mais rápido será o tempo de sincronização após a manutenção do disco RAID 10.
Outras coisas a considerar
Perguntas dessa natureza podem ser postadas no StackOverflow. Você também pode postar essas perguntas no DBA StackExchange.
Para acesso aleatório, o RAID 10 quase certamente será melhor que o RAID 5 (é claro, mais caro). Se o RAID 5 será rápido o suficiente para sua instalação? Isso vai ser muito difícil para qualquer outra pessoa responder.
O RAID 5 tem uma alta sobrecarga de gravação devido aos cálculos de paridade. Veja isso e isso . Então, qual carga de gravação você espera?
Então, você tem RAM suficiente para caber todo o banco de dados na memória? Em caso afirmativo, você não precisa se preocupar muito com a leitura de dados do disco?
Basicamente, não podemos responder a esta pergunta porque não temos detalhes suficientes...
Com a tecnologia atual, a gravação do RAID 5 é tão rápida quanto o RAID 10 (já que os dados de paridade são calculados de forma transparente) em geral. Somente quando o aplicativo é de gravação intensiva, o RAID 10 é melhor.
A leitura do RAID 5 é um pouco mais lenta que a do RAID 10 porque os dados nem sempre estão nos mesmos discos. Mas, novamente, depende do seu aplicativo que o buffer do disco/SO pode desempenhar um papel importante.
Então a pergunta é: depende. Suponho que, se você quiser usar o RAID 5, precisará de um tamanho de disco grande (se não, vá com o RAID 10). Em seguida, você pode querer analisar o padrão de consultas do MySQL para saber como ele lê/grava dados, como o cache é executado nesse caso ...
Por último, mas não menos importante, o RAID 5 é mais arriscado do que o RAID 10 em caso de falha de disco.
Mas primeiro vamos decidir quais critérios você está usando:
Se for prático, eu optaria por várias máquinas para recuperação de uma falha de unidade ou de sistema. (A Galera distribuída em 3 locais físicos é atualmente a melhor, na minha opinião.)
Uma máquina e você está preocupado com a falha de uma única unidade - RAID-5 e RAID-10 são praticamente os mesmos.
Preço por GB com algum tipo de RAID -- Claramente -5 vitórias.
Gravações -- Tanto -5 quanto -10 provavelmente farão 2 gravações físicas por gravação lógica. -5 precisa escrever o bloco e atualizar a paridade (usando XOR).
Dispersão de dados -- RAID striping (em -5 e -10) é melhor do que qualquer coisa relacionada ao layout manual de dados versus índice, file_per_table, etc.
O desempenho de leitura de unidades N na configuração -5 é virtualmente idêntico a unidades N em -10. (Nota: o mesmo N, mas -5 terá maior capacidade.)
Um controlador RAID de hardware com BBWC fornece gravações "instantâneas", sem risco de perda de dados em uma falha de energia. Então, independentemente dos outros fatores, eu voto nesse.
(Eu trabalhava para uma grande empresa de Internet na época em que eles tinham milhares de servidores MySQL RAID-5 com hardware BBWC. Nunca ouvi falar de um problema atribuído ao RAID-5.)