You are on page 1of 67

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
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

You might also like