Departamento de Cincia da Computao Uso da tcnica de deduplicao para armazenamento de dados biolgicos em storage Marcos Figueiredo Junior Robison Lima Oliveira Monograa apresentada como requisito parcial para concluso do Bacharelado em Cincia da Computao Orientador Prof. a Dr. a Maristela T. Holanda Coorientador Prof. a Dr. a Maria Emlia M. T. Walter Braslia 2011 Universidade de Braslia UnB Instituto de Cincias Exatas Departamento de Cincia da Computao Bacharelado em Cincia da Computao Coordenador: Prof. Dr. Marcus Vinicius Lamar Banca examinadora composta por: Prof. a Dr. a Maristela T. Holanda (Orientador) CIC/UnB Prof. a Dr. a Aleteia Patricia CIC/UnB Prof. a Dr. a Mylene Christine Queiroz de Farias CIC/UnB CIP Catalogao Internacional na Publicao Junior, Marcos Figueiredo. Uso da tcnica de deduplicao para armazenamento de dados biol- gicos em storage / Marcos Figueiredo Junior, Robison Lima Oliveira. Braslia : UnB, 2011. 129 p. : il. ; 29,5 cm. Monograa (Graduao) Universidade de Braslia, Braslia, 2011. 1. iSCSI, 2. SAN, 3. DAS, 4. NAS, 5. FCP, 6. Storage, 7. Deduplicao CDU 004.4 Endereo: Universidade de Braslia Campus Universitrio Darcy Ribeiro Asa Norte CEP 70910-900 BrasliaDF Brasil Universidade de Braslia Instituto de Cincias Exatas Departamento de Cincia da Computao Uso da tcnica de deduplicao para armazenamento de dados biolgicos em storage Marcos Figueiredo Junior Robison Lima Oliveira Monograa apresentada como requisito parcial para concluso do Bacharelado em Cincia da Computao Prof. a Dr. a Maristela T. Holanda (Orientador) CIC/UnB Prof. a Dr. a Aleteia Patricia Prof. a Dr. a Mylene Christine Queiroz de Farias CIC/UnB CIC/UnB Prof. Dr. Marcus Vinicius Lamar Coordenador do Bacharelado em Cincia da Computao Braslia, 08 de Fevereiro de 2011 Dedicatria Dedicamos a todos aqueles que buscam de forma incessante aprimorar e desenvolver o conhecimento cientco am de tornar a sociedade um lugar melhor para se viver. i Agradecimentos Agradecemos a nossa famlia pelo apoio que nos foi dado durante toda a graduao. Tambm agradecemos companheirismo de nossos amigos. Agradecemos tambm a nossa professora orientadora Dra. Maristela Holanda que nos dedicou sua pacincia e conheci- mento nos ajudando realizar este trabalho, assim como a nossa co-orientadora Dra. Maria Emilia Walter. ii Resumo A cincia da computao enfrenta grandes desaos na rea de armazenamento de dados. Paralelamente uma das reas do conhecimento humano que mais avana a biologia molecular. Com a evoluo das tcnicas dessa rea, cresce tambm o volume de informaes que precisam ser guardadas. Dessa forma a cincia da computao busca resolver o desao de guardar grandes quantidades de dados com espao reduzido. Neste trabalho foi abordado uma possvel soluo para esse problema que deve estar em evidncia por um bom tempo. Palavras-chave: iSCSI, SAN, DAS, NAS, FCP, Storage, Deduplicao iii Abstract The computer science faces great challenges in data storage area. Simultaneosly, one of the most advanced human knowledge area is molecular biology. With the evolution of techniques in these areas, also grows the volumes of information that needs to be storaged. By this way, the computer science try to solve the challenge of store a huge number of data in a small phisical space. These work discusse about a possible solution for that problem. Keywords: iSCSI, SAN, DAS, NAS, FCP, Storage, Deduplicao iv Sumrio 1 Introduo 1 1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Estrutura do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Biologia Molecular 4 2.1 Origem da Vida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Biologia Molecular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Protenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4 cidos Nuclicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4.1 DNA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.4.2 RNA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.5 Bioinformtica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.5.1 Arquivos FASTA . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3 Sistemas de storage 13 3.1 Histrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2 Arquitetura do storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2.1 Portas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2.2 Dispositivos fsicos de armazenamento . . . . . . . . . . . . . . . . 15 3.2.3 Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2.4 Controladora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3 Desempenho de storage com dados biolgicos . . . . . . . . . . . . . . . . 17 3.4 Topologias de storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.5 Direct Attached Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.5.1 Interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.5.2 Externo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.5.3 Vantagens e Desvantagens . . . . . . . . . . . . . . . . . . . . . . . 21 3.6 Network Attached Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.6.1 Vantagens e Desvantagens . . . . . . . . . . . . . . . . . . . . . . . 22 3.7 Storage Area Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.7.1 Vantagens e Desvantagens . . . . . . . . . . . . . . . . . . . . . . . 23 3.8 Redundant Array of Independent Drivers . . . . . . . . . . . . . . . . . 24 4 Deduplicao 28 4.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.2 Armazenamento em disco . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.3 Deduplicao baseada em catlogo hash e tabela de pesquisa . . . . . . . 32 v 4.4 Utilizao de blocos em tamanho varivel e xo . . . . . . . . . . . . . . 33 4.5 Inline e Postprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.6 Deduplicao na origem e destino . . . . . . . . . . . . . . . . . . . . . . . 35 4.7 Tcnicas de Deduplicao . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.7.1 Zetta Byte Filesystem Deduplication . . . . . . . . . . . . . . . . . 37 4.7.2 OpenDedup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.7.3 Write Anywhere FileLayout Deduplication . . . . . . . . . . . . . 38 5 Aplicando Deduplicao em Dados Biolgicos: Um Estudo de Caso 40 5.1 Anlise comparativa dos software de deduplicao . . . . . . . . . . . . . . 40 5.2 Ambiente Computacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.2.1 Descrio do ambiente computacional utilizando storage . . . . . . 42 5.2.2 Descrio do ambiente computacional utilizando disco solitrio . . 44 5.3 Anlise dos dados biolgicos . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.4 Resultados Obtidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.4.1 ZFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.4.2 WAFL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.4.3 Opendedup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.4.4 Anlise dos resultados . . . . . . . . . . . . . . . . . . . . . . . . 49 5.5 Anlise da disponibilidade dos dados e velocidade de acesso aos dados . . . 50 6 Concluses 52 6.1 Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Referncias 54 vi Lista de Figuras 1.1 Grco de crescimento dos dados . . . . . . . . . . . . . . . . . . . . . . . 2 2.1 Composio do aminocido . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Estruturas das protenas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Os vinte aminocidos que compem as protenas. . . . . . . . . . . . . . . 7 2.4 Estrutura do nucleotideo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.5 Estrutura da Timina, Adenina, Citosina e a Guanina. . . . . . . . . . . . . 8 2.6 Base A-T. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.7 BASE C-G. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.8 Dupla-hlice do DNA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.9 Estrutura do RNA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.10 Exemplo de um arquivo FASTA. . . . . . . . . . . . . . . . . . . . . . . . . 12 3.1 Arquitetura do Storage, adaptado de [TEM09]. . . . . . . . . . . . . . . . 14 3.2 Comunicao entre duas controladoras. (Arrumar esta gura) . . . . . . . 17 3.3 Arquiteturas de storage [TEM09]. . . . . . . . . . . . . . . . . . . . . . . . 18 3.4 Modelo Direct Attached Storage [TEM09]. . . . . . . . . . . . . . . . . . . 20 3.5 Modelo NAS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.6 Modelo SAN, adaptado de[TEM09]. . . . . . . . . . . . . . . . . . . . . . . 24 3.7 RAID 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.8 RAID 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.9 RAID 0+1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.10 RAID 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.1 Comparao dos mtodos de instncia nica e de sub arquivo. . . . . . . . 29 4.2 Exemplo de um sistema que no utiliza algoritmo de deduplicao [Hop07]. 30 4.3 Exemplo de um sistema que utiliza algoritmo de deduplicao por catlogo [Hop07]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.4 Exemplo de um sistema que utiliza algoritmo de hash[AO10]. . . . . . . . 31 4.5 Exemplo do algoritimo que utiliza a indexao por catalogo[AO10]. . . . . 33 4.6 Exemplo de uma tabela de indexao [AO10]. . . . . . . . . . . . . . . . . 33 4.7 Exemplo dos mtodos de bloco de tamanho xo e varivel . . . . . . . . . 34 4.8 Demonstrao do processo inline[Tea09b]. . . . . . . . . . . . . . . . . . . 35 4.9 Demonstrao do processo postprocessing [Tea09b]. . . . . . . . . . . . . . 35 4.10 Demonstrao do processo de deduplicao na origem [Hop07]. . . . . . . . 36 4.11 Demonstrao do processo de deduplicao no destino [Hop07]. . . . . . . . 36 5.1 Viso fsica da conexo entre o Chassis e ostorage DS3300. . . . . . . . . . 42 vii 5.2 Viso lgica da topologia utilizada para comunicao entre storage e as lminas de processamento. . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.3 Mquina windows conectada ao disco . . . . . . . . . . . . . . . . . . . . . 44 5.4 Grco de distribuio por tipo de dados. . . . . . . . . . . . . . . . . . . 45 5.5 Trecho de um arquivo FASTA. . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.6 Grco como volume de dados(GB) X Taxa de deduplicao para ZFS. . . 47 5.7 Grco Volume de dados(GB) vs Taxa de Deduplicao para WAFL . . . . 48 5.8 Grco Volume de dados(GB) vs Taxa de deduplicao para Opendedup. . 49 5.9 Grco com Vazo de dados(MB/s) X Tempo(segundos) . . . . . . . . . . 51 viii Lista de Tabelas 5.1 Tabela comparativa entre os softwares testados. . . . . . . . . . . . . . . . 41 ix Captulo 1 Introduo O modo de trabalhar com a grande quantidade de dados que o ser humano e suas mquinas produzem diariamente torna-se cada vez mais complexo e exige cada vez mais esforos e criatividade dos cientistas para tornar esses dados acessveis e produtivos. Muitos estudos, como mostra a Figura 1.1, apontam que a quantidade de dados j produzida at hoje ultrapassa a casa dos 4 a 5 Exabytes(10 seguidos de 18 zeros). Alguns pesquisadores tambm apontam que a quantidade de informaes geradas dobra a cada 18 meses [Shr09]. O conhecimento humano a principal fonte geradora dessas informaes, porm mquinas inteligentes j so capazes de gerar e interpretar um nmero muito grande de novas informaes. Obviamente, a informtica e os computadores tem um papel relevante nesse grande volume de dados existentes. Seria impossvel imaginar tanta informao concentrada ape- nas em papis, provavelmente no teramos espao fsico na Terra para armazenar tantos objetos. Mesmo em computadores e com programas bem projetados difcil conseguir gerir e manter controle sobre tudo isso. Gerenciar esse grande volume de dados alm de complexo importante pois implica em impactos nanceiros a muitas naes. Por exemplo, muitas naes possuem leis que obrigam instituies nanceiras a guardarem informaes por um longo perodo de tempo para eventuais auditorias e prestaes de contas. A lei mais famosa do Mundo referente a esse tipo de assunto conhecida como Sarbanes-Oxley, foi instituda nos Estados Unidos e afeta todos os pases que possuem relaes comerciais com o mesmo [Pre02]. Normalmente os dados podem ser classicados como estruturados e no-estruturados. Os dados estruturados representam a minoria dos dados existentes e normalmente esto presentes em bancos de dados e registros de computadores. Os dados no-estruturados so os arquivos de computadores pessoais, emails e tudo aquilo que no segue regras xas de armazenamento [Cla03]. O gerenciamento desses dados, estruturados ou no, produz custos, e muitas vezes esses custos so elevados. Em grande parte dos casos os custos tendem a crescer mais rpido do que o crescimento dos dados. Para resolver esse tipo de problema, as tcnicas para armazenamento de dados buscam meios de economizar e usar de modo eciente os recursos existentes, por meio do desen- volvimento de mtodos e tecnologias novas capazes de mostrar de forma ecaz a realidade do armazenamento de dados atuais. 1 Figura 1.1: Grco de crescimento dos dados Durante muitos anos, o gerenciamento dos dados era uma questo que preocupava apenas as grandes corporaes que tinham seus dados armazenados em seus em grandes sistemas computacionais. Hoje, a grande parte dos dados digital e, consequentemente, gerenciar um computador pessoal passa a ser tambm um desao do qual a maioria das pessoas dever lidar. Este trabalho tenta abordar um desao especco da rea de armazenamento de dados. Ele estuda o armazenamento de dados provenientes da bioinformtica. Mais especica- mente ele procura analisar uma tcnica de eliminao de dados redundantes e seus ganhos em dados provenientes de estudos biolgicos. A bionformtica faz uso das ferramentas da informtica para realizar anlises da infor- mao gerada por estudos da biologia. O desenvolvimento de software capaz de identicar genes e mapear o genoma uma das principais funces desta rea de pesquisa que est ganhando bastante espao nos ltimos anos [AM97]. Com a evoluo da bioinformtica, atualmente possvel analisar o genoma humano e outros organismos. O genoma o responsvel por diversas caractersticas de uma ser humano, tais como: a cor dos olhos, o tipo de cabelo, o tom da pele, a altura que ela pode atingir, a facilidade para engordar, a quantidade de determinadas bras musculares no corpo e se o indivduo poder ou no desenvolver algum tipo de doena no futuro como cncer, presso alta, arritmia cardaca, Alzheimer. Especicamente, o portador das caractersticas citadas dentro do genoma o DNA [AB08]. Atualmente, as tecnologias para o mapeamento de DNAs aumentaram a necessidade de desenvolver tcnicas especcas de armazenar esses dados de forma eciente. Essa massa de dados um atrativo para as pesquisas, pois permite a comparao entre os diversos genomas mapeados no intuito de encontrar trechos semelhantes nas sequncias de DNA produzindo por exemplo, a elaborao de diagnsticos mais precisos pelos mdicos [DJB09]. 2 Como a quantidade de dados geradas pelo sequenciamento do genoma por exemplo grande, faz-se necessrio a utilizao de sistemas de storage, como so conhecidos os sistemas que possuem uma grande capacidade de armazenamento e de mtodos ecientes de armazenamento dos dados. Os dados gerados pelo sequenciamento do DNA geralmente so armazenados em arqui- vos no formato FASTA que possui como caracterstica cdigos de apenas uma letra para representa sequncias de nucleotdeos, peptdeos, pares de bases ou aminocidos. Dado o pequeno alfabeto utilizado por este formato foi analisado uma grande repetio de ca- racteres, o que motivou a pesquisa sobre a tcnica de deduplicao que busca eliminar a redundncia de dados [AM97]. 1.1 Objetivos O objetivo deste trabalho fazer uma anlise da tcnica de deduplicao em dados biolgicos aplicado em um ambiente storage. Sendo o motivador para a realizao deste trabalho o fato de que a cada momento novos organismos possuem seus DNAs mapeados, e com isso a quantidade de dados a se- rem armazenados, aumentam rapidamente tornando o gerenciamento e o armazenamento desses dados um problema para a bioinformtica [Ver09]. 1.2 Estrutura do trabalho O presente trabalho est dividido da seguinte maneira: O Captulo 2 tratou do detalhamento dos conceitos bsicos relativos a Biologia Mo- lecular necessrios para o desenvolvimento deste trabalho. Conceitos bsicos da bioinfor- mtica como a sua origem e estrutura e a explanao dos dados biolgicos nos formatos do arquivo fasta. O Captulo 3 responsvel por descrever a arquitetura e funcionamento dos storages, detalhando todos os componentes internos do sistema de armazenamento, assim como, as topologias que podem ser utilizadas para conect-los a servidores de processamento de dados. O Captulo 4 introduz os conceitos, estruturas e o funcionamento das tcnicas de deduplicao, alm do detalhamento de trs tcnicas de deduplicao aplicada na massa de dados denominadas Zeta Byte Filesystem Deduplication, Open Dedup e Write Anywhere FileLayout Deduplication. O Captulo 5 detalha os testes feito sobre a massa de dados, expe os resultados obtidos, assim como, o ambiente computacional utilizado no trabalho. Por m, o captulo 6 apresenta as consideraes sobre a elaborao do trabalho e trabalhos futuros. 3 Captulo 2 Biologia Molecular Neste captulo so apresentados conceitos da biologia molecular os quais so neces- srios para entender melhor as propriedades e estrutura dos dados biolgicos, para que assim seja possvel um melhor manuseio da massa de dados durante o armazenamento. Este captuolo dividido nas seguintes sees: 2.1 Introduo, 2.2 Biologia Molecular, 2.3 Protenas, 2.4 cidos Nuclicos, 2.5 bionformtica. 2.1 Origem da Vida Para se falar da origem da vida necessrio envolver diversas reas da cincia como a qumica, biologia, fsica, astronomia e geologia. Os estudos cientcos denominam tal pesquisa como evoluo qumica pelo o fato do objeto de interesse ser os processos que teriam permitido aos elementos qumicos que constituem os organismos atingirem o grau de organizao estrutural e funcional que caracteriza a matria viva[AM97]. A humanidade sempre estudou os seres vivos e seus comportamentos nos primrdios. O ser humano aprendeu a utilizar as plantas e os animais em seu proveito, tambm aprendeu a evitar plantas venenosas e tratar dos animas, alm de adotar vrias tcnicas de caa. Os conceitos de biologia embora empricos e como exerccio prtico do dia a dia existem j desde a poca da pr-histria, prova disso so as representaes de seres vivos em imagens rupestres. Ao longo de bilhes de anos todos os seres vivos passaram por vrias mutaes j que possuem uma qumica molecular bsica, mesmo eles se diferenciando pelo tamanho e complexidade, o ramo da biologia responsvel por estudar os dois componentes principais desta qumica que so as protenas e os cidos nucliocos a biologia molecular. 2.2 Biologia Molecular A biologia molecular tem como objetivo realizar pesquisas em protenas e cidos nu- clicos (DNA e RNA), focando seus esforos na estrutura e funo do material gentico que um campo muito abrangente, pois pesquisa as interaes entre vrios sistemas celu- lares, isso inclui a relao entre DNA, RNA e sntese protica. Por esse motivo, a biologia molecular utiliza vrias tcnicas e estudos provindas da gentica e bioqumica[Jun05]. 4 Os cientistas denem a bioqumica, de uma forma geral, como a rea que se estuda as reaes qumicas em clulas, enquanto a gentica possui o foco em pesquisas das con- sequncias de diferenas no material gentico nos organismos. Dessa forma, a biologia molecular ocupa um espao prprio mesmo se relacionando com a gentica e a bioqumica ao investigar os mecanismos de replicao, transcrio e traduo do material gentico e outros processos celulares em bases de DNA, RNA, aminocidos e protenas [Kam05]. 2.3 Protenas As protenas so compostos orgnicos que possuem um alto peso molecular, so cons- titudas pelo encadeamento de aminocidos representando cerca de 50 a 80% do peso seco total de um clula. Dessa forma, um composto orgnico mais abundante de matria viva. A quantidade de aminocidos por molculas de protenas pode ser de dezenas ou mesmo centenas, sendo ligadas em sequncia como se fossem elos de uma corrente. Por isso as protenas participam ativamente de quase todas as atividades celulares de um organismo vivo, tais como locomoo de nutrientes, eliminao de resduos txicos, construo de estruturas complexas, acelerao das reaes qumicas que so essenciais para a manuteno da vida [Sil09]. Os aminocidos que compem as protenas so formados por tomos de carbono, hidrognio, oxignio e nitrognio. Na Figura 2.1, pode ser analisado a estrutura geral de um aminocido: um tomo de carbono que ocupa a posio central na molcula, ligando - se a este carbono quatro grupos de tomos, o radical ou R responsvel por diferenciar os aminocidos , um tomo de hidrognio, um grupo amina (NH2) e um grupo carboxila (COOH). O termo aminocido surgiu justamente pela presena desses grupamentos tpicos na molcula [Lif06]. Figura 2.1: Composio do aminocido Os aminocidos que um organismo no consegue sintetizar so chamados de amino- cidos essenciais, j os aminocidos que o organismo consegue sintetizar a partir de outras substncias que ingere so chamados aminocidos naturais ou no essenciais. Dois ami- nocidos vizinhos em uma molcula de protena se ligam por uma ligao peptdica que ocorre sempre entre o grupo amina de uma protena e o grupo carboxila da outra [Kam05]. Na formao de uma ligao peptdica, o grupo carboxila de um dos aminocidos perde um OH e ca com uma ligao livre, ao mesmo tempo o grupo amina do outro 5 aminocido perde um hidrognio e tambm ca com uma ligao livre. Sendo assim, os aminocidos unem-se atravs dessas ligaes que caram livres, constituindo a ligao peptdica e uma molcula de gua liberada. As molculas que se formam pela unio de dois ou mais aminocidos so chamadas de peptdeo. Toda sequncia de aminocidos que constitue uma molcula protica chamada de estrutura primria. Essa sequncia importante para a funo da protena, pois a substituio de um nico aminocido suciente para prejudicar a atividade da protena, implicando em srias consequncias para o organismo [AB08]. O enrolamento das cadeias dos peptdeos sobre si mesmas assumem, geralmente, forma helicoidal, que lembra um o de telefone que denominado estrutura secundria da pro- tena. A estrutura secundria ocorre quando a cadeia enrolada helicoidalmente, e quando possui a capacidade de dobrar-se sobre si mesma, chamasse estrutura terciria. Por ltimo, quando as protenas so constitudas por mais de uma cadeia de peptdeo, tal conjunto denominado estrutura quaternria. Todas as quatro estruturas podem ser visualizadas na Figura 2.2. Figura 2.2: Estruturas das protenas. As estruturas das protenas podem ser estudas simplesmente na observao detalhada da conexo entre a estruturas espaciais da protena e as atividades realizadas por elas. Essas diversas hlices e dobras formam uma nica estrutura que tem a capacidade de se ligar a um grupo especco de molculas, podendo essas serem responsveis por uma reao qumica ou ainda por outras protenas que constituem estruturas mais complexas. Os seres vivos esto a todo momento fabricando protenas, desde os procariotos que possuem uma complexidade mais simples at os eucariotos que so mais complexos, dessa forma desprenderemos um esforo para entender o processo de sntese das mesmas, como tal processo est conectado as molculas conhecidos como cidos nuclicos [Kam05]. Todos os seres vivos necessitam de 20 tipos de aminocidos para poderem fabricar suas protenas, algumas espcies so capazes de fabricar todos esses aminocidos, e no precisam obt-los na dieta. Outras espcies como a humana, conseguem sintetizar apenas alguns tipos de aminocidos e, por isso tem de se alimentar de alguns tipos de alimentos para obter os 20 tipos que podem ser vistos na Figura 2.3. 6 Figura 2.3: Os vinte aminocidos que compem as protenas. 2.4 cidos Nuclicos Os cidos nuclicos (RNA e DNA) possuem a funo de guardar a informao que necessria para a criao de protenas e, dessa forma, tornar possvel a transferncia dessa informao de modo a sintetizar as protenas, os cidos nuclicos receberam essa denominao porque primeiramente foram descobertos no ncleo das clulas. So molcu- las gigantes, formadas por unidades monomricas menores conhecidas como nucleotdeos [Kam05]. Cada nucleotdeo formado por trs partes conforme a Figura 2.4, e formado por um acar do grupo das pentoses, uma radical fosfato, derivado da molcula do cido ortofosfrico e uma base nitrogenada [AB08]. 7 Figura 2.4: Estrutura do nucleotideo. 2.4.1 DNA O DNA (cido desoxirribonucleico) um dos mais conhecidos representante dos cidos nuclicos por sua importncia, basicamente no DNA encontra-se as instrues genticas utilizadas no desenvolvimento e funcionamento dos seres vivos conhecidos, tanto em um organismo simples como vrus, ou mais complexo como um mamfero. Essa funo da molcula do DNA, a capacidade de armazenamento por um longo prazo de informao gentica por essa caracterstica sempre comparado a um conjunto de projetos semelhante a uma receita que contm instrues necessrias para construir outros componentes tais como a clula, protenas, RNAs [Kam05]. Os genes so os segmentos do DNA responsveis por transportar as informaes genti- cas, os demais segmentos do DNA tero funes de composio estrutural ou de regulao nos processos celulares. A estrutura do DNA uma dupla ta, sendo cada ta formada por nucletidos ligados uns a outros. Os quatro nucletidos que compem o DNA so adenina, guanina, citosina e timina, geralmente so referenciadas pela primeira letra como A, G, C e T. A adenina e a guanina so compostas por dois anis (purinas), enquanto a timina e a citosina so formados por um nico anel (pirimidinas), como pode ser visto na Figura 2.5. Figura 2.5: Estrutura da Timina, Adenina, Citosina e a Guanina. 8 Uma purina se conecta a uma pirimidina no DNA para criar um par de bases a ade- nina e a timina conectam-se entre si para formar um par de base A-T, da mesma forma a guanina e a citosina conectam-se para formar um par de base G-C. Essas bases com- plementares iro permanecer unidas por pontes de hidrognio fracas que so responsveis pela manuteno da estrutura de dupla hlice do DNA (Figuras 2.6 e 2.7). Figura 2.6: Base A-T. Figura 2.7: BASE C-G. O DNA composto por duas tas, sendo os nucleotdeos presentes em uma ta ligados s suas bases complementares presentes na outra ta devido a conexo das bases A-T e G- C. Assim, as duas tas completam uma outra no sendo idnticas porm se completando perfeitamente. Outro ponto importante de notar que as tas tem sentidos opostos, veja na Figura 2.8. 2.4.2 RNA O RNA (cido ribonuclico) um polmero de nucletidos muito importante para o or- ganismo dos seres vivos pois o responsvel pela sntese das protenas da clula, podendo catalisar importantes reaes biolgicas e suas molculas podem funcionar como prote- nas enzimticas, tambm conhecidas como ribozimas. O RNA pode ser composto por uma cadeia simples, ou pode ser dobrado pois as molculas formadas por RNA possuem dimenses menores comparadas ao DNA[Alv09]. 9 Figura 2.8: Dupla-hlice do DNA. O RNA constitudo por um acar ribose, por uma base nitrogenada e por um de grupo fosfato, sendo assim a constituio do RNA muito parecida, comparada ao DNA, porm com algumas diferenas, como, por exemplo, ao invs de possuir uma dupla hlice tal como a do DNA, possui apenas uma cadeia simples de nucleotdeos como pode ser visto na Figura 2.9 Outro diferencial do RNA a exibilidade j que possui a capacidade de se dobrar de forma que as suas bases se pareiam umas com as outras. Essa forma de se emparelhar as bases uma caracterstica importante do RNA pois forma pontes intra- cadeia, podendo assim formar uma grande variedade de estruturas moleculares quando comparados com a dupla hlice do DNA. O RNA possui o acar ribose em seus nucleotdeos diferente, do acar desoxirribose que compe o DNA, e os grupos de acar do RNA contem um par oxignio-hidrognio ligado ao carbono, enquanto apenas um tomo de hidrognio ligado ao carbono nos grupos de acar do DNA. Os nucleotdeos de RNA contm a base nitrogenada (adenina, guanina, citosina e uracila) sendo a ltima diferente da timina do DNA. A uracila classicada na subdiviso da pirimidina. Assim como as demais, a uracila tambm pode ser referenciada apenas com a primeira letra U, e ligar-se com a adenina. Figura 2.9: Estrutura do RNA. 2.5 Bioinformtica Desde o incio do sculo 20 os geneticistas e qumicos se questionam sobre a natureza qumica do material gentico. Aps anos de pesquisas desenvolvidas, descobriu-se que o 10 DNA era a molcula responsvel por armazenar as informaes genticas. Na dcada de 1950 desvendaram a estrutura qumica do DNA por meio do trabalho de Watson e Cric [AM97] Esse fato foi apenas o comeo, posteriormente foi descoberto o cdigo gentico e o uxo da informao biolgica dos cidos nuclicos para as protenas. Logo surgiram mtodos de sequenciamento do DNA que permitiu a investigao de suas sequncias monomricas constituintes e desde ento, mais de 18 bilhes dessas sequncias j foram produzidas. Na dcada de 1990, quando surgiram os sequnciadores automticos de DNA, houve uma exploso na quantidade de dados, provindas das sequncias a serem armazenadas, exigindo dessa forma mais recursos computacionais pois alm da necessidade de armaze- namento, tambm existia a necessidade de fazer uma anlise de todos os dados. Assim surgia uma nova cincia, denominada bionformtica, que envolveria a unio de diversas linhas de conhecimento como a cincia da computao,biologia molecular, matemtica, qumica e estatstica. No processo de sequenciamento e comparao de sequncias biolgicas muito comum a utilizao de arquivos no formato FASTA ,na prxima seo ser detalhado a estrutura desses arquivos. 2.5.1 Arquivos FASTA Ao se falar de banco de dados biolgicos, normalmente refere-se a um grupo de ar- quivos em um formato especco, e no a um SGBD especicamente. Muitos motivos inuenciam para no existir um SGBD que trabalhe de modo eciente com sequncias biolgicas. O que normalmente feito pelos SGBDs que tentam tratar esses dados o sim- ples apontamento para os arquivos, sem tirar nenhum tipo de vantagem dos SGBDs que normalmente permitem melhor gerenciamento de memria, acesso mais rpido a disco, dentre vrios outros motivos que garantem o sucesso desse tipo de aplicao[Lif06]. Os arquivos no formato FASTA esto presentes em grande parte dos estudos de bi- oinformtica, na maioria dos casos, possuem uma grande quantidade de informaes, ou seja, em um nico arquivo pode haver centenas ou milhares de sequncia de DNA. Esses arquivos, do ponto de vista da computao, so apenas arquivos no formato texto. Sendo formados por uma sequncia, ou por uma concatenao de sequncias biol- gicas, nesse ltimo caso constituindo um arquivo de multisequncias como so conhecidos. A seguir so apresentados os componentes dos arquivos FASTA e as propriedades que fazem desse arquivo um FASTA. Um arquivo FASTA deve sempre comear com o sinal de maior que >, seguido de uma linha nica que descreva a sequncia que aparecer na linha seguinte. Logo aps essa primeira linha existe uma sequncia biolgica em si. Em um mesmo arquivo podem coexistir vrias sequncias, sendo que sempre que se iniciar uma nova sequncia, deve-se inserir uma quebra de linha, e novamente iniciar uma linha com o sinal de maior que > , seguido da descrio e da sequncia. Seguindo essa regra para quantas sequncias sejam necessrias. Como pode ser observado na Figura 2.10 os arquivos FASTA, em geral, possuem uma grande repetio de letras de um pequeno alfabeto composto por apenas A, C, T e G. Porm, alguns arquivos FASTA podem conter mais letras que representam outros aminocidos. 11 Figura 2.10: Exemplo de um arquivo FASTA. Os arquivos FASTA podem ser identicados com algumas extenses que facilitam a identicao do contedo dos mesmos. A extenso .fasta serve para arquivos fasta genricos, ou seja, qualquer arquivo do modelo da Figura 2.10. A extenso fna indica que o arquivo contm cidos nuclicos, fnn indica que o arquivo contm nucleotdeos com regies codicantes, faa indica que o arquivo contm aminocidos e fra indica que o arquivo contm RNA no codicantes. De modo geral esses so os arquivos FASTA, e o principal motivo pelo qual eles so armazenados em formato de texto o fato de que eles so intensamente utilizados para a comparaes e operaes com strings, que nesse caso so as sequncias. 12 Captulo 3 Sistemas de storage Neste captulo so apresentados os conceitos relacionados com a estrutura de um sistema de armazenamento, tambm conhecido como storage. Ele est dividido nas nas seguintes sees: Histrico, Arquitetura do storage, Topologias de storage, 3.4 Direct Attached Storage , Network Attached Storage , Storage Area Network, Redundant Array of Independent Disks. 3.1 Histrico Ao se abordar o tema de storage, fala-se na verdade de um subsistema de discos, com uma arquitetura que o permite exercer vrias funes que um simples computador seria incapaz de realizar, dado sua caracterstica genrica de computao. Os sistemas de storage por sua fez so sistemas especialistas altamente direcionados otimizar e melhorar o armazenamento de dados em qualquer sistema computacional. Nos primrdios da computao os sistemas de armazenamento de dados eram muito comuns, uma vez que os conhecidos mainframes precisavam desses sistemas para funci- onar. Com o passar do tempo e com a popularizao dos computadores pessoais, esse tipo de arquitetura perdeu um pouco seu destaque, passando a estar presente apenas em grandes corporaes. Diferentemente dos servidores de processamento, os subsistemas de disco podem ser entendidos de uma maneira geral como servidores de espao de armazenamento, seja esse baseado em tas, discos rgidos ou qualquer outro meio computacional capaz de reter informaes. sabido que na indstria existem vrias implementaes que fogem aos padres ado- tados pela Storage Network Industry Association (SNIA), uma associao de produtores e consumidores de produtos voltados para armazenamento em rede que compartilham o objetivo de garantir que as redes de armazenamento sejam completas e conveis. Porm, cada vez mais existe um esforo em padronizar os sistemas de storage de tal forma que as mudanas tecnolgicas no se tornem dependentes de um determinado fabricante. Existem vrios aspectos que devem ser estudados quando so analisados os sistemas de storage, dessa forma apenas ser abordado o que for julgado ser essencial para conduo deste trabalho. 13 3.2 Arquitetura do storage As arquiteturas dos sistemas de storage quando observadas de um ponto de vista amplo so muito semelhantes e seguem na maioria dos casos o mesmo padro. A Figura 3.1 exemplica de modo abstrata a arquitetura desse tipo de subsistema. Figura 3.1: Arquitetura do Storage, adaptado de [TEM09]. As estruturas internas de funcionamento dos subsistemas de disco so completamente transparentes aos servidores, que vem apenas discos rgidos, sem saber que existe uma inteligncia computacional envolvida. Como pode ser observado na Figura 3.1 existem 4 componentes principais na arqui- tetura de um storage. So os dispositivos fsicos de armazenamento, a controladora, as portas e o cache. Cada um desses componentes tem um papel essencial nessa arquitetura, a seguir cada um desses componentes apresentado. 3.2.1 Portas Ao se referir as portas em um subsistema de armazenamento de dados, refere-se de fato a conectividade. A conectividade em sistemas de storage assume um papel importante devido ao fato de que para esse tipo de sistema existir, ele precisa estar ligado a algum tipo de servidor de processamento, pois o fato de ele ser especco para armazenamento impede que ele rode aplicativos, programas entre uma srie de outras atividades computacionais que so geradoras de dados. 14 As portas so utilizadas nos storages para se comunicarem com os servidores, tambm so conhecidas como host bus adapter (HBAs). Elas so os principais meio de comuni- cao entre o storage e o mundo externo [Shr09]. Os cabos conectados as HBAs geralmente so de bra ptica ou cabos ethernet. Como de se esperar, cada tipo de cabo permite o trfego de um tipo de protocolo. Por meio dessas portas os dados uem, e como medida de trfego, utilizado o th- roughput (ou a vazo de dados) de cada porta, sendo esse medido em bytes/ segundo. alm disso essas portas se conectam as sistemas como um disco local, ou seja, eles no so capazes de distinguir se esto acessando um disco rgido ou um storage. Claramente as nicas diferenas que sero percebidas sero a de tempo de resposta, que em muitos casos bem mais rpida e a capacidade de armazenamento que em muitos casos pode chegar a um petabyte[TEM09]. Existem dois termos importantes que so Front-end e Back-end. Front-end so as portas de frente do sistema, ou seja, como so chamadas as portas que se comuni- cam com os hosts, os switches ou qualquer elemento que esteja externo ao sistema de armazenamento [Cla03]. Back-end so as portas da parte de trs do sistema, ou seja, so as portas que ligam a controladora aos dispositivos de armazenamento fsico. Os dados no passam diretamente dos hosts para os dispositivos de armazenamento fsico, eles primeiramente tem que passar pela controladora. A controladora ser abordada na Seo 3.2.4. 3.2.2 Dispositivos fsicos de armazenamento Os subsistemas de discos precisam de dispositivos capazes de armazenar e reter os dados por longos perodos. Os principais meios fsicos utilizados atualmente para reter esses dados, so discos rgidos, tas e memrias eletrnicas. Ser abordado nesse trabalho apenas os discos rgidos, fazendo sempre que possvel alguma aluso aos outros meios fsicos. Ao se analisar o tamanho de um disco, na verdade se referencia a capacidade de armazenamento que ele possui. Essa capacidade medida em Bytes. Como hoje existem discos capazes de armazenar centenas, alguns milhares de bytes, as duas medidas mais comuns so os GB(Gigabytes) e TB(Terabytes). Essas capacidades aumentam com o passar dos anos. Uma dcada atrs no era possvel sequer armazenar um dcimo do que pode ser armazenado hoje. Provavelmente, em 10 anos a mesma situao se repetir, levando em considerao a velocidade que a quantidade de dados se aumenta. A velocidade do disco medida em rotaes por minuto (rpm), como a cabea de leitura se move no disco e este tem movimento circular, quanto mais rotaes por minuto um disco zer, mais rpido a cabea de leitura chegar a um determinado ponto do disco. Na atualidade as velocidades predominantes so 7,2K rpm, 10K rpm e 15K rpm. Do mesmo modo que acontece com as capacidades, as velocidades tendem a aumentar com o passar do tempo. Como os discos so solues mecnicas eles tem uma vida til reduzida. Com a evoluo das tecnologias de armazenamento eletrnicas, vemos um provvel substituto para os discos rgidos, os discos SSD(Solid State Disk). 15 Apesar da velocidade do disco est em constante crescimento, o disco ainda o com- ponente mais lento de um subsistema de armazenamento. Tendo em vista esse grande problema, alguma solues so utilizadas visando otimizar a utilizao dos mesmos. A principal abordagem utilizada a construo dos RAIDs Redundant Array of Indepen- dent Disks que alm de otimizar a velocidade de trfego de dados no sistema, tambm fornece um aumento para a proteo contra perda de dados [Pre02]. 3.2.3 Cache Cache uma memria que desempenha um papel fundamental no storage. Como dito anteriormente, acessar um dado que est em disco uma operao extremamente lenta do ponto de vista computacional. Portanto, necessrio que alguns mecanismos permitam evitar o acesso ao disco com muita frequncia. O principal desses mecanismos a memria cache. Uma srie de assuntos envolvem o tema de cache. O que torna o uso desse tipo de memria eciente em sistemas de storage so os algoritmos que controlam o que deve ou no residir nessa memria. Por se tratar de uma memria eletrnica, seu custo alto, o que faz com que tenhamos que us-la de forma eciente e econmica[Sim03]. Os algoritmos de cache so implementados na grande maioria dos sistemas de sto- rage em nvel de microcdigo, ou seja, utilizando chamadas de hardware e linguagens de baixo nvel. Cada milisegundo ganho nesse tipo de sistema considerado como ganho considervel. Esses algoritmos so complexos e na sua grande maioria tentam colocar na memria cache os dados que so mais acessados em disco, evitando assim vrios acessos a disco. Alguns algoritmos mais complexos tentam colocar em cache dados que tem grande chance de serem requisitados mesmo sem terem sido requisitados, para isso eles usam algoritmos que buscam padres e a partir desses padres previses so feitas evitando acesso ao disco. Como essa memria voltil, quando o subsistema desligado os dados residentes nessa rea so perdidos. Logo so necessrios mecanismo que assegurem que esses dados sejam descarregados em disco. Muitas implementaes utilizam baterias para fazer esse processo. 3.2.4 Controladora As controladoras podem ser consideradas os crebros dos storages. Elas so as centrais de processamento desses sistemas. Tudo que trfega de dados na entrada e sada do storage passa por ela. A controladora tem o papel de decidir o que vai para o cache e o que vai para o disco. Ela tambm responsvel por entender os protocolos utilizados, conhecer o que est armazenado em disco. Os algoritmos de cache, os algoritmos de RAID e a converso de protocolos rodam na controladora, logo o sistema como um todo deve estar ligado a controladora. Como podemos ver na Figura 3.1, ela ca no centro do sistema. Na maioria dos sistemas de storage temos duas controladoras funcionando em cluster, de modo a dividir e balancear as cargas que entram no storage. Como elas esto em cluster cada controladora sabe o que est acontecendo com a outra, nesse ponto de vista existem basicamente duas maneiras de interao entre as controladoras. 16 Uma das conguraes conhecida como ativo/ativo, ou seja, temos duas controla- doras respondendo por toda a carga do sistema, normalmente o sistema dimensionado para que cada controladora trabalhe com metade de seu poder de processamento, de tal forma que caso uma das controladoras venha a falhar a outra pode assumir tudo sozinha. Elas normalmente compartilham suas memrias cache permitindo que uma acesse a rea de memria da outra. Compartilham tambm os discos. E em algumas ocasies as portas [Shr09]. Figura 3.2: Comunicao entre duas controladoras. (Arrumar esta gura) Outra congurao conhecida como ativo/passivo, ou seja, uma controladora funci- ona com o mximo de sua capacidade e a outra ca apenas em standby, caso a controladora principal venha a apresentar algum tipo de falha, a controladora secundria assume toda a carga evitando que o sistema que indisponvel. A Figura 3.2 3.2 exemplica esse cenrio com duas controladoras. Podemos ver que ambas controladoras possuem acesso a todos os discos seja estes conectados a controladora A ou a controladora B garantindo assim uma redundncia N por N [Fuj09]. 3.3 Desempenho de storage com dados biolgicos Os arquivos FASTA so formados por sequncias de aminocidos, cada vez mais seres vivos so sequenciados e cada vez mais seres complexos tambm entram para essa lista. Desse modo, se for observado, alguns arquivos possuem centenas de milhes de sequncias, de maneira que o tamanho dos arquivos tende a crescer de maneira exponencial. Sem- pre que grandes massas de dados forem analisadas, o problema do desempenho para o 17 armazenamento dessa massa estar ligado ao tema. O fato que quando se faz necessrio acessar esses arquivos geralmente realizado um streamming de dados, e quanto maior o tamanho do arquivos mais bits precisam ser transmitidos. Ao se falar de banda de transmisso de dados, ou seja, a capacidade de transmisso de dado que um determinado canal pode suportar, estamos preocupados coma latncia que pode ocorrer nesse canal. Quando o arquivo muito grande as vezes a latncia pode prejudicar algum aplicativo que precise acessar os dados[Fuj09]. 3.4 Topologias de storage Como os ambientes de storage cresceram e se tornaram complexos e cada vez maiores, algumas abordagem diferentes das tradicionais so utilizadas com a nalidade de resolver os problemas de uma determinada soluo. As trs arquiteturas apresentadas a seguir podem sofrer pequenas modicaes em determinados sistemas. Figura 3.3: Arquiteturas de storage [TEM09]. A Figura 3.3 a seguir, exemplica de modo geral como funciona uma rede de arma- zenamento. A gura mostra que os usurio se comunicam com os servidores, que por sua vez acessam os dados disponibilizados no storage. Tambm possvel observar que alguns servidores passam pela nuvem que chamamos de Storage Network, que uma rede exclusiva para o sistemas de armazenamento, e outros se comunicam diretamento com o storage. Por m, observvel que dentro do subsistema de armazenamento existem alguns discos que so dedicados a alguns servidores. Fica visvel que os usurio no conseguem 18 acessar os dados diretamente. Para ter acesso aos dados eles precisam fazer algum tipo de requisio aos servidores. Esse tipo de estrutura a mais comum em sistemas de armazenamento dedicado de grande porte. Existem 3 principais formas de comunicao entre storage e servidores. Primeiramente, a mais antiga e conhecida como DAS (Direct Attached Storage) onde, como o nome sugere, temos um storage conectado diretamente aos servidores. Temos tambm a SAN (Storage Area Network) que uma rede dedicada exclusivamente para storage. E por m, tem-se a NAS (Network Attached Storage) que utiliza a rede IP para comunio com os sistemas de storage. Neste captulo, ser detalhado como funciona cada tipo de arquitetura, havendo um estudo de quando utilizar determinado tipo de arquitetura. O captulo abrange tambm vantagens e desvantagem sobre cada um dos tipos apresentados. 3.5 Direct Attached Storage Inicialmente, existiam apenas storages do tipo Direct Attached Storage, ou apenas DAS, que surgiram junto com os computadores de grande porte, os mainframes. Essa arquitetura mantm os servidores como ponto central, ou seja, dados cam dependentes do servidor, que nesse caso quem controla quem poder acessar o storage e em caso de indisponibilidade de servio do mesmo o acesso aos dados passa a estar comprometido [Sim03]. Nessa arquitetura temos os sistema de armazenamento conectado diretamente aos ser- vidores, como pode ser visto na gura 3.4. Essa arquitetura conhecida como um sistema de armazenamento externo, como ser demonstrado durante todo esse trabalho. Tam- bm existem a arquitetura de sistema de armazenamento interno, uma vez que podemos ter capacidade de ter dados internos a servidores comuns e de computadores pessoais. (RESCREVI ESTA PARTE SE CONSEGUIR MELHORAR) Nesse tipo de arquitetura as informaes no so trocadas, e no existe um gerencia- mento de forma completa de toda a infraestrutura de armazenamento de dados existente em um determinado ambiente. Outra particularidade presente nessa arquitetura o fato de que na verdade quem disponibiliza os dados quando existe uma requisio o servidor que est diretamente conectado ao Storage. Este modelo de computao tambm conhecido como server- centric, ou seja, o centro da infraestrutura est no servidor. Como dito no primeiro pargrafo desta seo, este modelo foi muito difundido inicialmente entre os computadores de grande porte, pois nessa poca cada computador existia isoladamente sem a necessidade de compartilhar dados com outras mquinas. 3.5.1 Interno Esta seo dar uma breve abordagem ao modelo interno, pois o foco principal deste trabalho o armazenamento externo de dados, ou seja, sistemas de storage. Esse o modelo usado em praticamente todos os PCs, nesse caso tem-se os discos rgidos conectados diretamente a placa-me, e o compartilhamento de dados est direta- mente relacionado a disponibilidade dos recursos locais do computador que est conectado 19 Figura 3.4: Modelo Direct Attached Storage [TEM09]. ao disco. Nesse sistema o principal meio de comunicao so os cabos scsi(Small Com- puter System Interface), que so cabos de baixa performance e que utilizam o principal protocolo de comunio de dados que possui o mesmo nome, scsi. Em alguns servidores, esse tipo de arquitetura pode ainda ter algumas caractersticas dos storages externos como capacidade de criar RAIDs. Na maioria dos casos os servidores possuem conectividade entre mais de um disco, graas a isso ele consegue esse tipo de virtualizao que feita normalmente por software. 3.5.2 Externo O modelo externo da arquitetura DAS tem o mesmo objetivo do modelo interno, a grande diferena est no fato de a unidade bsica de armazenamento no estar mais sicamente dentro do servidor que acessa os dados, porm o principio bsico da arquitetura se mantm, que o acesso direto ao disco(storage). Neste modelo pode-se realmente falar em um sistema de storage, pois no modelo externo possumos as estruturas especcas citadas anteriormente, para tornar o acesso aos dados mais rpido e eciente. A Figura 3.4 mostra uma viso abrangente de como funciona essa arquitetura. Tem- se uma rede de trabalho local, conhecida como Local Area Network, que serve para a comunicao entre os usurios e os servidores. Os servidores por sua vez esto conectados diretamente aos storages, no caso da gura, representados pelos discos. Um usurio nessa arquitetura, no poder fazer uma requisio diretamente ao storage, ele dever 20 obrigatoriamente requisitar o dado a um determinado servidor, que por sua vez far a requisio ao storage. Ainda sobre a Figura 3.4, como os dados cam teoricamente isolados, caso o servidor 2 tenha seu espao de disco cheio ele no poder, simplesmente, alocar o espao que estiver vazio no servidor 1. Do mesmo modo que um usurio que s tenha acesso ao servidor 2, no poder requisitar um dado ao servidor 3. Em ambientes computacionais pequenos, esse modelo ainda uma boa alternativa, pelos motivos que sero apresentados na seo seguinte. 3.5.3 Vantagens e Desvantagens O fato de estar conectado diretamente aos servidores, no exigindo uma rede exclusiva para o trfego de dados, como o caso da SAN, que ser apresentado a seguir, reduz expressivamente o custo de aquisio desse tipo de equipamento, bem como os custos relacionados ao seu gerenciamento. O baixo custo de gerenciamento est diretamente ligado ao fato de que no ser neces- srio fazer um investimento muito alto em treinamento e capacitao dos administradores desse ambiente, sendo que na maioria do ambientes corporativos que utilizam esse tipo de arquitetura, quem administra os equipamentos de storage so os prprios administradores dos servidores. Quanto a questo da segurana, nesse tipo de ambiente a segurana acaba sendo a do prprio servidor, j que o storage ca isolado da rede externa, no sofrendo assim possibilidades de ataques. No entanto uma grande desvantagem dessa arquitetura, a limitao da distncia que o storage pode ter do servidor que limitada a aproximadamente 25m, para alguns tipos de soluo e ambientes essa distncia praticamente invivel. Do mesmo modo que a gerncia simplicada e seu baixo custo so vantagens desse tipo de arquitetura, o crescimento nessa arquitetura pode vir a transformar essas vantagens em grandes problemas, uma vez que no existe uma maneira de centralizar todo processo de gesto desses storages que agem de maneira isolada. Outra desvantagem o desperdcio. Na Figura 3.4 pode-se ver que a capacidade de armazenamento do servidor 2 est cheia, porm ainda tem-se espao vago nos servidores 1 e 3. Como o compartilhamento no possvel nesse ambiente, a nica soluo para aumentar a capacidade de armazenamento do servidor 2 aumentando a sua prpria capacidade. 3.6 Network Attached Storage Nesse modelo de arquitetura os dados trfegam pela rede TCP/IP, e podem ser fa- cilmente compartilhados entre os servidores que precisam de acesso aos dados. Muito conhecida como Network Attached Storage, ou simplesmente, NAS, aproveita a popu- laridade e difuso da redes ethernet a m de criar um ambiente mais robusto que o apresentado na arquitetura DAS. Neste modelo, existem vrios protocolos de comunicao, sendo que os mais utilizados so Network File System, muito utilizado em sistemas baseados em Unix, e o protocolo Commom Internet File System, muito utilizado em sistemas Windows [Pre02]. 21 A Figura 3.5, nos da uma viso abrangente de como funciona essa arquitetura. Como pode-se observar, agora tanto usurios, quanto servidores, quanto storage esto conectados a mesma LAN. Nesse modelo, o storage passa a ganhar relevncia uma vez que o prprio storage passa a controlar e gerenciar quem pode ou no ter acesso ao dados, de tal maneira que a disponibilidade dos dados passa a depender nica e exclusivamente do storage. Existem algumas maneiras de se isolar o trfego de dados e o trfego de informao que trafegam sobre a LAN. A principal e mais utilizada a criao de Virtual LANs, ou simplesmente, VLANs. Como no o foco deste trabalho, esse tipo de mtodo no ser explicado neste texto. Figura 3.5: Modelo NAS. uma arquitetura muito utilizada para o compartilhamento de arquivos, e est pre- sente em praticamente todas as grandes empresas que precisam lidar com um grande volume de arquivos, e compartilha-los entre centenas de usurios. 3.6.1 Vantagens e Desvantagens Uma das grandes vantagens desse tipo de arquitetura o aproveitamento de uma infraestrutura j existente na maioria das corporaes, que a rede ethernet. Por ser uma tecnologia relativamente popular, muitos prossionais a dominam, logo o custo de treinar e possuir um prossional gerenciando um ambiente com esse tipo de arquitetura baixo. Esse modelo garante uma centralizao do gerenciamento dos dados, o que diminui a complexidade e facilita um crescimento no ambiente de armazenamento. 22 A distncia no limitada nesse caso, uma vez que a internet cobre praticamente todo o planeta. Pesa contra esse tipo de arquitetura o fato de que esse ambiente pode estar mais vulnervel a ataques maliciosos, e tambm um sistema que no consegue atingir a mesma performance que ambientes SAN. No muito utilizado para sistemas crticos como bancos de dados, ou sistemas que contenham informaes sigilosas. 3.7 Storage Area Network Arquitetura mais robusta, e realmente projetada para o armazenamento de dados o Storage Area Network. No modelo SAN existem vrios servidores conectados a uma nuvem, que na verdade uma rede, assim como no modelo NAS, por onde os dados trafegam. Diferentemente da arquitetura NAS, na arquitetura SAN, o nico tipo de trnsito que ocorre nessa rede o de dados. Os dados trafegam na SAN no formato de blocos, no existe um lesystem nesse modelo. Os protocolos apenas encapsulam o protocolo SCSI. Os principais protocolos dessa arquitetura so: Fibre Channel Protocol, ou apenas FCP, que leva os dados sobre uma estrutura de bra optica, e o internet SCSI, ou apenas iSCSI, que leva os dados sobre uma rede ethernet normal, porm encapsula dentro do protocolo TCP/IP, o protocolo SCSI. Pelo fato, de que, nessa arquitetura apenas blocos de dados trafegam pela rede, para os servidores os sistemas de storage so vistos apenas como discos, ou unidades de arma- zenamento. Como pode ser visto na Figura 3.6, na rede SAN existem outros dispositivos alm dos discos, como as tas, que nesse tipo de arquitetura possuem tambm um papel muito importante, uma vez que nessa arquitetura o volume de dados a ser armazenado muito maior que nas outras arquiteturas, e pelo fato de as tas serem muito mais baratas que qualquer outro dispositivo de armazenamento conhecido atualmente. Com esse modelo a alta disponibilidade dos dados garantida, uma vez que assim como na arquitetura NAS, o armazenamento dos dados no est dependente de um determinado servidor. A performance desse tipo de arquitetura outro ponto chave desse modelo, como os sistemas so projetados para otimizar ao mximo o trfego de dados a velocidade de resposta nessa arquitetura muito grande. Por todos esses fatos, esse modelo o mais adotado em grandes centro de computao, em instituies nanceiras e em grandes corporaes prestadoras de servio de TI. 3.7.1 Vantagens e Desvantagens A grande vantagem desse tipo de sistema o fato de que a arquitetura foi conce- bida exclusivamente para o trfego de dados, o que garante a esse tipo de soluo maior performance, segurana e alta disponibilidade [Ver09]. A grande desvantagem desse tipo de soluo o seu alto custo de manuteno e implementao. Como normalmente os equipamentos so de uso exclusivo, o custo bem mais elevado quando comparado com as arquiteturas anteriores. Outro fator que pesa negativamente a falta de especialista na rea, o que pode tornar muito caro manter e treinar prossionais para gerenciar esse tipo de soluo. 23 Figura 3.6: Modelo SAN, adaptado de[TEM09]. 3.8 Redundant Array of Independent Drivers Alm das necessidades de espao de armazenamento e topologias, outras necessidades como ganho de desempenho no acesso ao disco, facilidade em recuperar um dado perdido, segurana para o caso de perda de um dos discos, entre outras, surgiram na dcada de 1980 a tecnologia Redundant Array of Independent Drivers, ou simplesmente, como mais conhecida RAID que em portugus traduzido como um Conjunto Redundante de Discos Independentes que basicamente prope a idia de agrupar vrios discos rgidos e formar uma nica unidade lgica que ir ter a funcionalidade de armazendar todos os dados de forma redundante para garantir a segurana caso acontea perda de algum disco[Ver09]. possvel realizar a implementao dos RAID de duas formas, por hardware e por software que a opo com menor custo [PGK88]. A implementao por hardware necessria que exista no servidor ou computador uma controladora RAID dedicada para tal operao. Assim utilizando a implementao via hardware, tira-se a carga de proces- samento que necessria para criar os RAIDs do processador e coloca-se na controladora que ir possuir todos os recursos para executar a operao, com algumas outras vantagens como memria cache que ser til para diminuir os acessos ao disco, pois a controladora somente acessar o disco quando a memria cache estiver cheia. A bateria outro recurso interessante, pois caso exista uma perca de energia nem mesmo a redundncia proporcionada pelo RAID poderia ajudar, com a bateria os dados podem car armazenados em memria cache por at 48 horas para quando seja reestabe- licida a energia a controladara grave os dados da memria cache em disco. 24 A implementao do RAID por software ir existir com o sistema operacional fazendo o papel do agente que ir fazer o gerenciamento do RAID por meio da prpria controladora de discos, dispensando a necessidade de se ter uma controladora dedica para RAIDs, por esse motivo essa uma soluo mais barata. Porm, existem penalidades caso o servidor no possua uma grande performance de processamento. Implementar os RAIDs via software s ira sobrecarregar ainda mais o processador, pois todo o processamento necessrio para executar o gerenciamento do RAID ser feito pelo processador. Aps analisar as diferentes formas de implementao de RAIDs, vamos conhecer os diferentes nveis de RAIDs e as vantagens e desvantagens de cada um: RAID 0 Este nvel consiste basicamente no agrupamento de dois ou mais discos com o objetivo de tornar o acesso do sistema operacional mais rpido aos discos rgidos acelerando a leitura e escrita dos dados em uma mesma unidade, j que se realiza ao mesmo tempo atravs de uma tcnica chamada diviso de dados que utiliza um recurso conhecido como striping ou distribuio que consiste em subdividir os dados em faixas consecutivas, e escrever logo depois sequencialmente em cada um dos discos que fazem parte do conjunto, como pode ser visto na Figura 3.7. Quando o tamanho de cada segmento estiver ajustado de acordo com a aplicao do sistema que ir utilizar o conjunto, consegue-se ter um ganho considervel de performance chegando a ser 50 porcento mais rpido ao se comparar ao desempenho utilizando apenas os discos individuais. Outro aspecto positivo o custo para expandir a memria porque 100 porcento do novo disco utilizado. Porm, existem desvantagens ao se utilizar o RAID 0, pois ao se comparar com outros nveis, como exemplo, quando o sistema operacional no oferece para a aplicao que est utilizando o RAID um suporte a busca combinada de setores prejudicando assim a performance. Outro ponto com respeito a segurana dos dados j que o RAID 0 no oferece soluo para o caso de algum setor do disco rgido apresentar alguma perda de dados, analisando que a sequncia desses dados que compe um arquivo est dividida em setores de outros discos rgidos percebe-se que ir perder totalmente o sentido armazenar tais dados pois uma parte do arquivo foi corrompida, sendo assim, caso algum disco ou setor deste disco falhe no ter como recuperar os dados armazenados. Figura 3.7: RAID 0. 25 RAID 1 Utiliza como principal recurso o espelhamento dos disco por esse motivo para se exe- cutar esta implementao necessrio, no mnimo 2 discos. Basicamente os dados so gravados ao mesmo tempo em dois discos diferentes ou em dois conjuntos de discos dife- rentes para o caso de um apresentar alguma falha ou for simplesmente removido, os dados ainda assim estaro seguros armazenados no outro disco como pode ser visto na Figura 3.8. As desvantagens de se utilizar este nvel que o tempo de escrita aumenta para poder se executar o espelhamento, e o custo para aumentar a capacidade de armazenamento dobrado pois sempre precisaremos trabalhar com nmeros pares. Figura 3.8: RAID 1. RAID 0 + 1 Como sugere o nome, a juno dos recursos dos nveis 0 e 1. Dessa forma tem-se os dados divididos entre os discos para ganharmos em performance e a segurana pois os dados esto duplicados nos discos. Para montar o RAID 0 + 1 precisaremos de 4 discos no mnimo desvantagem de se utilizar este nvel o alto custo para se aumentar o tamanho da rea de armazenamento, porm para sistemas que necessitam de boa performance aliado com segurana dos dados este nvel altamente indicado (veja Figura 3.9). RAID 5 Possui caracteristicas importantes que fazem deste nvel de RAID muito utilizado, ao invs de se ter um disco dedicado para a paridade tem=se a paridade distribudas, em todos os discos que formam o conjunto, oferecendo assim um bom desempenho aliado a tolerncia a falhas. Visando uma maior performance neste nvel, o tamanho de cada segmento em que os dados esto armazenados so divididos para melhor atender o conjunto. Uma das desvantagens que podemos citar deste nvel acontece ao distribuir a paridade por todos os discos ao se perde uma paridade, a disponibilidade dos dados ir ser reduzida ate que o restante das paridades recupere o disco que falhou perdendo, assim, o desempenho de leitura e escrita como pode ser visto na Figura 3.10. 26 Figura 3.9: RAID 0+1. Figura 3.10: RAID 5. 27 Captulo 4 Deduplicao Este captulo aborda os conceitos de deduplicao uma tecnologia que tem evoludo ao longo dos ltimos 10 anos com o objetivo de eliminar dados duplicados, reduzir o espao utilizado pelas rplicas durante o armazenamento dos dados, cpia de dados para armazenamento secundrio, ou no contexto de armazenamento de dados biolgicos em storage. Este captulo est dividido nas seguintes sees: Introduo, Armazenamento em disco, Deduplicao baseada em catlago hash e tabela de pesquisa, Utilizao de blocos em tamanho varivel e xo, Inline e Postprocessing , Deduplicao na origem e no destino. 4.1 Introduo O algoritmo de deduplicao possui uma lgica simples de ser entendida, assim como, o seu objetivo. O termo deduplicao foi criado vrios anos pelos administradores de banco de dados, como uma maneira de descrever o processo de remoo de registros duplicados de um banco de dados, aps a unio de dois bancos de dados. O algoritmo de deduplicao, ou sistemas de armazenamento de instncia nica, uma tcnica de compresso de dados onde os dados duplicados so excludos, mantendo uma referncia de cada unidade de informao em um sistema, ao invs de se armazenar todos os dados, os exemplares retidos referenciam os dados excludos o que ir permitir o sistema de recuper-los quando for necessrio. A primeira tcnica utilizada de deduplicao executava em apenas uma nica instncia, por isso cou conhecida como SIS (Single-Instance Storage), como objetivo dessa tcnica diminuir a quantidade de dados repetidos e melhorar o desempenho das aplicaes, ela parte da idia de manter apenas uma instncia do arquivo e criar ponteiros para ser acessado pelos demais usurios sem que seja necessrio ter uma cpia do arquivo para um usurio distinto, porm tal tecnologia possua limitaes, j que se o arquivo fosse modicado iria exigir que outro arquivo fosse armazenado com a alterao realizada, j que, essa tecnologia apenas executada em nvel de arquivo [Tea09a]. Sendo assim, o algoritmo de deduplicao passou por uma evoluo e comeou a trabalhar com os dados em nvel de blocos de dados, e no mais em nvel de arquivo. A comparao feita em nvel de blocos mais especica do que a feita em nvel de arquivos pois tem a possibilidade de analisar uma sequncias de dados em baixo nvel, podendo encontrar sequncias idnticas. Com isso, capaz de eliminar vrios gigabytes de dados 28 repetidos do sistema de armazenamento. A diferena entre a tecnologia SIS nica instncia e da tecnologia de anlises em nvel de bloco, conhecida como subarquivo empregada nos algoritmos atuais de deduplicao pode ser vista no diagrama da Figura 4.1. Figura 4.1: Comparao dos mtodos de instncia nica e de sub arquivo. Alm do benefcio de eliminar os dados duplicados que ocupam um espao que poderia estar sendo utilizado para futuros dados, tal eliminao permiti que o usurio execute o sistema mais rpido e mais eciente j que no estar sobrecarregado com dados extras. Alm disso, a diminuio de dados trafegando pelo canal de comunicao entre o disco e a controladora sempre uma melhora perceptvel, pois o sistema tem mais espao livre. Deduplicao de dados pode ser especialmente de grande importncia para sistemas de grande porte no qual se pode perceber um crescimento no percentual de dados no estruturados gerados por aplicativos de colaborao, virtualizao de servidores , imagens e demais aplicativos. Analistas da rea comprovaram que a percentagem de dados no estruturados no presente momento maior que dos dados estruturados provenientes de dados transacionais, com os dados no estruturados crescendo em ritmo exponencial o tempo necessrio para uma ampliao do sistema de armazenamento reduzido, assim como os custos de armazenagem aumentam. Por esse motivo, notado o crescimento da utilizao do algoritmo de deduplicao em ambientes corporativos. Outro, benefcio que pode ser citado com a utilizao do algoritmo de deduplicao incluem a reduo do tamanho da massa de dados do backup (dados que o usurio julga importante ter armazenado em outro dispositivo) o que ir impactar na reduo dos cus- tos como energia, espao e refrigerao gastos com os equipamentos utilizados para o armazenamento. Estes benefcios so uma constante preocupao em ambientes corpora- tivos. A eliminao de dados duplicados tambm impacta em uma diminuio nos erros de recuperao de dados que esto em backup, alm de limitar as despesas associadas com o armazenamento primrio e secundrio de dados. Dessa forma, a deduplicao pode ser resumida em um processo de segmentao de cada pedao dos dados que processado, cada segmento identicado e confrontado com os dados que j esto no sistema, caso o dado seja nico ento ele armazenado em um disco, caso o dado esteja duplicado uma referncia criada em seu lugar apontando para o primeiro dado idntico a este que teve entrada no sistema. Muitas vezes, os mesmos dados podem ser armazenados em mais de 50 locais diferentes em um sistema 29 de armazenamento. Se cada dado tiver um byte de espao, a deduplicao ir reduzir o espao no armazenamento de cinquenta bytes para apenas um bytes. Um exemplo comum que pode ser citado a utilizao da tcnica de deduplicao so os servidores de correio eletrnico, pois este servidor pode armazenar grandes quantidades de dados para diversos usurios e existem parcelas signicativas de dados duplicados que podem estar inseridos em anexos, rodaps e logotipos das empresas que por sua vez so re- petidos vrias vezes em mensagens eletrnicas desses diversos usurios consumindo espao de armazenamento do sistema que poderia estar sendo utilizado para outra nalidade ou at mesmo aumentar o tempo necessrio para melhorias no sistema. 4.2 Armazenamento em disco A tcnica de deduplicao no contexto do armazenamento em disco se refere a qualquer algoritmo que busca por objetos de dados duplicados, podendo ser blocos, massas de dados ou arquivos, e descarta os trechos duplicados. Quando o objeto de dado duplicado encontrado, os ponteiros de referncia so modicados para o primeiro objeto idntico encontrado, possibilitando assim que o dado duplicado possa ser localizado e recuperado posteriormente. Sendo assim um objeto que ter sua localizao compartilhada para todos os outros objetos idnticos a ele. O compartilhamento da localizao dos objetos a base dos tipos de deduplicao de dados existentes atualmente. Esse algoritmo, ilustrando na Figura 4.2 no depende de aplicativo, sistema operaci- onal ou qualquer tipo de sistema de arquivo, todos os objetos de dados so gravados em um sistema de armazenamento usando um ponteiro de referncia dos dados .Tradicional- mente, utilizado sistemas de arquivos onde os objetos de dados so armazenados sem levar em conta qualquer semelhana com outros objetos no mesmo sistema de arquivos. Como pode ser visto na Figura 8.2, existem cinco objetos idnticos armazenados em um sistema de arquivos, cada um com um ponteiro de dado prprio. Embora, todos os cinco objetos de dados sejam idnticos, cada um armazenado como uma instncia prpria e cada um consome espao em disco fsico. Figura 4.2: Exemplo de um sistema que no utiliza algoritmo de deduplicao [Hop07]. Ao utilizar um algoritmo de deduplicao ser introduzido dois novos conceitos, o conceito de catlogo onde os objetos de dados sero mantidos junto ao seu respectivo registro criado, utilizando um algoritmo de hash que identica o contedo exclusivo de cada objeto. O segundo conceito que os sistemas de arquivos so capazes de permitir vrios ponteiros de dados para referenciar o mesmo objeto fsico de dado. 30 A catalogao dos objetos de dados feita comparando os objetos e redirecionando os ponteiros de referncia, esse processo constitui a base do algoritmo de deduplicao. Conforme mostrado na Figura 4.3 o referenciamento de vrios objetos idnticos para um objeto nico que ir permitir que o espao que normalmente ocupado pelos objetos duplicados seja devolvido ao sistema de armazenamento, com isso gerando uma economia de espao. Figura 4.3: Exemplo de um sistema que utiliza algoritmo de deduplicao por catlogo [Hop07]. Dado o fato de que todos os algoritmos de deduplicao pesquisados mantm alguma forma de catlogo de hash e que de alguma forma referenciam blocos repetidos, encontra-se uma vasta variedade de implementaes e todas por possurem diferenas mnimas, foram patenteadas pelas empresas desenvolvedoras. Nas sees a seguir sero explicados os diferentes mtodos que podem ser utilizados para elaborar um algoritmo de deduplicao. Utilizando o mtodo de hashing a deduplicao de dados comea com uma comparao de dois objetos de dados. No seria prtico para digitalizar um volume de dados inteiro e para duplicar objetos cada vez que um novo objeto escrito para esse volume. Por esse motivo, os algoritmos de deduplicao criam valores de hash para cada pequeno novo objeto, e armazenam esses valores em um catlogo. [Hop07]. Um valor de hash tambm conhecido como assinatura de uma impresso digital que um pequeno nmero gerado a partir de uma seqncia mais longa de dados. Um valor de hash substancialmente menor do que o objeto de dados em si, e gerado por uma frmula matemtica de modo que pouco provvel de dois objetos dados no idnticos produzam o mesmo valor de hash, uma exemplicao pode ser vista na Figura 4.4. Figura 4.4: Exemplo de um sistema que utiliza algoritmo de hash[AO10]. 31 O valor de hash pode ser to simples como um clculo de paridade para proteo de dados utilizados nos nveis de RAID (Redundant Array of Independet Disks), uma vez que os valores de hash foram criados podem ser facilmente comparados e os candidatos para deduplicao podem ser identicados. Se os valores hash correspondentes so descobertos, h duas abordagens para lidar com esses candidatos, o primeiro seria assumir que os valores de hash so idnticos indicando esse resultado para a prxima etapa indo direto para a fase de deduplicao. A segunda alternativa seria adicionar uma segunda operao para vericar se em cada objeto de dados so idnticos de fato antes de realizar a deduplicao [Tea09a]. Entender o algoritmo um critrio importante na avaliao do algoritmo de dedupli- cao, se o algoritmo de deduplicao depende nica e exclusivamente sobre o resultado gerado pelas comparaes elaboradas pelas tabelas de hash, para decidir se os objetos devem ser deduplicados, ento o usurio da deduplicao estar aceitando a possibili- dade de ocorrer falsos e positivos resultados no momento da comparao, existindo uma probabilidade de corrupo de dados como um resultado possvel de acontecer [AO10]. Caso a possibilidade de qualquer corrupo de dados, ainda que pequena, no seja aceitvel, o usurio dever se certicar de que o algoritmo tome medidas para realizar uma segunda validao dos objetos de dados aps a comparao do hash ser completada. Quando o usurio estiver disposto a aceitar que resultado gerado pelo hash corres- pondente correto ou no, a velocidade da deduplicao uma prioridade maior para esse usurio, sendo assim a conana do resultado do hash pode ser adequada para as necessidades de cada ambiente. Logo aps dos objetos repetidos serem identicados, sendo a validao da identicao uma etapa opcional, o prximo passo executar a deduplicao. Existem diferentes implementaes de deduplicao e empregam diversos mtodos, no que diz respeito a modicao da estrutura de dados do ponteiro, no entanto todas as formas de indexao de dados utilizam ponteiros e esto classicadas em duas grandes categorias conhecidas como catlogo hash e tabela de pesquisa. 4.3 Deduplicao baseada em catlogo hash e tabela de pesquisa A primeira categoria conhecida como catlogo hash por possuir um catlogo de valores de hash que usado para identicar candidatos a deduplicao. O processo inicializado com o sistema identicando as duplicatas e os ponteiros de dados so alterados conforme o exemplicado na Figura 4.5. A vantagem da deduplicao pelo modelo de catlogo que este usado apenas para identicar objetos duplicados por isso no acessado durante a leitura ou a escrita em tempo real dos objetos de dados. Essa tarefa ainda tratada pelo sistema de estrutura de arquivo de dados. A segunda categoria a tabela de pesquisa que pode ser entendida com uma fun- cionalidade aprimorada do catlago de hash, pois tambm contm em seu interior uma tabela de hash de pesquisa para indexar os dados do objeto repetidos para o ponteiro. A vantagem de uma tabela de pesquisa que ela pode ser usada em sistemas de arquivos que no suportam os blocos referncias mltiplas como mostrado na Figura 4.6, um nico objeto de dado pode ser armazenado e referenciado muitas vezes usando a tabela de hash. 32 Figura 4.5: Exemplo do algoritimo que utiliza a indexao por catalogo[AO10]. A indexao utilizada na deduplicao possui pontos importantes a serem levados em considerao, principalmente, quando se trata de resilincia. Como o algoritmo utiliza tabelas de referncia a objetos de dados do ndice, a tabela se torna um ponto nico de falha. Qualquer corrupo da tabela suscetvel para tornar o sistema de arquivo inteiro inutilizvel. Por outro lado, o catlogo baseado em deduplicao usado apenas para a descoberta e no tem nenhuma dependncia para a prpria leitura e escrita dos objetos. A deduplicao baseada em catlogo, no entanto, exige o suporte nativo a arquivos do sistema de referncia em blocos mltiplos, sendo assim quando a resilincia primordial para o projeto que utiliza a deduplicao a melhor escolha ser o mtodo baseado em catlogo [Hop07]. Figura 4.6: Exemplo de uma tabela de indexao [AO10]. 4.4 Utilizao de blocos em tamanho varivel e xo Outra abordagem que deve ser feita sobre deduplicao o tamanho dos blocos que o algoritmo ir utilizar, visando um tratamento de dados otimizado para um tempo de resposta e para que as respostas sejam mais precisas. Novamente existem duas opes que podem ser utilizada na deduplicao, tamanhos de blocos variveis e xos. Com o objetivo de resultados mais precisos e uma maior eliminao de dados repetidos no processo de deduplicao, o mtodo de tamanho de blocos variveis permite que uma anlise da massa de dados seja elaborada de uma forma mais inteligente, variando o tamanho dos blocos conforme o resultado da anlise. Existem algoritmos que tambm 33 possibilitam a identicao de objetos especcos dentro da massa de dados como, por exemplo, arquivos .doc e imagens conforme o mostrado na Figura 4.7. Para o algoritmo conseguir executar arquivos com tamanhos de blocos variveis o sistema ir necessitar de um bom desempenho j que esse mtodo necessita de mais ciclos do processador para a anlise de dados em diferentes tamanhos [AO10]. A deduplicao com tamanho de blocos xos mais utilizada por usurios que ne- cessitam diminuir a complexidade e a carga dos processadores j que a implementao simples, apenas necessrio denir o tamanho do bloco e j est apto para processar a massa de dados, porm no ir produzir a mesma ecincia do que utilizar a implemen- tao com blocos de tamanho varivel. Na Figura 4.7 pode ser notado a diferena entre os mtodos de tamanho xo e varivel. Figura 4.7: Exemplo dos mtodos de bloco de tamanho xo e varivel 4.5 Inline e Postprocessing At agora apenas foi levado em considerao mtodos de execuo dos algoritmos de deduplicao, porm tambm deve ser levado em conta o conceito do momento em que a deduplicao executada. A seguir apresentado dois algoritmos que so aplicados em momentos distintos do processo de deduplicao conhecidos como inline e postprocessing. O algoritmos que executa a deduplicao no exato momento da entrada dos dados no sistema de armazenamento conhecido como algoritmo de deduplicao inline como pode ser visto na Figura 4.8. Como a eliminao dos dados repetidos deve ser feita em tempo real de processamento dos dados, o catlogo utiliza o hash para fazer as comparaes de objetos tendo como um facilitador para comparar os objetos o fato do catlogo estar alocado em memria RAM. Utilizando esse mtodo, nota-se um ganho em desempenho e que os dados repetidos nunca sero realmente armazenados no sistema de armazena- mento j que as comparaes so feitas antes do armazenamento denitivo. Porm ao mesmo tempo que uma vantagem termos os catlogos alocados na memria ram, uma desvantagem seria o fato do sistema no possuir um espao em memria considervel j que o catlogo acabaria sendo reduzido na medida que os dados nicos fossem ocupando a memria [Tea09b]. Outra desvantagem que pode ser citada na utilizao de algoritmos inline o fato que os recursos do sistema tem que lidar com o processo de deduplicao em milissegundos, exigindo que os equipamentos possuam um excelente desempenho, com a entrada no mer- cado de tecnologia dos processadores com multicores, tal necessidade por desempenho est 34 Figura 4.8: Demonstrao do processo inline[Tea09b]. sendo sanada tornando esse mtodo um dos favoritos entre os usurios de deduplicao. Alm disso, outro fato importante que a validao da deduplicao se faz necessria com este mtodo j que o processo feito de forma rpida, por isso uma revalidao por segu- rana recomendada para se ter certeza de que os objetos que esto sendo comparados realmente sejam idnticos ou repetidos [DJB09]. Como o nome j sugere os algoritmos de deduplicao que utilizam o mtodo de postprocessing a deduplicao executada aps os dados serem gravados no sistema de arquivos, por isso, esse mtodo no precisa de tanta agilidade quanto os algoritmos inline, sendo assim, realiza suas operaes em um ritmo mais lento por isso necessita apenas de equipamentos com um desempenho regular. Alm da desvantagem que est relacionada ao tempo de execuo e desempenho, esse mtodo necessita de mais espao fsico para armazenamento que o mtodo inline j que todos os dados duplicados ou no sero arma- zenados no sistema de armazenamento, e pelo fato de se perder um espao considervel de armazenamento denitivo para o cache dos catlogos onde sero feitos as comparaes como pode ser visto na Figura 4.9. Figura 4.9: Demonstrao do processo postprocessing [Tea09b]. 4.6 Deduplicao na origem e destino Dois conceitos importantes sero apresentados para poder diferenciar os diversos al- goritmos de deduplicao existentes, trata-se do local onde o tratamento dos dados ser feito, mais uma vez existem duas opes que a origem ou no destino. 35 A deduplicao na fonte refere-se comparao de objetos de dados na fonte antes que os dados sejam armazenados o sistema de arquivos, como pode ser visto na Figura 4.10, o algoritmo verica periodicamente os novos arquivos para cada entrada cria hashes comparando estes com os hashes j existentes no sistema caso seja constato que nova entrada idntica existente, esta entrada substituda por um ponteiro para o dado j existente no sistema. A vantagem da deduplicao na fonte de dados que ser menos necessrio a quantidade de dados a serem transmitidos e armazenados no destino nal. Uma desvantagem que pode ser analisada que os componentes de catlogo da dedupli- cao e indexao so dispersos pela rede, com isso distribui as cargas de processamento em aplicativos de mltiplas fontes, tornando a deduplicao potencialmente mais difcil de administrar. Figura 4.10: Demonstrao do processo de deduplicao na origem [Hop07]. A deduplicao no destino refere-se a comparao dos objetos de dados em um nico repositrio, no qual foi reunido dados de vrias fontes como pode ser visto na Figura 4.11, com isso as demandas de processamento geralmente so mais signicativas com esta abordagem j que o clculo do hash est se tornando mais complexo. Uma vantagem da deduplicao no destino que todos os componentes de gerenciamento so centralizados na deduplicao. A desvantagem que a totalidade dos dados objeto deve ser transmitida atravs da rede antes da deduplicao, aumentando assim consideravelmente o trfego pela rede dos dados [AO10]. Figura 4.11: Demonstrao do processo de deduplicao no destino [Hop07]. 36 4.7 Tcnicas de Deduplicao 4.7.1 Zetta Byte Filesystem Deduplication Denio O ZFS deduplication um mecanismo que passou a fazer parte do lesystem ZFS da Sun Microsystems, que possui vrias caracteristicas particulares quando comparado aos sistemas de arquivos tradicionais. O ZFS constantemente sofre vrias atualizaes e, em uma delas, passou a estar dis- ponvel a deduplicao. O ZFS considerado o primeiro lesystem aberto que possui nativamente a capacidade de realizar a deduplicao dos dados. O prottipo dessa fer- ramenta foi desenvolvido inicialmente por Bill Moore e Je Bonwick em 2008, depois de vrios aperfeioamentos a verso foi lanada no m do ano de 2009, como parte de uma atualizao do ZFS. ZFS tornou-se popular e foi portado para sistemas como Mac OS X, e algumas distribuies GNU/Linux. Funcionamento A deduplicao que ocorre no ZFS feita em nvel de blocos de dados. A escolha dessa implementao feita pelo fato de que essa a implementao que mais faz sentido em um ambiente de storage genrico. Utiliza um hash de 256 bits para fazer a comparao entre os blocos de dados. O tamanho padro do bloco de dados do ZFS 8K, sendo que esse sistema de arquivos suporta blocos de tamanho varivel. A opo por usar hash de 256 bits foi feita pela alta conabilidade e pela pequena chance de coliso que ela oferece. Mesmo com esse nvel alto de conabilidade ainda existe a possibilidade de haver colises, e por isso o ZFS ainda tem a opo de caso haja uma coliso, ele consegue fazer uma vericao e garantir que o dado diferente no seja descartando, o que signicaria perda de informao. Como qualquer outro mecanismo de deduplicao ele utiliza metadados para gravar informaes sobre os blocos de dados do sistema. Como o mecanismo de deduplicao faz parte do lesystem do ZFS no existem necessidades extras de uso de memria RAM nessa ferramenta. Ele consegue enderear uma capacidade de dados diretamente proporcional ao tamanho de sua memria RAM, no havendo requisitos mnimos para que ele consiga comear a guardar os metadados. Sendo tambm a quantidade de memria vai estar inversamente relacionada ao tamanho dos blocos de dados. Quanto menor o tamanho do bloco de dados mais memria RAM ser necessria para armazenar a mesma quantidade de dados. ZFS utiliza um processo de deduplicao inline, no tendo opo de variar para um modelo post-processing. Como o ZFS produto de uma empresa que fabrica hardware, inclusive Storage, ele realiza deduplicao tanto na fonte quanto no destino. Na fonte quando utilizado em um sistema como Opensolaris, GNU/Linux. E no destino quando ele faz parte do lesystem utilizado por um Storage para gerenciar o seus dados. 37 4.7.2 OpenDedup Denio Opendedup um lesystem desenvolvido para prover deduplicao inline e oferecer exibilidade para algumas aplicaes, principalmente aplicaes voltadas a sistemas de storage. Como seu nome sugere uma aplicao com cdigo aberto, ou seja, sua imple- mentao est disponvel para ser consultada e modicada por qualquer pessoa que tenha interesse. Como essa aplicao cria um lesystem sua utilizao independente de sistema opera- cional, bastando ser portada para o sistema operacional desejado. Atualmente o Opende- dup possui compatibilidade com sistemas GNU/Linux, Windows e com o sistema Amazon S3 que um servio de cloud computing. O processo usado por padro na implementao do OpenDedup o processo inline, porm essa implementao permite que seja feita uma congurao a parte e que o usurio possa optar tambm por fazer deduplicao post-processing; Como no existe um sistema de Storage implementado usando essa soluo, nessa implementao pode-se considerar que a deduplicao feita na fonte, ou seja, na mquina onde o dado criado. Funcionamento O funcionamento do OpenDedup bem similar ao do mecanismo de deduplicao do ZFS. Ele possui um componente chamando de SDFS Volume que quem faz a interao entre as aplicaes, e quem se comunica diretamente com o sistema operacional. Sendo dessa maneira uma implementao independente de sistema operacional. De maneira contraria ao ZFS o Opendedup sofre com a falta de documentao que basicamente se encontra em um pequeno manual e na leitura do cdigo implementado. Como no conta com uma grande empresa por trs de seu desenvolvimento o Opendedup sofre um pouco no quesito conabilidade e robustez. Durante os testes apresentou em alguns momen- tos comportamentos totalmente inesperados. Mas de modo geral no compromete sua conabilidade, uma vez que nenhum dado foi perdido. Ele armazena seus metadados em Data Chunks, utilizando um banco de dados para isso, possui tambm um componente conhecido DSE(Duplication Storage Engine que quem fazer essa analise dos metadados e quem decide se algo deve ser ou no excludo e quem incrementa a tabela de hash indicando. 4.7.3 Write Anywhere FileLayout Deduplication Denio WAFL como conhecido, um layout de arquivos de alto desempenho para vetores em RAID pertencente a Netapp, e executado em seu sistema operacional conhecido como DataOntap. Como o prprio nome sugere, essa tecnologia fragmenta os dados automati- camente utilizando localidades temporais para escrever os metadados em conjunto com a massa de dados do usurio. A fragmentao dos dados no danica nenhum arquivo que esteja gravado na sequncia da massa de dados. Uma das vantagens dessa tecnologia a rpida recuperao do sistema, caso haja uma falha de energia ou do sistema, e por aumentar de forma rpida o tamanho de arqui- 38 vos. Sendo assim, o objetivo principal do WAFL fornecer mecanismos que permitem a diversos sistemas de arquivos acessarem os blocos contidos no disco. Uma das caractersticas que pode ser ressaltada do WAFL o suporte ao diretrio utilizado pelo UNIX e para os modelos de NFS que existem nas verses do Microsoft Windows no qual possvel um acesso instantneo para o sistema de arquivos em ambos diretrios permitindo por exemplo, a usurios recuperarem arquivos que foram apagados por engano atravs de um backup que pode ser acessado em tempo real. Sendo assim, a deduplicao utilizada pela NetApp utiliza as caractersticas do WAFL para economizar espao em armazenamento, mantendo um sistema de baixo custo sem a necessidade de alocao de mais espao. Funcionamento O funcionamento do WAFL suporta compartilhamento de blocos, com o objetivos de otimizar o consumo de espao de armazenamento. Basicamente, dentro de uma rvore do sistema de arquivos, pode existir vrias referncias ao mesmo bloco de dados. Dessa forma o algoritmo comea a forma os blocos salvos que so os que no foram eliminados pela deduplicao, os blocos salvos tambm so conhecidos como blocos de mltiplas referencias. Dentro de cada bloco de referncia ir existir um contador para registrar a quantidade de referncia est realizando, aps a contagem realizada o valor armazenado nos meta- dados de volume. Um nvel abaixo dos blocos de referncia existe os blocos indiretos que estaro apontando para os dados, caso no exista o dado o bloco indireto liberado. A deduplicao presente no sistema Ontap permite duplicar blocos com o tamanho de 4 KB em qualquer lugar da massa de dados de forma exvel com o objetivo de excluir o mximo de dados repetidos. Cana bloco pode no mximo fazer 255 referenciamen- tos.onstantemente sofre vrias atualizaes e em uma delas passou a estar disponvel a deduplicao. O ZFS considerado o primeiro lesystem aberto que possui nativamente a capacidade de realizar a deduplicao dos dados. O prottipo dessa ferramenta foi desenvolvido inicialmente por Bill Moore e Je Bonwick em 2008, depois de vrios aper- feioamentos a verso foi lanada no m do ano de 2009, como parte de uma atualizao do ZFS. ZFS tornou-se popular e foi portado para sistemas como Mac OS X e algumas distribuies GNU/Linux. 39 Captulo 5 Aplicando Deduplicao em Dados Biolgicos: Um Estudo de Caso Neste captulo ser abordado um estudo de caso feito durante essa pesquisa. O estudo de caso usar alguns software que realizam deduplicao de dados. Na verdade esses soft- ware so mecanismos presentes em alguns lesytems. Esses mecanismos foram utilizados em uma massa de dados provenientes da rea de bioinformtica. Foi feito um estudo comparativo entre 3 diferentes implementaes analisando seus ganhos e investigando as vantagens e desvantagens de suas implementaes. Os dados utilizados foram retirados do laboratrio de bioinformtica da Universidade de Braslia. Todos teste foram reali- zados com a mesma base de dados, utilizando o mesmo disco rgido. Os testes tambm foram realizados utilizando um sistema de armazenamento do tipo storage e um sistema de armazenamento com um HD USB 2.0 solitrio, de modo que foi possvel observar a inteligncia de um storage quando comparado a um disco sem inteligncia. Este captulo est dividido nas seguintes sees: Anlise comparativa dos software de deduplicao onde detalhado a anlise sobre os resultados obtidos, Ambiente Compu- tacional onde apresentado os equipamentos utilizados para fazer os testes, Anlise dos dados biolgicos que foram utilizado para os testes, Resultados Obtidos onde foi realizado um detalhamento dos resultados obtidos pelos software de deduplicao e Anlise da dis- ponibilidade dos Dado e velocidade de Acesso ao Dados onde feito uma comparao entre as duas tecnologias de armazenamento utilizadas. 5.1 Anlise comparativa dos software de deduplicao Antes do desenvolvimento do estudo de caso foi realizado uma anlise comparativa entre os trs software utilizados, com o objetivo de se criar a Tabela 5.1 no qual possvel visualizar e comparar melhor as principais caractersticas de cada um dos software de deduplicao abordados neste trabalho. Algumas caractersticas so relevantes para analisar a maturidade que o software pos- sui. A principal delas a vericao de coliso, a que signica que quando uma coliso encontrada por meio do uso de uma funo de hash, provavelmente o dado de entrada dessa funo o mesmo, porm isso no vlido sempre, pois os algoritmos de hash utili- zados no usam funes perfeitas de hash. Por esse motivo, como apresentado no captulo 40 4, existem software que executam uma validao das respostas realizadas pelas funes de hash [DJB09]. Sendo assim, sempre que o software permitir, o dado eleito a se tornar candidato para ser deduplicado precisa passar por uma validao extra. Como pode ser observado na Tabela 5.1, tanto o WAFL e o ZFS fazem essa vericao, e isso explica o motivo da presena desses dois software em produtos extremamente utilizados pela indstria de tecnologia. Optar pela no vericao pode signicar em uma possvel perda de dados que consequentemente ir signicar perda de dinheiro, pois tem-se espao do storage sendo desperdiado. O Opendedup em sua verso atual ainda no possui esse mecanismo de vericao Apesar de muito promissor sua evoluo lenta, pois depende diretamente da contribuio da comunidade de software livre. Outro ponto interessante a ser observado na Tabela 5.1 onde a deduplicao re- alizada. Tanto o ZFS quanto o WAFL podem fazer a deduplicao no destino, o que signica que eles faro a deduplicao em um storage. Os testes realizados neste trabalho foram todos feitos utilizando apenas deduplicao na fonte, pelo motivo que o software WAFL exigi para a sua utilizao que o sistema de storage seja proprietrio da empresa Netapp [Ver09]. Dessa forma, o WAFL foi executado como um simulador utilizando um disco solit- rio, onde apenas ir reproduzir uma mostra da possvel taxa de deduplicao que seria alcanada caso a utilizao de um storage da Netapp fosse a tecnologia adotada. 5.2 Ambiente Computacional Nesta seo discutido e descrito os ambientes computacionais utilizados para fazer os testes realizados ao longo deste trabalho, e tambm sero descritos os tipos de dados biolgicos que foram usados como massa principal de dados de testes. Como dito anteriormente, durante o desenvolvimento deste trabalho no foi possvel aplicao da deduplicao do WAFL em storage, por esse motivo os testes foram realizados em ambientes heterogneos. As anlises elaboradas neste trabalho possuem o foco de comparar a taxa de dedu- plicao em uma determinada massa de dados. Sendo constatado que o ambiente de processamento computacional no inuencia os resultados, apenas ir impactar direta- Tabela 5.1: Tabela comparativa entre os softwares testados. Caracterstica WAFL Opendedup ZFS Cdigo Aberto No Sim Sim Tamanho dos Blocos Comparativos 4K Varivel Varivel Suporta INLINE Sim, exclusiva Sim Sim, exclusiva Suporta Post-processing No Sim No Deduplicao - fonte No Sim, exclusiva Sim Deduplicao - destino Sim, exclusiva No Sim Vericao de coliso Sim No Sim 41 mente no tempo gasto para executar cada software. A seguir so apresentados os dois ambientes computacionais utilizados para os testes. 5.2.1 Descrio do ambiente computacional utilizando storage Fsicamente os equipamentos esto conectados no laboratrio da IBM, como mostrado na Figura 5.1 . O processamento feito em uma blade server, conhecida como lmina de processamento que est dentro de um chassis blade que uma espcie de rack. A lmina um servidor de processamento de dados adaptado para funcionar dentro de um rack, que ainda possui a capacidade de suportar mais 13 lminas. Figura 5.1: Viso fsica da conexo entre o Chassis e ostorage DS3300. Dentro do chassis blade tem-se uma espcie de mini Data Center, pelo o fato das lmi- nas conseguirem se comunicar entre si e com outros equipamentos do ambiente externo, por meio do chassis blade, utilizando um switch ethernet interno. Como foge ao escopo deste trabalho abordar em detalhes esse tipo de tecnologia, a Figura 5.2 se prope a dar uma viso mais clara de como foi montado o ambiente de storage para a realizao deste trabalho. Como pode ser visto na Figura 5.2 , existe um switch ethernet que o responsvel por comunicar os dois servidores (Open Solaris e Ubuntu), bem como quaisquer outros servidores ao storage (DS3300). Fisicamente tanto as lminas quando o switch ethernet esto dentro do chassi blade. O equipamento de storage foi emprestado pela IBM Brasil e um DS3300, com duas controladoras, 1 gigabyte de memria cache para cada controladora, 4 portas padro gigabit ethernet e um disco interno Hitachi de 3,5"com 5400 rpm utilizando interface SAS, velocidade nominal de transferncia de 480MBps cache interno de 16MB. A topologia usada a de uma SAN, conforme o detalhado na Seo 3.6, essa tecnologia utiliza o protocolo iSCSI que um protocolo presente na tecnologia SAN, para fazer a comunicao das lminas e o storage por meio das portas externas que possuem o protocolo iSCSI nativo, localizadas no switch ethernet. 42 Figura 5.2: Viso lgica da topologia utilizada para comunicao entre storage e as lminas de processamento. Esse tipo de topologia tambm o ideal para ser aplicado em laboratrios de bioinfor- mtica conforme os conceitos apresentados, pois em um ambiente de laboratrio hipottico ir existir uma quantidade n de pesquisadores, acessando n servidores para fazer a leitura ou escrita de dados biolgicos no sistema de storage. Podendo ser concludo que essa a soluo que trs um melhor custo benefcio, j que no ambiente de laboratrio existe a necessidade de compartilhamento de dados biolgicos entre os diversos pesquisadores. Atravs dos conceitos apresentados no Captulo 3 pode-se armar que a utilizao de topologia DAS para ambientes de laboratrios passa a ser invivel, pois teria que existir um storage para cada servidor de processamento, e tambm no iria existir a facilidade do compartilhamento dos dados biolgicos na rede, j que o ambiente estaria isolado. O alto custo de implementao de uma rede SAN utilizando o protocolo Fibre Channel Protocol tambm no justica o seu investimento, pois pode ser notado durante os testes que os dispositivos mais lentos so os discos rgido, ou seja, mesmo a tecnologia FCP possuindo uma maior velocidade de trfego de dados que a tecnologia iSCSI este diferencial no produziria benecio, levando em considerao que durante os testes a velocidade de acesso oferecida pela tecnologia iSCSI satisfatria para ambientes de laboratrio de bioinformtica. Uma rede NAS pode ter um desempenho de performance abaixo do necessrio para algumas aplicaes utilizadas nesse tipo de laboratrio. Portanto, uma rede SAN que utilize protocolo iSCSI deve sempre que possvel ser utilizada nesse tipo de ambiente de laboratrio. 43 Ambiente de processamento Os testes realizados no ambiente Opendedup foram realizados em um sistema ope- racional Ubuntu 64-bits 10.10, em uma mquina IBM Blade Server HS22, com 2 processadores Xeon quad-core2,93 GHz, 48 GB RAM DDR3. Os teste realizados no ambiente ZFS foram realizados em um sistema operacional OpenSolaris 10, em uma mquina IBM HS22, processador Xeon quad-core 2,93 GHz, 48 GB RAM DDR3. 5.2.2 Descrio do ambiente computacional utilizando disco so- litrio O software WAFL, como dito anteriormente, aplicou a deduplicao em um disco solitrio como pode ser visto na Figura 5.3. Dado que o software simulador necessita ser executado na verso do windows XP impossibilitou a instalao na mquina IBM Blade Server HS22, alm da mesma no suportar discos de 3.5 polegadas. O disco solitrio interno Hitach de 3,5"com 5400 rpm, utilizando interface USB, velocidade nominal de transferncia de 480MBps cache interno de 16MB. Figura 5.3: Mquina windows conectada ao disco Ambiente de processamento Os testes realizados no ambiente WAFL foram realizados em uma mquina com a verso windows XP, com processador pentium 4 3.0 Ghz e 1 GB de RAM DDR2. 5.3 Anlise dos dados biolgicos Os dados em sua grande maioria so arquivos no formato FASTA e FASTAq, formatos nhr, nsd, nnd, nni, tendo alguns arquivos comprimidos no formato Gunzip, e tambm arquivos raw que so dados provenientes de anlises biolgicas, mas no possuem nenhum formato especco. 44 Figura 5.4: Grco de distribuio por tipo de dados. Como pode ser observado na Figura 5.4, a maioria dos dados est no formato FASTA. Como descrito no Captulo 2 os arquivos FASTA possuem algumas particularidades que podem ser bem aproveitadas com a utilizao de deduplicao e sistemas de storage. A Figura 5.5 est sendo utilizada apenas como um exemplo, no estudo de caso com os 3 cenrios foram utilizados arquivos reais com propores maiores que facilitaram a visualizao dos ganhos obtidos. Porm fazer a representao de arquivos reais neste trabalho invivel, optou-se por utilizar para anlise apenas esse pequeno trecho. Como pode ser visto na Figura 5.5, h um arquivo FASTA com grandes sequencias alfabticas. Tendo por hiptese que esses arquivos podem vir a ter dezenas de Gigabytes, a utilizao de um storage se mostra uma tima soluo para garantir acesso rpido a grandes massas de dados. Com a utilizao de apenas um disco, a vazo mxima sempre ser a de um nico disco, com a utilizao dos sistemas de storage, a vazo ser multiplicada pela quantidade de discos utilizadas, pois a controladora possui a capacidade de dividir o arquivo em vrias partes e distribuir nos discos. Ainda existe a possibilidade da utilizao da tecnologia RAID que fornece, conforme o detalhado na Seo 3.7, uma proteo aos dados tornando esta tecnologia interessante para laboratrios de bioinformtica. Do ponto de vista da capacidade total de armazenamento, quanto mais os sequencia- dores evolurem e se tornarem mais precisos mais sequncias sero geradas, isso signica mais dados biolgicos para serem armazenados. Sendo assim, o sistema de armazena- mento ir necessitar de mais espao para comportar todos os dados gerados, o que mais uma vez demonstra que a utilizao de sistemas de storage no apenas uma soluo 45 Figura 5.5: Trecho de um arquivo FASTA. otimizada, mas tambm provavelmente a nica sada vivel para que a bioinformtica possa continuar crescendo seu reservatrio de dados biolgicos. 5.4 Resultados Obtidos Para cada uma das implementaes foi realizada uma anlise grca. Como explicado anteriormente, essas trs implementaes possuem muitas caractersticas em comum, logo esperado obter resultados muito prximos. Lembrando que um dos objetivo deste traba- lho analisar ganhos, ao utilizar deduplicao em dados provenientes da bioinformtica. 46 5.4.1 ZFS Ambiente de processamento e armazenamento utilizado para o ZFS Os testes realizados no ambiente ZFS foram realizados em um sistema operacional OpenSolaris 10, em uma mquina IBM HS22, processador Xeon quad-core 2,93 Ghz e 48 GB RAM DDR3. O equipamento de storage um DS3300, com duas controladoras, 1 gigabyte de memria cache para cada controladora, 4 portas padro gigabit ethernet e um disco interno Hitachi de 3,5"com 5400 rpm utilizando interface SAS, velocidade nominal de transferncia de 480MBps e cache interno de 16MB. A Figura 5.6 mostra que o ZFS funciona dentro do padro esperado, mostrando que logo depois de a massa de dados aumentar de 10GB para 13GB, a taxa de deduplicao cresce de modo um pouco acentuado e com o aumento dos dados tende a permanecer com taxa de deduplicao em torno de 5%. A tendncia que com o aumento expressivo da massa de dados a taxa de deduplicao cresa de modo quase linear. Figura 5.6: Grco como volume de dados(GB) X Taxa de deduplicao para ZFS. 5.4.2 WAFL Ambiente de processamento e armazenamento utilizado para o WAFL Os testes no ambiente WAFL foram realizados em uma mquina com a verso windows XP, com processador pentium 4 3.0 GHz, 1 GB de RAM DDR2 e um disco 47 interno Hitachi de 3,5"com 5400 rpm utilizando interface USB, velocidade nominal de transferncia de 480MBps cache interno de 16MB. Na gura 5.7 vemos um crescimento praticamente linear. Isso se deve ao fato de que nesse software a simulao agiu quase como um algoritmo post-processing, processando os dados em lotes de 10GB e crescendo sempre a mesma velocidade e tamanho. Mas o mais importante desse grco o fato de ele d tambm uma taxa de deduplicao prxima dos 5% esperados. Figura 5.7: Grco Volume de dados(GB) vs Taxa de Deduplicao para WAFL 5.4.3 Opendedup Ambiente de processamento e armazenamento utilizado para o Opendedup Os testes no ambiente Opendedup foram realizados em um sistema operacional Ubuntu 64-bits 10.10 em uma mquina IBM HS22, com 2 processadores Xeon quad- core 2,93 GHz, 48 GB RAM DDR3. O equipamento de Storage um DS3300, com duas controladoras, 1 gigabyte de memria cache para cada controladora, 4 portas padro gigabit ethernet e um disco interno Hitachi de 3,5"com 5400 rpm utilizando interface SAS, velocidade nominal de transferncia de 480MBps cache interno de 16MB. A Figura 5.8 representa a percentagem de deduplicao utilizando a ferramenta Open- dedup. Pode-se observar que num primeiro momento, ao contrrio do que veremos nas 48 Figuras 5.6 e 5.7, a taxa de deduplicao se mostra alta para uma quantidade pequena de dados. Com a adio de mais dados pode ser notado uma perda da taxa de deduplicao porm, a partir de 20 GB, o grco volta a possuir um comportamento padro e reage exatamente da forma esperada. Figura 5.8: Grco Volume de dados(GB) vs Taxa de deduplicao para Opendedup. 5.4.4 Anlise dos resultados Em todas as situaes os blocos de dados analisados so os mesmos, sempre 4K, mesmo nos softwares onde possvel fazer uma modicao de tamanho de bloco como o caso do Opendedup e do ZFS, como pode ser observado na Tabela 5.1. Esse padro foi mantido para que a anlise contemplasse todos os software no mesmo nvel de granularidade. Nos grcos apresentados nas Figuras 5.6, 5.7 e 5.8 podem ser analisado que a taxa de deduplicao varia em torno dos 5%, que uma taxa relativamente boa, se considerar que o volume total de apenas 50GB de dados. Essa quantidade muito pequena com- parada com a quantidade de dados biolgicos existentes nos bancos de armazenamento da bioinformtica, o que diminuiu sensivelmente a chance de haver blocos de 4K colidindo e aumentando a taxa de deduplicao. Porm, a ideia que sempre que esse volume au- mente expressivamente, a taxa de deduplicao tambm aumente signicativamente uma vez que quanto mais dados maiores as chances de haver um dado duplicado. O grco do opendedup demostra que essa implementao tenta fazer um previso dos possveis blocos deduplicados, por ao passar do tempo como essa previso no se sustenta ele coloca realmente apenas o que deduplicado na memria ram. Isso no ocorre nos 49 algoritmos anteriores que vo construido suas tabelas de deduplicao apenas durante as reais colises dos blocos. Um fato interessante e que deve fazer parte dessa anlise, que grande parte dos dados que so gerados pela bioinformtica so dados de anlise dos genes. Como sugerem algumas pesquisas, h seres vivos que possuem mais de 99% dos genes iguais [AM97]. Pensando que esses dados vo ser utilizados em um storage e que estaro sujeitos a software de deduplicao, o gasto com novas reas de armazenamento diminuiro de maneira rpida. 5.5 Anlise da disponibilidade dos dados e velocidade de acesso aos dados Observando a partir do ponto de vista da deduplicao, a disponibilidade dos dados no sofreu alterao quando comparado os dois ambientes de armazenamento. Obviamente, existe um atraso quando existe a solicitao de leitura e escrita de um dado em um ambiente deduplicado, porm esse atraso foi to pequeno que no pode ser percebido pelo sistema operacional. Essa disponibilidade importante uma vez que certos aplicativos podem ser sensveis a atraso, o que inviabilizaria a utilizao de um software de deduplicao. Com isso ca mais uma vez demonstrado os ganhos que podem ser obtidos utilizando essa tecnologia. Foi comparado a velocidade de leitura e escrita de um dado, tanto usando o disco de forma solitria, quanto ao utilizar o equipamento de Storage. Esse dado importante pois uma vez que vrios usurios tentam escrever e ler dados de um disco simultanea- mente, ao utilizar apenas um disco sem inteligncia, a atividade dos usurios pode car comprometida, em muitos casos gerando possveis inoperncias. No storage foi utilizado RAID 0 com 6 discos para fazer striping dos dados e obter o mximo de espao fsico que os discos podem oferecer. O RAID 0 o nvel que mais otimiza o espao dos discos, como visto no Captulo 3, porm possui a desvantagem de no possuir uma proteo ao dados como encontrado nos outros nveis. A Figura 5.9 mostra o desempenho de leitura em dois casos, onde possui o grco relativo ao uso de um disco solitrio. No caso deste teste a velocidade de transmisso est diretamente ligada a velocidade da porta usb 2.0. Tambm mostra que a utilizao de um equipamento de storage mais que triplica o desempenho de uso de um nico disco, uma vez que a vazo tiplica no mesmo perodo. 50 Figura 5.9: Grco com Vazo de dados(MB/s) X Tempo(segundos) 51 Captulo 6 Concluses Este trabalho demonstrou que a utilizao de algoritmos de deduplicao garante re- sultados positivos a economia de espao de armazenamento de dados. Como observvel pelos testes realizados, os ganhos em aplicar deduplicao em dados advidos da bioin- formtica so promissores, e tendem a aumentar signicativamente na mesma proporo com que os dados so criados. Tambm notrio a capacidade de manter a disponibilidade e o acesso aos dados usando esse tipo de soluo. A disponibilidade praticamente instantnea dos dados em um ambiente de pesquisa ou at mesmo em um laboratrio de produo cientca justica a utilizao de equipamentos de armazenamento inteligentes, que so os storages Portanto, a utilizao de deduplicao um boa alternativa para dados biolgicos principalmente para aqueles que tendem a crescer e a ocupar grandes espaos em disco. Os testes realizados com as trs solues de deduplicao, demonstram que j existem vrias implementaes maduras e estveis quando o assunto deduplicao. Apesar da rea de deduplicao ser bem consolidada na indstria de storage, como pode ser observado nos testes realizados com solues de mercado, como ZFS e WAFL. Ainda preciso haver um amadurecimento desse assunto na rea acadmica e na comuni- dade de software livre, de modo que possam haver implementaes adaptveis a situaes que no sejam exclusivamente industriais ou comerciais, de modo que possam ser cada vez mais teis para as reas de pesquisa de modo geral, como o caso da bioinformtica. O estudo dos tipos de dados biolgicos tambm foi uma importante etapa para enten- der melhor a razo de se utilizar deduplicao para este tipo de massa de dados, j que mostrou ser uma tima soluo para se obter uma economia de espao. Entre os dados biolgicos pode ser destacado a importncia de compreender melhor os arquivos FASTA, que servir de motivador para trabalhos futuros como por exemplo, a criao de novas tcnicas de deduplicao com foco para arquivos com essa estrutura. Durante o desenvolvimento deste trabalho, tambm cou claro que apenas a utilizao do software de deduplicao no o bastante para resolver o problema de armazenar os dados biolgicos de maneira otimizada. A utilizao de equipamentos de storage se mostrou durante a elaborao deste trabalho, a maneira mais vivel e otimizada de se armazenar os dados, provindos dos sequenciamentos gerados pela a rea de bioinformtica. Foram abordadas vrias arquiteturas possveis para os equipamentos de storage para o armazenamento dos dados biolgicos. Aps a anlise das diferentes arquiteturas foi 52 concludo que a melhor opo para um ambiente de laboratrio de bioinformtica a topologia SAN, utilizando o protocolo iSCSI por motivos de custo benefcio e desempenho Combinando a utilizao de equipamentos de storage com algum software de dedupli- cao obtido a melhor soluo para armazenar os dados biolgicos de forma inteligente, e com uma maior economia de espao de armazenamento. 6.1 Trabalhos futuros Aps a concluso deste trabalho, algumas sugestes e propostas para trabalhos futuros foram levantadas e caram registradas neste espao par as futuras consultas. Como cou claro durante os testes realizados blocos pequenos tendem a obter taxas de deduplicao mais signicativas, logo um implementao que consiga trabalhar com blocos menores que 4k podem gerar resultados mais expressivos. Adaptar determinados algoritmos de deduplicao para que sejam otimizados para uso em ambientes de bioinformtica podem solucionar vrios problema de armazenamento de dados presentes nessa rea. Caso adaptao seja implementada, sua integrao com um SGBD enderearia os grandes problemas de armazenamento de dados na bioinformtica. 53 Referncias [AB08] A.Uzunian and E. Birner. Biologia, volume Unico. Harbra, Sao Paulo, SP, 3 edicao edition, 2008. 2, 6, 7 [Alv09] P. A. Alvarez. Pipelines para transcritomas obtidos por sequenciadores de alto desempenho, Dezembro 2009. 9 [AM97] J. M. Amabis and G. R. Martho. Fundamentos da Biologia Moderna. Moderna, Sao Paulo, SP, 2 edicao edition, 1997. 2, 3, 4, 11, 50 [AO10] Rucel F Javier Zohar Mann Alexamdre Carvalho Alex Osuna, Eva BAlogh. IBM Storage Data Deduplication Solution. Redbook, Tucson, USA, 1 edio edition, 2010. vii, 31, 32, 33, 34, 36 [Cla03] T. Clark. Designing Storage Area Networks. Addison-Wesley, White Plains, NY, 2003. 1, 15 [DJB09] Larry Freeman Daniel J. Budiansky. Unerstation Data Deduplication. pages 5 7. SNIA, 2009. 2, 35, 41 [Fuj09] Fujitsu. Storage Basics Storage and Management. Fijitsu Siemens Computers GmBh, Munich, Germany, 2009. 17, 18 [Hop07] Michele Hope. Evaluation criteria for data de-dupe. pages 1 2. SNIA, 2007. vii, 30, 31, 33, 36 [Jun05] L. C. Junqueira. Biologia Celular e Molecular. Guanabara Koogan, 2005. 4 [Kam05] P. Kamoun. Bioquimica e Biologia Molecular. Guanabara Koogan, Cambridge, MA, 2005. 5, 6, 7, 8 [Lif06] S. Lifschitz. Algumas Pesquisas em Bancos de Dados e Bioinformtica. 2006. 5, 11 [PGK88] D.A. Patterson, G. Gibson, and R.H. Katz. A case for redundant arrays of inex- pensive disks (RAID). In Proceedings of the 1988 ACM SIGMOD international conference on Management of data, pages 109116. ACM, 1988. 24 [Pre02] W. C. Preston. Using SAN and NAS. OReilly, Sebastopol, CA, 2002. 1, 16, 21 [Shr09] A. Shrivastava. Information Storage and Management. Wiley, Indianapolis, Indiana, 2009. 1, 15, 17 54 [Sil09] T. C. C. Silva. Som-portrait: um mtodo para identicar rna no codicador utilizando mapas auto organizveis, Dezembro 2009. 5 [Sim03] H. Simitci. Storage Network Performance Analysis. Wiley, Indianapolis, Indi- ana, 2003. 16, 19 [Tea09a] Storage Engineering Team. Data Deduplication and its Benets. pages 1 2. Mindteck, 2009. 28, 32 [Tea09b] Storage Engineering Team. Inline Deduplication. pages 1 2. Mindteck, 2009. vii, 34, 35 [TEM09] U. Troppens, R. Erkens, and W. Muller. Storage Networks Explained. Wiley, Indianapolis, Indiana, 2009. vii, 14, 15, 18, 20, 24 [Ver09] M.l Veras. Datacenter Componente Central da Infraestrutura de TI. Brasport, Sao Paulo, SP, 1 edio edition, 2009. 3, 23, 24, 41 55