Escolhendo uma tecnologia SAN para centenas de servidores Web de VM

15

O problema

Temos um problema com o desempenho em uma plataforma existente, então estou recorrendo à mente ativa para uma segunda opinião sobre isso. O problema de desempenho até agora está relacionado à IOPS e não à taxa de transferência.

O cenário

Um centro de 16 hosts, cada um com 64 GB de RAM. (É um Dell M1000e w / M610s, mas isso provavelmente não é relevante) 500 VMs, todos os servidores da web (ou tecnologias da web associadas, como MySQL, balanceadores de carga, etc), cerca de 90% são Linux e o restante do Windows. O hipervisor é o VMWare vSphere. Precisamos fornecer o host HA, então o armazenamento local está fora. Como tal, os anfitriões apenas têm um cartão SD para arrancar.

Um pouco do pensamento de fundo

No momento, somos até seis hosts (o centro blade estará em capacidade máxima daqui a alguns anos com o crescimento atual) e estamos executando o iSCSI para um Dell MD3220i com MD1220 para expansão.

Possíveis opções que consideramos e pensamentos imediatos com elas:

  • Distribuindo as VMs pelos datastores do NFS e executando o armazenamento NFS que atende aos requisitos de desempenho de até um determinado número de VMs. O NFS parece mais barato de dimensionar, além de ter sido abstraído um pouco mais do que o armazenamento em nível de bloco para que possamos movê-lo conforme necessário.
  • Adicionando mais controladores / destinos MD3220i. No entanto, estamos preocupados com o fato de que isso pode ter um efeito negativo de alguma forma em como o VMWare lida com muitos destinos.
  • Troca de todos os discos do SAS Nearline para o SSD. Isso deve resolver completamente o problema de IOPS, mas tem o efeito colateral óbvio de reduzir nossa capacidade de armazenamento. Também ainda é muito caro.
  • O vSphere 5 tem um appliance de armazenamento. Nós não pesquisamos tanto assim, mas deve funcionar bem?

A questão

Que tipo de armazenamento você usaria por baixo de tudo isso? Ele não precisaria ser dimensionado para outro centro blade, precisaria apenas fornecer um desempenho relativamente bom para todas essas VMs.

Não estou procurando as respostas "Compre SAN x porque é o melhor". Estou à procura de ideias sobre as várias tecnologias SAN (iSCSI, FC, FCoE, InfiniBand, NFS, etc.), diferentes tipos de armazenamento (SATA, SAS, SSD) e metodologias para lidar com armazenamento para centenas de VMs (Consolidação, Separação , Sharding, etc).

Absolutamente qualquer pensamento, links, guias, ponteiros etc. são bem-vindos. Eu também adoraria ouvir pensamentos sobre as opções acima que já consideramos.

Muito obrigado antecipadamente por qualquer entrada!

Atualização de 5 de março '12

Algumas respostas fantásticas até agora, muito obrigado a todos!

Indo pelas respostas a esta pergunta até agora, estou começando a pensar que a seguinte rota é o caminho:

  • Programe o armazenamento disponível para o cluster VMWare e coloque os discos da VM em um armazenamento adequado para suas cargas de trabalho.
  • Use potencialmente uma SAN capaz de gerenciar o posicionamento dos dados em um armazenamento adequado de forma automática.
  • O Infiniband parece ser o mais econômico para obter a largura de banda necessária com os hosts em plena capacidade.

Definitivamente, parece que valeria a pena utilizar os serviços de pré-venda de um grande fornecedor de SAN para obter uma visão do cenário.

Vou continuar a considerar este problema por um tempo. Nesse meio tempo qualquer mais aconselhar gratamente recebido!

    
por SimonJGreen 03.03.2012 / 19:42

5 respostas

13

A chave para uma boa plataforma de armazenamento VMWare é entender que tipo de carga o VMWare gera.

  • Primeiro, como você hospeda muitos servidores, a carga de trabalho é geralmente aleatória. Há muitos fluxos de E / S acontecendo ao mesmo tempo, e muitos deles não podem ser pré-armazenados em cache com êxito.
  • Em segundo lugar, é variável. Durante as operações normais, você pode ver 70% de leituras aleatórias, no entanto, no instante em que você decide mover uma VM para um novo armazenamento de dados ou algo assim, você verá uma gravação sequencial de 60 GB. Se você não for cuidadoso com a arquitetura, isso pode prejudicar a capacidade do armazenamento de manipular o IO normal.
  • Em terceiro lugar, uma pequena parte do seu ambiente geralmente gera uma grande parte da carga de trabalho de armazenamento.

A melhor maneira de abordar a criação de armazenamento para uma plataforma VMWare é começar com os fundamentos.

  • Você precisa da capacidade de atender a uma grande carga de trabalho de leitura aleatória, o que significa unidades menores e mais rápidas, bem como, possivelmente, SSD. A maioria dos sistemas de armazenamento modernos permite que você mova dados automaticamente, dependendo de como eles são acessados. Se você vai usar o SSD, você quer garantir que é assim que você o usa. Deveria estar lá como uma forma de reduzir gradualmente os pontos quentes. Quer você use SSD ou não, é vantajoso colocar todo o trabalho em todas as unidades, então algo com um tipo de armazenamento em pool seria benéfico.
  • Você precisa da capacidade de atender gravações grandes e intermitentes, que não se importam tanto com a velocidade do fuso das unidades subjacentes, mas se preocupa com a eficiência da pilha do controlador e o tamanho do cache. Se você tiver armazenado em cache espelhado (o que não é opcional, a menos que esteja disposto a voltar aos backups sempre que houver uma falha no controlador), a largura de banda entre os dois caches usados para espelhamento será o gargalo para gravações sequenciais grandes. Assegure-se de que o que você obtiver tenha uma interconexão do controlador de alta velocidade (ou cluster) para o cache de gravação. Faça o seu melhor para obter uma rede de front end de alta velocidade com tantas portas quanto possível, mantendo-se realista no preço. A chave para um bom desempenho do front-end é colocar sua carga de armazenamento em todos os recursos front-end possíveis.
  • Você pode reduzir custos seriamente tendo um nível para armazenamento de baixa prioridade, bem como provisionamento thin. Se o seu sistema não estiver migrando automaticamente blocos individuais para unidades grandes / lentas baratas (como nearline SAS ou SATA com tamanhos de 7200 RPM e 2TB +), tente fazê-lo manualmente. Grandes unidades lentas são excelentes alvos para arquivos, backups, alguns sistemas de arquivos e até mesmo servidores com baixo uso.
  • Insista em que o armazenamento seja integrado ao VAAI para que o VMWare possa desfazer a alocação de partes não utilizadas das VMs, bem como dos datastores.
por 05.03.2012 / 15:56
9

Minhas grandes implementações de VMWare são NFS e iSCSI acima de 10 GbE. Isso significa HBA de 10 GbE de porta dupla nos servidores, bem como o cabeçote de armazenamento. Sou fã de armazenamento baseado em ZFS para isso. No meu caso, ele está envolvido em NexentaStor comercial, mas alguns optam por rolar por conta própria.

Os principais recursos do armazenamento baseado em ZFS neste contexto seriam a funcionalidade de armazenamento em cache do ARC / L2ARC, permitindo o armazenamento em camadas. Os dados mais ativos encontrariam seu caminho no armazenamento de RAM e SSD como segundo nível. Executar seu pool de armazenamento principal em unidades SAS de 10k ou 15k também seria benéfico.

Este é outro caso de criar perfis e entender sua carga de trabalho. Trabalhe com alguém que possa analisar seus padrões de armazenamento e ajudá-lo a planejar. Do lado do ZFS / NexentaStor, gosto de PogoStorage . Sem esse tipo de percepção, o método de transporte (FC, FCoE, iSCSI, NFS) pode não importar. Você tem algum monitoramento da sua infraestrutura existente? Como é a atividade de I / O agora?

    
por 04.03.2012 / 00:39
8

A questão chave é: "onde está o gargalo?" Você menciona IOPS, mas isso significa que você identificou positivamente os próprios discos como sendo o gargalo, ou simplesmente que as portas da SAN não estão sendo executadas na capacidade, ou que as VMs estão muito mais próximas do que você gostaria?

Se você definitivamente identificou que os discos são o fator limitante, então mude para NFS ou infiniband ou o que não for para agachar seu desempenho - você precisa de SSDs (ou pelo menos armazenamento em camadas com SSDs no mix) ou um pacote inteiro a mais fusos (uma solução que se tornou muito mais cara recentemente, desde que a produção de motor de passo do mundo foi lavada no oceano).

Se você não tem 100% de certeza onde o gargalo realmente está, no entanto, você precisa achar isso primeiro - trocar partes de sua infraestrutura de armazenamento mais ou menos aleatoriamente com base nos palpites de outras pessoas aqui não é vai ser muito eficaz (especialmente considerando o quão caras serão as mudanças para implementar).

    
por 04.03.2012 / 00:18
4

Se você quiser iscsi ou nfs, então você precisará de algumas portas de 10/40 gb ou infiniband, que é a opção mais barata, mas as soluções de armazenamento nativas para infiniband parecem ser limitadas. A questão será o módulo para o bladecenter quais são suas opções, geralmente 8gb fc ou 10 \ 1gbe e talvez infiniband. Note que o infiniband pode ser usado com o nfs e nada vem fechado para ele em termos de performance \ price. se o centro da lâmina suportar qdr infiniband eu faria isso com um host linux de algum tipo com um qdr infiniband tca via nfs. Aqui está um bom link descrevendo esse link

mas se o bladecenter puder suportar qdr infiniband e você puder pagar o infiniband nativo, então essa é a solução que você deve escolher.

Atualmente você pode obter comutadores de 40gb muito mais barato (isso é um pensamento estranho), então 10gb switches, mas eu duvido que o centro da lâmina suporte isso.

    
por 03.03.2012 / 20:14
-3

O armazenamento local está fora? Estou muito feliz com a taxa de transferência de gravação em meus RAID 5s locais - espelhada com o DRBD8 para o parceiro de cluster da minha máquina XEN ... (mas isso é "não suportado", é claro).

Além disso, tenho certeza de que mySQL é o seu problema de desempenho (nunca vi um banco de dados pior). Tente afiná-lo e / ou tente colocar todo o DB no cache do sistema de arquivos (para acesso de leitura) ...

    
por 04.03.2012 / 22:40