Virtualizac¸˜ao de banco de dados relacional
Edley Allan Hoyler Rocha1, Josiel Maimone Figueiredo21 Instituto de Computac¸˜ao – Universidade Federal de Mato Grosso (UFMT)
CampusCuiab´a – MT – Brazil
{[email protected], [email protected]}
Abstract. This study aims to analyze and compare performance in non-virtual and virtual environments through benchmark performance of database servers using HammerDB software.(. . . ) Scenarios were created and the tests develo-ped, concluding that the non-virtualized environment had many advantages over the virtualized environment. However, several issues still need to be addressed, such as the degradation of DBMS performance when executed in virtual envi-ronments.
Resumo. Este estudo tem o objetivo de analisar e comparar o desempenho em ambientes n˜ao virtuais e virtuais atrav´es de teste benchmark do desempenho de servidores de banco de dados por meio do software HammerDB.(. . . ) Foram criados cen´arios e elaborados os testes, concluindo que o ambiente n˜ao virtua-lizado teve muitas vantagens sobre o ambiente virtuavirtua-lizado. No entanto, varias quest˜oes que ainda precisam ser resolvidas, como a degradac¸˜ao do desempenho do SGBD quando executado em ambientes virtuais.
1. Introduc¸˜ao
O processo de virtualizac¸˜ao de servidores de banco de dados ´e uma tendˆencia recente em tecnologia da informac¸˜ao devido `as vantagens que este processo traz para o ambiente de produc¸˜ao. Atualmente, a virtualizac¸˜ao de recursos computacionais vem sendo utilizada na maioria dos recursos de tecnologia de informac¸˜ao, tais como servi-dores, redes, sistemas operacionais e aplicac¸˜oes. Em [LANGE 2015] a virtualizac¸˜ao de servidores ´e a mais popular e implementa uma camada l´ogica sobre um sistema f´ısico, de forma que todos os dispositivos possam ser acessados ou compartilhados por aplicac¸˜oes clientes suportadas neste ambiente. Com a utilizac¸˜ao da virtualizac¸˜ao obtˆem-se flexibili-dade j´a que as mudanc¸as referentes `a infraestrutura de servidores s˜ao l´ogicas e n˜ao f´ısicas e ao mesmo tempo torna-se o ambiente onde se encontra as aplicac¸˜oes instaladas indepen-dentes do hardware, j´a que as mesmas trabalham sobre uma m´aquina virtual e n˜ao sobre o pr´oprio hardware.
A virtualizac¸˜ao de servidores de banco de dados ainda existem algumas d´uvidas e questionamentos referentes `a seguranc¸a e principalmente o desempenho do banco de dados rodando sobre um ambiente virtualizado, as vantagens e desvantagens al´em de descrever os principais problemas e soluc¸˜oes dispon´ıveis nesta ´area. Segundo [OLIVEIRA 2016] banco de dados trabalha com muito acesso ao disco, que no caso do ambiente virtualizado ´e um disco virtual sobre o disco f´ısico, com isso, surgem `as d´uvidas de virtualizar ou n˜ao virtualizar os servidores de bancos de dados das organizac¸˜oes.
Este trabalho discute as vantagens e desvantagens do processo de virtualizac¸˜ao de servidores de banco de dados, al´em de descrever os principais problemas e soluc¸˜oes
dispon´ıveis nesta ´area em ambientes virtualizados. Virtualizac¸˜ao traz como principal be-nef´ıcio a consolidac¸˜ao da infraestrutura numa organizac¸˜ao, pois diversas aplicac¸˜oes e sistemas podem ser reunidos sobre um ´unico servidor, compartilhando assim os recursos f´ısicos existentes. Esta consolidac¸˜ao leva `a reduc¸˜ao de custos diretos tais como: aquisic¸˜ao de novos hardwares, menor manutenc¸˜ao e reduc¸˜ao de recursos indiretos tais como: espac¸o f´ısico para alocac¸˜ao, menor consumo de energia tanto para funcionamento como para resfriamento. Outro benef´ıcio importante ´e a melhor utilizac¸˜ao da capacidade de recur-sos existentes como mem´oria e processamento, evitando ociosidade da infraestrutura e diminuic¸˜ao dos custos.
A virtualizac¸˜ao tamb´em traz alguns malef´ıcios, sendo o principal deles a degradac¸˜ao do desempenho gerada pela inclus˜ao de uma camada de software entre o hardware f´ısico e o sistema operacional. Servidores de banco de dados possuem recursos limitados de hardware devido `a demanda deste tipo de aplicac¸˜ao. Al´em desta carac-ter´ıstica, existem outros requisitos interessantes que devem ser levadas em considerac¸˜ao e que justificam a discuss˜ao sobre virtualizac¸˜ao de servidores para banco de dados. Tais caracter´ısticas incentivam como uma boa pr´atica motivada pelo desempenho a utilizac¸˜ao de sistemas de banco de dados em ambientes f´ısicos, aproveitando ao m´aximo o desem-penho oferecido diretamente pelo hardware. V´arios fabricantes de hardware tˆem inclu´ıdo instruc¸˜oes espec´ıficas que auxiliam no processo de virtualizac¸˜ao, assessorando esta ca-mada de software do hypervisor para resolver certas dificuldades conhecidas, como por exemplo, a traduc¸˜ao de enderec¸os de mem´oria e o desempenho.
2. Revis˜ao da literatura
Estudos recentes demonstraram vantagens na utilizac¸˜ao de sistemas gerenciadores de banco de dados SGBD em ambientes virtuais, como a migrac¸˜ao em tempo real aumen-tando a disponibilidade do banco de dados, permitindo que as operac¸˜oes de manutenc¸˜ao sejam transparentes para os usu´arios com a consolidac¸˜ao de v´arios SGBDs isolados por m´aquinas virtuais em uma ´unica m´aquina f´ısica para reduzir os custos de manutenc¸˜ao e consumo de energia.
Segundo [LANGE 2015], h´a quest˜oes que ainda precisam ser resolvidas, como a degradac¸˜ao do desempenho do SGBD quando executado em ambientes virtuais e a instabilidade das conex˜oes durante a etapa da migrac¸˜ao do servic¸o. Neste contexto, no-vas t´ecnicas de virtualizac¸˜ao que est˜ao surgindo, como o banco de dados virtual, po-dem ser consideradas uma alternativa menos intrusiva para a virtualizac¸˜ao tradicional de SGBD sobre m´aquinas virtuais. Esta pesquisa analisa os aspectos desta nova abordagem de virtualizac¸˜ao, como o desempenho, estabilidade de conex˜ao durante um processo de migrac¸˜ao de banco de dados e a capacidade de isolamento. Esta pesquisa mostra resul-tados muito promissores em comparac¸˜ao com a abordagem tradicional sobre m´aquinas virtuais, incluindo uma migrac¸˜ao em tempo real mais eficiente e est´avel, mantendo as caracter´ısticas de isolamento necess´arios para um SGBD virtualizado. Ainda existem al-gumas d´uvidas e questionamentos referentes `a seguranc¸a e principalmente o desempenho do banco de dados rodando sobre um ambiente virtualizado, pois, banco de dados trabalha com muito acesso ao disco, que no caso do ambiente virtualizado ´e um disco virtual sobre o disco f´ısico, com isso, surgem `as d´uvidas de virtualizar ou n˜ao virtualizar os servidores de bancos de dados das organizac¸˜oes.
Neste contexto, sistemas gerenciadores de banco de dados SGBDs s˜ao suportados normalmente em um ambiente f´ısico, implementado diretamente no hardware. A princi-pal caracter´ıstica deste tipo de implementac¸˜ao ´e o desempenho nativo, por n˜ao apresen-tar a camada intermedi´aria de virtualizac¸˜ao, por´em, benef´ıcios como de consolidac¸˜ao e gerˆencia de recursos n˜ao se aplicam neste tipo de implementac¸˜ao. Nesse sentido, para suprir necessidades como gerenciamento de recursos e alta disponibilidade, existe uma tendˆencia em tentar explorar os benef´ıcios da virtualizac¸˜ao para v´arios tipos de aplicac¸˜oes, inclusive para SGBDs. De fato, o impacto da utilizac¸˜ao de SGBDs em ambientes virtua-lizados e prop˜oem soluc¸˜oes espec´ıficas para esse tipo de ambiente.
A utilizac¸˜ao desta abordagem adiciona uma camada intermedi´aria respons´avel pela virtualizac¸˜ao, provocando uma queda de desempenho, por´em adicionando os recur-sos inerentes `a virtualizac¸˜ao, tais como consolidac¸˜ao e gerenciamento de recurrecur-sos. Nor-malmente, o servidor de banco de dados possui recursos limitados de hardware devido `a demanda deste tipo de aplicac¸˜ao. Al´em desta caracter´ıstica, existem outras propriedades interessantes que devem ser levadas em considerac¸˜ao e que justificam a discuss˜ao sobre virtualizac¸˜ao de servidores para banco de dados. Tais caracter´ısticas incentivam como uma boa pr´atica motivada pelo desempenho a utilizac¸˜ao de sistemas de banco de dados em ambientes f´ısicos, aproveitando ao m´aximo o desempenho oferecido diretamente pelo hardware.
Considerando os benef´ıcios trazidos pela virtualizac¸˜ao e procurando alternativas que minimizam a degradac¸˜ao de desempenho provocado pela inserc¸˜ao de uma camada adicional de software, este trabalho tem como objetivo avaliar e identificar a melhor opc¸˜ao de implementac¸˜ao de uma infraestrutura de banco de dados em um ambiente virtualizado, avaliando a abordagens conhecidas e analisando a melhor alternativa `a virtualizac¸˜ao de banco de dados em ambientes virtualizados. Neste sentido, o desafio ´e compreender as caracter´ısticas de cada abordagem e avaliar a melhor forma para empregar uma infraes-trutura de banco de dados em ambiente virtualizado.
O processo de testes desenvolvido sobre o ambiente real (hardware f´ısico) foi identico ao virtualizado atrav´es dos seguintes hypervisors teve: Microsoft Hyper-V 2016, VMware vSphere 6.5, Citrix XenServer 7.2. Foi testado em pr´atica quatro banco de dados relacional: Microsoft SQL Server 2016, PostgreSQL Server 9.6, Oracle MySQL Server 5.7, Oracle Database Server 12C.
O software definido para executar os testes, criar usu´arios e objetos no banco de dados foi o HammerDB, muito usado como ferramenta de teste de carga e benchmarking de c´odigo aberto para banco de dados Oracle, Microsoft SQL Server, IBM DB2, Times-Ten, MySQL, MariaDB, PostgreSQL, Postgres Plus Advanced Server, Greenplum, Redis, Amazon Aurora e Redshift e Trafodion SQL em Hadoop. A configurac¸˜ao padr˜ao utilizada para os testes foi apresentada de acordo com a documentac¸˜ao fornecida pelo desenvolve-dor do software, ou seja, para cada processadesenvolve-dor f´ısico a recomenda-se 100 Warehouses e para cada n´ucleo do processador 1 Virtual User. O enderec¸o para documentac¸˜ao com-pleta do HammerDB pode ser acessado diretamente no site do fabricante. Os ambientes onde os testes foram realizados possuem as mesmas configurac¸˜oes entre o ambiente real e virtualizado: Windows Server 2016 Datacenter, Processador Intel I3 3,07GHz com 4 n´ucleos, Mem´oria 8G, Disco R´ıgido 500GB, 7200 RPM, Placa de Rede 1 Gigabit.
Realizou-se a criac¸˜ao de uma m´aquina virtual por meio do software de virtualizac¸˜a onde posteriormente instalou-se o sistema operacional Windows Server 2016 Datacenter 64 bits, o mesmo sistema operacional foi utilizado para elaborac¸˜ao do mesmo cen´ario de testes n˜ao virtualizado, a escolha desse sistema operacional ocorreu-se em virtude de ser o sistema operacional mais recente da Microsoft e ser a vers˜ao espec´ıfica para servidores. Para fazer a an´alise comparativa no ambiente virtual e n˜ao virtual foi utilizado exatamente o mesmo hardware, para n˜ao ter nenhum impacto nos testes. Nenhuma configurac¸˜ao adi-cional foi feita na instalac¸˜ao dos servidores Windows e banco de dados, para cada am-biente uma nova instalac¸˜ao do Windows Server foi executado uma imagem completa e limpa do sistema operacional com o pr´oprio sistema de c´opia de seguranc¸a do Windows Server pois para cada nova instalac¸˜ao de servidor de banco de dados erra restaurado a imagem de c´opia de seguranc¸a limpa do sistema operacional, assim cada servidor mante-ria o mesmo padr˜ao de sistema operacional limpo para uma nova instalac¸˜ao do banco de dados.
3. Conceito de virtualizac¸˜ao
Virtualizac¸˜ao ´e o processo de criar uma representac¸˜ao baseada em software (ou virtual) de algo, em vez de um processo f´ısico. A virtualizac¸˜ao pode se aplicar a aplica-tivos, servidores, armazenamento e redes, ´e a maneira mais eficaz de reduzir as despesas de TI e, ao mesmo tempo, aumentar a eficiˆencia e a agilidade para empresas de todos os portes. Este processo consiste na emulac¸˜ao de ambientes isolados, capazes de rodar dife-rentes sistemas operacionais dentro de uma mesma m´aquina, aproveitando ao m´aximo a capacidade do hardware, que muitas vezes fica ociosa em determinados per´ıodos do dia, da semana ou do mˆes. Esse aproveitamento ´e maior devido `a possibilidade de fornecer ambientes de execuc¸˜ao independentes a diferentes usu´arios em um mesmo equipamento f´ısico, concomitantemente.
Em [LANGE 2015], virtualizac¸˜ao ´e o processo de dissociac¸˜ao do hardware conhe-cido pelo SO e a m´aquina f´ısica propriamente dita, comumente considerada uma camada hardware criada em software. Simplificando, a virtualizac¸˜ao ´e semelhante a um com-putador dentro de um outro comcom-putador, implementado em software, gerando a ilus˜ao da existˆencia de dispositivos f´ısicos, como placas de som, CPUs, mem´oria e armazena-mento f´ısico. Um sistema operacional sendo executado em um ambiente virtualizado ´e conhecido como uma M´aquina Virtual ou VM.
A tecnologia de virtualizac¸˜ao permite que v´arias m´aquinas virtuais, com siste-mas operacionais diferentes, executem lado a lado, isolados e na mesma m´aquina f´ısica, emulando um sistema completo de hardware, desde o microprocessador, memoria, disco rigido at´e placa de rede. Cada m´aquina virtual pode compartilhar um conjunto comum de recursos de hardware, isoladas de tal forma que uma m´aquinas virtual n˜ao influˆencia nem depende de outra. Este tipo de isolamento oferece a utilizac¸˜ao do compartilhamento de hardware de maneira que durante a execuc¸˜ao da m´aquinas virtual n˜ao ´e percebido que o hardware tamb´em pode estar sendo usado por outra m´aquinas virtual ao mesmo tempo.
Atualmente no mercado existem v´arias opc¸˜oes de softwares de virtualizac¸˜ao al-guns s˜ao mais conhecidos outros s˜ao distribu´ıdos de forma gratuita, cada empresa esco-lhe o software que mais atende suas reais necessidades, sejam elas por necessidade de um alto desempenho ou um software que n˜ao tenha nenhum custo a organizac¸˜ao mais fac¸a
aquilo que se ´e proposto, ser˜ao apresentadas os softwares utilizados para virtualizac¸˜ao que mais se destacam no mercado. Comprovou que as desvantagens s˜ao a dificuldade no acesso direto ao hardware, grande consumo de mem´oria RAM, visto que cada m´aquina virtual utiliza uma parte espec´ıfica da mesma, a seguranc¸a deve ser maior, pois diversas m´aquinas virtuais estar˜ao funcionando em um mesmo equipamento f´ısico. Outra desvan-tagem que deve ser citada ´e atualizac¸˜ao do sistema operacional que fica entre a camada de hardware e as m´aquinas virtuais, pois, caso seja necess´ario a reinicializac¸˜ao do mesmo todas as m´aquinas virtuais hospedeiras no servidor f´ısico que foi atualizado sa´ıram do ar momentaneamente para que essas atualizac¸˜oes sejam apicadas.
Para [OLIVEIRA 2016], a virtualizac¸˜ao de servidor chegou na hora certa para os departamentos de TI devido `a press˜ao para cortar custos e diante de um cen´ario com re-cess˜ao mundial, custos de energia aumentando gradualmente, e data centers cada vez mais terceirizados. Ela ataca o problema da baixa utilizac¸˜ao de servidores de aplicac¸˜ao ´unica que se proliferam em data centers de m´edias e grandes empresas. As populac¸˜oes de servi-dores de muitos ambientes n˜ao-virtualizados alcanc¸am em m´edia uma utilizac¸˜ao de apro-ximadamente 20 porcento. O resultado ´e um desperd´ıcio enorme de energia, que acaba sendo duplicado, pois para cada quilowatt usado, uma quantidade igual de refrigerac¸˜ao tem que ser equilibrada a fim de manter os servidores na temperatura ideal de operac¸˜ao. 3.1. Virtualizac¸˜ao bare metal
Existem diferentes vantagens e desvantagens da virtualizac¸˜ao de servido-res, por isso, iremos apresentar o modelo de Virtualizac¸˜ao bare metal. Segundo [FERREIRA 2007] este modelo traz maior confiabilidade pelo confinamento de falhas e aproveitamento de recursos sub-utilizados. Tamb´em denominado nativo, o bare me-tal (sobre o meme-tal), ´e software que se executa diretamente sobre o hardware, provendo um n´umero maior de opc¸˜oes de acesso de entrada e sa´ıda (I/O access), disponibilizando mais desempenho para aqueles que optam por essa arquitetura. Conforme abordado nessa sec¸˜ao, a tecnologia de virtualizac¸˜ao adiciona uma camada intermedi´aria de software entre as aplicac¸˜oes e o hardware. Esta camada, chamada hypervisor mapeia recursos virtuais vis´ıveis `as aplicac¸˜oes mediando os recursos f´ısicos dispon´ıveis no hospedeiro.
O hypervisor pode ser utilizado na forma single onde ele ´e instalado em hosts com gerenciamentos isolados, desta forma n˜ao ´e necess´ario a aquisic¸˜ao de licenc¸a, mas seus recursos s˜ao limitados, por´em o desempenho ainda ´e inferior do que a utilizac¸˜ao nativa devido `a mediac¸˜ao da camada intermedi´aria de software. Esta forma de utilizac¸˜ao ´e indicada para aquele cliente que deseja iniciar no mundo da virtualizac¸˜ao, desconfiando ainda das suas vantagens, ou que n˜ao tenha um investimento maior a sua disposic¸˜ao. 3.2. Virtualizac¸˜ao hosted
Essencialmente, uma aquitetura de virtualizac¸˜ao hosted pode ser instalado sobre um sistema operacional, ou diretamente sobre um hardware para acesso de mais baixo n´ıvel aos recursos. A virtualizac¸˜ao com arquitetura hosted ´e usada tipicamente durante o processo de desenvolvimento, onde m´aquinas virtuais que est˜ao operando sobre o sistema operacional podem ajudar desenvolvedores a testar software beta, usar sistemas legado ou rodar aplicac¸˜oes criadas para diferentes sistemas operacionais. Desenvolvedores podem usar a virtualizac¸˜ao no processo de desenvolvimento para testar software beta sem preci-sar upreci-sar uma m´aquina dedicada, e mantendo sistemas legado. A virtualizac¸˜ao pode ainda
reduzir as necessidades de hardware para implementac¸˜ao de sistema que utilizem mais de um sistema operacional. Com a tendˆencia crescente de processamento multicore, enge-nheiros podem usar a virtualizac¸˜ao para reduzir custos, espac¸o f´ısico e melhor otimizac¸˜ao do poder de processamento do computador.
Segundo [SANTOS 2010], na emulac¸˜ao de hardware, uma arquitetura completa-mente diferente da utilizada no hardware hospedeiro poderia ser simulada por diversos motivos, como, por exemplo, utilizar uma pla taforma de maior desempenho para emular uma arquitetura de hardware antiga que n˜ao seja mais comercializada sem que seja ne-cess´ario migrar os sistemas legados. A desvantagem deste m´etodo ´e que cada instruc¸˜ao deve ser mapeada de uma arquitetura para a outra, o que prejudica bastante o desempenho. Neste caso o sistema operacional que recebe o hipervisor tipo hosted que ´e cha-mado de sistema operacional hospedeiro, enquanto aquele que ´e instalado nas m´aquinas virtuais ´e chamado de sistema h´ospede. Temos alguns inconvenientes, por n˜ao ser mo-dificado, todas as instruc¸˜oes executadas pelo sistema h´ospede devem ser testadas na m´aquina virtual para saber se elas s˜ao sens´ıveis ou n˜ao, o que representa um custo de processamento. As instruc¸˜oes sens´ıveis devem ser interceptadas e emuladas no hospe-deiro para evitar que a m´aquina virtual altere o comportamento do sistema nativo. Em [CACIATO 2009] essa interceptac¸˜ao e emulac¸˜ao podem ser onerosas se o processador nativo n˜ao possuir suporte em hardware para virtualizac¸˜ao.
4. Banco de dados
Banco de dados ou BD foi originalmente projetado com o objetivo de sepa-rar o armazenamento f´ısico dos dados da sua representac¸˜ao conceitual e prover uma fundamentac¸˜ao matem´atica para identificar o esforc¸o necess´ario no processo de acesso aos dados. Essa abordagem de implementac¸˜ao introduziu as linguagens de consulta de alto n´ıvel, que s˜ao uma alternativa `as interfaces para as linguagens de programac¸˜ao e conseq¨uentemente, ficou mais r´apido e f´acil escrever novas consultas e obter o resultado extra´ıdo do BD. Uma maneira simplificada de identificar um BD ´e associar os dados pro-priamente com um conjunto de programas que acessam estes dados. Este conjuntos de programas possibilita a correta manipulac¸˜ao, seguranc¸a e coerˆencia dos dados e normal-mente ´e identificado como sistema gerenciador de banco de dados SGBD. Com isto, ´e poss´ıvel concluir que um BD ´e um conjunto de arquivos f´ısicos data files e os seus pro-gramas SGBD que possibilitam a correta manipulac¸˜ao e manutenc¸˜ao dos dados. Segundo [BENTO 2013] servidor de banco de dados ´e o elemento mais cr´ıtico quando se trata de virtualizac¸˜ao, pois o banco de dados tem um alto consumo dos recursos do servidor.
O sistema gerenciador de banco de dados SGBD deve incluir um software de con-trole para garantir que em caso de m´ultiplos acessos simultˆaneos tentarem atualizar o mesmo dado, o fac¸a de um modo controlado e ordenado, para assegurar que os resul-tados das atualizac¸˜oes sejam corretos. Uma regra fundamental do software do SGBD multiusu´ario ´e garantir que as transac¸˜oes concorrentes operem corretamente, pois ´e com-posto basicamente por dois componentes: um conjunto de programas respons´aveis pelo gerenciamento do acesso aos arquivos de dados e os dados, armazenados nesses arquivos. O primeiro possui interfaces para a criac¸˜ao e manipulac¸˜ao dos dados, al´em de outras fun-cionalidades, como o controle de seguranc¸a e integridade. A segunda parte de um BD s˜ao os dados propriamente ditos, que normalmente est˜ao dispostos em um ou mais arquivos
seguindo uma estrutura f´ısica propriet´aria do SGDB em quest˜ao.
Segundo [SANTOS 2010], uma base de dados pode conter de centenas at´e milh˜oes de registros, de variados formatos e complexidades. Normalmente os dados est˜ao relacionados a um tema central, e os registros se relacionam de diversas formas. Sistemas de banco de dados corporativos normalmente trabalham na ordem de centenas de milh˜oes de registros, por este motivo s˜ao grandes consumidores de recursos f´ısicos.
Uma instˆancia de banco de dados, opera como um servic¸o que trata todas as solicitac¸˜oes dos aplicativos clientes, intermediando os pedidos e retornando dados nos banco de dados gerenciados por essa instˆancia. Instˆancia pode ser definido como o des-tino das solicitac¸˜oes dos aplicativos. A instˆancia atende as instruc¸˜oes convertendo em operac¸˜oes nos objetos do banco de dados e se as permiss˜oes exigidas tiverem sido con-cedidas, executar´a a operac¸˜ao. Todos os dados recuperados s˜ao retornados ao aplicativo que fez a solicitac¸˜ao. ´E poss´ıvel executar v´arias instˆancias a um mesmo banco de dados por´em, uma instˆancia pode acessar um ´unico banco de dados. Os valores dos parˆametros de uma instˆancia, como utilizac¸˜ao de mem´oria, tamanho e tipo de acesso, podem ser de-finidos no momento de sua criac¸˜ao. Esses parˆametros ir˜ao alocar recursos do sistema operacional que foi configurado e iniciar os processos respons´aveis por manipular os ar-quivos de dados. A instˆancia ´e armazenada na mem´oria prim´aria e permite o acesso aos arquivos de dados.
Uma instˆancia s´o existe durante o per´ıodo de execuc¸˜ao e no momento em que essa deixar de executar, a instˆancia libera a mem´oria prim´aria permanecendo somente os dados persistidos. Quando uma instˆancia ´e encerrada, os dados acessados por ela n˜ao estar˜ao mais dispon´ıveis aos aplicativos clientes. O sistema gerenciador de banco de dados deve incluir um software de controle para garantir que em caso de m´ultiplos acessos simultˆaneos tentarem atualizar o mesmo dado, o fac¸a de um modo controlado e ordenado, para assegurar que os resultados das atualizac¸˜oes sejam corretos. Uma regra fundamental do software do SGBD multiusu´ario ´e garantir que as transac¸˜oes concorrentes operem corretamente.
4.1. O modelo relacional
O modelo relacional ´e um modelo de dados representativos, adequado a ser o modelo subjacente de um sistema gerenciador de banco de dados SGBD, que se baseia no princ´ıpio em que todos os dados est˜ao guardados em tabelas ou matematicamente falando relac¸˜oes. O modelo relacional foi criado por Frank Codd e subsequentemente mantido e aprimorado por Chris Date e Hugh Darwen como um modelo geral de dados. Toda sua definic¸˜ao ´e te´orica e baseada na l´ogica de predicados e na teoria dos conjuntos. O modelo relacional para gerˆencia de bases de dados SGBD ´e um modelo de dados baseado em l´ogica e na teoria de conjuntos. Em definic¸˜ao simplificada, o modelo baseia-se em dois conceitos: conceito de entidade e relac¸˜ao - Uma entidade ´e um elemento caracterizado pelos dados que s˜ao recolhidos na sua identificac¸˜ao vulgarmente designado por tabela. Na construc¸˜ao da tabela identificam-se os dados da entidade. A atribuic¸˜ao de valores a uma entidade constr´oi um registro da tabela. A relac¸˜ao determina o modo como cada registro de cada tabela se associa a registros de outras tabelas.
A abordagem modelo relacional ´e baseada no modelo Entidade-Relacionamento que foi introduzido por Peter Pin-Shan Chen, em 1976. ´E um aprimoramento do modelo
originalmente proposto, sendo uma das t´ecnicas de modelagem semˆantica mais conhe-cidas e, possivelmente, uma das mais utilizadas. Este modelo representa os dados num banco de dados como uma colec¸˜ao de tabelas (relac¸˜oes), cada tabela ter´a um nome, que ser´a ´unico, e um conjunto de atributos com seus respectivos nomes e dom´ınios, todos os valores de uma coluna s˜ao do mesmo tipo de dados.
5. Virtualizac¸˜ao de banco de dados relacional
O elemento mais cr´ıtico quando se trata de virtualizac¸˜ao s˜ao servidores de banco de dados, pois o banco de dados tem um alto consumo dos recursos do servidor. Em al-gumas organizac¸˜oes o banco de dados pode conter centenas de milh˜oes de registros o que aumenta ainda mais o consumo dos recursos do servidor, recursos esses que s˜ao memoria, processamento e acesso a disco, devido a esse alto consumo dos recursos computacio-nais do servidor o desempenho pode-se tornar uma grande desvantagem para organizac¸˜ao quando faz a escolha pela virtualizac¸˜ao.
Em [ANDRESEN 2004], dependendo da soluc¸˜ao de virtualizac¸˜ao utilizada, fica mais f´acil monitorar os servic¸os em execuc¸˜ao, j´a que o seu gerenciamento ´e feito de maneira centralizada. Com o melhor aproveitamento dos recursos j´a existentes, a neces-sidade de aquisic¸˜ao de novos equipamentos diminui, assim como os consequentes gastos com instalac¸˜ao, espac¸o f´ısico, refrigerac¸˜ao, manutenc¸˜ao, consumo de energia, entre outros como abaixo:
Logo para iniciar ou montar as m´aquinas virtuais com os seus respectivos servido-res de banco de dados ´e preciso saber e entender claramente o cen´ario atual em que esse banco de dados est´a sendo ou ser´a utilizado, assim que sejam identificadas quais s˜ao as caracter´ısticas do banco de dados que ser´a virtualizado, quais os recursos de processador, mem´oria, rede, etc estar˜ao sendo utilizados pelo banco de dados real.
Figura 1. Modelo Relacional criado pelo HammerDB benchmarking.
Segundo [BENTO 2013], antes de comec¸ar a montar as m´aquinas virtuais com os seus respectivos servidores de banco de dados ´e preciso saber e entender claramente o cen´ario atual em que esse banco de dados est´a sendo ou ser´a utilizado, para que assim
sejam identificadas quais s˜ao as caracter´ısticas do banco de dados que ser´a virtualizado e quais os recursos (CPU, mem´oria, rede, etc.) s˜ao utilizados pelo banco de dados real.
Realizou-se a criac¸˜ao de uma m´aquina virtual por meio do software de virtualizac¸˜ao onde posteriormente instalou-se o sistema operacional Windows Server 2016 Datacenter 64 bits, o mesmo sistema operacional foi utilizado para elaborac¸˜ao do mesmo cen´ario de testes n˜ao virtualizado, a escolha desse sistema operacional ocorreu-se em virtude de ser o sistema operacional mais recente da Microsoft e ser a vers˜ao espec´ıfica para servidores. A an´alise teve como objetivo avaliar a utilizac¸˜ao dos recursos, como pro-cessador, e tempo gasto para completar os testes, ´e poss´ıvel argumentar os fatores que motivaram o comportamento sobre o desempenho, por´em, monitorando a utilizac¸˜ao de processador no host hospedeiro identificada como hypervisor a utilizac¸˜ao de processador do banco de dados virtualizado ´e maior em relac¸˜ao `a implementac¸˜ao do banco de dados nao virtualizado devido a soma de utilizac¸˜ao da camada de software do hypervisor.
A abordagem que utiliza da m´aquinas virtual teve uma m´edia de consumo de 10.2% maior do que a utlizac¸˜ao nao virtual. Este comportamento pode ser explicado de-vido a alta utilizac¸˜ao massiva dos recursos de hardware como por exemplo o processador. Em m´edia o processador do ambiente n˜ao virtualizado obteve 15% de utilizac¸˜ao total, sobre o mesmo comparativo com ambiente virtualizado a utilizac¸˜ao total do processador foi de 25.2% devida a camada de software do hypervisor como dito anteriormente.
Figura 2. Tempo m ´edia de benchmarking por banco de dados.
Foram executados trˆes testes com 1 milh˜ao de transac¸˜oes para cada banco de da-dos comparando o desempenho do ambiente virtualizado e n˜ao virtualizado, o tempo total de todos os testes foi de 79:33:56 (Setenta e nove horas, trinta e trˆes minutos e cinquenta e seis segundos), concluindo que o desempenho ´e melhor em ambiente n˜ao virtualizado, por´em o teste foi desenvolvido em um computador simples, em outra opor-tunidade pretende-se fazer testes mais detalhados e com servidores preparados e homolo-gados para ambiente virtualizado, assim comparando e analisando o desempenho de uma m´aquina destinada para o uso de banco de banco, por ser um grande consumidor de
re-cursos f´ısicos, o desempenho ´e a grande desvantagem da utilizac¸˜ao de virtualizac¸˜ao em servidores de banco de dados.
Primeiramente foram feitos os testes no ambiente real logo ap´os no ambiente vir-tual com os hypervisors j´a mencionados. Como podemos observar a diferenc¸a de tempo entre o banco de dados n˜ao virtualizado e o banco de dados virtualizado n˜ao foi t˜ao sig-nificativa, logo podemos ter algumas vantagens em virtualizar por completo o banco de dados como dito acima sobre os benef´ıcios da virtualizac¸˜ao. Com os resultados obtidos o desempenho do ambiente virtualizado foi superior ao ambiente n˜ao virtualizado, podemos afirmar que tal superioridade pode ter ocorrido devido a camada de software existente en-tre o sistema operacional e o hardware. Ap´os a execuc¸˜ao dos testes tivemos os seguintes resultados, quanto maior a taxa de transac¸˜oes a diferenc¸a de desempenho ser´a menor.
6. Conclus˜ao
Sabemos a total importˆancia dos bancos de dados assim como sua respectiva alta disponibilidade, o presente trabalho tem como seu principal objetivo de contribuir com ´area de virtualizac¸˜ao de banco de dados atrav´es da comparac¸˜ao do desempenho do banco de dados por testes comparativos de benchmark. Nesse estudo acadˆemico da virtualizac¸˜ao de banco de dados relacional ´e um assunto pouco abordado, principalmente tratando-se de textos na l´ıngua portuguesa e que n˜ao seja das empresas que s˜ao propriet´arias dos softwa-res. Houve uma imensa dificuldade no decorrer do trabalho principalmente relacionado a falta de literatura de espec´ıfica de virtualizac¸˜ao do banco de dados.
Toda soluc¸˜ao de virtualizac¸˜ao tem suas limitac¸˜oes e saber at´e onde ´e poss´ıvel ir com uma m´aquina virtual ´e importante durante a fase de planejamento para que se possa saber quais s˜ao os limites da soluc¸˜ao. Em particular, saber quando e como ado-tar os em ambientes virtuais ´e extremamente importante para o sucesso de projetos de virtualizac¸˜ao. Alguns hypervisors possuem um n´umero limite na quantidade de proces-sadores e mem´oria que podem ser alocados para suas m´aquinas virtuais dependendo da quantidade de recursos do host. Dependendo da ferramenta utilizada para gerenciar as m´aquinas virtuais ´e poss´ıvel copiar uma imagem completa do servidor mesmo este es-tando ativo, o que facilita e agiliza o processo de backup e restore. Al´em disso, a funcio-nalidade de migrar uma imagem entre servidores f´ısicos diferentes nos traz a possibilidade de implementar sistemas de alta disponibilidade com maior facilidade.
A virtualizac¸˜ao de banco de dados vem sendo cada vez mais utilizada em ambi-entes de produc¸˜ao, dando suporte a recursos computacionais. Este trabalho apresenta a utilizac¸˜ao de banco de dados virtual como recurso de infra-estrutura, onde mant´em os benef´ıcios da virtualizac¸˜ao sem a perda de desempenho not´avel. A execuc¸˜ao do sistema de banco de dados virtualizada ´e t˜ao eficiente quanto `a execuc¸˜ao diretamente no sistema operacional e ainda oferece todas as vantagens da virtualizac¸˜ao. Banco de dados virtu-alizado pode ser considerado uma nova forma de trabalhar com um sistema de banco e dados. Entre os benef´ıcios de um cen´ario virtualizado ´e que m´ultiplas aplicac¸˜oes de banco de dados podem ser executadas simultaneamente em um servidor com isolamento total.
Referˆencias
BENTO, R. C. (2013). An´alise comparativa do desempenho do sql server em ambiente virtualizado e n˜ao virtualizado.
CACIATO, L. E. (2009). Virtualizac¸˜ao e consolidac¸˜ao dos servidores do datacenter. FERREIRA, M. K. (2007). Estudo dos principais conceitos de virtualizac¸˜ao.
LANGE, T. A. P. (2015). Um novo paradigma para virtualizac¸˜ao de banco de dados. OLIVEIRA, Erick M.e RIBEIRO, P. B. (2016). An´alise de desempenho de banco de
dados virtualizados.
SANTOS, Igor L. C. e Lima, I. . N. (2010). Virtualizac¸˜ao em servidores de banco de dados.