Proposta de infra-estrutura para Servidores Web baseado em Data

Transcrição

Proposta de infra-estrutura para Servidores Web baseado em Data
Proposta de infra-estrutura para Servidores Web baseado
em Data Grids
Lucas Graebin
Instituto de Ciências Exatas e Tecnológicas - Centro Universitário Feevale
Cep 93.352-000 - Novo Hamburgo - RS - Brasil
[email protected]
Abstract. This article will present the software infrastructure proposal for the
Logistical Networking Project (LoCI Laboratory, University of Tennessee),
which intends to give to support to the storage and the transmission of data,
analyzing the viability of implementation in Web Servers with intention to
consider a solution of low cost based on Free Software.
Resumo. Este artigo apresentará a infra-estrutura de software proposta pelo
Logistical Networking Project (LoCI Laboratory, University of Tennessee), a
qual pretende dar apoio ao armazenamento e a transmissão de dados,
analisando a viabilidade de implementação em servidores de páginas Web
com o intuito de propor uma solução de baixo custo baseado em Software
Livre.
1. Introdução
O crescimento da World Wide Web possibilitou que usuários de interesses comuns
(artísticos, musicais etc.) compartilhassem uma larga escala de informações entre si. Os
protocolos FTP e HTTP são os mecanismos mais comuns para a distribuição destes
dados. Contratar um serviço de hospedagem ou eleger um microcomputador pessoal
(com link de alta velocidade), são possíveis soluções para disponibilizar tais
informações, entretanto, muitas vezes existe a necessidade de compartilhar arquivos
multimídia (imagem, vídeo e áudio) de alta resolução, necessitando assim de um
considerável espaço de armazenamento em disco. Terceirizar a hospedagem desses
dados pode se tornar uma opção de alto custo para a finalidade desejada, enquanto que
aderir a uma alternativa doméstica, apesar de parecer mais econômico, não garantiria a
disponibilidade do serviço em casos de falhas de software ou hardware.
Neste contexto, o artigo irá propor um ambiente para hospedagem de Web Sites
cujo método de armazenamento das informações basear-se-á em Data Grids, usufruindo
dessa forma de espaços ociosos em disco rígido e dados distribuídos geograficamente
com o intuito de garantir a alta disponibilidade das informações.
2. Visão Geral sobre Grid
Uma configuração de Grid Computing pode ser entendida como uma plataforma
heterogênea de computadores geograficamente dispersos, onde os usuários fazem acesso
ao ambiente através de uma interface única. De uma outra maneira, pode-se dizer que os
ambientes em grade provêem uma tecnologia de acesso comum: os serviços e recursos
geograficamente distribuídos em organizações participantes da configuração, que
permitem o compartilhamento das facilidades (serviços e recursos). A diferença
fundamental entre uma configuração de Grid Computing e uma outra caracterizada
como ambiente distribuído convencional é referente a grande quantidade de serviços e
recursos que os ambientes de Grid Computing focam no seu compartilhamento [Dantas
2005].
Um ambiente de Grid Computing é caracterizado pela forma virtual e amigável
que dispõem os recursos e serviços. Assim, são objetivos da tecnologia o acesso, o
compartilhamento, a seleção e a agregação de configurações (tais como
supercomputadores, clusters, sistemas de armazenamento e fontes de dados) visando um
alto desempenho das tarefas submetidas ao ambiente. Existem problemas ou subáreas
com características de demandas computacionais particulares. Segundo [Stockinger
2006], é possível dividir os campos de pesquisa em Grid Computing sob duas áreas:
Computacional Grid e Data Grid. No primeiro caso há, de certa forma, uma extensão
natural da tecnologia de cluster, onde grandes tarefas devem ser computadas em
recursos computacionais distribuídos, enquanto que uma Data Grid trata do
gerenciamento, localização e replicação eficientes de quantidades bastante grandes de
dados.
Os serviços de Data Grids são usados para prover acesso seguro aos dados
armazenados remotamente em ambientes heterogêneos, sem que os usuários precisem se
preocupar se estão acessando dados locais ou remotos. Uma Data Grid permite que os
arquivos sejam distribuídos geograficamente, proporcionando ao usuário mecanismos
transparentes para localização e acesso destes dados. Cada nó da Data Grid dispõe de
servidores e recursos de armazenamento. Estes podem ser de diferentes tecnologias e
características de armazenamento, mas estas especificidades internas não devem ser
repassadas ao usuário remoto, que deve acessar os dados de forma translúcida [Taurion
2004].
3. Network Storage Stack
O Network Storage Stack é um conceito que possibilita a implementação do Logistical
Networking. O Logistical Networking possui uma abordagem em que o armazenamento
pode ser usado para aumentar a transmissão de dados como parte de um recurso
unificado de uma estrutura de rede. O Network Storage Stack tem como principal foco
criar uma camada de abstração para que o recurso de armazenamento em rede faça parte
da WAN (Wide Area Network) de forma eficiente, flexível, compartilhada e escalável. A
Figura 1 esboça as camadas do Network Storage Stack.
Um aspecto importante da abordagem em camadas, que é expressa na Figura 1, é
que cada camada abstrai as camadas inferiores, ao mesmo tempo em que expõe seus
recursos às camadas superiores. Este artigo apresentará as três camadas centrais do
Network Storage Stack.
Aplicativo Cliente
Logistical File System
LoRS
L-Bone
ExNode
IBP
Camada de Acesso Local
Camada Física
Figura 1. Network Storage Stack
3.1 IBP
O IBP (Internet Backplane Protocol) é a camada mais baixa da Network Storage Stack e
foi projetado para ser a mínima abstração do serviço de armazenamento necessário pelo
Logistical Networking. O IBP é um software de servidor (IBP Server) do tipo daemon e
uma biblioteca cliente que permite que os donos do conteúdo a serem armazenados
possam colocá-los na rede. O IBP permite a criação de uma estrutura escalável de
armazenamento remoto, com alto desempenho de transferência através da agregação de
recursos físicos distribuídos e a paralelização de ambos os processos [Plank 2002].
3.2 L-Bone
O L-Bone (Logistical Backbone) é uma aplicação que permite a descoberta de recursos
na grade. Baseado no sistema de diretórios LDAP, ele é responsável por armazenar as
características dos nodos IBPs registrados, tais como, espaço disponível para
armazenamento e localização geográfica dos mesmos. O L-Bone permite que os
usuários procurem por depósitos disponíveis em determinada localização geográfica
(país, cidade, estado etc) que possuam espaço para realização de upload, além de
informar a política de time-limit [Gelas 2004].
3.3 ExNode
O ExNode (External Node) é uma estrutura de dados para aglutinação similar ao inode
do Unix. Ele contém os metadados necessários para gerenciar os arquivos disponíveis
nos nodos de IBPs, informar quais depósitos abrigam fragmentos ou réplicas do arquivo,
além da data de expiração dos mesmos. Visto que o inode agrega blocos de disco em
volume para compor um arquivo, o ExNode agrega bytes para compor uma entidade
lógica, podendo ser de qualquer tamanho. A Figura 2 apresenta as diferentes formas de
armazenamento de um determinado arquivo de 1000 bytes.
Figura 2. Exemplos de armazenamentos no IBP Server e suas diferentes
estratégicas de replicação.
No primeiro exemplo, todo o arquivo é armazenado no IBP Server; no segundo
exemplo, têm-se duas réplicas do arquivo, uma no depósito B e outra no depósito C; no
terceiro exemplo, há duas réplicas do arquivo, sendo que na primeira réplica ele é
dividido em dois segmentos e armazenado em depósitos distintos (A e D), enquanto que
a segunda réplica é segmentada em três partes e armazenada respectivamente nos
depósitos B, C e D.
O ExNode, além de permitir a replicação dos dados, não restringe o número de
réplicas, não necessitando também serem cópias completas dos dados, além de poderem
ser encaminhados para outros clientes. O ponto chave sobre o design do ExNode é que
ele permite criar abstrações de armazenamento com fortes propriedades, como um
arquivo em rede, que pode ser adaptado ao esquema de comandos sobre o modelo IBP
de armazenamento de uma maneira totalmente consistente com a abordagem de
exposição de recursos. O ExNode é expresso concretamente como uma codificação de
recursos de armazenamento e associado a metadados em XML. Esta serialização pode
ser passada de cliente a cliente, permitindo um alto grau de flexibilidade e
comportamento do armazenamento em rede. O uso do ExNode por várias aplicações
provê interoperabilidade similar a ser anexado ao mesmo sistema de arquivos de rede
[Atchley 2002].
3.4 Logistical Runtime System
Embora o L-Bone torne simples ao usuário encontrar depósitos, o usuário ainda tem que
manualmente requerer alocações, armazenar dados, criar o ExNode, anexar o
mapeamento ao ExNode e inserir as alocações IBP e os metadados nos mapeamentos
[Atchley 2002]. Com o objetivo de facilitar este processo, foi desenvolvida a próxima
camada na Network Storage Stack, o LoRS (Logistical Runtime System), que é uma API
em C e uma interface em linha de comando disponíveis para Linux, Unix, Win32 e
MacOS, que automatiza a busca por depósitos IBP e da criação dos exNodes [Plank
2002].
4. Mantendo a Integridade dos Dados
Não há como garantir que os arquivos distribuídos entre os diversos depósitos não sejam
perdidos ou estejam inacessíveis devido à falha em algum nodo. A fim de assegurar a
integridade dos dados, o LoRS possui um script escrito em Perl denominado Warmer. O
termo integridade diz respeito à disponibilidade de determinado fragmento de arquivo
distribuído entre na rede. Caso determinado bloco de dados esteja em falta, pode-se
afirmar que ele esta corrompido. Entretanto, esta afirmação não esta necessariamente
correta, pois o fragmento em falta pode existir em um nodo que não esta naquele
momento operante.
O processo Warmer é responsável por percorrer todos os blocos de arquivos
existentes nos ExNode, verificar suas disponibilidades (caso não esteja, o mesmo é
removido do ExNode) e analisar se o número de replicados dos fragmentos confere em
relação a política do ambiente, caso contrário, é de responsabilidade do Warmer realizar
outra cópia do bloco para outro nodo ativo.
5. Contribuições Esperadas
Esta pesquisa contribuirá com a implementação de uma estrutura de baixo custo baseado
em Data Grids para hospedagem de Web Sites, do qual múltiplos usuários poderão
usufruir recursos computacionais, neste caso sendo espaço em disco, distribuídos de
forma segura, coordenada, eficiente e transparente. Para alcançar este objetivo, são
combinados todos os componentes básicos do Logistical Networking - Internet
Backplane Protocol (IBP), o ExNode, o Logistical Runtime System (LoRS) e o
Logistical Backbone (L-Bone) integrando-os ao servidor Apache HTTP Server.
Para se obter este resultado, todos os arquivos ExNode deverão estar distribuídos
nos servidores Web envolvidos. A cada requisição de página realizada pelo cliente, um
script CGI fará uso das APIs do LoRS [Mitchell 2003] para a recuperação dos arquivos
distribuídos nos depósitos IBPs. Após a obtenção dos dados pelo servidor, estes serão
devolvidos ao cliente através do protocolo HTTP.
Com esta integração, pretende-se chegar a um ambiente escalável, tolerante a
falhas e flexível, onde novos nodos poderão ser adicionados ao ambiente à medida que a
carga de trabalho cresça.
6. Trabalhos Futuros
Devido ao fato de todos os arquivos solicitados pelo cliente, terem que ser recuperados
primeiramente pelo servidor antes de serem emitidos ao solicitante, uma extensão desta
pesquisa pode-se dar com o desenvolvimento de um serviço de cache para os arquivos
mais requisitados. Estes arquivos residiriam no servidor de páginas por determinado
tempo, necessitando dessa forma de certo espaço em disco, dependendo das políticas de
armazenamento adotadas. Informações como o tempo de expiração de cada arquivo e se
o mesmo poderá residir em cache, poderiam ser recuperadas pelas informações contidas
no cabeçalho das páginas HTML (meta tags).
7. Considerações Finais
Analisar a adoção de uma tecnologia implica em avaliar o seu real valor para a
organização, qualquer que sejam os modelos de valorização, como ROI (Return on
Investment), ROA (Return on Assets), valor da oportunidade, entre outros.
Avaliando o valor da implementação de Grades Computacionais para uma
organização, pode-se considerar como exemplo alguns elementos de valor, que podem
ser de maior ou menor importância para cada caso, como a criação de uma infraestrutura flexível e escalável, com melhor utilização dos recursos computacionais. Com
isso, o melhor aproveitamento da ociosidade dos recursos computacionais dispersos pela
organização pode trazer consideráveis retornos financeiros. Aproveitar esta imensa
capacidade ociosa permite implementar novas aplicações, sem aumento dos gastos com
hardware.
Com o objetivo de usufruir os melhores recursos de uma Grade Computacional,
este artigo propôs a criação de um serviço para hospedagem de páginas de baixo custo
com o uso do Logistical Network Stack como infra-estrutura para Data Grid. Tal
integração permitirá que os arquivos solicitados através do protocolo HTTP sejam
resgatados dos nodos IBPs dispersos pela rede.
Esta estrutura beneficiará entidades que não dispõem de orçamento para o
investimento de estrutura para hospedagem de páginas, usufruindo dessa forma de
recursos de armazenamento ociosos em servidores e computadores desktop, garantindo a
disponibilidade do serviço, uma vez que todos os arquivos serão distribuídos entre os
depósitos.
Referências
Dantas, Mario (2005). Computação Distribuída de Alto Desempenho: Redes Clusters e
Grids Computacionais. Axcel.
Taurion, Cezar (2004). Grid computing: um novo paradigma computacional. Brasport.
Stockinger, Heinz. Distributed database management systems and the data grid.
Disponível em: http://storageconference.org/2001/2001CD/01stocki.pdf. Acessado
em 02/04/2006.
Plank, James S.; Atchley, Scott; Ding, Ying; Beck, Micah. Algorithms for High
Performance, Wide-area Distributed File Downloads, Parallel Processing Letters,
(13)2, June, 2003, pp.207-224.
Gelas,
Jean-Patrick
(2004).
LoDN
in
a
Nutshell.
Disponível
http://loci.cs.utk.edu/lodn/files/lodn-nutshell.pdf. Acessado em 02/04/2006.
em
Plank, James S.; Beck, Micah. The Logistical Computing Stack - A Design For WideArea, Scalable, Uninterruptible Computing, DNS: 2002 Dependable Systems and
Networks, Workshop on Scalable, Uninterruptible Computing, Bethesda, Maryland,
USA, June, 2002.
Atchley, Scott; Soltesz, Stephen; Plank, James S.; Beck, Micah e Moore, Terry. Faulttolerance in the network storage stack. IEEE Workshop on Fault-Tolerant Parallel
and Distributed Systems, Ft. Lauderdale, FL, USA, April, 2002.
Atchley, Scott; Beck, Micah; Millar, Jeremy; Moore, Terry; Plank, Jim e Soltesz,
Stephen. The Logistical Networking Testbed, UT-CS-02-496, University of
Tennessee Departement of Computer Science, December, 2002.
Mitchell, M. Jenée; Atchley, Scott (2003). LoRS Visual Tools v 0.82 User Guide.
Disponível em http://loci.cs.utk.edu/lodn/files/lodn-nutshell.pdf. Acessado em
02/04/2006.