Você está na página 1de 7

Sistemas de Armazenamento de Dados

1. Introdução
Embora os avanços tecnológicos tenham permitido a construção de unidades de armaze-
namento com capacidades cada vez maiores, estas ainda estão muito longe de satisfazer
aos requisitos exigidos por muitas aplicações. Algumas áreas da Ciência, como a Fı́sica
de Altas Energias (High Energy Physics - HEP), possuem experimentos que geram uma
massiva quantidade de dados que precisam ser armazenados e, posteriormente, processa-
dos. Infelizmente, o espaço de armazenamento exigido por essas aplicações está a ordens
de grandeza acima daquela provida por unidades de disco ou fita.
Uma abordagem que viabiliza muitas aplicações é distribuir os dados entre vários
dispositivos de armazenamento, aumentando consideravelmente sua capacidade. Sur-
gem então os sistemas de armazenamento (SA) de grande escala, onde aspectos como
segurança, tolerância a falhas e desempenho precisam ser tratados por eles no gerencia-
mento desses dados.
Existem ainda propostas de sistemas de armazenamento que trabalham com uma
escala ainda maior, e que se baseiam na união de muitos SAs de grande escala. Os SAs
de larga escala, assim chamados, são geralmente colocados como serviços de dados em
grades computacionais.

Objetivos
Este trabalho tem o objetivo de mostrar os diferentes tipos de SAs de grande escala, de
forma a identificar os aspectos envolvidos no seu uso. Prentende-se, com isso, viabilizar
o desenvolvimento de aplicações e de soluções para SAs de larga escala.
Os exemplos aqui mostrados são todos retirados de projetos da área do HEP, por
ser este o grande usuário desses sistemas.

Após uma descrição dos tipos de SAs de grande escala (x2), apresenta-se critérios
de classificação de SAs na seção 3. Na seqüência (x4), mostra-se como é feito o
gerenciamento do espaço de nomes dentro dos SAs. Por fim, dedica-se a seção 5 para
identificar aspectos da computação em grade envolvidos no uso de SAs de forma global.
As conclusões finalizam o documento (x6).
2. Tipos de Sistemas de Armazenamento de Grande Escala
Entre as propostas de SAs de grande escala, pode-se identificar 4 tipos básicos [2]:
 Sistemas Raid;
 Caches de Disco Distribuı́das;
 Sistemas de Robóticos de Fita;
 Sistemas de Armazenamento Hierárquicos;

2.1. Sistemas Raid


Sistemas Raid [3] utilizam um ou mais discos com esquemas transparentes de replicação
e tolerância a falhas. Existem diferentes categorias de sistemas Raid, mas elas não serão
aqui apresentadas. O gerenciamento nesses sistemas é centralizado e, portanto, fácil. O
desempenho é a sua principal vantagem, pois além de permitir a transferência paralela
de dados, o acesso em cada unidade de disco é feito de forma aleatória (acesso direto).
Sua desvantagem diz respeito a escalabilidade (em termos de espaço de armazenamento),
sendo portanto pouco utilizado em grandes projetos que coletam dados continuamente.

2.2. Caches de Disco Distribuı́das


Uma segunda abordagem envolve em unir unidades de disco colocadas em nodos dis-
tintos para prover um espaço de armazenamento ainda maior . Esses discos podem ser
únicos ou podem ser sistemas Raid. De qualquer forma, o acesso aos dados continua a ser
feito de forma direta, e normalmente os nodos fazem parte de um pool de máquinas que
estão interconectadas em uma rede rápida. Os dados podem ser replicados internamente
para melhorar o desempenho através de transferências em paralelo ou simplesmente para
atender a requisitos de tolerância a falhas. A escala desses sistemas continua a ser sua
principal desvantagem. Como exemplo, pode-se citar o dCache [4], o SRB e o DRM.
Estes sistemas são chamados de cache pois são normalmente usados em conjunto
com sistemas de fitas para diminuir latências de acesso e melhorar o desempenho.

2.3. Sistemas Robóticos de Fita


Os Sistemas Robóticos de Fita (também conhecidos por Mass Storage Systems - MSS)
são basicamente grandes sistemas compostos por fitas de dados [6]. O gerenciamento
destas se dá através do uso de braços robóticos, o que implica diretamente em latências
de acesso elevadas. Embora a replicação de componentes seja utilizada para aumentar
o paralelismo, o acesso em uma única fita é feito de forma sequencial. Normalmente
os arquivos são unidos em conjuntos (chamados de datasets) para compensar o baixo
desempenho peculiar a esta forma de armazenamento.
Abaixo, apresenta-se alguns dos MSS mais conhecidos utilizados em projetos de
HEP:
 Enstore: localizado no Fermilab, EUA;
 High Performance Storage System - HPSS: no Berkeley Lab, EUA;
 CASTOR: no CERN, Suı́ça;
 Tivoli Storage Manager - TSM: DESY, em Karlsruhe, na Alemanha;

2.4. Sistemas de Armazenamento Hierárquicos


Os SAs Hierárquicos (ou Hierarchical Storage Manager - HSM) são compostos pela
união dos sistemas robóticos de fita (grande capacidade de armazenamento) com as caches
de disco (rápido acesso a dados) [5]. Consegue-se, portanto, amenizar as altas latências de
acesso dos sistemas de fitas usando pools de discos como grandes caches. As aplicações
cliente desses sistemas falam diretamente com a cache, e esta sim faz a comunicação
com um ou mais MSSs. dCache é o sistema mais conhecido e amplamente utilizado nos
experimentos de HEP, suportanto uma grande variedade de MSSs.
É comum também referenciar os MSSs como sendo HSMs, pois normalmente o
sistema robótico de fitas já vem com um conjunto de discos embutido para melhorar o
desempenho (porém a quantidade de cache é menor que aquela provida pelos sistemas de
cache distribuı́dos).

3. Classificação dos Sistemas de Armazenamento


Pode-se classificar os SAs quanto a disponibilidade no acesso aos dados, quanto a per-
sistência, e quanto aos protocolos de transferência suportados [2].

3.1. Persistência de Dados


Com relação à persistência dos dados, classifaca-se em:
 Permanente: uma vez colocados no sistema, os dados se mantêm a menos que
sua remoção seja feita de forma explı́cita. Os MSSs constituem essa classe, e
diz-se que os dados foram arquivados.
 Temporário: o armazenamento dos dados está associado a um prazo. Quando
este expira, os dados podem ser descartados automaticamente para liberar espaço
quando o sistema estiver chegando perto do limite de armazenamento. Nesta ca-
tegoria, encontram-se as caches de disco distribuı́das e os sistemas raid.
3.2. Disponibilidade de Acesso a Dados
Quanto à disponibilidade no acesso aos dados, tem-se que:
 Os dados estão imediatamente disponı́veis. Aparecem aqui os sistemas de acesso
direto aos dados, tais como as caches de disco e os sistemas raid;
 Precisa-se fazer uma reserva antes de utilizar os dados (fitas precisam ser monta-
das, arquivos precisam migrar para discos, etc.). Os MSSs e HSSs fazem parte
dessa classe.
3.3. Protocolos de Transferência
Existem duas formas básicas adotadas pelos sistemas de armazenamento para o acesso a
dados:
 Através de protocolos de transferência de arquivos, tais como FTP e GSIFTP
(GridFTP). É mais utilizado para acesso remoto;
 Por meio de uma API parecida com a do padrão POSIX. Normalmente especı́fica
para cada SA, mas permite que o usuário tenha mais afinidade nas operações de
acesso a dados. É mais utilizado para acesso local pois são operações que exigem
maior interatividade com o usuário. dCap e rfio são exemplos dessa categoria.
A maioria dos diferentes tipos de SAs suporta os dois modos de acesso a dados.

4. Espaço de Nomes
Um aspecto muito importante no gerenciamento dos SAs de grande escala diz respeito ao
catálogo dos dados. Freqüentemente, usuários precisam procurar por arquivos ou datasets
no SA baseado em metadados1 , ou simplesmente o SA deve indexar os dados de tal forma
que o usuário possa navegar de forma organizada.
1
Metadados são informações referentes aos dados que estão armazenados. Como exemplo, pode-se
citar: tamanho de arquivo, horário da última modificação, dono, permissões, origem e etc
Em ambos os casos, trabalha-se em cima de um espaço de nomes (name spaces),
que é a forma como o usuário enxerga o repositório de dados. O Perfectly Normal File
System (PNFS) [7] é uma estrutura de nomes parecida com a de um sistema de arquivos
convencional. Ele foi introduzido junto aos SAs para prover uma visão dos dados de
forma mais amigável.
PNFS obedece ao protocolo NFS2, sendo portanto suportado por uma grande
quantidade de plataformas. Nesse caso, os metadados são mostrados diretamente ao
usuário enquanto este navega na estrutura de diretórios. Entretanto, PNFS não é NFS.
Este último apresenta limitações [7]:
 As operações são sem estado (stateless);
 O desempenho das operações de I/O é considerado lento;
 O número de operações providas pelo NFS é fixo e limitado.
Algumas estratégias simples são utilizadas junto ao PNFS para contornar os problemas
relacionados, ao mesmo tempo que se mantém a compatibilidade com o protocolo NFS2.
Entretanto, elas não serão aqui descritas.
É importante ressaltar que o repositório de dados do MSS é independente do
PNFS, sendo que o usuário pode ainda acessar os dados brutos no MSS. Para o uso em
conjunto, os repositórios são montados em um diretório no espaço de nomes fornecido
pelo PNFS.

5. Grades e Sistemas de Armazenamento


Grades computacionais apresentam-se como uma proposta de sistemas distribuı́dos inte-
ressante para permitir o processamento e análise de uma massiva quantidade de dados.
Entretanto, diversos aspectos precisam ser tratados [2]:
 Os SAs devem prover mecanismos de reserva e agendamento de recursos de ar-
mazenamento;
 Precisa-se tratar a heterogeneidade dos ambientes de SAs;
 Aplicações de grade normalmente precisam acessar dados em múltiplas
instituições e/ou MSSs.
Uma aplicação de grade tı́pica de projetos de HEP precisaria então implementar diferentes
interfaces para ter acesso a cada um dos recursos de armazenamento (Fig.1).
Para tratar os problemas relacionados, foi elaborada uma especificação chamada
de Storage Resource Manager (SRM). SRM [8] padroniza a interface de acesso aos SAs,
de forma que um acesso uniforme a diferentes tipos de SAs pode ser feito. A Fig.2 mostra
como fica a aplicação cliente:
Percebe-se na figura a existência do middleware de grade. De fato, SRMs são
componentes de middleware cuja função é prover alocação dinâmica de espaço e geren-
ciamento de arquivos em componentes de armazenamentos compartilhados na grade [9].
SRMs provêm:
 Acesso uniforme a armazenamento heterogêneo;
 Negociação de protocolo;
 Acesso a tipos de armazenamento temporários e permanentes;
 Reserva avançada de espaço e de arquivos.
Devido a estas caracterı́sticas, SAs de larga escala montados sobre grades adotam
o SRM como meio de acesso aos diferentes tipos de SAs. É comum unir, através de
serviços de grade, os SAs globalmente espalhados, usando-se ainda algum esquema de
replicação de dados. Grades montadas para o processamento de grandes quantidades de
dados armazenados em escala global são chamadas de grades de dados [1].
Figura 1: Aplicação cliente acessando SAs sem uma interface padronizada.

5.1. Tipos de Arquivos e Espaços


Para dar suporte à persistência de dados, SRM considera a existência de 3 tipos de arqui-
vos e espaços [9]:
 Volátil: arquivos voláteis podem ser removidos do sistema para liberar espaço
quando expira seu tempo de vida lifetime;
 Permanente: arquivos permanentes permanecem nos SAs a menos que seja soli-
citada sua remoção de forma explı́cita;
 Durável: arquivos duráveis tem um lifetime e um mecanismo de notificação asso-
ciados a eles, mas sua remoção também só pode ser feita de forma explı́cita.
A tabela abaixo mostra o relação entre os tipos de arquivos e as propriedades
consideradas pelo SRM:
Propriedade Volátil Durável Permanente
Arquivado Não Não Sim
Tempo de vida Sim Sim Não
Auto-apagável Sim Não Não
A Fig.3 mostra como é o relacionamento entre os tipos de arquivos e os tipos de
espaço fornecidos:

5.2. Funções dos SRMs


Pode-se dividir as funções dos SRMs em 5 grupos:
 Funções de gerenciamento de espaço: srmCompactSpace,
SrmReserveSpace, etc;
 Funções para transferência de dados: srmCopy, SrmRemoveFiles, etc;
 Funções de diretórios: srmMv, srmLs, etc;
 Funções para tratamento de permissões: srmSetPermission,
srmCheckPermission, etc;
 Funções de Status: srmStatusOfGetRequest, SrmGetRequestID, etc.
Figura 2: Aplicação cliente acessando SAs através de SRMs.

Figura 3: Relacionamento entre tipos de arquivos e espaços.

5.3. Elementos de Armazenamento


Dentro de alguns projetos de grade do HEP, tais como o LHC Computing Grid, os SAs
precisam satisfazer alguns requisitos para serem utilizados. Eles recebem o nome de
Elementos de Armazenamento (Storage Elements - SE) [6]. Os aspectos a serem tratados
são:
 Precisa existir um protocolo para acesso local dos dados. Normalmente isso é
feito junto com NFS para compreender operações nos name spaces;
 Protocolos para transferência seguros (GsiFtp);
 Os SEs devem prover status (monitoração) das cópias de arquivos e requisições
de transferência;
 Suporte ao SRM para que sejam utilizados no contexto de grades.

5.4. Catalogação
Embora os repositórios de dados nos SAs possuam uma interface de I/O que permite
ao usuário navegar pelo espaço de nomes (normalmente via NFS), serviços de grades
que catalogam os dados globalmente se fazem necessários, pois do contrário o usuário
precisaria procurar pelos datasets em cada elemento de armazenamento. Os serviços de
catálogo de dados podem ser classificados em duas categorias: serviços de localização de
réplicas (Replica Location Services - RLS) e serviços de metadados (Replica Metadada
Services - RMS). Em um procedimento comum de acesso a dados em projetos do HEP,
o usuário lança uma consulta junto ao RMS procurando por arquivos que satisfazem os
metadados informados. O RMS retorna então nomes lógicos de arquivos como resultado.
Estes nomes são usados em uma nova consulta, desta vez junto a um RLS, para saber que
SEs possuem réplicas do arquivo procurado. O usuário então escolhe um ou mais desses
SEs e os contacta diretamente via interface SRM.

6. Conclusões
O estudo sobre SAs de grande escala aqui apresentado serviu como base para a compre-
ensão de sistemas em escala ainda maior, os SAs de larga escala. Assim, torna-se possı́vel
analisar com mais afinidade os problemas inerentes à utilização de difetentes SAs em um
contexto de grade.
Um dos problemas ainda em aberto diz respeito a especificação de serviços de
arquivos para grades que trabalhem com SRMs e RLS em um único serviço [10]: os cha-
mados Gerenciadores de Réplicas (Réplica Management). Este problema será explorado
como tema de dissertação.

Referências
[1] I.Foster and C. Kesselman and S. Tuecke. The Grid: Blueprint for a New Computing
Infrastructure. Morgan Kaufmann, 1999.
[2] D. Petravick and Timur Perelmutov. Storage Resource Managers by CMS, LCG. Pre-
sentation Slides on Twelfth NASA Goddard and Twenty First IEEE Conference on
Mass Storage Systems and Technologies - Spring 2004, Washington DC.
[3] RAID Systems. http://www.usbyte.com/common/raid_systems.htm
[4] P. Fuhrmann, dCache: the commodity cache, proceedings of the Twelfth NASA Goddard
and Twenty First IEEE Conference on Mass Storage Systems and Technologies,
Washington DC 2004.
[5] M. Ernst, P. Fuhrmann, M. Gasthuber, T. Mkrtchyan and C. Waldman. dCache, a distri-
buted data storage caching system. Chep 2001, Beijing.
[6] P. Fuhrmann. The Tivoli Storage Manager in the LHC Grid World. TSM Symposium, Sep
2005, Oxford.
[7] P. Fuhrmann. A Perfectly Normal Namespace for the DESY Open Storage Manager. Conf.
on Computing in High Energy Physics, Berlin, 1997.
[8] J. Gu, A. Sim and A. Shoshani. The Storage Resource Manager Interface Specifica-
tion, version 2.1. http://sdm.lbl.gov/srm/documents/joint.docs/
SRM.spec.v2.1.final.doc
[9] D. Petravick and T. Perelmutov. Utilization of Storage Resource Managers by Compact
Muon Solenoid Large Hadron Collider Experiment. Twelfth NASA Goddard and
Twenty First IEEE Conference on Mass Storage Systems and Technologies. Spring
2004, Washington DC.
[10] A. Shoshani. Data and Storage Management, Data Transport. PPDG Review. Fermilab,
2003.

Você também pode gostar