Outros já ofereceram conselhos, vou acrescentar algumas sugestões:
-
Todo servidor deve ter dois caminhos fisicamente distintos para armazenamento. Isso significa dois HBAs por servidor, passando por dois conjuntos completamente separados de comutadores SAN em duas malhas separadas, para dois controladores de back-end diferentes. Não economize e compre um HBA de porta dupla - que oferece largura de banda, mas não resiliência. (Se possível, tenha as fibras usando diferentes rotas físicas através da sala do servidor).
-
Multipath tudo. Pelo menos dois caminhos, adicione mais se você precisar de um melhor desempenho.
-
Use aliases para HBAs e controladores. Zona para esses aliases. Stick com zoneamento único iniciador. É o menos provável que cause problemas se você não entender completamente as implicações. Nomeie suas zonas com base no que elas contêm. Como opção, inclua um agrupamento lógico no nome da zona. ('por exemplo, oracle_clus2_hostname_HBA0_array_port4)
-
Pergunte sobre desempenho, espere receber 'não sei' ou 'muito!' digite respostas. É raro obter uma boa resposta sobre esse tipo de pergunta, mas é importante em um ambiente de armazenamento consolidado. O ponto principal da consolidação é obter um melhor desempenho de pico e uma média mais baixa - isso se ajusta à maioria das cargas de trabalho, porque as operações de 'usuário enfrentando' se preocupam mais com uma única resposta de transação (e não se preocupam com isso).
-
Não fique preso a tipos de RAID - isso pode ser um pouco falso. O armazenamento em cache faz mais diferença que os tipos de RAID, e o armazenamento em cache afeta diferentes tipos de carga de trabalho de diferentes maneiras.
Um IO lido está sob uma restrição de tempo difícil - para completar a leitura para o host, o array tem para buscar o bloco do disco. Caches pré-buscam e tentam adivinhar o que será necessário em seguida - o IO de leitura tão previsível é mais rápido do que aleatório.
O Write IO está sob uma restrição de tempo flexível - você pode gravar o cache e reconhecer a gravação no host - e desdobrar no disco posteriormente. Isso significa que você pode fazer coisas interessantes, como escrever gravações de coalescência e de faixa completa, e reduzir significativamente a "sobrecarga" do tipo de RAID. Com uma carga de trabalho sequencial, como logs / diários, o RAID-5 pode, na verdade, ser mais rápido que o RAID 1 + 0 como resultado.
O termo geralmente usado é 'write penalty' - quantas operações de disco são necessárias para 'completar' uma gravação [1].
- RAID 0, a penalidade de gravação é 1 - um IO de gravação necessário por gravação recebida.
- RAID 1 - você escreve para ambos os espelhos, então escreva uma penalidade de 2.
- RAID 5 - você precisa escrever para um fuso, ler / atualizar paridade. A penalidade de gravação é de 4.
- RAID 6 - como o raid 5, mas com dois cálculos de paridade, então atrai uma penalidade de escrita de 6.
Isso significa uma carga de trabalho de gravação aleatória pura - você precisa dividir seus IOPs utilizáveis teóricos por fuso (~ 150 para FC, ~ 75 para SATA) por essa penalidade de gravação.
Para todos os tipos de ataque, a 'penalidade de leitura' é basicamente a mesma - você precisa completar uma leitura em algum lugar da sua matriz. Você obtém uma pequena vantagem do RAID1, porque ele pode ser lido de dois locais diferentes e ver qual responde mais rápido, mas não há muito nele - os discos ainda precisam girar e procurar.
Com o coalescing de tarjas - que a maioria das matrizes pode fazer com gravações sequenciais - você pode reduzir a penalidade de gravação. Se você tem toda uma faixa de paridade para o seu RAID 5, por exemplo - você não precisa ler de volta a paridade, você pode calcular a partir do que está no seu cache. Nesse cenário, escreva penalidade cai para 1 + 1 / Raidgroup tamanho assim para um 4 + 1 grupo RAID 5: 1,25. O que significa que é melhor que o RAID 1 + 0 para cargas de trabalho de gravação serial sustentada. (por exemplo, registros do banco de dados)
Resiliência - você tem alguns cálculos diferentes para fazer, mas eu ainda digo - não fique muito preso nos tipos de RAID - você terá falhas de composição se tiver uma linha de tempo suficiente Independentemente disso, então aqui não há atenuação precisando de uma solução de recuperação decente. Existem diferenças de resiliência entre os tipos de RAID, mas o único que você definitivamente não deve usar é o RAID0 :).
(Outros tipos de RAID personalizados existem. Por exemplo, a NetApp usa algo que chamam de RAID-DP para paridade dupla. É basicamente RAID-4 com um eixo de paridade extra, mas devido ao modo como o NetApps usa seu sistema de arquivos "WAFL" pena de gravação muito baixa)