configuração lowcost servidor de armazenamento de imagem com matriz SSD 24x para obter IOPS alta?

5

Eu quero construir, vamos chamá-lo de Ra * san de baixo custo, que hospedaria em nosso site social as imagens (muitos milhões). Temos 5 tamanhos de cada foto com 3 KB, 7 KB, 15 KB, 25 KB e 80 KB por imagem.

Minha idéia é criar um servidor com SSDs de 240 GB e 240 GB para o consumidor no Raid 6, o que me dará cerca de 5 TB de espaço em disco para o armazenamento de fotos. Para ter HA eu posso adicionar um segundo e usar o drdb.

Pretendo obter acima de 150.000 IOPS (leitura aleatória em 4K).

Como na maioria das vezes, acessamos somente leitura e raramente excluímos fotos que eu acho que são compatíveis com o MLC SSD do consumidor. Eu leio muitas resenhas de resistência e não vejo um problema desde que não reescrevemos as células.

O que você acha da minha ideia? - Não tenho certeza entre Raid 6 ou Raid 10 (mais IOPS, custo SSD). - É ext4 OK para o sistema de arquivos - Você usaria 1 ou 2 controladores Raid, com Extender Backplane

Se alguém percebeu algo parecido, ficaria feliz em receber os números do Real World.

UPDATE

Eu comprei 12 (mais alguns sobressalentes). O SSD SSD SAS de 480 GB da OCZ Talos será colocado em um DAS de 12 compartimentos e conectado a um Controlador PERC H800 (1GB NV Cache, fabricado pela LSI com fastpath), planejo setup Raid 50 com ext4. Se alguém estiver se perguntando sobre alguns benchmarks, deixe-me saber o que você gostaria de ver.

    
por Nenad 12.10.2011 / 18:03

7 respostas

6

Eu consideraria uma solução híbrida que poderia ser obtida com o OpenSolaris, SolarisExp 11, OpenIndiana ou Nexenta. O pool híbrido seria muito menos dispendioso, e com alguns milhares de dólares em RAM, você terá seus 150k + IOPS com discos giratórios na maioria das vezes normais. Na Nexenta, temos muitos, muitos clientes que fazem exatamente isso. O ZFS é um sistema de arquivos robusto e, com RAM e / ou SSDs suficientes para armazenamento em cache adicional de leitura / gravação, você pode ter uma solução muito robusta a um custo relativamente baixo. Com o Nexenta Core, que é comunidade, você ganha 18TB sem nenhum custo. É claro que uma nova versão do OpenIndiana permitiria muitas funcionalidades iguais. Adicione a esses snapshots, clonagem e replicação o envio / recebimento do ZFS e você poderá criar uma SAN que proporcionará a EMC uma corrida pelo seu dinheiro a um custo muito menor. Muitos SSDs são bons, mas existem outras opções, algumas não são ruins.

    
por 13.10.2011 / 01:58
7

Use o RAID6 sobre o RAID10. Para principalmente cargas de E / S baseadas em leitura, a taxa de transferência deve ser semelhante quando a matriz não é degradada, você obtém melhor redundância ( qualquer duas unidades podem falhar ao mesmo tempo com R6, R10 não pode sobreviver se ambas unidades com falha estão na mesma perna (portanto, só podemos sobreviver a quatro das seis combinações de falhas de duas unidades em uma matriz de quatro unidades, não tenho certeza de que essa escala de 4/6 é dimensionada para matrizes maiores)) e você obtém um tamanho de matriz utilizável maior, a menos que organize as unidades em sub-matrizes de 4 drives (veja abaixo).

O seu cálculo de espaço está esgotado, certamente para o RAID10. 24 * 240Gb é 5760Gb sem redundância (RAID0 ou JBOD). Com o RAID10 você obterá apenas 2880Gb, pois há (ussually) duas cópias exatas de cada bloco. Se você usar todas as unidades como uma grande matriz RAID6, receberá 5Tb (5280Gb, duas unidades de informações de paridade espalhadas pela matriz), mas eu pessoalmente seria mais paranóico e criaria matrizes RAID6 menores e as uniria com RAID0 ou JBOD - Dessa forma, você terá tempos de reconstrução mais curtos quando as unidades forem substituídas e você poderá sobreviver a mais unidades que falharem em muitos casos (duas unidades por perna podem morrer, em vez de duas unidades do total 24, sem a matriz se tornar inútil). Com quatro unidades por perna, você obtém a mesma quantidade de espaço que o RAID10. Quatro matrizes de 6 drives podem ser um bom compromisso (4 * 4 * 240 = espaço utilizável de 3840 Gb) ou três matrizes de 8 drives (3 * 6 * 240 = espaço útil de 4320 Gb).

Com relação aos controladores: estes podem ser um ponto único de falha para o RAID. Se o controlador morrer, você perderá todas as unidades anexadas a ele de uma só vez. Embora essas falhas sejam bastante raras (a corrupção aleatória é mais comum), não há mal em tomar cuidado para reduzir o impacto caso isso aconteça com você. Se você usar o RAID10, certifique-se de que nenhum par de unidades esteja no mesmo controlador (o que significa ter pelo menos dois). Se a divisão em arrays RAID-6 de 4 unidades usar quatro controladores e tiver uma unidade ou um array determinado em cada um deles. Isso, obviamente, pressupõe que você esteja usando software RAID e controladores simples, o que pode ser improvável (você está gastando muito em drives, você pode também obter alguns controladores RAID de hardware decentes para usá-los!).

Você também deve pensar em uma solução de backup se ainda não o fez. O RAID protegerá você de certas falhas de hardware, mas não de muitos erros humanos e outros possíveis problemas.

    
por 12.10.2011 / 20:19
4

Basta comprar dois cartões FusionIO Octal e espelhá-los - muito mais simples, muito mais rápido (pode ser um pouco mais caro no entanto).

    
por 12.10.2011 / 21:16
4

Respondendo a suas principais perguntas:

  1. RAID 6 vs. RAID 10: É quase certo que você não precisa se preocupar com IOPS se estiver usando SSDs como armazenamento primário.

  2. SLC vs. MLC: Existem diferenças mais sutis. Se você for usar o MLC, sugiro comprar a Intel. A série Intel 320 possui um contador SMART que você pode usar para rastrear a porcentagem do nível de desgaste e substituir a unidade antes que ela falhe.

No entanto, você pode querer olhar para o ZFS no Nexenta OS (ou possivelmente FreeBSD, sem ter certeza do status de desenvolvimento) se quiser usar SSDs para melhorar o desempenho de armazenamento de maneira confiável:

  1. O ZFS permite que você construa uma matriz "RAID-Z2" (semelhante a RAID-6) de discos convencionais que usam SSDs como cache de leitura massiva (L2ARC) e gravação (ZIL), permitindo obter o desempenho benefícios que você está procurando sem o custo de um array totalmente em Flash.

  2. Os blocos acessados com frequência serão lidos nos SSDs e os blocos usados com menor frequência ainda serão lidos do disco. Todas as gravações irão para o SSD primeiro e serão confirmadas no disco quando for conveniente para o array.

  3. Como você precisará de menos SSDs, você comprará dispositivos de maior qualidade e não terá o tipo de falha catastrófica que seria esperada se criar uma matriz RAID a partir de dispositivos MLC da classe de consumidor da OCZ. (ou qualquer outro).

  4. Mesmo que você não use dispositivos de alta qualidade, as conseqüências são menos graves. Se você usa dispositivos MLC para seu L2ARC do ZFS e eles falham, você ainda tem seus dados preservados no disco.

por 12.10.2011 / 18:51
3

150k IOPS com blocos de 4k é de 585 Mb / s. Certifique-se de que seu controlador e backplane possam lidar com isso. Quanto ao raid, lembre-se de que a proteção contra falhas de SSD é tudo o que você vai comprar. Uma falha do controlador (ou falha de memória, falha do processador ou falha de qualquer outro ponto único de falha no servidor) tornará seus dados inutilizáveis. Manter um outro servidor idêntico em sincronia seria necessário para evitar o tempo de inatividade e possivelmente ter que voltar à fita.

Este segundo servidor, se for preenchido com SSDs como o primeiro, pode torná-lo mais barato comprar um dispositivo de armazenamento centralizado que suporte SSD, se não houver pontos únicos de falha. Se, no entanto, você mantiver seu segundo servidor em sincronia usando discos rígidos reais, poderá salvar uma grande parte da alteração sem afetar o desempenho. Como a maior parte do IO é de leituras, a carga nas unidades será mínima, exceto durante os períodos em que o servidor principal estiver offline. Isso permitiria a você a flexibilidade financeira para comprar mais de um destino de replicação, e talvez até mesmo mover alguns sites externos em caso de falha do site.

    
por 12.10.2011 / 21:38
1

Você pode evitar o problema do controlador RAID usando o ZFS - ele pode detectar a corrupção silenciosa AND CORRECT (erros de dados que passam nas verificações ECC), que virtualmente nenhum controlador RAID é capaz de detectar (sim, mas não corrigir) e em unidades grandes (2 TB +), você pode esperar de 1 a 2 erros por ano, por unidade.

Infelizmente, se você quiser isso com o suporte do fornecedor, precisará usar o Solaris. Alguns fornecedores de Linux suportam isso, mas ainda é um produto beta (Dito isso, eu o uso no Linux e eu acho virtualmente impossível de matar, até extrair várias unidades de suas baias enquanto quente. Na pior das hipóteses, a matriz fecha para baixo - mas não há corrupção de dados)

    
por 09.07.2012 / 16:57
0

Fazer tudo isso como um único servidor com discos caros pode não ser a melhor resposta. Tendo em conta o seu orçamento e as suas necessidades, recomendo ver o STF. Foi concebido como um armazenamento de imagens para um dos maiores serviços de blog do Japão:

link

    
por 09.07.2012 / 18:03