DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Testando a virtualização de banco de dados - Revista SQL Magazine 93

O artigo aborda uma avaliação de desempenho de bancos de dados virtualizados para auxiliar os profissionais que consideram a utilização de um projeto de virtualização em seus ambientes.





SQL Magazine 93

[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]

> Clique aqui para ler todos os artigos da SQL Magazine 93


A utilização de virtualização computacional é uma técnica relativamente antiga, porém no decorrer dos últimos anos soluções que envolvem a virtualização vêm ganhando fôlego novo devido às diversas inovações recentes nesta área. Outro fator que impulsiona consideravelmente a utilização desta tecnologia é a crescente migração de aplicações para ambientes baseados na nuvem (cloud computing), uma vez que a infraestrutura para suportar aplicações na nuvem se baseia fortemente na virtualização de servidores computacionais.

Apesar de diversos esforços dos fornecedores de hardware e de software em otimizar cada vez mais o desempenho de soluções de virtualização que envolvem banco de dados, ainda existe uma diferença perceptível de desempenho entre um ambiente virtual e um ambiente real.

Do ponto de vista operacional, a questão de desempenho do banco de dados virtualizado ainda é uma das principais dúvidas para os profissionais que planejam montar projetos com esta tecnologia motivados pela promessa de redução de custos e facilidade de gerenciamento da infraestrutura.

Este artigo abordará uma avaliação de desempenho de bancos de dados virtualizados para auxiliar os profissionais que consideram a utilização de um projeto de virtualização em seus ambientes. O artigo se concentrará na explicação de virtualização, nas melhores práticas e na elaboração de um teste que compara métricas de desempenho de processamento (CPU), memória e disco em um ambiente real e virtualizado, envolvendo o uso de um banco de dados no SQL Server. Apesar da comparação apresentada neste artigo se limitar a um contexto específico, o leitor poderá ter uma base de comparação inicial para formar sua opinião e levar em consideração quando estiver envolvido na elaboração de projetos de virtualização de banco de dados.

A tecnologia de virtualização

Para começar a compreender o que é a virtualização é preciso entender um conceito chave: a emulação de instruções. Cada microprocessador possui um conjunto de instruções que ele pode executar de forma nativa, ou seja, este conjunto de instruções assembly é 'programado' fisicamente como um micro-código dentro do microprocessador. O exemplo clássico é o conjunto de instruções de microcomputadores conhecido apenas como x86, que contém as instruções assembly comuns em computadores do tipo PC que recebem o nome de plataforma baixa.

Porém, existe como emular outro conjunto de instruções por meio de software. Esta emulação é o que permite que softwares criados para uma determinada plataforma com um conjunto de instruções específicas sejam executados em diferentes plataformas com outros conjuntos de instruções. Um exemplo disso é o uso de emuladores de arcades e consoles de vídeo games. Como estas plataformas têm um conjunto específico de instruções associadas com seus processadores, os jogos desenvolvidos teoricamente não poderiam ser executados em microcomputadores cujo processador suporte o conjunto de instruções x86. Para atender a esta limitação (e permitir que jogos antigos possam ser executados em micro-computadores) é preciso programar um emulador para o conjunto de instruções da plataforma em questão. Por exemplo: o famoso emulador MAME permite que um microcomputador com o conjunto de instruções x86 possa rodar jogos antigos de arcade devido à sua capacidade de emulação de instruções do processador de 8 bits Motorola 6809, dentre outros.

Um programa que permite a virtualização, chamado apenas de virtualizador, faz algo similar: ele emula instruções de uma determinada plataforma. No entanto, é muito comum encontrar virtualizadores que emulam o próprio conjunto de instruções na qual eles estão sendo executados. A lógica aqui é que é possível criar um ou mais ambientes emulados (chamado de guests) completamente independentes entre si, mas dentro da plataforma que executa as virtualizações (o host). Em outras palavras, um computador com um virtualizador é chamado de host e uma ou mais máquinas virtuais gerenciadas pelo virtualizador são chamadas de guests. Dentre os principais programas virtualizadores para microcomputadores podemos citar o VMWare, o VirtualBox, o Parallels e o Microsoft Hyper-V.

O virtualizador emula o conjunto de instruções de forma que ele seja o mais parecido possível com a plataforma alvo (que será emulada). Isso quer dizer que um software que será instalado e executado em um guest não 'sabe' que está dentro de um ambiente virtual, pois as instruções que ele utiliza estão todas emuladas. Por isso é preciso realizar todo o trabalho de instalação de softwares em uma máquina virtual como se ela fosse uma máquina real, incluindo a instalação do sistema operacional, drivers, configurações, etc.

"

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Mauro Pichiliani
Mauro Pichiliani é bacharel em Ciência da Computação, Mestre e doutorando em computação pelo ITA (Instituto Tecnológico de Aeronáutica). Trabalha há mais de 10 anos utilizando diversos bancos de dados e ferramentas de programação. Pode ser contatato no twitter como @pichiliani e no e-mail pichiliani...
O que você achou deste post?

    8 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Fábio Hernan Nunez Del Prado
Mauro, muito bom este artigo, eu ainda não tinha encontrado nada que fizesse um benchmarking entre máquina real x máquina virtual.

Ele irá me ajudar a decidir se devo ou não virtualizar servidores de Banco de Dados.


[]s
Fábio Prado
www.fabioprado.net
[há +1 ano] - Responder

 

Paulo Lima Machado
Excelente artigo. Parabéns pela precisão o objetividade. Considero de leitura obrigatória para todos os profissionais envolvidos na administração de banco de dados e em virtualizações em geral.
[há +1 ano] - Responder

 

Veronica Dos Santos
Gostei muito deste artigo. Estamos justamente em um momento de virtualização de servidores de BD e estes parâmetros de comparação são muito importantes para esta decisão de quais BDs serão virtualizados.
Pena não poder imprimir o artigo para compartilhar com os meus colegas e equipe.
Gostaria de perguntar sobre a questão do risco de perda de dados. Este risco é maior em ambientes virtualizados ou não faz diferença (considerando as mesmas configurações de transaction log de um BD em uma máquina física dedicada)?.
[há +1 ano] - Responder

 

[autor] Mauro Pichiliani
Olá Veronica,

Bem, do ponto de vista do banco de dados nada muda em relação à perda de dados. Porém você deve se preocurar com a imagem da máquina virtual, pois se algo acontecer com ela todos os dados que estão dentro do banco de dados da máquina virtual podem ser comprometidos.

Mauro Pichiliani
[há +1 ano] - Responder
 

Marciel De Sousa Viana
Olá Mauro,adorei o artigo, sobre os scripts utilizados para os testes, você poderia me passar o link, não consegui encontrá-los, obrigada.
[há +1 mês] - Responder
 

Wesley Yamazack
Olá Marciel, você pode baixar o fonte no link : http://www.devmedia.com.br/revista-sql-magazine-93/22802
No topo da página você pode encontrar a opção "código-fonte".

Um abraço
[há +1 mês] - Responder
 

Mateus Bazani
Ola, primeiramente parabens pelo artigo.
Acredito que a utilizacao de ferramentas de virtualizacao cooporativas (vSphere ESXi, Xen, etc) possam mudar drasticamente estas comparacoes, pois sao hipervisors voltados especificamentes para esta funcionalidade, com baixa latencia e gerenciamento de memoria/drivers mais eficientes.

Abs
[há +1 mês] - Responder

 

[autor] Mauro Pichiliani
Olá Mateus,


Sim, é bem provável que você tenha razão. Para mais informações e uma discussão aprofundada sobre este tópico recomendo a você ouvir o episódio 21 do DatabaseCast onde conversei com um autor de livro brasileiro sobre este assunto:

http://imasters.com.br/artigo/24032/banco-de-dados/databasecast-21-virtualizacao-de-banco-de-dados

Mauro Pichiliani
[há +1 mês] - Responder
 
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03