Sistemas de Arquivos Paralelos Roberto Pires de Carvalho carvalho arroba ime ponto usp ponto br Departamento de Ciência da Computação Instituto de Matemática e Estatística Universidade de São Paulo Conteúdo • • • • • • Motivação Objetivos SADs SAPs Trabalhos Futuros Referências 2 Motivação • Velocidades de acesso e transmissão de dados a partir de discos não evoluíram tanto quanto rede, processador e memória. 3 Motivação 4 Motivação • Sistemas de arquivos distribuídos não conseguem atender a muitos acessos simultâneos aos mesmos arquivos devido a: – Preocupação com segurança; – Alta disponibilidade e tolerância a falhas; – Redundância e sincronização. 5 Objetivos • Estudo dos sistemas de arquivos distribuídos (SADs) que mais inovaram na área; • Estudo de sistemas de arquivos paralelos (SAPs) mais interessantes; • Comparativo entre sistemas de arquivos comuns, distribuídos e paralelos, quanto ao desempenho e características; • Tentativa de melhoria de algum SAP (provavelmente PVFS2) para tratamento de arquivos grandes. 6 Sistemas de Arquivos Distribuídos Características: • Espaço de nomes único para o usuário, mesmo que distribuído entre os servidores; • Visão do sistema de arquivos como uma unidade (usuário não necessita saber em qual servidor o arquivo pedido está); • Preocupação com a qualidade do serviço oferecido (isto é, evitar falhas e deixar o serviço sempre funcionando). 7 Sistemas de Arquivos Distribuídos Principais vantagens: • Facilidade na manutenção e administração; • Simplicidade no uso; • Visão única entre os clientes. Principais desvantagens: • Não são muito eficientes no acesso concorrente ou simultâneo; • Nem sempre são escaláveis. 8 Sistemas de Arquivos Distribuídos Nossa abordagem: • NFSv3; • NFSv4; • AFS; • CODA; • SPRITE. 9 NFSv3 Características: • Protocolo público desde 1985; • Não se guarda estado das transações realizadas; • Os clientes não se preocupam com quedas. Basta pedir os dados novamente, até que o servidor responda; • Pouco uso de memória (por não ter que guardar estados dos clientes); • Weak Cache Consistency: servidor informa o cliente se algum outro cliente alterou o arquivo que está no seu cache; • Delayed-Write: somente arquivos que não foram alterados por algum tempo são enviados ao servidor. Evita enviar arquivos que serão apagados em breve, como os temporários; • Muito utilizado em redes Unix. 10 NFSv3 Problemas: • Por não manter estado, não era possível controlar locks sem o auxílio de outras aplicações; • Também por não manter estado, não se pode controlar o acesso concorrente e nem garantir sua consistência (atualização de caches muito demorada); • Segurança frágil: baseada em gid e uid, as verificações são simples, e os dados não trafegam criptografados. 11 NFSv4 Características: • Mantém estado das transações juntamente com os clientes, ajudando-o a decidir se usa um cache mais agressivo dos dados ou não; • Controle de locks baseado em leases; • Delegação de arquivos: o cliente altera os arquivos no seu cache, e só manda para o servidor quando não precisar mais, ou quando for requisitado; • Uso de TCP na comunicação entre clientes e servidor, não mais UDP; • Segurança melhorada, utilizando-se dos protocolos Kerberos 5 e SPKM3. Autenticação baseada em texto, e não mais numérica (uid e gid). 12 AFS – ANDREW File System Características: • Iniciado em 1983; • Trouxe o conceito de callback: é uma garantia de que o cliente está com a versão mais nova do arquivo no seu cache. Ele é quebrado quando algum cliente altera esse arquivo; • Semântica de sessão: só se percebe as alterações de outro cliente no mesmo arquivo quando aquele o fechar; • Segurança baseada em listas de controle de acesso (ACL). 13 AFS – ANDREW File System Princípios durante seu desenvolvimento: • Se o cliente pode realizar o trabalho, então o servidor não o fará; • Sempre que possível deve-se diminuir a carga dos servidores e da rede; • Explorar os tipos de acesso aos arquivos. Por exemplo, arquivos temporários ficam na máquina local, arquivos executáveis podem ser replicados (para distribuição da carga); • Não centralizar informações ou serviços que podem ser replicados; • Segurança: não confiar em muitas entidades; • Agrupar o trabalho quando possível. Uma leitura de 50Kbyte é melhor que 50 leituras de 1Kbyte. 14 CODA Características: • Iniciado em 1987 a partir do AFS; • Manter alta disponibilidade ao extremo: tentar deixar seus arquivos disponíveis mesmo não estando conectado à rede; • Replicação dos dados baseado em VSGs (Volume Storage Groups). 15 CODA Modos de funcionamento: • Hoarding: cliente conectado à rede, mas sempre preparado para uma desconexão; • Emulação: cliente desconectado. O sistema de arquivos é emulado por um processo que se utiliza dos arquivos mais usados (ou selecionados anteriormente) armazenados localmente; • Reintegração: O cliente volta à rede. Seus arquivos locais são então sincronizados com os servidores. 16 SPRITE Características: • Sistema operacional iniciado em 1984; • Criado para que várias máquinas funcionassem como uma só; • Desenhado para ser transparentemente distribuído entre os integrantes da rede; • Possibilita migração de processos entre máquinas; • Possibilidade da rede ser multi-plataforma; • Baixa segurança, pois todos clientes são considerados confiáveis. 17 SPRITE – Sistema de Arquivos Características: • Uso agressivo de memória para cache de arquivos; • Evita fazer cache de arquivos executáveis que estão sendo executados, por já estarem na memória; • Uso de delayed-writes como política de escrita; • Permite acesso concorrente com escrita: – Quando o servidor detecta, ele pede aos clientes que lhe enviem seus caches sujos (se houverem) e avisa para que utilizem diretamente o servidor para acessar tal arquivo. 18 SPRITE – Sistema de Arquivos Características: • Recuperação distribuída de estado: Após uma queda de servidores, os clientes enviam o estado dos arquivos que eles têm aberto para os servidores; • Sistema de arquivos local baseado em log aumenta a consistência dos dados em caso de queda. 19 Sistemas de Arquivos Paralelos Características: • Preocupação com o alto desempenho no acesso aos dados de forma concorrente (seja no mesmo disco, arquivo ou pedaço do arquivo); • Baixa segurança, disponibilidade, tolerância a falhas, transparências de uso e acesso; • Uso praticamente acadêmico e em pesquisas onde alto desempenho é crítico. 20 Sistemas de Arquivos Paralelos Principais vantagens: • Melhora o desempenho no acesso concorrente e simultâneo; • Diminui a latência; • Aumenta a vazão; • Altamente escalável. 21 Sistemas de Arquivos Paralelos Principais desvantagens: • Sincronização das cópias ou cache (se houver); • Aumento da vazão implica em aumento do uso da rede; • Transparência no acesso paralelo não é fácil de se implementar. 22 Sistemas de Arquivos Paralelos Nossa abordagem: • BRIDGE; • PVFS; • NFSP. 23 BRIDGE Características: • Um dos primeiros sistemas de arquivos paralelos (1988); • Mantém uma estrutura lógica dos arquivos, enquanto que os blocos são armazenados em diferentes nós físicos (Interleaved Files), onde a localização de cada bloco pode ser definida por funções matemáticas. 24 BRIDGE 25 PVFS Características: • Alto desempenho em espaço de usuário no acesso concorrente e simultâneo aos seus arquivos; • Acesso transparente para as ferramentas já existentes; • Distribuição física dos dados entre os múltiplos nós. Problemas: • Nenhuma segurança nas permissões de acesso; • Não possui tolerância a falhas. 26 PVFS Componentes: • Servidor único de meta-dados; • Múltiplos servidores de dados; • Acesso: – Via API nativa do PVFS (biblioteca); – Via módulo para o núcleo do Linux, dando acesso transparente para aplicações já existentes, a um baixo custo de desempenho. 27 PVFS Fluxo dos dados: 1. Cliente procura por informações sobre o arquivo (meta-dados). 2. Sabendo onde encontrá-lo, pede o conteúdo do arquivo diretamente ao servidor de dados. 28 PVFS2 Algumas características a serem incorporadas: • Múltiplos servidores de meta-dados; • Suporte modular para múltiplos protocolos de rede; • Replicação entre servidores de dados, usando esquemas RAID (PVFS v1 funciona como RAID-0); • Auto-gerenciamento mais robusto; • Entre outros. 29 NFSP Características: • • • • • Protocolo de comunicação do NFSv2 (RFC1094); Transparente para clientes NFS; Distribuição dos dados entre servidores como no PVFS; Alto desempenho; Implementação inicial de redundância de dados. Para isso usase um viod (virtual iod) no lugar do iod (daemon de dados) do PVFS. Ele representa vários iods que possuem os mesmos dados (cópia); • Distribuição da carga dos servidores de dados ao se utilizar de redundância. 30 Desempenho Nosso escopo: • Testes com PVFS e NFSP isoladamente; • Análise de desempenho em leitura e escrita; • Variar número de clientes e servidores de dados para comparar desempenho. 31 Desempenho - PVFS Agrupado por leitura e escrita: 32 Desempenho - PVFS Agrupado por quantidade de dados: 33 Desempenho - PVFS Conclusões: • Quando a largura máxima da banda é atingida o desempenho do sistema passa a se degradar, mostrando que a rede não é o único limitante; • Para a escrita a degradação é mais forte quando a quantidade de informações passa do tamanho do cache, pois o servidor acaba sendo obrigado a enviar os dados para o disco; • Na leitura percebe-se que ao se pedir poucos dados (< total de RAM), o uso da banda não é bem aproveitado como quando se pede muitos dados. Isso ocorre pois o tempo de transmissão dos dados é menor (pois são poucos), diminuindo o tempo de pedidos de requisições, mas aumentando a quantidade delas; • O desempenho aumenta juntamente com o número de iods. Isto mostra que o sistema é escalável, bastando adicionar iods para dar conta da demanda. 34 Desempenho - NFSP Agrupado por leitura e escrita: 35 Desempenho - NFSP Agrupado por quantidade de dados: 36 Desempenho - NFSP Conclusões: • Para leitura de poucos dados, se mostrou melhor que o PVFS (onde a curva não cresce tão rápido), pois os dados estão quase que todos no cache do servidor (implementação NFS); • Mas o uso da banda vai caindo conforme se aumenta o número de servidores. O pico para 4 é 44Mb/s (90%), para 8 é 76Mb/s (77%) e para 16 servidores é 78Mb/s (40%). Isso pode ser explicado pela saturação do processador do servidor de metadados; 37 NFSP - Desempenho Conclusões: • A banda para escrita não passa de 10Mb/s (81% da banda do servidor de meta-dados). Como nesse caso é necessário passar todos os pedidos por esse servidor, esse comportamento pode ser considerado normal; • Para um número suficiente de clientes, dobrar o número de servidores de dados dobra o uso da banda, mostrando que a carga é bem distribuída. 38 Trabalhos Futuros • Testes comparativos no acesso e manipulação de arquivos grandes entre EXT2, NFS, NFSP, PVFS e PVFS2; • Análise dos resultados e busca de formas de se melhorar o desempenho; • Implementação de supostas melhorias para este caso em algum dos SAPs estudados (provavelmente PVFS); • Análise dos resultados e documentação. 39 Referências • • • • • • NFS: http://nfs.sourceforge.net CODA: http://www.coda.cs.cmu.edu/doc/html/index.html SPRITE: http://www.cs.berkeley.edu/projects/sprite PVFS: http://www.pvfs.org/ NFSP: http://www-id.imag.fr/Laboratoire/Membres/Lombard_Pierre/nfsp Testes PVFS e NFSP: http://wwwid.imag.fr/Laboratoire/Membres/Lobry_Olivier/PVFS_NFSP/PVFS_NFSP.ht ml 40