Escolhendo uma tecnologia SAN para centenas de servidores Web VM

15

O problema

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

O cenário

Um centro blade de 16 hosts, cada um com 64 GB de RAM. (É um Dell M1000e com M610s, mas 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 Windows. O hipervisor é o VMWare vSphere. Precisamos fornecer HA de host, para que o armazenamento local esteja fora. Como tal, os hosts apenas têm um cartão SD para inicializar.

Um pouco de pensamento de fundo

No momento, temos até 6 hosts (o blade center estará em plena capacidade dentro de um ano com o crescimento atual) e estamos executando o iSCSI em um Dell MD3220i com MD1220 para expansão.

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

  • Espalhar as VMs pelos datastores NFS e executar o armazenamento NFS que atenda aos requisitos de desempenho para até um determinado número de VMs. O NFS parece mais barato em escala, 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. Estamos preocupados, porém, que isso possa ter um efeito negativo de alguma forma na maneira como o VMWare lida com muitos destinos.
  • Trocar todos os discos do Nearline SAS para 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 possui um dispositivo de armazenamento. Ainda não pesquisamos muito, mas deve funcionar bem?

A questão

Que tipo de armazenamento você executaria por trás de tudo isso? Ele não precisaria ser escalado para outro centro blade, apenas forneceria um desempenho relativamente bom para todas essas VMs.

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

Absolutamente quaisquer pensamentos, links, guias, indicadores etc. são bem-vindos. Também adoraria ouvir pensamentos sobre as opções acima que já consideramos.

Muito obrigado antecipadamente por qualquer entrada!

Atualização 5 de março '12

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

Seguindo as respostas a essa pergunta até agora, estou começando a pensar que a seguinte rota é a seguinte:

  • Coloque o armazenamento disponível em camadas no cluster VMWare e coloque os discos da VM no armazenamento adequado para suas cargas de trabalho.
  • Potencialmente, use uma SAN capaz de gerenciar a colocação de dados no armazenamento adequado automaticamente.
  • O Infiniband parece ser o mais econômico para obter a largura de banda necessária com os hosts em capacidade total.

Definitivamente, parece que valeria a pena usar os serviços de pré-venda de um grande fornecedor de SAN para entender o cenário.

Vou continuar a considerar esse problema por um tempo. Enquanto isso, mais conselhos recebidos com gratidão!

SimonJGreen
fonte
A Mellanox também possui um negócio de switch / nic de 40gbe, que é bastante extrodinário, chegando muito perto da infinita banda em termos de $ / performance. Nesse ponto, consideraria uma nexenta com duas placas de 40 gbe como uma opção viável.
tony roth

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. Existem muitos fluxos de E / S acontecendo ao mesmo tempo e muitos deles não podem ser armazenados em cache com êxito.
  • Segundo, é variável. Durante as operações normais, você pode ver 70% de leituras aleatórias; no entanto, no instante em que você decidir mover uma VM para um novo armazenamento de dados ou algo assim, verá uma gravação sequencial massiva de 60 GB. Se você não tomar cuidado com a arquitetura, isso pode prejudicar a capacidade do seu armazenamento de lidar com E / S normais.
  • Terceiro, 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, além de possivelmente SSD. A maioria dos sistemas de armazenamento modernos permite que você mova os dados automaticamente, dependendo de como eles são acessados. Se você vai usar o SSD, deseja garantir que seja assim que o usa. Deve estar lá como uma maneira de reduzir gradualmente os pontos quentes. Quer você use ou não o SSD, é benéfico poder colocar todo o trabalho em todas as unidades; portanto, algo com um tipo de pool de armazenamento seria benéfico.
  • Você precisa da capacidade de atender gravações grandes intermitentes, que não se importam tanto com a velocidade do eixo das unidades subjacentes, mas se preocupam com a eficiência da pilha do controlador e o tamanho do cache. Se você tiver armazenado em cache o espelhamento (o que não é opcional, a menos que você deseje voltar aos backups sempre que houver uma falha no controlador), a largura de banda entre os dois caches usados ​​para o espelhamento será seu gargalo para grandes gravações seqüenciais, geralmente. Certifique-se de que o que você obtém tenha uma interconexão de controlador de alta velocidade (ou cluster) para armazenamento em cache de gravação. Faça o seu melhor para obter uma rede front-end de alta velocidade com o máximo de portas possível, mantendo o preço realista. A chave para um bom desempenho de front-end é colocar sua carga de armazenamento no maior número possível de recursos de front-end.
  • Você pode reduzir seriamente os custos com uma camada para armazenamento de baixa prioridade, além de provisionamento dinâmico. Se o seu sistema não estiver migrando automaticamente blocos individuais para unidades grandes / lentas baratas (como SAS ou SATA nearline com tamanhos de 7200 RPM e 2 TB +), tente fazê-lo manualmente. Grandes discos lentos são excelentes alvos para arquivos, backups, alguns sistemas de arquivos e até servidores com baixo uso.
  • Insista em que o armazenamento seja VAAI integrado para que o VMWare possa desalocar partes não utilizadas das VMs, bem como os datastores.
Manjericão
fonte
Alguns excelentes comentários, obrigado. Definitivamente, algo para ir e refletir.
SimonJGreen
10

Minhas grandes implantações do VMWare são NFS e iSCSI acima de 10GbE. Isso significa HBAs de 10GbE de porta dupla nos servidores e também no cabeçote de armazenamento. Sou fã do armazenamento baseado em ZFS para isso. No meu caso, ele envolve o NexentaStor comercial , mas alguns optam por lançar seus próprios.

Os principais recursos do armazenamento baseado em ZFS nesse 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 em RAM e SSD como uma segunda camada. Executar o pool de armazenamento principal de unidades SAS de 10 ou 15k também seria benéfico.

Este é outro caso de criação de perfil e compreensão de sua carga de trabalho. Trabalhe com alguém que possa analisar seus padrões de armazenamento e ajudá-lo a planejar. No lado do ZFS / NexentaStor, eu gosto do PogoStorage . Sem esse tipo de insight, o método de transporte (FC, FCoE, iSCSI, NFS) pode não ser importante. Você tem algum monitoramento de sua infraestrutura existente? Como é a atividade de E / S agora?

ewwhite
fonte
Qual o tamanho dessas implantações por curiosidade? E que tipo de carga de trabalho?
SimonJGreen
Vários hosts. A Maior possui 90 VMs de uso misto, incluindo Linux, Windows infra (File / AD / Exchange), VDI e sistemas de banco de dados. A RAM nas unidades de armazenamento é alta (96 GB +) e eu tenho 1,2 TB de cache de leitura L2ARC nos SSDs corporativos.
ewwhite
Você terá que perdoar minha ignorância aqui e, para ficar claro, não duvido que esteja fazendo a coisa certa. Por que você tem tanta memória RAM nas unidades de armazenamento? É usado para buffers?
SimonJGreen
2
Ah, acabei de ler sobre o ZFS e o ARC / L2ARC. Isso é incrível molho :)
SimonJGreen
8

A questão principal é: "onde está o gargalo?" Você menciona o IOPS, mas isso significa que você identificou positivamente os próprios discos como gargalo, ou simplesmente que as portas SAN não estão funcionando com capacidade ou que as VMs estão em muito mais iowait do que você gostaria?

Se você definitivamente identificou que os discos são o fator limitante, mude para NFS ou infinibanda ou o que não for necessário para o seu desempenho - você precisa de SSDs (ou pelo menos armazenamento em camadas com SSDs no mix) ou um conjunto inteiro de mais eixos (uma solução que se tornou muito mais cara recentemente desde que a produção de motores de passo do mundo foi lançada no oceano).

Porém, se você não tem 100% de certeza de onde está o gargalo, primeiro precisa descobrir isso - trocar partes de sua infraestrutura de armazenamento mais ou menos aleatoriamente com base nas suposições de outras pessoas aqui. muito eficaz (especialmente considerando o quão caras as alterações serão implementadas).

mulher
fonte
absolutamente correto, sempre assumo que a pessoa que postou a pergunta fez sua lição de casa. Mas com isso dito, depois de fazer algumas consultas de desempenho, desisto e digo que adiciono mais ou mais unidades e mais de 98% do problema está resolvido. Os outros 2% são supercomprometidos além da crença.
tony roth
4
"Sempre presumo que a pessoa que postou a pergunta fez sua lição de casa" - suposição baaaaaad ...
womble
Essa resposta é perfeita. Em muitas ocasiões, decidi resolver um problema como esse e tive uma noção preconcebida de qual era o problema. Nove em cada dez termina em lágrimas quando descobri que simplesmente não sabia o suficiente sobre o problema. Crie um perfil cuidadoso, determine qual é o gargalo e prossiga. Você pode pedir ajuda à "mente colméia" ou pode procurar um fornecedor de SAN para obter assistência. Além disso, se você estiver com problemas para criar um perfil, a NetApp e / ou a EMC terão prazer em ajudá-lo a descobrir suas estatísticas e a dimensionar uma solução para você. Ambos têm um bom software para fazer isso.
precisa
Eu estava baseando esse diagnóstico na saída combinada de esxtoptodos os hosts (mostrando a utilização do disco), pegando o total de CMD / s e comparando-o aos benchmarks da SAN que usamos. O total de CMD / s é consistentemente alto ao considerar os resultados do benchmark como um título. Definitivamente, os SSDs parecem ser uma boa opção do ponto de vista técnico, mas são terrivelmente caros ainda GB / £. Pode ser uma solução, porém, com armazenamento em camadas. Em uma nota lateral / FYI, de acordo com um comunicado de imprensa recente que recebi a WD, voltamos aos níveis de produção em discos.
SimonJGreen
Como foi feito o benchmark na SAN? O fator limitante ainda pode ser a rede, em oposição aos próprios discos. Porém, pelo menos você tem um ponto de referência para começar a jogar com coisas diferentes para acelerar as coisas, o que é crucialmente importante.
Womble
4

Se você deseja iscsi ou nfs, então, minimamente, algumas portas de 10/40 gb ou infinita de banda, que é a opção mais barata, mas as soluções de armazenamento nativo para infinita 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. Observe que a infinibanda pode ser usada com o nfs e nada é fechado em termos de desempenho \ preço. se o blade center 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 este http://www.zfsbuild.com/2010/04/15/why-we-chose-infiniband-instead-of-10gige

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

Atualmente, você pode obter switches de 40gbe muito mais baratos (isso é um pensamento estranho) e, em seguida, switches de 10gbe, mas duvido que o seu blade center seja compatível.

Tony Roth
fonte
Estas são as opções de conectividade do blade center: dell.com/us/enterprise/p/poweredge-m1000e/pd A Infiniband parece boa e, nessa quantidade de VMs convidadas, o custo é justificável. O que você faria do lado da SAN?
SimonJGreen
o que a dell tem que suporta infiniband deve ser sua solução san.
tony roth
não parece que a dell tem algum armazenamento baseado em IB, então eu acho que essa opção pode ser uma estratégia nesse caso. Tanto a Sun quanto a SGI têm SANs baseadas em IB, não sabem quais são os custos.
tony roth
Eles não oferecem armazenamento IB, mas oferecem conectividade IB. Não tenho escrúpulos em usar outro fornecedor de armazenamento, não amamos a Dell a esse respeito.
SimonJGreen
1
então, sun ou sgi terão uma solução para você, sem saber quais são os modelos atuais.
tony roth
-3

O armazenamento local está esgotado? Estou bastante satisfeito com a taxa de transferência de gravação no meu RAID 5s local - espelhado com DRBD8 para o parceiro de cluster da minha máquina XEN ... (mas isso "não é suportado", é claro).

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

Nils
fonte
O OP possui uma solução VMWare existente e está sendo executado com hosts sem disco. O armazenamento local não faz sentido.
ewwhite
O armazenamento local também pode incluir o uso de lâminas de armazenamento local. Mas o VMWare não suporta isso, suponho.
Nils
Não acredito que a Dell ofereça blades de armazenamento local - e não tenho certeza de ter visto aqueles com mais alguém. Eu já vi lâminas de unidade que se conectam a uma única lâmina, não oferecem armazenamento para ninguém na lâmina. Você precisaria de uma interconexão para isso, seria essencialmente uma SAN local do chassi, certo?
mfinni
Desculpe @Nils, tenho certeza que você não leu a pergunta corretamente.
SimonJGreen
Nils - olhando para o D2200sb: "O backplane do gabinete fornece uma conexão PCI Express ao blade de servidor c-Class adjacente e permite acesso de armazenamento de alto desempenho sem cabos adicionais. ... Use o VSA (Virtual SAN Appliance Software) da HP P4000 para transforme o D2200sb em uma SAN iSCSI para uso por todos os servidores no gabinete e em qualquer servidor da rede. "
mfinni