Вы находитесь на странице: 1из 30

PONTIFCIA UNIVERSIDADE CATLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMTICA PROGRAMA DE PS-GRADUAO EM CINCIA DA COMPUTAO

BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAO DE BANCO DE DADOS

TIMOTEO ALBERTO PETERS LANGE

Monografia apresentada Disciplina de Introduo Pesquisa, curso de Mestrado em Cincia da Computao, Faculdade de Informtica, Programa de Ps-Graduao em Cincia da Computao, Pontifcia Universidade Catlica do Rio Grande do Sul.

Orientador: Prof. Csar Augusto F. De Rose Porto Alegre 2011

BANCO DE DADOS VIRTUAL: UMA NOVA ABORDAGEM PARA VIRTUALIZAO DE BANCO DE DADOS

RESUMO

Virtualizao de servidores implementa uma camada lgica sobre um sistema fsico, de forma que todos os dispositivos possam ser acessados ou compartilhados por aplicaes clientes hospedadas no ambiente virtual. O presente trabalho apresenta um levantamento do estado da arte sobre a utilizao de sistemas de banco de dados virtualizados, mostrando as principais tcnicas, vantagens e as desvantagens dessa utilizao.

Palavras-Chave: Banco de dados, Virtualizao, Hardware, Migrao, Hypervisor, Desempenho

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

SUMRIO

1. Introduo ....................................................................................................5 2. Virtualizao...............................................................................................7 2.1 Definio de Virtualizao............................................................................. 7 2.2 Tipos de Virtualizao .................................................................................. 8 2.2.1 Emulao de Hardware .......................................................................... 8 2.2.2 Virtualizao Total ................................................................................. 8 2.2.3 Para-virtualizao.................................................................................. 9 2.2.4 Virtualizao do Sistema Operacional ..................................................... 10 2.3 Motivaes para Virtualizar ......................................................................... 10 2.4 Recursos que podem ser Virtualizados ......................................................... 11 3. Banco de Dados ........................................................................................... 14 3.1 Definio 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 Virtualizao 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 Consolidao de Servidores em Banco de Dados Virtualizados................... 24 4.3. Viso 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 Discusso sobre as comparaes entre os banco de dados.............................. 26 5. Concluses .................................................................................................. 28 6. Referncias ................................................................................................. 29

1. Introduo
Atualmente, a virtualizao de recursos computacionais vem sendo utilizada na maioria dos recursos de TI (Tecnologia de Informao), tais como servidores, redes, sistemas operacionais e aplicaes. Entre eles, a virtualizao de servidores a mais popular. A Virtualizao de servidores implementa uma camada lgica sobre um sistema fsico, de forma que todos os dispositivos possam ser acessados ou compartilhados por aplicaes clientes hospedadas no ambiente virtual. [1] As principais vantagens da utilizao de tecnologias de virtualizao so: o fornecimento de forte isolamento, segurana e consolidao de servidores fsicos. Alm disso, tambm podem ser exploradas novas possibilidades, tais como, a alta disponibilidade e balanceamento de carga de trabalho. [2] Nesse sentido, existe uma tendncia natural em tentar explorar os benefcios da virtualizao tambm em sistema de banco de dados. De fato, pesquisas recentemente avaliam o impacto da utilizao de tecnologias de virtualizao em banco de dados e propem solues especficas para esse tipo de sistema [4, 5, 6, 7,8]. Os ambientes virtualizados atuais do suporte ao banco de dados, porm executando em Mquinas Virtuais (VM). A abordagem mais natural para levar a virtualizao 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 consolidao de vrios servidores virtuais em um nico servidor fsico, reduzindo assim o custo de manuteno e consumo de energia. [2] Porm, alguns problemas relevantes so apresentados, quais sejam, o problema de transparncia da localizao do banco de dados para as aplicaes 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 execuo do sistema. Alm desta caracterstica, existem outras propriedades interessantes que devem ser levadas em considerao e que justificam a discusso sobre virtualizao de servidores de banco de dados. Na nova abordagem, o banco de dados no executado em uma mquina virtual. Neste conceito somente a instncia de banco de dados virtualizado. Neste contexto, o presente trabalho tem como objetivo apresentar um levantamento do estado da arte sobre a utilizao de sistemas de banco de dados em

ambientes virtualizados, mostrando as principais tcnicas, vantagens e as desvantagens dessa utilizao. O texto est organizado da seguinte maneira: primeiramente, o captulo 2 apresenta as formas de virtualizao; o captulo 3 apresenta os conceitos dos sistemas de banco de dados atualmente e as principais caractersticas; o captulo 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 discusso sobre os modelos e por m, a seo 5 realiza as consideraes nais ressaltando os principais desaos dessa rea.

2. Virtualizao
A virtualizao de recursos adiciona uma camada intermediria de software entre as aplicaes e o hardware. Esta camada mapeia os recursos virtuais visveis s aplicaes (Banco de Dados, no contexto deste trabalho) ligando com os recursos fsicos disponveis no hardware hospedeiro. [7] A camada de comunicao intermediria entre os recursos fsicos e os recursos virtuais possibilita o compartilhamento dos recursos e a realocao destes recursos conforme necessrio. Assim, em um servidor fsico podem ser executadas mltiplas aplicaes (isoladas) compartilhando os mesmos recursos de hardware. [7] O texto est organizado da seguinte forma. Primeiramente, apresentado o conceito de virtualizao (seo 2.1). Na seqncia so apresentados os tipos de virtualizao (seo 2.2) e por ltimo (seo 2.3) so apresentados exemplos de recursos que podem ser virtualizados.

2.1 Definio de Virtualizao


A virtualizao 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 no executado diretamente no hardware fsico. Segundo a definio apresentada por Eisen, a virtualizao abstrai a estrutura fsica subjacente de vrias tecnologias. Virtualizao, em computao, a criao de uma verso virtual de algo, como uma plataforma de hardware, sistema operacional, um dispositivo de armazenamento ou recursos de rede. [10] Outra definio de Virtualizao dada por Campbell e adotada neste trabalho define virtualizao como processo de desassociaao do hardware conhecido pelo sistema operacional e a mquina fsica propriamente, comumente considerada uma camada hardware em software. Simplificando, a virtualizao semelhante a um computador dentro de um outro computador, implementado em software, criando a iluso de certos tipos de dispositivos, como placas de som, CPUs, memria e armazenamento fsico. [11] Um sistema operacional sendo executado em um ambiente virtualizado conhecido como uma mquina virtual. A tecnologia de virtualizao permite que vrias mquinas virtuais, com sistemas operacionais diferentes, executem lado a lado, isolados na mesma mquina fsica, emulando um sistema completo de hardware, desde o microprocessador at placa de rede. Cada mquina virtual pode compartilhar um

conjunto comum de hardware sem saber que este hardware tambm pode estar sendo usado por outra mquina virtual ao mesmo tempo.

2.2 Tipos de Virtualizao


Em um ambiente virtualizado possvel verificar o impacto no desempenho do hardware devido camada intermediria entre o hardware e software. Neste trabalho so abordados os principais modelos de virtualizao [12].

2.2.1 Emulao de Hardware


A emulao de hardware a utilizao 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 no seja mais comercializada, sem que seja necessrio migrar os sistemas legados. Analisando as desvantagens, se verifica que neste modelo cada instruo deve ser mapeada de uma arquitetura para a outra, prejudicando assim o desempenho. [12]

Aplicativos SO Convidado

Aplicativos SO Convidado

Aplicativos SO Convidado Hardware VM B

Hardware VM A Hardware

Figura 1- Emulao de hardware

2.2.2 Virtualizao Total


A virtualizao total uma camada de software que utilizada para abstrair os recursos fsicos, porm diferentemente da anterior, o objetivo fornecer ao sistema operacional visitante uma rplica do hardware subjacente. Dessa forma, o sistema operacional visitante executado sem modificaes sobre o monitor de mquina virtual (VMM), apenas o hardware do sistema hospedeiro emulado de forma que os sistemas operacionais instalados sobre a camada de controle devem ser compatveis com esta arquitetura. [11] Esse tipo de virtualizao mais rpida que a emulao de hardware, porm o desempenho ainda pior do que a utilizao direta, devido mediao da camada

intermediria de software (Hypervisor). A camada hypervisor responsvel pela segurana dos recursos de hardware e pelo controle do fluxo de informaes entre VMs e o hardware hospedeiro. [13]

Aplicativos SO convidado

Aplicativos SO convidado Hypervisor (VMM) Hardware


Figura 2 - Virtualizao Total

Aplicativos SO convidado

2.2.3 Para-virtualizao
A para-virtualizao tambm utiliza uma camada de software de controle, porm nesta abordagem h alteraes nos sistemas operacionais convidados para que estes cooperem com o processo de virtualizao. [11] Neste modelo so permitidos somente sistemas operacionais que estejam aptos a estas alteraes, o que limita a utilizao, porm, 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 esto em um ambiente virtual. [12] Nessa abordagem, a desvantagem que o sistema convidado modificado para acessar a VMM sempre que for executada uma instruo, porm, o teste por instruo no mais necessrio aumentando o desempenho. [14]

Aplicativos SO convidado Alterao SO

Aplicativos SO convidado Alterao SO Hypervisor (VMM) Hardware


Figura 3 - Para-virtualizao

Aplicativos SO convidado Alterao SO

2.2.4 Virtualizao do Sistema Operacional


A virtualizao do sistema operacional permite que um tipo de sistema operacional conviva com diversas outras instncias do mesmo sistema, compartilhando os recursos fsicos. A mquina virtual funciona como um processo do sistema anfitrio. Neste mtodo, o sistema operacional deve ter um suporte a este tipo de operao, sendo a principal vantagem o desempenho, comparado utilizao nativa. A desvantagem que o usurio no pode fazer uso de outro sistema operacional na mquina virtual no ambiente virtual. [12]

Aplicativos Instncia do SO

Aplicativos Instncia do SO Sistema Operacional Hardware

Aplicativos Instncia do SO

Figura 4 - Virtualizao do Sistema Operacional

2.3 Motivaes para Virtualizar


Todos os mtodos de virtualizao apresentados so implementados atravs de uma camada intermediria de software, responsvel pela administrao e compartilhamento dos recursos fsicos do hardware hospedeiro, implicando diretamente no desempenho. J h algum tempo os fabricantes de hardware, tm includo instrues especficas que auxiliam no processo de virtualizao assessorando esta camada de software a resolver certas dificuldades conhecidas, como por exemplo, a traduo de endereos de memria e o desempenho. Tambm se podem citar problemas de segurana, gerenciamento e dimensionamento. [14] Considerando os diversos modelos de virtualizao, o presente trabalho focado nos benefcios que um ambiente virtualizado pode trazer. Dentre as vantagens, podemos citar: Consolidao da infra-estrutura: menos equipamentos so necessrios para executarem a mesma quantidade de sistemas. Esta consolidao

10

significa reduo do espao necessrio para a acomodao dos equipamentos e a reduo de custos com energia (tanto para funcionamento como para resfriamento e reduo de custos para aquisio e manuteno dos equipamentos). [15] Maior eficincia na utilizao dos recursos: Uma prtica utilizada virtualizar um ambiente que tem um perfil de alta utilizao no horrio comercial com um sistema de alta utilizao no perfil noturno, de modo que os recursos estejam sempre sendo utilizados e permaneam a menor parte do tempo ociosos. [11] Aumento da disponibilidade: dada a facilidade de migrar sistemas virtuais entre servidores fsicos possvel manter um ambiente replicado para o caso de falhas ou paradas programadas de manuteno. [15] Melhoria no gerenciamento: considerando que os recursos so virtuais, estes podem ser migrados, replicados ou redimensionados com maior facilidade. Entre as prticas comuns, uma delas conceder mais memria, processamento, ou espao em disco para uma instncia quando necessrio sem que seja necessrio alterar o hardware do servidor. [15] Flexibilidade da infra-estrutura: diversos sistemas operacionais heterogneos podem ser executados no mesmo ambiente, alm de executar ambientes legados em recursos novos de hardware. [15] Facilidade de execuo de backup: possvel fazer uma cpia completa da imagem (snapshot) do estado atual da VMM, incluindo toda sua configurao. Algumas ferramentas ainda disponibilizam a execuo do backup durante a execuo, eliminando a necessidade de parada. [7] Reduo do tempo de entrega de novos servidores: instncias de novos servidores podem ser criadas rapidamente sem necessidade de espera de aquisio de hardware. Outra melhora pelo fato destas instncias serem criadas a partir de templates j disponveis no ambiente. [15]

2.4 Recursos que podem ser Virtualizados


A abordagem de ambiente virtualizado conduz a um grupo de servidores virtualizados. Alm de virtualizar os servidores, existem outros recursos que tambm podem ser virtualizados. [16]

11

Entre os principais recursos, este trabalho pode citar: Virtualizao de servidores: possibilita a criao de mltiplas mquinas virtuais com seus respectivos sistemas operacionais, em uma nica mquina fsica, ainda que sejam logicamente distintas, porm com perfis de hardware consistente [16] Esta modalidade muitas lgico. vezes O pode tomar foco da o lugar da de prtica onerosa de consolidao de servidores manual, atravs da combinao de vrios servidores virtuais em um servidor virtualizao servidores est em maximizar a eficincia do hardware do servidor, a fim de aumentar o retorno sobre o investimento do hardware. [16] Virtualizao de aplicaes: Para cada aplicao criada uma instncia e de acordo com a necessidade distribuda de forma on-demand de virtualizao vai de mos dadas com atravs a de uma rede. Esta estratgia [16] Aplicativos virtualizados podem usar uma camada de abstrao em comum que define um protocolo permitindo a comunicao de um aplicativo com outro em um formato de mensagem padro. Assim, as aplicaes podem chamar outro aplicativo, a fim de executar as funes solicitadas. A aplicao virtualizada no s capaz de invocar remotamente os pedidos e retornar resultados, mas tambm garantir que o estado do aplicativo e outros dados estejam disponveis e com recursos consistentes em todos os ns que executam a aplicao. Virtualizao de storage: permite que dispositivos de armazenamento separados possam ser combinados e sejam acessados como uma nica unidade. Essa modalidade tenta maximizar a eficincia do hardware de armazenamento em uma arquitetura virtual. [4] Virtualizao de rede: possibilita a criao de mltiplas redes virtuais que podem ser combinadas em uma nica rede fsica (pode ser suportado em um nico equipamento de rede) ou ainda, pode criar redes separadas logicamente em vrias partes no mesmo ambiente. Uma prtica comum criar LANs virtuais (Local Area Network), ou VLANs (Virtual Area network), a fim de gerenciar de forma mais eficaz uma rede. [16]. Virtualizao de banco de dados: permite que os usurios acessem vrias fontes de dados localizados geograficamente em qualquer lugar sem a necessidade de saber ou se importar onde os dados realmente residem. A virtualizao de banco de dados permite o uso de mltiplas instncias de um SGBD (Sistema Gerenciado de banco iniciativa de

padronizar os servios de internet que esto preocupando a indstria de TI atualmente.

12

de

Dados), ou

plataformas diferentes DBMS

(DataBase

Management

System),

simultaneamente e de forma transparente e independentemente da sua localizao fsica. Estas prticas podem ser empregadas em minerao de dados e sistemas de armazenamento de dados. [7],[8],[16] Banco de dados uma classe de recursos que tem caractersticas especficas e que devem ser consideradas antes de virtualizar. Nos prximos captulos essas caractersticas sero abordadas de forma mais detalhada.

13

3. Banco de Dados
O banco de dados foi originalmente projetado com o objetivo de separar o armazenamento fsico dos dados da sua representao conceitual e prover com uma fundamentao matemtica para identificar o esforo necessrio no processo de acesso aos dados. Essa abordagem de implementao introduziu as linguagens de consulta de alto nvel, que so uma alternativa s interfaces para as linguagens de programao e consequentemente, ficou mais rpido e fcil escrever novas consultas e obter o resultado extrado do banco de dados. [17] Logo, o banco de dados uma classe de recurso que tem caractersticas bem especficas e estas devem ser consideradas antes de virtualizar um servidor de banco de dados. O objetivo deste captulo detalhar uma viso geral sobre a virtualizao de Banco de Dados Virtualizados. O texto est organizado da seguinte forma: primeiramente, apresentada a definio de banco de dados. (seo 3.1). Na sequncia apresentada a estrutura de um banco de dados (seo 3.2), e por ltimo (seo 3.3) abordada a virtualizao de banco de dados.

3.1 Definio de Banco de Dados


Banco de dados um recurso que pode ser interpretado como um sistema computadorizado de armazenamento de registros. Este sistema no se resume apenas ao armazenamento dos registros, oferece tambm a possibilidade de manipulao e gerenciamento destes registros. A manipulao dos registros poder acontecer sob a forma de alteraes, inseres e excluses de dados. [18] Neste trabalho ser adotada a definio de Elmasri, que define um Banco de Dados como uma coleo de dados relacionados. Os dados so fatos que podem ser armazenados e que possuem um significado implcito. [17] Algumas das principais caractersticas que um banco de dados pode possuir so apresentadas a seguir: Um banco de dados representa alguns aspectos do mundo real, sendo chamado, s vezes, de minimundo. As mudanas no minimundo podem ser refletidas em todo o banco de dados. [18] Um banco de dados uma coleo lgica e coerente de dados com algum significado inerente. Uma organizao de dados ao acaso (randmica) no pode ser corretamente interpretada como um banco de dados. [18]

14

Um banco de dados projetado, construdo e povoado por dados, atendendo a uma proposta especfica. Possui um grupo de usurios definido e algumas aplicaes preconcebidas, de acordo com o interesse desse grupo de usurios. [18] O domnio de um banco de dados pode ser de qualquer tamanho e de complexidade varivel. [17] Uma base de dados pode conter de centenas at milhes de registros, de variados formatos e complexidades. Normalmente os dados esto relacionados a um domnio, e os registros se relacionam de diversas formas. Sistemas de banco de dados corporativos consomem uma poro considervel dos recursos fsicos do servidor considerando o grande volume de transaes executadas. [7] Atualmente os Sistemas Gerenciadores de Banco de Dados (SGBD) devem ter a premissa de possibilitar o acesso multiusurio: mltiplas conexes de acesso ao banco de dados simultneo. Isso essencial se os dados para as vrias aplicaes esto integrados e mantidos em um nico banco de dados. O SGBD deve incluir um software de controle de concorrncia para garantir que em caso de muitos usurios tentarem atualizar o mesmo dado, o faa de um modo controlado e ordenado, para assegurar que os resultados das atualizaes sejam corretos. Uma regra fundamental do software do SGBD multiusurio garantir que as transaes 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 responsveis pelo gerenciamento do acesso aos dados e os dados. O primeiro possui interfaces para a criao e manipulao dos dados, alm de outras funcionalidades, como o controle de segurana 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 so os dados propriamente ditos, que normalmente esto dispostos em um ou mais arquivos seguindo uma estrutura fsica proprietria do SGDB em questo. [17] Na implementao dos bancos de dados atuais, o SBGD so implementados o conceito de Esquema e Instncia de banco de dados. Esquema pode ser definido como sendo a descrio do banco de dados no nvel lgico. J a instncia a representao do banco de dados com seus respectivos dados em um determinado momento. [18] A definio de instncia muito importante para a correta compreenso deste trabalho. Instancia a estrutura de acesso aos registros armazenados nos arquivos de

15

dados pelos programas que formam o SGBD. Os valores dos parmetros de uma instncia podem ser definidos no momento de criao. Esses parmetros iro alocar a quantidade de memria e recursos do sistema operacional que foi configurado e iniciar os processos responsveis por manipular o banco de dados. [6] A coleo de dados que compe 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 necessrio.

Usurios / Aplicaes Clientes Sistema de Banco de Dados Aplicao Consultas / Programas SGBD Processamento das Consultas / Programas

Acesso aos Dados Armazenados

Definio do Banco de Dados (Esquema)

Banco de Dados (Arquivos Fsicos)

Figura 5 - Estrutura de Sistemas de Banco de Dados As mdias de armazenamento de computador formam uma hierarquia de armazenamento que inclui duas categorias principais: Armazenamento primrio: inclui os recursos de armazenamento que podem ser acessados diretamente pela unidade central de processamento (CPU), como a memria principal e a memrias cache que so em geral pequenas se comparada ao volume de dados armazenado. A vantagem da utilizao deste tipo de armazenamento a velocidade de acesso as informaes, porm com uma capacidade reduzida. [17] Armazenamento secundrio: so identificados como os recursos de discos (e/ou storages). Esses dispositivos geralmente possuem maior capacidade combinado com menor custo, porm proporcionam o acesso mais lento se comparado aos dispositivos de armazenamento primrio. Os dados de um armazenamento secundrio no podem ser processados diretamente pela CPU. [17]

16

SGBDs podem armazenar grandes volumes de dados e devem ser mantidos por longos perodos de tempo. Os dados podem ser acessados e processados repetidamente ao longo da sua existncia e, em alguns casos, devem permanecer e estar disponveis permanentemente.

3.3 Banco de Dados em Ambientes Virtualizados


Normalmente, a principal tarefa dos administradores de infra-estrutura das empresas que tem um grande nmero de servidores que provem servios de banco de dados o gerenciamento desses recursos e a dificuldade de acomodar os servios nos servidores fsicos (ou virtuais) evitando o esbanjamento ou falta de recursos. Na infra-estrutura a virtualizao pode ser a principal estratgia auxiliar na atividade de administrao dos recursos existentes. Assim, surgem dois desafios: o problema de desempenho dos servidores virtuais em comparao aos recursos fsicos e o tempo de migrao dos servios de banco de dados de um servidor fsico para outro servidor fsico. Atualmente os bancos de dados so disponibilizados em um ambiente virtualizado sobre uma mquina virtual. [19] Uma das principais vantagens da execuo de um servidor de banco de dados em ambiente virtualizado pode ser a fcil migrao de um servidor fsico para outro, aumentando assim o tempo de disponibilidade do servio. [19] Com a incluso de virtualizao em ambientes de banco de dados, a principal preocupao o tempo gasto de indisponibilidade durante o processo de migrao de um banco de dados. Como o banco de dados pode ser movido de um servidor sem recursos para um servidor novo, a migrao a principal atividade de sobrecarga que os administradores esto enfrentando atualmente. [8]

Banco de Dados SO Convidado

Banco de Dados SO Convidado

Banco de Dados SO Convidado Hypervisor (VMM) Hardware

Hypervisor (VMM) Hardware

Figura 6 Banco de dados em ambientes Virtualizados

17

Nessa abordagem de migrao, podem ser usadas 3 tcnicas principais de migrao: [19] Migrao Offline/Online: A forma mais simples de migrar um servidor de banco de dados parar o servio, mover para o novo servidor e iniciar o servio no novo ambiente. Embora sejam consideravelmente simples e segura, todos as conexes e transaes so perdidas durante a execuo da migrao. Migrao sob Demanda: Para diminuir o tempo de inatividade do servio, pode-se usar uma tcnica de migrao onde uma parada rpida do servio iniciada uma nova cpia da instncia de banco em um outro servidor que recebe todas as novas conexes mantendo as antigas. Essa abordagem pode ser considerada mais eficiente que a anterior, porm produz uma sobrecarga alta aps a migrao para manter a sincronia entre origem e destino. Migrao em tempo Real: semelhante tcnica anterior. Para resolver o problema de sobrecarga de sincronia essa tcnica grava o estado do banco de dados (da transaes) recuperando o seu estado atual aps a migrao.

18

4. Banco de Dados Virtualizados


Atualmente, embora que a prtica de execuo de banco de dados em ambiente virtual pode ser explorada, o principal desafio dessa prtica ainda o desempenho. Este desafio pode ser motivado pela insero da camada intermediria entre o SGBD e o hardware, obrigando uma execuo extra a traduo de endereos virtuais para endereos fsicos. [15] O texto est organizado da seguinte forma: inicialmente so abordados os desafios da virtualizao de banco de dados (seo 4.1). Na sequncia apresentado o modelo de virtualizao (seo 4.2), e por ltimo (seo 4.3) abordada uma viso geral sobre os bancos de dados atuais.

4.1 Desafios da Virtualizao de Bancos de Dados


No bastasse o alto consumo de recursos, os sistemas de banco de dados tambm so normalmente bastante complexos quanto sua correta instalao, configurao e otimizao. Outro ponto que deve ser levado em considerao o desempenho, observada a grande desvantagem da utilizao de virtualizao em servidores de banco de dados. Porm, de acordo com estudos realizados [17], a perda de desempenho em mdia menor que 10%, e devido em grande parte s falhas de paginao, ou Page Fault. Uma falha de paginao ocasionada quando uma pgina de dados necessria no se encontra na memria principal, ou se encontrada, no est presente no espao de endereamento do processo corrente. [17] Alm do problema de paginao, outro problema que pode afetar o desempenho de um banco de dados virtualizado so as camadas de software inseridas entre os recursos, haja vista que elas podem comprometer os ciclos do processador, muitas vezes at dois dgitos percentuais. [16] Em um ambiente de mquinas virtuais, onde cada uma est executando um SGBD independente, elas esto competindo pelos recursos fsicos de um servidor. A principal dificuldade alocar os recursos conforme a necessidade de cada SGBD. Considerando os diferentes tipos de recursos fsicos, tais como memria, capacidade de CPU ou velocidade de I/O, atribudas s mquinas virtuais, a dificuldade alocar uma parte ou frao de cada recurso da mquina fsica para cada mquina virtual. Desta forma, devem ser definidos os parmetros de configurao dos recursos das mquinas virtuais na hora de inicializao e cada mquina virtual deve ser monitorada para identificar possveis falhas ou gargalos. [17]

19

Ao criar uma mquina virtual para uma ou mais aplicaes importante configurar corretamente a mquina virtual. Uma deciso importante que deve ser feita ao configurar uma mquina virtual decidir o quanto dos recursos fsicos disponveis sero destinados a esta VM. Atualmente, h pesquisas [17] que propem um sistema automtico para tomar esta deciso nas mquinas virtuais que hospedam os SGBD. Ao considerar os pontos positivos mencionados anteriormente sobre virtualizao, podemos destacar alm daqueles, a consolidao de banco de dados em ambiente virtualizados. O aumento da demanda por dados ou recursos de banco de dados pode ser facilmente resolvida atravs da gerncia de SGBDs ou de infra-estrutura fsica com ferramentas de virtualizao. [16] Dificilmente servidores de banco de dados so totalmente monitorados durante a execuo, independentemente do sistema operacional que est sendo utilizado. Para os administradores de banco de dados, que so os responsveis 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 no virtualizado. [1] A concluso de que a carga de trabalho no modelo virtual tem uma utilizao de CPU maior que os modelos no-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 traduo de endereos virtuais para a arquitetura fsica. Para aumentar o desempenho, possvel desenvolver uma camada de aplicao utilizando a abstrao entre o sistema operacional e o hardware fsico, comunicando em um formato padro de mensagens, tornado um protocolo de comunicao. Essa camada no s capaz de atender aos pedidos, mas tambm capaz de confirmar o estado da aplicao SGBD e disponibilizar os dados restantes sobre todos os recursos fsicos. [20] Essa nova abordagem de virtualizao de banco de dados trs alguns benefcios em comparao a abordagem atual.

4.2 Modelo do Banco de Dados Virtualizado


Nesta nova abordagem proposta somente a virtualizao da base de dados, o que pode aumentar a flexibilidade atravs da arquitetura proposta [8]. A migrao de banco de dados entre mquinas virtuais pode ser executada facilmente. As bases de

20

dados podem ficar em localizaes transparentes e ser realocadas em outros servidores sem a necessidade de realizar modificaes nas aplicaes. Diferentemente da utilizao de banco de dados em uma mquina virtual, um banco de dados virtualizado pode ser migrado de um ambiente para outro ambiente sem a necessidade de parada dos servios.

Banco de Dados

Banco de Dados

Banco de Dados

Hypervisor (VMM) Hardware


Figura 7 - Banco de Dados Virtualizados A migrao realizada em duas etapas: 1) Inicializao da nova instncia do banco de dados no novo servidor; 2) Migrao de todas as conexes existentes, transaes e os estados de cada transao. [6] Somente aps a migrao de todas as conexes e transaes o servio original finalizado.

Virtualio

Banco de Dados

Banco de Dados

Banco de Dados

Hardware + SO (Hypervisor)

Host 01

Host 02

Storage

Figura 8 - Migrao de banco de dados virtualizado

21

Sendo que neste tipo de migrao necessrio migrar somente a instncia e no o banco de dados inteiro. Esse tipo de migrao tem um desempenho superior em relao outra abordagem, pois os dados no so movimentados. [6] Alm disso, a camada intermediria entre o banco de dados e o hardware pode ser menor, e assim pode aumentar o desempenho. Considerando que o sistema operacional no virtualizado, e que somente as instncias do banco de dados so virtualizadas, no necessrio traduzir cada instruo do SGDB para o sistema operacional hospedeiro. Observado que o recurso de virtualizao est no kernel do hypervisor, as instrues podem ser executadas diretamente no hardware. Nesse modelo, o hypervisor tem com uma de suas funes controlar os recursos disponveis para que todas as instncias acessem os recursos conforme a configurao individual. Os benefcios trazidos pela tcnica de virtualizao de banco de dados utilizando uma camada de comunicao direta com o sistema operacional hospedeiro podem ser listadas conforme segue: [8]. Acesso ao banco feito em aplicaes sem conhecimento da localizao 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 rpida realocao de instncias de banco de dados em outros servidores. Podem ser realizadas manutenes no ambiente fsico sem causar impacto no desempenho ou interromper os servios; As despesas com administrao, licenciamento e hardware so reduzidos, considerando a simplicidade do ambiente. Segurana dos dados e recuperao em caso de desastres. Em caso de falha de hardware, os dados podem ser restaurados em uma mquina com hardware de configuraes diferentes. A recuperao de desastres de vrios bancos de dados para um ambiente secundrio pode ser realizada de forma simples e rpida, bastando migrar somente as instncias do banco de dados. A camada de virtualizao de banco de dados permite a gesto dos DBAs para consolidar servidores. A migrao pode ser feita em questo de segundos, sem fechar as sesses de usurio ou perder as transaes ativas do banco de dados. [6] A virtualizao de banco de dados est em fase inicial de desenvolvimento, embora muitas empresas j estejam desenvolvendo pesquisas neste campo. [8]

22

A administrao das instncias virtuais um item muito importante na relao do gerenciamento do banco de dados. Pode ser considerada uma vantagem, dada facilidade de se manusear instncias virtuais, e pode tambm ser considerada um problema caso no se tenha ferramentas adequadas para o controle das instncias ou at mesmo que se crie um nmero excessivo destas, observada a facilidade desta operao.

4.2.1 Alta Disponibilidade de Banco Virtualizados


Alta disponibilidade trata da disponibilidade dos sistemas reduzindo paradas planejadas e no planejadas. Existem vrias tcnicas de alta disponibilidade para banco de dados. Neste trabalho sero abordadas duas tcnicas: a clusterizao e a virtualizao. Clusterizao: O ambiente de cluster consiste no uso coordenado de vrios servidores (fsicos 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 memria) de todos os servidores interligados. [6] Em caso de parada no planejada de um dos servidores do Cluster, o prprio servio de banco de dados dever detectar e transferir os usurios conectados do servio parado para o outro servidor automaticamente, sem interromper a disponibilidade do ambiente. Se a necessidade for a de substituir, retirar ou acrescentar servidores (ns) ao cluster, tambm no ser necessrio interromper a disponibilidade do ambiente. Neste modelo so necessrios que todos os ns do cluster estejam com o banco de dados ativo, gerando assim um nus de monitorao entre as instncias e sincronia de dados. [6] [1] Virtualizao: a virtualizao do banco de dados mais vantajosa em relao tcnica anterior porque que somente uma instncia precisar ser migrada quando for detectada a falha do banco de dados. [6] Alm 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 especificaes de hardware de um determinado servidor. Isso geralmente feito atravs do aumento do nmero dos processadores,

23

adio de mais RAM, e assim por diante, porm 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 Consolidao de Servidores em Banco de Dados Virtualizados


A consolidao pode ser definida como sendo o uso eficiente dos recursos de hardware. A separao das camadas de hardware e sistema operacional da mquina virtual possibilita o gerenciamento de recursos e a convivncia de servidores heterogneos, permitindo um uso mais eficiente dos recursos de hardware. [2], definio esta que ser a adotada neste trabalho. Em um ambiente de virtualizao de banco de dados pode haver consolidao de servidores. Conforme mencionado anteriormente, a consolidao de servidores possibilita monitorar os recursos disponveis de hardware, adicionando ou removendo recursos ao banco de dados. Alm de alocar os recursos conforme necessrio possvel suportar vrios servios de banco de dados em um nico servidor fsico.

4.3. Viso geral dos Bancos de Dados Atuais


Para realizar a comparao entre as formas de virtualizao, foram escolhidos os seguintes banco de dados proprietrios: Oracle 11G r2, IBM DB2 9.7 e Microsoft Sql Server 2008. Tais bancos de dados foram escolhidos por possurem documentaes que expressam a capacidade de alta disponibilidade e a possibilidade de executar em ambiente virtualizado. Ao final deste captulo, ser apresentada uma tabela com as principais caractersticas de cada banco de dados.

4.3.1 Oracle Rac One Node


Durante a execuo 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 disponveis, h a possibilidade de migrar on-line para outro servidor com mais recursos disponveis. Alm disso, existe a possibilidade de aumentar dinamicamente os recursos, possibilitando o Scale Up das instncias 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

24

migrao online sem a necessidade de parar o servio, reduzindo significativamente o tempo de downtime de uma aplicao. Alm da possibilidade de mover um banco de dados quando uma falha for detectada, ainda possvel realizar o balanceamento de carga de trabalho realocando uma instncia de banco de dados em um servidor desocupado. [6]

4.3.2 IBM DB2 9.7


Pode ser executado em um ambiente virtualizado, porm no traz uma ferramenta de migrao de instncia de banco de dados. Os parmetros de ajuste automtico e a capacidade de alterao de forma dinmica sem a necessidade de parar a instncia de banco de dados tambm um recurso disponvel. Considerando que no totalmente executado diretamente no hardware fsico 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 eficincia do hypervisor. Uma das caractersticas 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 soluo 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 no impacta na disponibilidade do banco de dados. Alm disso, a capacidade adicional includa simplesmente colocando novos hosts no cluster existente. [21]

4.3.3 Microsoft SQL Server


Essa soluo oferece um banco de dados em uma mquina virtual. No entanto, no o banco de dados que ir migrar e sim a toda mquina virtual, atravs da ferramenta que uma tecnologia exclusiva que permite que um administrador de um servidor mova uma mquina virtual em execuo ou um aplicativo entre diferentes mquinas fsicas sem desconectar o cliente ou o aplicativo. Nesta soluo, as instncias esto completamente isoladas umas das outras, de forma que alteraes em uma delas no afetam as outras instncias localizadas no mesmo computador.

25

Os discos rgidos de cada servidor virtual existem como arquivos no sistema operacional hospedeiro o que os torna muito fceis de fazer o backup, mover ou implantar, alm 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 fsico, bem como a capacidade da rede. Tanto o sistema operacional convidado quanto o banco de dados da VM (virtual machine) desconhece que [22] a migrao est acontecendo, assim, no havendo necessidade de nenhuma configurao adicional para o sistema operacional convidado.

4.4 Discusso sobre as comparaes entre os banco de dados


Existem trabalhos disponveis na literatura comparando as abordagens de virtualizao banco de dados. [1] [4] Nos estudos analisados, a utilizao de bancos de dados virtualizados apresenta um melhor desempenho comparado com a execuo de banco de dados em ambientes virtualizados, principalmente pelo fato de que o hypervisor da mquina virtual exige a traduo de cada instruo que est sendo executada pelo SGBD no hardware. Porm existem outros fatores que tambm podem influenciar no desempenho, tais como, o custo de migrao entre uma mquina fsica e a possibilidade de consolidao de servidores. [1] Embora cada soluo possua seus benefcios e limitaes conforme discutido na seo 4.3, um problema que compartilhado por todas o desempenho. Comparando as trs solues apresentadas, a primeira implementa uma verso de virtualizao de banco de dados. Neste tipo de implementao, somente a instncia do banco de dados virtualizado mediante o compartilhamento de recursos pelo hypervisor. As duas solues seguintes so a forma tradicional de virtualizar um ambiente, porm o diferencial da segunda que o banco de dados pode ser distribudo reduzindo assim a perda de desempenho pela mquina virtual. A ltima soluo faz o mapeamento direto dos recursos da VM no hardware, porm para cada VM adicionado camada de sistema operacional. Segue abaixo a tabela com as principais caractersticas de cada banco de dados abordado:

26

Tabela 1 Comparao entre os principais bancos de dados proprietrios. [6][20][21][22] Critrio Virtualizao de instncia Hypervisor nativo Migrao online Executa em ambiente Distribudo Migrao transparente para o usurio Possibilita reconfigurao sem downtime Executa Mltiplas instncias do mesmo banco de dados No Sim No Sim Sim Sim Oracle RAC One Node Sim Sim Sim No Sim IBM DB2 9.7 No No Sim Sim Sim Microsoft Sql Server 2008 No Sim Sim No Sim

27

5. Concluses
Fabricantes de hardware/software esto incluindo cada vez mais funcionalidades de virtualizao em seus produtos. Entre elas, a virtualizao de servidores a mais popular. A virtualizao de servidores implementa uma camada lgica sobre um sistema fsico, de forma que todos os dispositivos possam ser acessados virtual. [1] Tornam-se cada vez mais escassos os argumentos para no utilizar a virtualizao em um sistema de banco de dados. Cada vez mais, novos produtos esto sendo lanados visando reduo do impacto da virtualizao de banco de dados. Em um ambiente de banco de dados virtualizado todos os servios so executados em ambientes virtuais isolados. Um dos benefcios de um cenrio virtualizado que mltiplas aplicaes de banco de dados podem ser executadas simultaneamente em um servidor com isolamento no nvel do sistema operacional. Tendo como principais vantagens da utilizao de tecnologias de virtualizao o fornecimento de forte isolamento, segurana e consolidao de servidores fsicos, [2] pode ser inevitvel a introduo da virtualizao na pilha da arquitetura de administrao de servidores. A virtualizao do software de banco de dados pode ser implementada atravs de dois modelos principais, quais sejam, atravs da execuo em uma mquina virtual (ambiente virtualizado) e atravs da virtualizao da instncia do banco de dados (virtualizao da instncia do banco de dados). Na realizao deste trabalho foram comparados estes dois modelos, no qual o primeiro traz uma camada intermediria 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 mquinas virtuais. Porm, pesquisas mais recentes indicam que a virtualizao da instncia de banco de dados mais eficiente. Neste contexto, uma possvel continuao deste trabalho o estudo das ferramentas de monitorao de consumo de recursos e o autogerenciamento das instncias virtuais. ou compartilhados por aplicaes clientes hospedadas no ambiente

28

6. Referncias
[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/2008Nantes/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-node11gr2-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/llinuxvirt/index.html; 2006. [13] Payne, B. D., Sailer, R., Cceres, R., Perez, R., & Lee, W.; A Layered Approach to Simplified Access Control in Virtualized Systems; 2007 Operating Systems Review.

29

[14] Carissimi, A; Virtualizao: da teoria a solues; 2008 26 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos. [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. So Paulo, Editora Pearson, 6 Edio. [18] DATE, J. C.;Introduo a Sistemas de Bancos de Dados; Rio de Janeiro, Editora Campus, 8 Edio. [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/dm1104purescale/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/dm1009purescaleonpower/index.html; 2010. [22] Allix, G., Malcolm, G. Consolidao de Servidores com o SQL Server 2008. Capturado em http://msdn.microsoft.com/pt-br/sqlserver/default.aspx?ocid=otc-c-brjtc--wiki; 2007.

30

Вам также может понравиться