30
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS TIMOTEO ALBERTO PETERS LANGE Monografia apresentada à Disciplina de Introdução à Pesquisa, curso de Mestrado em Ciência da Computação, Faculdade de Informática, Programa de Pós-Graduação em Ciência da Computação, Pontifícia Universidade Católica do Rio Grande do Sul. Orientador: Prof. César Augusto F. De Rose Porto Alegre 2011

BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

  • Upload
    timoteo

  • View
    44

  • Download
    2

Embed Size (px)

DESCRIPTION

Virtualização de servidores implementa uma camada lógica sobre um sistema físico, de forma que todos os dispositivos possam ser acessados ou compartilhados por aplicações clientes hospedadas no ambiente virtual. O presente trabalho apresenta um levantamento do estado da arte sobre a utilização de sistemas de banco de dados virtualizados, mostrando as principais técnicas, vantagens e as desvantagens dessa utilização.

Citation preview

Page 1: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL

FACULDADE DE INFORMÁTICA

PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO

BANCO DE DADOS VIRTUAL: UMA NOVA

ABORDAGEM PARA VIRTUALIZAÇÃO DE

BANCO DE DADOS

TIMOTEO ALBERTO PETERS LANGE

Monografia apresentada à Disciplina de

Introdução à Pesquisa, curso de

Mestrado em Ciência da Computação, Faculdade de Informática, Programa de

Pós-Graduação em Ciência da

Computação, Pontifícia Universidade

Católica do Rio Grande do Sul.

Orientador: Prof. César Augusto F. De Rose

Porto Alegre

2011

Page 2: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA

VIRTUALIZAÇÃO DE BANCO DE DADOS

RESUMO

Virtualização de servidores implementa uma camada lógica sobre um sistema físico, de forma que todos os dispositivos possam ser acessados ou compartilhados por aplicações clientes hospedadas no ambiente virtual. O presente trabalho apresenta um levantamento do estado da arte sobre a utilização de sistemas de banco de dados

virtualizados, mostrando as principais técnicas, vantagens e as desvantagens dessa utilização.

Palavras-Chave: Banco de dados, Virtualização, Hardware, Migração, Hypervisor, Desempenho

Page 3: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

ABSTRACT

Server virtualization implements a logical layer over a physical system, in a way that all devices can be accessed or shared by client applications, hosted in virtual environments. This work presents a review of state of the art about virtualized databases, showing the

main techniques, advantages and the disadvantages of using it.

Keywords: Database, Virtualization, Hardware, Migration, Hypervisor, Performance

Page 4: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

SUMÁRIO

1. Introdução .................................................................................................... 5

2. Virtualização............................................................................................... 7

2.1 Definição de Virtualização ............................................................................. 7

2.2 Tipos de Virtualização .................................................................................. 8

2.2.1 Emulação de Hardware .......................................................................... 8

2.2.2 Virtualização Total ................................................................................. 8

2.2.3 Para-virtualização.................................................................................. 9

2.2.4 Virtualização do Sistema Operacional ..................................................... 10

2.3 Motivações para Virtualizar ......................................................................... 10

2.4 Recursos que podem ser Virtualizados ......................................................... 11

3. Banco de Dados ........................................................................................... 14

3.1 Definição de Banco de Dados ...................................................................... 14

3.2 Estrutura de Sistemas de Banco de Dados .................................................... 15

3.3 Banco de Dados em Ambientes Virtualizados ................................................ 17

4. Banco de Dados Virtualizados ..................................................................... 19

4.1 Desafios da Virtualização de Bancos de Dados .............................................. 19

4.2 Modelo do Banco de Dados Virtualizado ........................................................ 20

4.2.1 Alta Disponibilidade de Banco Virtualizados ........................................... 23

4.2.2 Consolidação de Servidores em Banco de Dados Virtualizados................... 24

4.3. Visão geral dos Bancos de Dados Atuais ...................................................... 24

4.3.1 Oracle Rac One Node ........................................................................... 24

4.3.2 IBM DB2 9.7 ....................................................................................... 25

4.3.3 Microsoft SQL Server ........................................................................... 25

4.4 Discussão sobre as comparações entre os banco de dados.............................. 26

5. Conclusões .................................................................................................. 28

6. Referências ................................................................................................. 29

Page 5: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

5

1. Introdução

Atualmente, a virtualização de recursos computacionais vem sendo utilizada na

maioria dos recursos de TI (Tecnologia de Informação), tais como servidores, redes,

sistemas operacionais e aplicações. Entre eles, a virtualização de servidores é a mais

popular. A Virtualização de servidores implementa uma camada lógica sobre um sistema

físico, de forma que todos os dispositivos possam ser acessados ou compartilhados por

aplicações clientes hospedadas no ambiente virtual. [1]

As principais vantagens da utilização de tecnologias de virtualização são: o

fornecimento de forte isolamento, segurança e consolidação de servidores físicos. Além

disso, também podem ser exploradas novas possibilidades, tais como, a alta

disponibilidade e balanceamento de carga de trabalho. [2]

Nesse sentido, existe uma tendência natural em tentar explorar os benefícios da

virtualização também em sistema de banco de dados. De fato, pesquisas recentemente

avaliam o impacto da utilização de tecnologias de virtualização em banco de dados e

propõem soluções específicas para esse tipo de sistema [4, 5, 6, 7,8].

Os ambientes virtualizados atuais dão suporte ao banco de dados, porém

executando em Máquinas Virtuais (VM).

A abordagem mais natural para levar a virtualização para sistema de banco de

dados é aplicar o sistema em um servidor virtualizado. A principal vantagem de

executar um sistema de banco de dados em um ambiente virtualizado pode ser

considerada a consolidação de vários servidores virtuais em um único servidor físico,

reduzindo assim o custo de manutenção e consumo de energia. [2] Porém, alguns

problemas relevantes são apresentados, quais sejam, o problema de transparência da

localização do banco de dados para as aplicações clientes e a perda de desempenho [9]

[7].

Normalmente, o servidor de banco de dados possui recursos limitados para o

processamento e há uma constante demanda de mais recursos para a execução do

sistema. Além desta característica, existem outras propriedades interessantes que

devem ser levadas em consideração e que justificam a discussão sobre virtualização de

servidores de banco de dados.

Na nova abordagem, o banco de dados não é executado em uma máquina

virtual. Neste conceito somente a instância de banco de dados é virtualizado.

Neste contexto, o presente trabalho tem como objetivo apresentar um

levantamento do estado da arte sobre a utilização de sistemas de banco de dados em

Page 6: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

6

ambientes virtualizados, mostrando as principais técnicas, vantagens e as desvantagens

dessa utilização.

O texto está organizado da seguinte maneira: primeiramente, o capítulo 2

apresenta as formas de virtualização; o capítulo 3 apresenta os conceitos dos sistemas

de banco de dados atualmente e as principais características; o capítulo 4 mostra os

sistemas de banco de dados em ambientes virtuais, apresentando conceitos de banco de

dados em ambientes virtualizados e banco de dados virtualizados; no capitulo 5

apresenta a discussão sobre os modelos e por fim, a seção 5 realiza as considerações

finais ressaltando os principais desafios dessa área.

Page 7: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

7

2. Virtualização A virtualização de recursos adiciona uma camada intermediária de software entre as

aplicações e o hardware. Esta camada mapeia os recursos virtuais visíveis às aplicações

(Banco de Dados, no contexto deste trabalho) ligando com os recursos físicos

disponíveis no hardware hospedeiro. [7]

A camada de comunicação intermediária entre os recursos físicos e os recursos

virtuais possibilita o compartilhamento dos recursos e a realocação destes recursos

conforme necessário. Assim, em um servidor físico podem ser executadas múltiplas

aplicações (isoladas) compartilhando os mesmos recursos de hardware. [7]

O texto está organizado da seguinte forma. Primeiramente, é apresentado o

conceito de virtualização (seção 2.1). Na seqüência são apresentados os tipos de

virtualização (seção 2.2) e por último (seção 2.3) são apresentados exemplos de

recursos que podem ser virtualizados.

2.1 Definição de Virtualização A virtualização é amplamente definida como o ato de executar um software em

um ambiente virtual. Um ambiente virtual existe quando um sistema operacional é de

alguma maneira, emulado ou não é executado diretamente no hardware físico.

Segundo a definição apresentada por Eisen, a virtualização abstrai a estrutura

física subjacente de várias tecnologias. Virtualização, em computação, é a criação de

uma versão virtual de algo, como uma plataforma de hardware, sistema operacional,

um dispositivo de armazenamento ou recursos de rede. [10]

Outra definição de Virtualização dada por Campbell e adotada neste trabalho

define virtualização como processo de desassociaçao do hardware conhecido pelo

sistema operacional e a máquina física propriamente, comumente considerada uma

camada hardware em software. Simplificando, a virtualização é semelhante a um

computador dentro de um outro computador, implementado em software, criando a

ilusão de certos tipos de dispositivos, como placas de som, CPUs, memória e

armazenamento físico. [11]

Um sistema operacional sendo executado em um ambiente virtualizado é

conhecido como uma máquina virtual. A tecnologia de virtualização permite que várias

máquinas virtuais, com sistemas operacionais diferentes, executem lado a lado, isolados

na mesma máquina física, emulando um sistema completo de hardware, desde o

microprocessador até placa de rede. Cada máquina virtual pode compartilhar um

Page 8: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

8

conjunto comum de hardware sem saber que este hardware também pode estar sendo

usado por outra máquina virtual ao mesmo tempo.

2.2 Tipos de Virtualização Em um ambiente virtualizado é possível verificar o impacto no desempenho do

hardware devido à camada intermediária entre o hardware e software. Neste trabalho

são abordados os principais modelos de virtualização [12].

2.2.1 Emulação de Hardware

A emulação de hardware é a utilização de uma arquitetura completamente

diferente da utilizada no hardware hospedeiro. Pode ser utilizada por diversos motivos,

como por exemplo, utilizar uma arquitetura atual com maior desempenho para emular

uma arquitetura de hardware antiga que não seja mais comercializada, sem que seja

necessário migrar os sistemas legados.

Analisando as desvantagens, se verifica que neste modelo cada instrução deve

ser mapeada de uma arquitetura para a outra, prejudicando assim o desempenho. [12]

Hardware

Hardware VM A Hardware VM B

SO ConvidadoSO Convidado

Aplicativos Aplicativos

SO Convidado

Aplicativos

Figura 1- Emulação de hardware

2.2.2 Virtualização Total

A virtualização total é uma camada de software que é utilizada para abstrair os

recursos físicos, porém diferentemente da anterior, o objetivo é fornecer ao sistema

operacional visitante uma réplica do hardware subjacente. Dessa forma, o sistema

operacional visitante é executado sem modificações sobre o monitor de máquina virtual

(VMM), 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. [11]

Esse tipo de virtualização é mais rápida que a emulação de hardware, porém o

desempenho ainda é pior do que a utilização direta, devido à mediação da camada

Page 9: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

9

intermediária de software (Hypervisor). A camada hypervisor é responsável pela

segurança dos recursos de hardware e pelo controle do fluxo de informações entre VMs

e o hardware hospedeiro. [13]

Hardware

Hypervisor (VMM)

SO convidadoSO convidado

Aplicativos Aplicativos Aplicativos

SO convidado

Figura 2 - Virtualização Total

2.2.3 Para-virtualização

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

nesta abordagem há alterações nos sistemas operacionais convidados para que estes

cooperem com o processo de virtualização. [11] Neste modelo são permitidos somente

sistemas operacionais que estejam aptos a estas alterações, o que limita a utilização,

porém, há um ganho significativo de desempenho se comparada aos modelos

anteriores, considerando que os sistemas operacionais convidados podem se beneficiar

do fato de conhecerem que estão em um ambiente virtual. [12]

Nessa abordagem, a desvantagem é que o sistema convidado é modificado para

acessar a VMM sempre que for executada uma instrução, porém, o teste por instrução

não é mais necessário aumentando o desempenho. [14]

Hardware

Hypervisor (VMM)

SO convidadoSO convidado

Aplicativos Aplicativos Aplicativos

SO convidado

Alteração SO Alteração SO Alteração SO

Figura 3 - Para-virtualização

Page 10: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

10

2.2.4 Virtualização do Sistema Operacional

A virtualização do sistema operacional permite que um tipo de sistema

operacional conviva com diversas outras instâncias do mesmo sistema, compartilhando

os recursos físicos. A máquina virtual funciona como um processo do sistema anfitrião.

Neste método, o sistema operacional deve ter um suporte a este tipo de operação,

sendo a principal vantagem o desempenho, comparado à utilização nativa. A

desvantagem é que o usuário não pode fazer uso de outro sistema operacional na

máquina virtual no ambiente virtual. [12]

Hardware

Sistema Operacional

Instância do SOInstância do SO

Aplicativos Aplicativos

Instância do SO

Aplicativos

Figura 4 - Virtualização do Sistema Operacional

2.3 Motivações para Virtualizar Todos os métodos de virtualização apresentados são implementados através de

uma camada intermediária de software, responsável pela administração e

compartilhamento dos recursos físicos do hardware hospedeiro, implicando diretamente

no desempenho. Já há algum tempo os fabricantes de hardware, têm incluído instruções

específicas que auxiliam no processo de virtualização assessorando esta camada de

software a resolver certas dificuldades conhecidas, como por exemplo, a tradução de

endereços de memória e o desempenho. Também se podem citar problemas de

segurança, gerenciamento e dimensionamento. [14]

Considerando os diversos modelos de virtualização, o presente trabalho é focado

nos benefícios que um ambiente virtualizado pode trazer. Dentre as vantagens,

podemos citar:

Consolidação da infra-estrutura: menos equipamentos são necessários

para executarem a mesma quantidade de sistemas. Esta consolidação

Page 11: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

11

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

e 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). [15]

Maior eficiência na utilização dos recursos: Uma prática utilizada é

virtualizar um ambiente que tem um perfil de alta utilização no horário

comercial com um sistema de alta utilização no perfil noturno, de modo que

os recursos estejam sempre sendo utilizados e permaneçam a menor parte

do tempo ociosos. [11]

Aumento da disponibilidade: dada a facilidade de migrar sistemas virtuais

entre servidores físicos é possível manter um ambiente replicado para o caso

de falhas ou paradas programadas de manutenção. [15]

Melhoria no gerenciamento: considerando que os recursos são virtuais,

estes podem ser migrados, replicados ou redimensionados com maior

facilidade. Entre as práticas comuns, uma delas é conceder mais memória,

processamento, ou espaço em disco para uma instância quando necessário

sem que seja necessário alterar o hardware do servidor. [15]

Flexibilidade da infra-estrutura: diversos sistemas operacionais

heterogêneos podem ser executados no mesmo ambiente, além de executar

ambientes legados em recursos novos de hardware. [15]

Facilidade de execução de backup: é possível fazer uma cópia completa

da imagem (snapshot) do estado atual da VMM, incluindo toda sua

configuração. Algumas ferramentas ainda disponibilizam a execução do

backup durante a execução, eliminando a necessidade de parada. [7]

Redução do tempo de entrega de novos servidores: instâncias de novos

servidores podem ser criadas rapidamente sem necessidade de espera de

aquisição de hardware. Outra melhora é pelo fato destas instâncias serem

criadas a partir de templates já disponíveis no ambiente. [15]

2.4 Recursos que podem ser Virtualizados A abordagem de ambiente virtualizado conduz a um grupo de servidores

virtualizados. Além de virtualizar os servidores, existem outros recursos que também

podem ser virtualizados. [16]

Page 12: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

12

Entre os principais recursos, este trabalho pode citar:

Virtualização de servidores: possibilita a criação de múltiplas máquinas virtuais

com seus respectivos sistemas operacionais, em uma única máquina física, ainda que

sejam logicamente distintas, porém com perfis de hardware consistente [16]

Esta modalidade muitas vezes pode tomar o lugar da prática onerosa

de consolidação de servidores manual, através da combinação de vários servidores

virtuais em um servidor lógico. O foco da virtualização de servidores está em

maximizar a eficiência do hardware do servidor, a fim de aumentar o retorno sobre o

investimento do hardware. [16]

Virtualização de aplicações: Para cada aplicação é criada é uma instância e de

acordo com a necessidade é distribuída de forma on-demand através de uma

rede. Esta estratégia de virtualização vai de mãos dadas com a iniciativa de

padronizar os serviços de internet que estão preocupando a indústria de TI atualmente.

[16]

Aplicativos virtualizados podem usar uma camada de abstração em comum que

define um protocolo permitindo a comunicação de um aplicativo com outro em um

formato de mensagem padrão. Assim, as aplicações podem chamar outro aplicativo, a

fim de executar as funções solicitadas. A aplicação virtualizada não só é capaz de

invocar remotamente os pedidos e retornar resultados, mas também garantir que o

estado do aplicativo e outros dados estejam disponíveis e com recursos consistentes em

todos os nós que executam a aplicação.

Virtualização de storage: permite que dispositivos de armazenamento

separados possam ser combinados e sejam acessados como uma única unidade. Essa

modalidade tenta maximizar a eficiência do hardware de armazenamento em uma

arquitetura virtual. [4]

Virtualização de rede: possibilita a criação de múltiplas redes virtuais que

podem ser combinadas em uma única rede física (pode ser suportado em um único

equipamento de rede) ou ainda, pode criar redes separadas logicamente em várias

partes no mesmo ambiente. Uma prática comum é criar LANs virtuais (Local Area

Network), ou VLANs (Virtual Area network), a fim de gerenciar de forma mais

eficaz uma rede. [16].

Virtualização de banco de dados: permite que os usuários acessem várias

fontes de dados localizados geograficamente em qualquer lugar sem a necessidade de

saber ou se importar onde os dados realmente residem. A virtualização de banco de

dados permite o uso de múltiplas instâncias de um SGBD (Sistema Gerenciado de banco

Page 13: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

13

de Dados), ou plataformas diferentes DBMS (DataBase Management System),

simultaneamente e de forma transparente e independentemente da sua localização

física. Estas práticas podem ser empregadas em mineração de dados e sistemas

de armazenamento de dados. [7],[8],[16]

Banco de dados é uma classe de recursos que tem características específicas e

que devem ser consideradas antes de virtualizar. Nos próximos capítulos essas

características serão abordadas de forma mais detalhada.

Page 14: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

14

3. Banco de Dados O banco de dados foi originalmente projetado com o objetivo de separar o

armazenamento físico dos dados da sua representação conceitual e prover com uma

fundamentação matemática para identificar o esforço necessário no processo de acesso

aos dados. Essa abordagem de implementação introduziu as linguagens de consulta de

alto nível, que são uma alternativa às interfaces para as linguagens de programação e

consequentemente, ficou mais rápido e fácil escrever novas consultas e obter o

resultado extraído do banco de dados. [17]

Logo, o banco de dados é uma classe de recurso que tem características bem

específicas e estas devem ser consideradas antes de virtualizar um servidor de banco de

dados. O objetivo deste capítulo é detalhar uma visão geral sobre a virtualização de

Banco de Dados Virtualizados.

O texto está organizado da seguinte forma: primeiramente, é apresentada a

definição de banco de dados. (seção 3.1). Na sequência é apresentada a estrutura de

um banco de dados (seção 3.2), e por último (seção 3.3) é abordada a virtualização de

banco de dados.

3.1 Definição de Banco de Dados Banco de dados é um recurso que pode ser interpretado como um sistema

computadorizado de armazenamento de registros. Este sistema não se resume apenas

ao armazenamento dos registros, oferece também a possibilidade de manipulação e

gerenciamento destes registros. A manipulação dos registros poderá acontecer sob a

forma de alterações, inserções e exclusões de dados. [18]

Neste trabalho será adotada a definição de Elmasri, que define um Banco de

Dados como uma coleção de dados relacionados. Os dados são fatos que podem ser

armazenados e que possuem um significado implícito. [17] Algumas das principais

características que um banco de dados pode possuir são apresentadas a seguir:

• Um banco de dados representa alguns aspectos do mundo real, sendo

chamado, às vezes, de minimundo. As mudanças no minimundo podem ser refletidas

em todo o banco de dados. [18]

• Um banco de dados é uma coleção lógica e coerente de dados com algum

significado inerente. Uma organização de dados ao acaso (randômica) não pode ser

corretamente interpretada como um banco de dados. [18]

Page 15: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

15

• Um banco de dados é projetado, construído e povoado por dados, atendendo a

uma proposta específica. Possui um grupo de usuários definido e algumas aplicações

preconcebidas, de acordo com o interesse desse grupo de usuários. [18]

• O domínio de um banco de dados pode ser de qualquer tamanho e de

complexidade variável. [17]

• 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

domínio, e os registros se relacionam de diversas formas. Sistemas de banco de dados

corporativos consomem uma porção considerável dos recursos físicos do servidor

considerando o grande volume de transações executadas. [7]

Atualmente os Sistemas Gerenciadores de Banco de Dados (SGBD) devem ter a

premissa de possibilitar o acesso multiusuário: múltiplas conexões de acesso ao banco

de dados simultâneo. Isso é essencial se os dados para as várias aplicações estão

integrados e mantidos em um único banco de dados. O SGBD deve incluir um software

de controle de concorrência para garantir que em caso de muitos usuários tentarem

atualizar o mesmo dado, o faça de um modo controlado e ordenado, para assegurar que

os resultados das atualizações sejam corretos. Uma regra fundamental do software do

SGBD multiusuário é garantir que as transações concorrentes operem corretamente

[17]

3.2 Estrutura de Sistemas de Banco de Dados Um sistema de banco de dados é composto basicamente por dois componentes:

conjunto de programas responsáveis pelo gerenciamento do acesso aos dados e os

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

outras funcionalidades, como o 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. [17]

Na implementação dos bancos de dados atuais, o SBGD são implementados o

conceito de “Esquema” e “Instância” de banco de dados. Esquema pode ser definido

como sendo a descrição do banco de dados no nível lógico. Já a instância é a

representação do banco de dados com seus respectivos dados em um determinado

momento. [18]

A definição de instância é muito importante para a correta compreensão deste

trabalho. Instancia é a estrutura de acesso aos registros armazenados nos arquivos de

Page 16: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

16

dados pelos programas que formam o SGBD. Os valores dos parâmetros de uma

instância podem ser definidos no momento de criação. Esses parâmetros irão alocar a

quantidade de memória e recursos do sistema operacional que foi configurado e iniciar

os processos responsáveis por manipular o banco de dados. [6]

A coleção de dados que compõe um banco de dados precisa ser armazenada

fisicamente em algum sistema de armazenamento. Assim, os softwares SGBD podem

recuperar, atualizar e processar esses dados conforme necessário.

Sistema de Banco de Dados

SGBD

Definição do Banco de Dados (Esquema)

Acesso aos Dados Armazenados

Aplicação Consultas / Programas

Banco de Dados(Arquivos Físicos)

Processamento das Consultas / Programas

Usuários / Aplicações Clientes

Figura 5 - Estrutura de Sistemas de Banco de Dados

As mídias de armazenamento de computador formam uma hierarquia de

armazenamento que inclui duas categorias principais:

• Armazenamento primário: inclui os recursos de armazenamento que podem

ser acessados diretamente pela unidade central de processamento (CPU), como a

memória principal e a memórias cache que são em geral pequenas se comparada ao

volume de dados armazenado. A vantagem da utilização deste tipo de armazenamento é

a velocidade de acesso as informações, porém com uma capacidade reduzida. [17]

• Armazenamento secundário: são identificados como os recursos de discos

(e/ou storages). Esses dispositivos geralmente possuem maior capacidade combinado

com menor custo, porém proporcionam o acesso mais lento se comparado aos

dispositivos de armazenamento primário. Os dados de um armazenamento secundário

não podem ser processados diretamente pela CPU. [17]

Page 17: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

17

SGBDs podem armazenar grandes volumes de dados e devem ser mantidos por

longos períodos de tempo. Os dados podem ser acessados e processados repetidamente

ao longo da sua existência e, em alguns casos, devem permanecer e estar disponíveis

permanentemente.

3.3 Banco de Dados em Ambientes Virtualizados Normalmente, a principal tarefa dos administradores de infra-estrutura das

empresas que tem um grande número de servidores que provêem serviços de banco de

dados é o gerenciamento desses recursos e a dificuldade de acomodar os serviços nos

servidores físicos (ou virtuais) evitando o esbanjamento ou falta de recursos.

Na infra-estrutura a virtualização pode ser a principal estratégia auxiliar na

atividade de administração dos recursos existentes. Assim, surgem dois desafios: o

problema de desempenho dos servidores virtuais em comparação aos recursos físicos e

o tempo de migração dos serviços de banco de dados de um servidor físico para outro

servidor físico.

Atualmente os bancos de dados são disponibilizados em um ambiente

virtualizado sobre uma máquina virtual. [19]

Uma das principais vantagens da execução de um servidor de banco de dados

em ambiente virtualizado pode ser a fácil migração de um servidor físico para outro,

aumentando assim o tempo de disponibilidade do serviço. [19]

Com a inclusão de virtualização em ambientes de banco de dados, a principal

preocupação é o tempo gasto de indisponibilidade durante o processo de migração de

um banco de dados. Como o banco de dados pode ser movido de um servidor sem

recursos para um servidor novo, a migração é a principal atividade de sobrecarga que

os administradores estão enfrentando atualmente. [8]

Hardware

Hypervisor (VMM)

SO ConvidadoSO Convidado

Banco de Dados Banco de Dados

Hardware

Hypervisor (VMM)

SO Convidado

Banco de Dados

Figura 6 – Banco de dados em ambientes Virtualizados

Page 18: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

18

Nessa abordagem de migração, podem ser usadas 3 técnicas principais de

migração: [19]

Migração Offline/Online: A forma mais simples de migrar um servidor de

banco de dados é parar o serviço, mover para o novo servidor e iniciar o serviço no

novo ambiente. Embora sejam consideravelmente simples e segura, todos as conexões

e transações são perdidas durante a execução da migração.

Migração sob Demanda: Para diminuir o tempo de inatividade do serviço,

pode-se usar uma técnica de migração onde uma parada rápida do serviço é iniciada

uma nova cópia da instância de banco em um outro servidor que recebe todas as novas

conexões mantendo as antigas. Essa abordagem pode ser considerada mais eficiente

que a anterior, porém produz uma sobrecarga alta após a migração para manter a

sincronia entre origem e destino.

Migração em tempo Real: semelhante à técnica anterior. Para resolver o

problema de sobrecarga de sincronia essa técnica grava o estado do banco de dados (da

transações) recuperando o seu estado atual após a migração.

Page 19: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

19

4. Banco de Dados Virtualizados

Atualmente, embora que a prática de execução de banco de dados em ambiente

virtual pode ser explorada, o principal desafio dessa prática ainda é o desempenho. Este

desafio pode ser motivado pela inserção da camada intermediária entre o SGBD e o

hardware, obrigando uma execução extra a tradução de endereços virtuais para

endereços físicos. [15]

O texto está organizado da seguinte forma: inicialmente são abordados os

desafios da virtualização de banco de dados (seção 4.1). Na sequência é apresentado o

modelo de virtualização (seção 4.2), e por último (seção 4.3) é abordada uma visão

geral sobre os bancos de dados atuais.

4.1 Desafios da Virtualização de Bancos de Dados Não bastasse o alto consumo de recursos, os sistemas de banco de dados

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

configuração e otimização. Outro ponto que deve ser levado em consideração é o

desempenho, observada a grande desvantagem da utilização de virtualização em

servidores de banco de dados. Porém, de acordo com estudos realizados [17], 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 encontrada, não está

presente no espaço de endereçamento do processo corrente. [17]

Além do problema de paginação, outro problema que pode afetar o desempenho

de um banco de dados virtualizado são as camadas de software inseridas entre os

recursos, haja vista que elas podem comprometer os ciclos do processador, muitas

vezes até dois dígitos percentuais. [16]

Em um ambiente de máquinas virtuais, onde cada uma está

executando um SGBD independente, elas estão competindo pelos recursos físicos de

um servidor. A principal dificuldade é alocar os recursos conforme a necessidade de

cada SGBD. Considerando os diferentes tipos de recursos físicos, tais como memória,

capacidade de CPU ou velocidade de I/O, atribuídas às máquinas virtuais, a dificuldade

é alocar uma parte ou fração de cada recurso da máquina física para cada máquina

virtual. Desta forma, devem ser definidos os parâmetros de configuração dos recursos

das máquinas virtuais na hora de inicialização e cada máquina virtual deve ser

monitorada para identificar possíveis falhas ou gargalos. [17]

Page 20: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

20

Ao criar uma máquina virtual para uma ou mais aplicações é importante configurar

corretamente a máquina virtual. Uma decisão importante que deve ser feita ao

configurar uma máquina virtual é decidir o quanto dos recursos físicos disponíveis serão

destinados a esta VM. Atualmente, há pesquisas [17] que propõem um sistema

automático para tomar esta decisão nas máquinas virtuais que hospedam os SGBD.

Ao considerar os pontos positivos mencionados anteriormente sobre virtualização,

podemos destacar além daqueles, a consolidação de banco de dados em ambiente

virtualizados. O aumento da demanda por dados ou recursos de banco de dados

pode ser facilmente resolvida através da gerência de SGBDs ou de infra-estrutura física

com ferramentas de virtualização. [16]

Dificilmente servidores de banco de dados são totalmente monitorados durante a

execução, independentemente do sistema operacional que está sendo utilizado. Para os

administradores de banco de dados, que são os responsáveis por manter cada servidor,

os servidores de banco de dados geram uma demanda particular no gerenciamento do

desempenho, podendo ser considerada um desafio.

Uma pesquisa realizada avaliou o desempenho um banco de dados em um

ambiente virtualizado e comparou com um ambiente não virtualizado. [1] A conclusão é

de que a carga de trabalho no modelo virtual tem uma utilização de CPU maior que os

modelos não-virtualizados.

Sabendo que o desempenho de um servidor de banco de dados em um ambiente

virtualizado é menor, o desafio agora é o aumento do desempenho, embora conforme

mencionado anteriormente, o desempenho pode ser limitado em particular por tradução

de endereços virtuais para a arquitetura física. Para aumentar o desempenho, é

possível desenvolver uma camada de aplicação utilizando a abstração entre o sistema

operacional e o hardware físico, comunicando em um formato padrão de mensagens,

tornado um protocolo de comunicação. Essa camada não é só capaz de atender aos

pedidos, mas também é capaz de confirmar o estado da aplicação SGBD e disponibilizar

os dados restantes sobre todos os recursos físicos. [20]

Essa nova abordagem de virtualização de banco de dados trás alguns benefícios

em comparação a abordagem atual.

4.2 Modelo do Banco de Dados Virtualizado

Nesta nova abordagem é proposta somente a virtualização da base de dados, o

que pode aumentar a flexibilidade através da arquitetura proposta [8]. A migração de

banco de dados entre máquinas virtuais pode ser executada facilmente. As bases de

Page 21: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

21

dados podem ficar em localizações transparentes e ser realocadas em outros servidores

sem a necessidade de realizar modificações nas aplicações.

Diferentemente da utilização de banco de dados em uma máquina virtual, um

banco de dados virtualizado pode ser migrado de um ambiente para outro ambiente

sem a necessidade de parada dos serviços.

Hardware

Hypervisor (VMM)

Banco de Dados Banco de Dados Banco de Dados

Figura 7 - Banco de Dados Virtualizados

A migração é realizada em duas etapas:

1) Inicialização da nova instância do banco de dados no novo servidor;

2) Migração de todas as conexões existentes, transações e os estados de cada

transação. [6] Somente após a migração de todas as conexões e transações o

serviço original é finalizado.

Storage

Host 01 Host 02

Banco de Dados

Har

dw

are

+ SO

(H

yper

viso

r)V

irtu

aliç

ão

Banco de Dados

Banco de Dados

Figura 8 - Migração de banco de dados virtualizado

Page 22: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

22

Sendo que neste tipo de migração é necessário migrar somente a instância e não

o banco de dados inteiro. Esse tipo de migração tem um desempenho superior em

relação à outra abordagem, pois os dados não são movimentados. [6]

Além disso, a camada intermediária entre o banco de dados e o hardware pode

ser menor, e assim pode aumentar o desempenho. Considerando que o sistema

operacional não é virtualizado, e que somente as instâncias do banco de dados são

virtualizadas, não é necessário traduzir cada instrução do SGDB para o sistema

operacional hospedeiro. Observado que o recurso de virtualização está no kernel do

hypervisor, as instruções podem ser executadas diretamente no hardware. Nesse

modelo, o hypervisor tem com uma de suas funções controlar os recursos disponíveis

para que todas as instâncias acessem os recursos conforme a configuração individual.

Os benefícios trazidos pela técnica de virtualização de banco de dados utilizando

uma camada de comunicação direta com o sistema operacional hospedeiro podem ser

listadas conforme segue: [8].

Acesso ao banco é feito em aplicações sem conhecimento da localização do

servidor;

O banco de dados virtualizado pode migrar imediatamente para outro local em

caso de falhas. Este conceito ajuda a controlar todos os bancos de dados com a

rápida realocação de instâncias de banco de dados em outros servidores.

Podem ser realizadas manutenções no ambiente físico sem causar impacto no

desempenho ou interromper os serviços;

As despesas com administração, licenciamento e hardware são reduzidos,

considerando a simplicidade do ambiente.

Segurança dos dados e recuperação em caso de desastres. Em caso de falha de

hardware, os dados podem ser restaurados em uma máquina com hardware de

configurações diferentes. A recuperação de desastres de vários bancos de dados

para um ambiente secundário pode ser realizada de forma simples e rápida,

bastando migrar somente as instâncias do banco de dados.

A camada de virtualização de banco de dados permite a gestão dos DBAs para

consolidar servidores. A migração pode ser feita em questão de segundos, sem

fechar as sessões de usuário ou perder as transações ativas do banco de

dados. [6]

A virtualização de banco de dados está em fase inicial de desenvolvimento,

embora muitas empresas já estejam desenvolvendo pesquisas neste campo. [8]

Page 23: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

23

A administração das instâncias virtuais é um item muito importante na relação

do gerenciamento do banco de dados. Pode ser considerada uma vantagem, dada à

facilidade de se manusear instâncias virtuais, e pode também ser considerada 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, observada a facilidade desta

operação.

4.2.1 Alta Disponibilidade de Banco Virtualizados

Alta disponibilidade trata da disponibilidade dos sistemas reduzindo paradas

planejadas e não planejadas. Existem várias técnicas de alta disponibilidade para banco

de dados. Neste trabalho serão abordadas duas técnicas: a clusterização e a

virtualização.

Clusterização: O ambiente de cluster consiste no uso coordenado de vários

servidores (físicos ou virtuais), atuando como se fossem um único grande computador

(conceito de Grid Computing). Nos servidores interligados, há apenas o sistema

operacional e o software banco de dados instalados. O banco de dados fica armazenado

em uma área de armazenamento externa (storage) gerenciando e utilizando os recursos

(processadores e memória) de todos os servidores interligados. [6]

Em caso de parada não planejada de um dos servidores do Cluster, o próprio

serviço de banco de dados deverá detectar e transferir os usuários conectados do

serviço parado para o outro servidor automaticamente, sem interromper a

disponibilidade do ambiente. Se a necessidade for a de substituir, retirar ou acrescentar

servidores (nós) ao cluster, também não será necessário interromper a disponibilidade

do ambiente.

Neste modelo são necessários que todos os nós do cluster estejam com o banco

de dados ativo, gerando assim um ônus de monitoração entre as instâncias e sincronia

de dados. [6] [1]

Virtualização: a virtualização do banco de dados é mais vantajosa em relação à

técnica anterior porque que somente uma instância precisará ser migrada quando for

detectada a falha do banco de dados. [6]

Além de oferecer a capacidade de disponibilidade ininterrupta, o banco de dados

virtualizado pode oferecer a capacidade de aumentar os recursos verticalmente ou

horizontalmente, capacidades denominadas de Scale Up e Scale Out, respectivamente.

A primeira consiste em potencializar as especificações de hardware de um determinado

servidor. Isso geralmente é feito através do aumento do número dos processadores,

Page 24: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

24

adição de mais RAM, e assim por diante, porém sempre é limitado ao limite dos

recursos que podem ser adicionados. A escalabilidade horizontal é o processo de

adicionar novos recursos de armazenamento de dados aumentando a capacidade do

banco de dados.

4.2.2 Consolidação de Servidores em Banco de Dados

Virtualizados

A consolidação pode ser definida como sendo o uso eficiente dos recursos

de hardware. A separação das camadas de hardware e sistema operacional da máquina

virtual possibilita o gerenciamento de recursos e a convivência de servidores

heterogêneos, permitindo um uso mais eficiente dos recursos de hardware. [2],

definição esta que será a adotada neste trabalho.

Em um ambiente de virtualização de banco de dados pode haver consolidação de

servidores. Conforme mencionado anteriormente, a consolidação de servidores

possibilita monitorar os recursos disponíveis de hardware, adicionando ou removendo

recursos ao banco de dados. Além de alocar os recursos conforme necessário é possível

suportar vários serviços de banco de dados em um único servidor físico.

4.3. Visão geral dos Bancos de Dados Atuais Para realizar a comparação entre as formas de virtualização, foram escolhidos os

seguintes banco de dados proprietários: Oracle 11G r2, IBM DB2 9.7 e Microsoft Sql

Server 2008. Tais bancos de dados foram escolhidos por possuírem documentações que

expressam a capacidade de alta disponibilidade e a possibilidade de executar em

ambiente virtualizado. Ao final deste capítulo, será apresentada uma tabela com as

principais características de cada banco de dados.

4.3.1 Oracle Rac One Node

Durante a execução do banco de dados é realizado um monitoramento sobre o

status, e se for detectado um problema no banco de dados afetado este pode ser

reiniciado no mesmo host ou em outro servidor. [6]

Se o servidor de banco de dados tem poucos recursos disponíveis, há a possibilidade

de migrar on-line para outro servidor com mais recursos disponíveis. Além disso, existe

a possibilidade de aumentar dinamicamente os recursos, possibilitando o Scale Up das

instâncias de banco de dados que foram configurados previamente.

O recurso de mover uma instancia de banco de dados de um servidor para outro

ainda é uma exclusividade deste banco estudado, haja vista que permite a

Page 25: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

25

migração online sem a necessidade de parar o serviço, reduzindo significativamente o

tempo de downtime de uma aplicação.

Além da possibilidade de mover um banco de dados quando uma falha for detectada,

ainda é possível realizar o balanceamento de carga de trabalho realocando uma

instância de banco de dados em um servidor desocupado. [6]

4.3.2 IBM DB2 9.7

Pode ser executado em um ambiente virtualizado, porém não traz uma ferramenta

de migração de instância de banco de dados. Os parâmetros de ajuste automático e a

capacidade de alteração de forma dinâmica sem a necessidade de parar a instância de

banco de dados também é um recurso disponível.

Considerando que não é totalmente executado diretamente no hardware físico e

requer a camada de hypervisor (que consome ciclos de processamento), o custo de

desempenho está associado ao ambiente virtualizado. A quantidade de sobrecarga pode

variar dependendo da eficiência do hypervisor.

Uma das características deste banco de dados é a possibilidade de crescimento

horizontal. Esse recurso é baseado na tecnologia de disco compartilhado. Geralmente

ouve-se falar sobre o recursos no contexto de uma solução com base em uma

arquitetura de cluster. Este recurso de disco compartilhado possibilita que qualquer nó

do cluster possa ler ou gravar em qualquer parte do banco de dados. Se houver falha

em algum dos membros, o conjunto completo de dados ainda pode ser acessado a partir

dos demais membros ativos. [20]

O disco compartilhado permite que todos os hosts acessem o mesmo conjunto de

dados. Qualquer falha de host não impacta na disponibilidade do banco de dados. Além

disso, a capacidade adicional é incluída simplesmente colocando novos hosts no cluster

existente. [21]

4.3.3 Microsoft SQL Server

Essa solução oferece um banco de dados em uma máquina virtual. No entanto,

não é o banco de dados que irá migrar e sim a toda máquina virtual, através da

ferramenta que é uma tecnologia exclusiva que permite que um administrador de um

servidor mova uma máquina virtual em execução ou um aplicativo entre diferentes

máquinas físicas sem desconectar o cliente ou o aplicativo.

Nesta solução, as instâncias estão completamente isoladas umas das outras, de

forma que alterações em uma delas não afetam as outras instâncias localizadas no

mesmo computador.

Page 26: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

26

Os discos rígidos de cada servidor virtual existem como arquivos no sistema

operacional hospedeiro o que os torna muito fáceis de fazer o backup, mover ou

implantar, além de fornecer o ambiente ideal para desenvolvimento e teste. [22]

A velocidade do processo é parcialmente dependente do hardware utilizado nos

computadores de origem e destino físico, bem como a capacidade da rede.

Tanto o sistema operacional convidado quanto o banco de dados da VM (virtual

machine) desconhece que a migração está acontecendo, assim, não havendo

necessidade de nenhuma configuração adicional para o sistema operacional convidado.

[22]

4.4 Discussão sobre as comparações entre os banco de

dados Existem trabalhos disponíveis na literatura comparando as abordagens de

virtualização banco de dados. [1] [4] Nos estudos analisados, a utilização de bancos de

dados virtualizados apresenta um melhor desempenho comparado com a execução de

banco de dados em ambientes virtualizados, principalmente pelo fato de que o

hypervisor da máquina virtual exige a tradução de cada instrução que está sendo

executada pelo SGBD no hardware. Porém existem outros fatores que também podem

influenciar no desempenho, tais como, o custo de migração entre uma máquina física e

a possibilidade de consolidação de servidores. [1]

Embora cada solução possua seus benefícios e limitações conforme discutido na

seção 4.3, um problema que é compartilhado por todas é o desempenho.

Comparando as três soluções apresentadas, a primeira implementa uma versão

de virtualização de banco de dados. Neste tipo de implementação, somente a instância

do banco de dados é virtualizado mediante o compartilhamento de recursos pelo

hypervisor. As duas soluções seguintes são a forma tradicional de virtualizar um

ambiente, porém o diferencial da segunda é que o banco de dados pode ser distribuído

reduzindo assim a perda de desempenho pela máquina virtual. A última solução faz o

mapeamento direto dos recursos da VM no hardware, porém para cada VM é adicionado

à camada de sistema operacional.

Segue abaixo a tabela com as principais características de cada banco de dados

abordado:

Page 27: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

27

Tabela 1 – Comparação entre os principais bancos de dados proprietários.

[6][20][21][22]

Critério Oracle RAC

One Node

IBM

DB2 9.7

Microsoft Sql

Server 2008

Virtualização de instância Sim Não Não

Hypervisor nativo Sim Não Sim

Migração online Sim Sim Sim

Executa em ambiente Distribuído Não Sim Não

Migração é transparente para o

usuário

Sim Sim Sim

Possibilita reconfiguração sem

downtime

Sim Sim Sim

Executa Múltiplas instâncias do

mesmo banco de dados

Não Sim Não

Page 28: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

28

5. Conclusões

Fabricantes de hardware/software estão incluindo cada vez mais

funcionalidades de virtualização em seus produtos. Entre elas, a virtualização de

servidores é a mais popular. A virtualização de servidores implementa uma camada

lógica sobre um sistema físico, de forma que todos os dispositivos possam ser

acessados ou compartilhados por aplicações clientes hospedadas no ambiente

virtual. [1]

Tornam-se cada vez mais escassos os argumentos para não utilizar a

virtualização em um sistema de banco de dados. Cada vez mais, novos produtos estão

sendo lançados visando à redução do impacto da virtualização de banco de dados.

Em um ambiente de banco de dados virtualizado todos os serviços são executados

em ambientes virtuais isolados. Um dos benefícios de um cenário virtualizado é que

múltiplas aplicações de banco de dados podem ser executadas simultaneamente em um

servidor com isolamento no nível do sistema operacional.

Tendo como principais vantagens da utilização de tecnologias de virtualização o

fornecimento de forte isolamento, segurança e consolidação de servidores físicos, [2]

pode ser inevitável a introdução da virtualização na pilha da arquitetura de

administração de servidores.

A virtualização do software de banco de dados pode ser implementada através

de dois modelos principais, quais sejam, através da execução em uma máquina virtual

(ambiente virtualizado) e através da virtualização da instância do banco de dados

(virtualização da instância do banco de dados). Na realização deste trabalho foram

comparados estes dois modelos, no qual o primeiro traz uma camada intermediária

entre o Hardware e o SGBD e o segundo faz um mapeamento direto dos recursos

acessados pelo do SGBD no hardware. Atualmente, a abordagem mais comum é o

suporte à banco de dados executados em máquinas virtuais. Porém, pesquisas mais

recentes indicam que a virtualização da instância de banco de dados é mais eficiente.

Neste contexto, uma possível continuação deste trabalho é o estudo das

ferramentas de monitoração de consumo de recursos e o autogerenciamento das

instâncias virtuais.

Page 29: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

29

6. Referências

[1] Ahmadi, M. R.; Maleki, D.; ” Performance Evaluation of Server Virtualization in Data Center Applications”; 2010 5th International Symposium on Telecommunications. [2] Microsoft Corporation; “Virtualization from the Datacenter to the Desktop, Building a comprehensive, end-to-end virtualization strategy”; Capturado em www.microsoft.com/virtualization; (2010).

[3] Soror, A.; Aboulnaga, A.; Salem, K;”Database Virtualization: A New Frontier for Database Tuning and Physical Desing”. Capturado em http://www.cs.uwaterloo.ca/~ashraf/pubs/smdb07virt.pdf; (2007) [4] Aboulnaga, A. (s.d.); “Virtualization and Databases:State of the Art and Research Challenges”; Capturado em http://www.edbt.org/Proceedings/2008-Nantes/papers/p746-Aboulnaga.pdf; (2008). [5] Farooq, U. M., Yadav, J., Aboulnaga, A., Salem, K.; “Database Systems on Virtual Machines: How Much do You Lose?”; 2008 ICDE Workshop. [6] Oracle Corporation; “ORACLE RAC ONE NODE”.Capturado em

http://www.oracle.com/technetwork/database/clustering/overview/ds-rac-one-node-11gr2-185089.pdf; (2011) [7] Soror, A. A., Minhas, U. F., A. ,., Salem, K.; “Automatic Virtual Machine Configuration for Database Workloads”; 2008 Proceedings of the 2008 ACM SIGMOD international conference on Management of data;

[8] Tyagi, N. K.; “Virtualization of Data Base Layer (VDBL)”. 2009 Journal of Enterprise Information System. [9] Wada, Yuji; Watanabe , Yuta; Syoubu, Keisuke; “Virtual Database Technology for Distributed Database”; 2010 IEEE 24th International Conference on Advanced Information Networking and Applications Workshops. [10] Eisen, M. “Introduction to Virtualization”; 2011 The Long Island Chapter of the IEEE Circuits and Systems (CAS) Society. [11] Campbell, S.; Sean, J.; “An Introduction to virtualization”. Capturado em http://www.intel.com/intelpress/sum_vpio.htm; 2006.

[12] Jones, M. T.; “Virtual Linux An overview of virtualization methods, architectures, and implementations”. Capturado em http://www.ibm.com/developerworks/library/l-linuxvirt/index.html; 2006. [13] Payne, B. D., Sailer, R., Cáceres, R., Perez, R., & Lee, W.; “A Layered Approach to Simplified Access Control in Virtualized Systems”; 2007 Operating Systems Review.

Page 30: BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAÇÃO DE BANCO DE DADOS

30

[14] Carissimi, A; “Virtualização: da teoria a soluções”; 2008 26º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos.

[15] Meier, S.; “IBM Systems Virtualization: Servers, Storage, and Software”; capturado em http://www.redbooks.ibm.com/redpapers/pdfs/redp4396.pdf, 2008. [16] Morgan, B.; “Virtualization, a technology which has many impacts” Capturado em http://www.windowsecurity.com/whitepapers/Virtualization.html, 2006. [17] Elmasri, R., & Navathe, S. B.; “Sistemas de banco de dados”. São Paulo, Editora Pearson, 6ª Edição. [18] DATE, J. C.;”Introdução a Sistemas de Bancos de Dados”; Rio de Janeiro, Editora Campus, 8ª Edição. [19] Das , S.; Nishimura, S.; Agrawal, D; Abbadi , A. E.; “Live Database Migration for

Elasticity in a Multitenant Database for Cloud Platforms”; 2010-9 UCSB Computer Science Technical Report. [20] Nomani, A., Mutyala, P., Rayanki, Y., Wu, A.; “Implemente o recurso DB2 pureScale no Linux”; Capturado em http://www.ibm.com/developerworks/br/data/library/techarticle/dm-1104purescale/index.html; 2011. [21] Cilimdzic, M., & Ogirala, S. K.; “Deploy IBM DB2 pureScale feature on IBM Power Systems.” Capturado em http://www.ibm.com/developerworks/data/library/techarticle/dm-1009purescaleonpower/index.html; 2010. [22] Allix, G., Malcolm, G. “Consolidação de Servidores com o SQL Server 2008”. Capturado em http://msdn.microsoft.com/pt-br/sqlserver/default.aspx?ocid=otc-c-br-jtc--wiki; 2007.