Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo

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.


Em que situação o tema é útil

O artigo é útil para profissionais que precisam de informações técnicas a respeito do desempenho de bancos de dados virtualizados. Com os dados apresentados, o leitor 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, e também quando houver a necessidade de avaliar a mudança de banco de dados para a nuvem.

Resumo DevMan

A movimentação de bancos de dados para ambientes virtuais ou para a nuvem é uma realidade atualmente. Contudo, poucos estudos independentes abordam detalhes técnicos da virtualização como o desempenho dos bancos de dados. Neste contexto, este artigo apresenta 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.

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.

Do ponto de vista do host, todos os arquivos copiados e instalados na máquina virtual são armazenados em um ou vários arquivos visíveis apenas no sistema operacional do host. Estes arquivos são grandes e recebem o nome de imagem. Todas as configurações de hardware da máquina virtual (guest) também são armazenadas nestes arquivos. Quando a máquina virtual estiver desativada, ou seja, não estiver sendo executada, é possível alterar as configurações de hardware e também clonar a máquina virtual através da cópia de arquivos ou alguma operação semelhante fornecida pelo virtualizador.

...
Quer ler esse conteúdo completo? Tenha acesso completo