Máquinas virtuais e carga de trabalho pesada de E / S, isso é sempre saudável?

14

Eu já vi inúmeros serviços de virtualização (Azure) e produtos (vmware, kvm, hyperv) E / S e sistema paralisados ​​sob uma pesada carga de trabalho de E / S.

Minhas perguntas são:

  • É sempre sensato usar uma solução virtualizada ao executar cargas de trabalho pesadas de E / S?
  • Quais são as melhores práticas para esse tipo de coisa?
  • O que causa esses problemas, existem gargalos bem conhecidos do sistema ou é apenas uma questão de contenção excessiva?
caça bryan
fonte
Artigo de pesquisa relevante da IBM . Eu também consideraria o uso de contêineres, por exemplo, Docker. Do artigo: "Os contêineres também podem eliminar a distinção entre IaaS e servidores não virtualizados" bare metal "[...] porque oferecem o controle e o isolamento de VMs com o desempenho do bare metal".
Oleksii
1
1. Que pesquisa você fez? Esperamos que você faça uma quantidade significativa de pesquisa antes de perguntar. Mostrar sua pesquisa ajuda outras pessoas e ajuda as pessoas a fornecer respostas melhores. Consulte serverfault.com/help/how-to-ask e o centro de ajuda . 2. Esta questão é bastante ampla, possivelmente muito ampla para este site. O conselho padrão é: uma pergunta por pergunta. 3. Este site não é adequado para perguntas que exigem opinião. Você pode perguntar algo mais específico e mais objetivamente responsável do que "melhores práticas para esse tipo de coisa"?
DW
1. 10 anos de execução de várias máquinas virtuais, kvn, xen, virtualbox, amazon, azure, hyperv. Eu achei o desempenho geralmente desastroso, mas há tanto hype e capital de risco flutuando que a ortodoxia de TI atual é que tudo deve ser virtualizado. Pensando se era apenas eu, ou se outros profissionais de operações também estão sentindo um certo ceticismo.
Página
2
Se você achou o desempenho geralmente desastroso, depois de 10 anos trabalhando com a virtualização, é hora de aceitar a derrota como administrador e procurar algo que você possa fazer, quando o resto do mundo não tiver problemas em fazer isso. Sério, acho que você dramatiza aqui. Ou nunca percebe que a virtualização precisa comprar um subsistema de E / S decente. Sempre acho horrível quando as pessoas carregam mais de 10 máquinas virtuais - em um disco de mesa e reclamam da velocidade de IO.
TomTom
É mais uma observação. Nem sempre tenho uma palavra a dizer na solução escolhida. Eu sou ops. Eu apenas mantenho tudo o que é jogado para mim em funcionamento.
precisa

Respostas:

19

É sempre sensato usar uma solução virtualizada ao executar cargas de trabalho pesadas de E / S?

Sim, de fato, na verdade, para a maioria das organizações agora virtuais é o padrão e fazer coisas em caixas físicas é a exceção. Temos mais de 100k VMs de todas as formas e muitas delas são> 40k IOPS sem nenhum problema.

Quais são as melhores práticas para esse tipo de coisa?

O principal aqui não é se é virtualizado ou não - é entender bem as suas necessidades de IO e combinar os recursos de armazenamento virtual. É simples assim, se você sabe o que precisa / deseja e tem o orçamento adequado para isso com seus sistemas de armazenamento, a camada de virtualização realmente desempenha pouca ou nenhuma parte - a menos que você esteja realmente insistindo nas coisas, é claro (estou falando em dezenas / centenas de milhões de PIOs).

O que causa esses problemas, existem gargalos bem conhecidos do sistema ou é apenas uma questão de contenção excessiva?

Falta de compreensão ou tentativa de fazer muito com poucos recursos de armazenamento, é o que normalmente causa problemas às pessoas.

Chopper3
fonte
10

É sempre sensato usar uma solução virtualizada ao executar cargas de trabalho pesadas de E / S?

Um servidor de banco de dados que recebe regularmente 1 GB / segundo de E / S aleatória? Tenha um aqui.

Ou um servidor de arquivos virtual que entrega até 600mb / segundo para um cluster HPC. Aquele está fugindo de 8 Velicoraptors em um Raid 10, dedicado.

Quais são as melhores práticas para esse tipo de coisa?

Forneça bastante IO. Eu acho que essa VM SQL tem cerca de 8 ou 10 SSD dedicados.

O que causa esses problemas, existem gargalos conhecidos do sistema,

Pessoas que não fazem matemática básica. Se o subsistema de E / S não for capaz de lidar com a carga, ele também não fará isso na virtualização. Precisa de MUITO IO - forneça um subsistema de armazenamento dedicado de tamanho apropriado.

TomTom
fonte
10
"Forneça bastante interface do usuário" - você provavelmente quis dizer IO
oleksii 10/06/2015
2

Além da matemática básica e do conceito de que você ainda precisa dos mesmos IOs que não são virtualizados, também há QOS / priorização. A maioria das plataformas de virtualização oferece pelo menos um suporte básico para isso, ajudará bastante a impedir que a VM dev de comportamento que se comporta pare seu DB de produção.

Milo de Vries
fonte
1
Sim. Precisa de 5000IOPS, então um disco rígido com 350 não o cortará. Carregue mais vms no mesmo disco e não, ele não funcionará magicamente. Fico sempre surpreso com quantas pessoas ignoram a matemática básica.
TomTom