Você está na página 1de 11

VIRTUALIZAÇÃO EM SERVIDORES DE BANCO DE DADOS

Igor Lucas Coelho Santos 1


Iremar Nunes de Lima 2

Resumo: A estratégia de virtualização de servidores de banco de dados é uma tendência

recente em Tecnologia da Informação devido às inúmeras vantagens que este processo

traz para as organizações. Este artigo discute as vantagens e desvantagens do processo

de virtualização de servidores de banco de dados, além de descrever os principais

problemas e soluções disponíveis nesta área.

Palavras-chave: Banco de Dados, Virtualização.

1
Especialista em Banco de Dados e Business Intelligence (igorlucas@yahoo.com.br).
2
Mestre em Informática e professor do Centro Universitário Newton Paiva (iremar.prof@uol.com.br).
2

1. INTRODUÇÃO

Virtualização é a capacidade de desacoplar uma camada de software dos

recursos de hardware necessários pela mesma, de modo que esta passe a depender de

outra camada de software para prover os recursos necessários para seu perfeito

funcionamento. Neste contexto, a virtualização de máquina é a inserção de uma camada

de software entre o sistema operacional e o hardware físico. Esta camada de software

conhecida como Hypervisor, ou VMM (Virtual Machine Monitor) se estiver rodando

sobre um sistema operacional hospedeiro, intercepta toda comunicação vinda do sistema

operacional e as traduz em instruções que serão executadas no hardware propriamente

dito (CAMPBELL, 2006).

A virtualização traz como principal benefício a consolidação da infra-

estrutura de Tecnologia da Informação numa organização, pois diversas aplicações e

sistemas podem ser reunidos sobre uma única máquina, compartilhando assim os

recursos físicos existentes. Esta consolidação leva à redução de custos diretos, como a

aquisição de novos hardwares e custos de manutenção, e indiretos, como espaço físico

para alocação do parque tecnológico e consumo de energia tanto para funcionamento

como para resfriamento. Outro benefício importante é a melhor utilização da capacidade

de recursos existentes como memória e processamento, evitando ociosidade da infra-

estrutura e diminuição dos custos.

A virtualização também traz alguns malefícios, sendo o principal deles a

degradação do desempenho gerada pela inclusão de uma camada de software entre o

sistema operacional e o hardware físico. Outro problema importante é que a indireção

criada pela camada de software de controle prejudica certas aplicações que tomam

decisões baseadas nas características físicas do hardware, como por exemplo, Sistemas

Gerenciadores de Banco de Dados (SGBD) (ABOULNAGA, 2008).


3

Este artigo tem como objetivo apresentar os problemas e soluções na

implementação de SGBDs em ambientes virtualizados. É descrito as vantagens e as

desvantagens da utilização de SGBDs em ambientes virtualizados.

O restante deste trabalho está organizado da seguinte forma: a seção 2

aborda os tipos de virtualização existentes no mercado e as vantagens e desvantagens

gerais da virtualização; a seção 3 amplia a discussão sobre virtualização com o foco em

sistemas de banco de dados; na seção 4 será apresentada a conclusão deste trabalho.

2. VIRTUALIZAÇÃO

Para reduzir o impacto do desempenho criado pela camada de software

responsável pela abstração dos recursos físicos, vários tipos de virtualização foram

propostos e implementados por diversos sistemas. Estes basicamente se dividem em

quatro grupos (JONES, 2006):

• Emulação de Hardware, ou “Hardware emulation”;

• Virtualização Total, ou “Full virtualization”;

• Para-Virtualização;

• Virtualização de Sistema Operacional

Na emulação de hardware, uma arquitetura completamente diferente da

utilizada no hardware hospedeiro poderia ser simulada por diversos motivos, como, por

exemplo, utilizar uma plataforma de maior desempenho para emular uma arquitetura de

hardware antiga que não seja mais comercializada sem que seja necessário migrar os

sistemas legados. A desvantagem deste método é que cada instrução deve ser mapeada

de uma arquitetura para a outra, o que prejudica bastante o desempenho (JONES, 2006).
4

Na virtualização total, assim como na emulação de hardware, uma camada

de software é utilizada para abstrair os recursos físicos, porém diferentemente desta

apenas o hardware do sistema hospedeiro é emulado de forma que os sistemas

operacionais instalados sobre a camada de controle devem ser compatíveis com esta

arquitetura. Segundo JONES (2006), “a virtualização total é mais rápida que a emulação

de hardware, porém a performance é pior do que a utilização direta por causa da

mediação do Hypervisor”.

Ainda na virtualização total, dois métodos são propostos. O primeiro é

identificado pela utilização do VMM (Virtual Machine Monitor) que é o software de

controle da máquina virtual instalado sobre o sistema operacional do hospedeiro. O

segundo é feito através da utilização do Hypervisor, que se diferencia do VMM

basicamente pelo fato de que este é instalado diretamente sobre o hardware do

hospedeiro (CAMPBELL, 2006).

A para-virtualização também utiliza de uma camada de software de

controle, porém neste método alterações são inseridas nos sistemas operacionais

convidados para que estes cooperem com o processo de virtualização (JONES, 2006).

Obviamente somente sistemas operacionais que estejam aptos a estas alterações podem

ser utilizados, o que limita sua utilização, porém há um ganho significativo de

performance comparada a virtualização total pois neste caso os sistemas operacionais

convidados se beneficiam do fato de saberem que estão em um ambiente virtual.

Um outro tipo de para-virtualização é conhecido como Tradução Binária, ou

“Binary Translation”. Neste caso, a camada de software de controle realiza

modificações no sistema operacional convidado no momento em que o mesmo é

carregado. Este método permite que um maior número de tipos de sistemas operacionais
5

sejam utilizados, porém com prejuízo de performance e de dificuldade de

implementação (CAMPBELL, 2006).

Tanto o método de virtualização total quanto o de para-virtualização

permitem que sistemas operacionais diversos sejam instalados sobre a camada de

controle. Porém, no método de Virtualização de Sistema Operacional somente um tipo

de sistema operacional convive com diversas instâncias que compartilham os recursos

físicos. Neste método, o sistema operacional deve ter suporte a este tipo de operação e a

vantagem é que o desempenho é comparado à utilização nativa (JONES, 2006).

Todos estes métodos de virtualização se baseiam de alguma forma em uma

camada de software de controle responsável pelo gerenciamento dos recursos físicos e

de seu compartilhamento entre as diversas instâncias existentes. Recentemente, os

fabricantes de processadores, de olho na crescente demanda, têm incluído instruções

que auxiliam o processo de virtualização auxiliando esta camada de software de

controle a resolver certos gargalos já conhecidos, como, por exemplo, a tradução de

endereços de memória.

Os esforços se convergem para a solução do principal malefício da

virtualização, que é o desempenho, porém outros pontos negativos devem ser

considerados. Entre eles podem-se citar problemas de segurança, gerenciamento e

dimensionamento.

No quesito de segurança deve-se levar em conta tanto a física quanto a

virtual. A segurança física diz respeito integridade do sistema computacional, pois como

se está concentrando diversas aplicações críticas em um mesmo equipamento, um

acidente ou um ato planejado teria proporções muito maiores que se cada sistema

estivesse isolado em seu servidor. Na segurança virtual, uma brecha de segurança em


6

uma das instâncias virtuais poderia levar ao comprometimento das demais instâncias,

caso não haja mecanismos suficientes para evitar este problema.

Com relação ao gerenciamento, quesito que hora pode ser considerado uma

vantagem dada a facilidade de se manusear instâncias virtuais, pode também ser

considerado um problema caso não se tenha ferramentas adequadas para o controle das

instâncias ou até mesmo que se crie um número excessivo destas dada a facilidade desta

operação. Ainda relacionado ao gerenciamento deve-se considerar a complexidade de se

manter backup de todas as instâncias criadas e o espaço de armazenamento necessário

para esta operação.

Outro problema a ser citado é relacionado ao efetivo dimensionamento de

cada uma das instâncias que irão compartilhar o mesmo recurso físico. Dimensionar um

ambiente computacional já é uma tarefa bastante complexa ainda mais ter que levar em

conta que os recursos estarão sendo compartilhados. Uma das instâncias pode ter um

pico de utilização de recursos que pode degradar o desempenho das demais instâncias, o

que para o usuário final poderia significar uma piora na qualidade de serviço.

Em contrapartida a estes pontos negativos, a virtualização traz uma gama

enorme de vantagens. Nem todas estas vantagens são fáceis de serem alcançadas e

algumas delas requerem ferramentas especiais para certas operações. As principais

vantagens da utilização de virtualização são:

• Consolidação da infra-estrutura, de modo que menos equipamentos são

necessários para executarem a mesma quantidade de sistemas (MEIER, 2008). Esta

consolidação significa redução do espaço necessário para a acomodação dos

equipamentos, a redução de custos com energia, tanto para funcionamento como para

resfriamento e redução de custos para aquisição e manutenção dos equipamentos.


7

• Maior eficiência na utilização dos recursos, evitando ociosidade dos

equipamentos (CAMPBELL, 2006). Por exemplo, consolidar um sistema que tem um

perfil de alta utilização no horário comercial com um sistema de perfil noturno, a

exemplo de rotinas de backup e análise.

• Aumento da disponibilidade, dada a facilidade de migrar sistemas

virtuais entre servidores físicos (MEIER, 2008). Assim seria possível manter um

ambiente espelhado para o caso de imprevistos ou paradas programadas para

manutenção, e facilmente mover os sistemas de produção entre os servidores, reduzindo

o tempo de parada, conseqüentemente reduzindo custos.

• Melhoria no gerenciamento, pois como estamos lidando com recursos

virtuais estes podem ser migrados, replicados ou redimensionados com maior facilidade

(CAMPBELL, 2006). Uma grande vantagem é, por exemplo, conceder mais memória,

processamento, ou espaço em disco para uma instância sem que seja necessário reiniciar

o servidor.

• Flexibilidade da infra-estrutura, de modo que diversos sistemas

operacionais diferentes podem ser executados ao mesmo tempo, além de poder executar

sistemas antigos em ambientes mais novos sem grande esforço (MEIER, 2008).

• Diminuição do tempo de entrega, pois novas instâncias podem ser criadas

rapidamente sem necessidade de espera para a aquisição de novos hardwares e também

pelo fato destas instâncias serem criadas a partir de imagens previamente configuradas e

testadas (MEIER, 2008).

• Simplificação das rotinas de backup. Com uma instância virtual é

possível fazer um backup completo do sistema, incluindo toda sua configuração. Além

disso, dependendo das ferramentas disponíveis, é possível fazer o backup do sistema


8

enquanto o mesmo estiver sendo utilizado, diminuindo assim o tempo de parada para

backup (SOROR, 2007).

3. VIRTUALIZAÇÃO EM SERVIDORES DE BANCO DE DADOS

Um sistema de banco de dados é composto por duas partes. A primeira é

um conjunto de programas responsáveis pelo gerenciamento do acesso aos dados. Este

possui interfaces para a criação e manipulação dos dados, além de outras

funcionalidades como controle de segurança e integridade. Este conjunto de programas

é chamado de Sistema Gerenciador de Banco de Dados (SGBD). A segunda parte de um

sistema de banco de dados são os dados propriamente ditos, que normalmente estão

dispostos em um ou mais arquivos seguindo uma estrutura física proprietária do SGDB

em questão.

Uma base de dados pode conter de centenas até milhões de registros, de

variados formatos e complexidades. Normalmente os dados estão relacionados a um

tema central, e os registros se relacionam de diversas formas. Sistemas de banco de

dados corporativos normalmente trabalham na ordem de centenas de milhões de

registros, por este motivo são grandes consumidores de recursos físicos.

Não bastasse o alto consumo de recursos, sistemas de banco de dados

também são normalmente bastante complexos quanto a sua correta instalação,

configuração e otimização. Dadas estas características, de todas as vantagens da

utilização de virtualização de servidores descritas anteriormente, duas merecerem

destaque quando é utilizada em servidores de banco de dados:

• A possibilidade de copiar e migrar uma máquina virtual completa com a

mesma estando em execução (SOROR, 2007). Dependendo da ferramenta utilizada para

gerenciar as máquinas virtuais é possível copiar uma imagem inteira do servidor mesmo
9

este estando ativo, o que facilita e agiliza o processo de backup. Além disso, a

funcionalidade de migrar uma imagem entre servidores físicos diferentes nos traz a

possibilidade de implementar sistemas de alta disponibilidade com maior facilidade.

• A possibilidade de salvar uma imagem de uma máquina virtual

previamente configurada e utilizá-la como base para a criação de novos servidores de

banco de dados. Este modelo, que em inglês é chamado de Appliance, reduz o esforço

de criação e configuração de ambientes de banco de dados, simplificando o processo de

entrega de novos ambientes (SOROR, 2007).

Justamente por ser um grande consumidor de recursos físicos, o

desempenho é a grande desvantagem da utilização de virtualização em servidores de

banco de dados. Porém, de acordo com FAROOQ (2008), a perda de desempenho é em

média menor que 10% e é devido em grande parte às falhas de paginação, ou Page

Fault. Uma falha de paginação é ocasionada quando uma página de dados necessária

não se encontra na memória principal, ou se encontra, não está presente no espaço de

endereçamento do processo corrente (FAROOQ, 2008).

Portanto, o tratamento de uma falha de paginação é significativamente

mais lento em um ambiente virtualizado, porém quando comparado ao tempo de espera

para as interrupções de entrada e saída para a leitura dos dados em disco, esta lentidão

se torna apenas uma pequena fração do tempo total de execução das consultas ao banco

de dados. Isso nos leva ao valor médio de menos de 10% detectado por FAROOQ

(2008).

Esta informação é de extrema importância, pois significa que o

percentual de acerto do cache de páginas é fator crucial para o bom desempenho do

sistema de banco de dados. Ou seja, ter um cache grande o suficiente para comportar
10

uma boa quantidade de dados irá influenciar significativamente na performance das

consultas à base de dados, assim como ocorre com ambientes não virtualizados.

4. CONCLUSÃO

Diversas são as vantagens e desvantagens da utilização de virtualização

em servidores de banco de dados. Para ter sucesso em um projeto de virtualização deve-

se contar com um hardware de primeira linha, principalmente aqueles que provêem

algum suporte à virtualização; um conjunto de ferramentas adequadas às necessidades

do projeto; e de um estudo detalhado do comportamento do sistema de banco de dados

anterior à virtualização para que sua configuração no ambiente virtual seja feita da

melhor maneira possível.

Flexibilidade de gerenciamento, melhoria da disponibilidade e maior

eficiência na utilização dos recursos são apenas exemplos de benefícios que se adquire

com a virtualização de servidores de banco de dados a um preço não tão alto em termos

de perda de desempenho, obviamente considerando um projeto de virtualização bem

executado.
11

REFERÊNCIAS BIBLIOGRÁFICAS

ABOULNAGA, Asharaf; AMZA, Cristiana; SALEM, Kenneth. Virtualization and


Databases: State of the Art and Research Challenges. [s.n.]. Nantes, mar. 2008.
Disponível em: <http://www.cs.uwaterloo.ca/~ashraf/pubs/edbt08dbvirtTutorial.pdf>.
Acesso em: 1 out. 2008.

BARHAM, Paul. et. al. Xen and the Art of Virtualization. [S.l.: s.n.] out. 2003.
Disponível em <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.5.9887>.
Acesso em: 20 out. 2008.

CAMPBELL, Sean; JERONIMO, Michael. An Introduction to Virtualization. [S.l.:


s.n.] 2006. Disponível em:
<http://softwarecommunity.intel.com/isn/downloads/virtualization/pdfs/An_Introductio
n_to_Virtualization.pdf>. Acesso em: 1 out. 2008.

FAROOQ, Umar. et.al. Database Systems on Virtual Machines: How Much do You
Lose. [s.n.]. Cancun, abr. 2008. Disponível em:
<http://www.cs.uwaterloo.ca/~ashraf/pubs/smdb08overhead.pdf>. Acesso em: 1 out.
2008.

JONES, M. Tim. Virtual Linux: An overview of virtualization methods, architectures,


and implementations. [S.l.: s.n.] dez. 2006. Disponível em
<http://www.ibm.com/developerworks/library/l-linuxvirt/index.html>. Acesso em: 5
out. 2008.

MEIER, Shannon. IBM Systems Virtualization: Servers, Storage, and Software. [S.l.:
s.n.] abr. 2008. Disponível em
<http://www.redbooks.ibm.com/redpapers/pdfs/redp4396.pdf>. Acesso em: 7 out. 2008.

SOROR, Ahmed; ABOULNAGA, Asharaf; SALEM, Kenneth. Database


Virtualization: A New Frontier for Database Tuning and Physical Design. [s.n.].
Istambul, abr. 2007. Disponível em:
<http://www.cs.uwaterloo.ca/~ashraf/pubs/smdb07virt.pdf>. Acesso em: 1 out. 2008.

SOROR, Ahmed. et. al. Automatic Virtual Machine Configuration for Database
Workloads. [s.n.]. Vancouver, jun. 2008. Disponível em:
<http://www.cs.uwaterloo.ca/~ashraf/pubs/sigmod08vmconf.pdf>. Acesso em: 15 out.
2008.

Você também pode gostar