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.