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!
fonte
Respostas:
A chave para uma boa plataforma de armazenamento VMWare é entender que tipo de carga o VMWare gera.
A melhor maneira de abordar a criação de armazenamento para uma plataforma VMWare é começar com os fundamentos.
fonte
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?
fonte
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).
fonte
esxtop
todos 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.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.
fonte
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) ...
fonte