Sistemas de Arquivos Paralelos Alternativas para a redução do gargalo no acesso ao sistema de arquivos 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 Agenda • • • • Motivação e objetivos Sistemas de arquivos distribuídos Sistemas de arquivos paralelos PVFS2 vs. Ext3 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. 8 7 6 HDD (latência) 4 Rede (banda) 3 Processador (freq.) Processador (banda) 2 1 Tempo 04 20 03 20 02 20 01 20 00 20 99 19 98 19 97 19 96 19 94 19 86 0 19 Evolução HDD (banda) 5 3 Motivação • Os sistemas de arquivos distribuídos (SADs), embora sejam mais populares, sacrificam desempenho para disponibilizar qualidade de serviço, como por exemplo: – – – – Controle de acesso e segurança; Alta disponibilidade; Tolerância a falhas; Transparência no acesso. 4 Objetivos • Diferenciar sistemas de arquivos paralelos e distribuídos; • Descrever em detalhes alguns sistemas de arquivos; • Mostrar alguns testes de desempenho; • Comparar o PVFS2 com o sistema de arquivos local. 5 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; • Preocupação com a qualidade do serviço oferecido. 6 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. 7 Sistemas de Arquivos Distribuídos Alguns exemplos: • • • • NFS; AFS; CODA; SPRITE. 8 Sistemas de Arquivos Paralelos Características: • Alto desempenho no acesso aos dados de forma concorrente, seja no mesmo disco, no mesmo arquivo ou em uma parte dele; • Pouca preocupação quanto à segurança dos dados, disponibilidade dos arquivos e tolerância a falhas dos discos e servidores; • Acesso paralelo aos dados usa biblioteca específica com funções de alto desempenho; • Uso praticamente acadêmico e em pesquisas onde alto desempenho é crítico. 9 Sistemas de Arquivos Paralelos Principais vantagens: • Melhor desempenho no acesso concorrente e simultâneo; • Diminuição da latência; • Aumento da vazão e da escalabilidade. Principais desvantagens: • Aumento da vazão implica em aumento do uso da rede; • Pouca preocupação quanto à segurança dos dados; • Acesso às funções de alto desempenho diminuem transparência no acesso. 10 Sistemas de Arquivos Paralelos Alguns exemplos: • BRIDGE; • PVFS; • PVFS2; • NFSP; • CEFT-PVFS; • GFS. 11 PVFS Características: • Apresentado em 1996; • Desenvolvido para Linux, com código-fonte aberto; • Alto desempenho em espaço de usuário no acesso concorrente e simultâneo aos arquivos; • Acesso transparente para as ferramentas já existentes; • Distribuição física dos dados entre os múltiplos nós. • Pouca segurança nas permissões de acesso; • Não possui tolerância a falhas. 12 PVFS Componentes: • Servidor único de meta-dados; • Múltiplos servidores de dados; • Modos de acesso: – Via API nativa do PVFS (biblioteca); – Via módulo para o núcleo do Linux, que acessa a biblioteca PVFS e proporciona acesso transparente para aplicações já existentes, a um baixo custo de desempenho. 13 PVFS Fluxo dos dados: 1. Cliente procura por informações sobre o arquivo (meta-dados). 2. Sabendo-se onde encontrá-lo, pede o conteúdo do arquivo diretamente ao servidor de dados. 14 PVFS – Desempenho 15 PVFS2 Algumas diferenças com relação ao PVFS1: • • • • • • • • Iniciado em 2003 e foi lançado em 2004; Arquitetura modular; Protocolo de rede modular (BMI); Métodos de armazenamento físico dos dados modular (Trove); Aceita outros algoritmos de distribuição de dados, e não somente round-robin; Permite múltiplos servidores de meta-dados; Pode-se configurar em quais nós armazenar algum arquivo; Suporte a redundância de dados. 16 NFSP Características: • Apresentado em 2002; • Modificação nos servidores PVFS para dar suporte ao protocolo de comunicação do NFSv2 (RFC1094); • Clientes NFS comuns podem acessá-lo de forma transparente; • Distribuição dos dados entre servidores; • Implementação inicial de redundância de dados; • Distribuição da carga entre os servidores de dados ao se utilizar de redundância. 17 NFSP – Desempenho 18 CEFT-PVFS Características: • Apresentado em 2003; • Modificação no PVFS para permitir dividir servidores em dois grupos: primário e secundário; • Replicação dos dados; • Tolerância a falhas; • Distribuição de carga. 19 CEFT-PVFS – Desempenho 20 Nossa Proposta • Mostrar que um SAP pode ser mais eficiente que um sistema de arquivos local, sob mesmas condições, ao acessar muitos dados, de forma concorrente e simultânea. 21 Nossa Estratégia 22 PVFS2 vs. Ext3 – Testes Ambiente: • Rede conectada a 100MBits/s; • Máquinas com configuração homogênea: Athlon 1.2GHz, 768MB de RAM, 16GB de espaço livre em disco IDE Ultra ATA/133, 7200RPM; • Kernel do Linux na versão 2.6.10. 23 PVFS2 vs. Ext3 – Testes Leitura: • Caches dos servidores e cliente limpos; • Leitura de apenas um arquivo de tamanho específico por várias threads; • Cada thread lê uma região distinta, de tamanho fixo, de forma seqüencial. Escrita: • Cada thread gera um arquivo específico, de forma seqüencial, com dados aleatórios; • Todos os arquivos têm o mesmo tamanho. 24 PVFS2 vs. Ext3 – Testes Variáveis: • • • • Tamanho do arquivo: de 1MB a 1GB; Tamanho do bloco de dados: de 1KB a 1MB; Quantidade de threads usadas: de 1 a 32; Velocidade dos discos ajustada através da ferramenta hdparm para variar o modo PIO de 0 a 3; • Escrita com e sem sincronização (flush). 25 Velocidades dos Discos por Modo PIO 40,00 Velocidade Média de Leitura (MB/s) 35,00 30,00 25,00 20,00 15,00 10,00 5,00 0,00 Cliente MetaDados Dados 1 Dados 2 Dados 3 Dados 4 Dados 5 Dados 6 Dados 7 Dados 8 PIO 4 35,50 35,51 24,35 35,57 34,94 35,51 35,53 33,85 35,50 35,47 PIO 3 6,83 6,80 6,83 6,83 6,82 6,81 6,83 6,83 6,84 6,81 PIO 2 6,17 6,16 6,17 6,19 6,18 6,18 6,19 6,18 6,19 6,17 PIO 1 4,14 4,13 4,14 4,14 4,14 4,14 4,15 4,15 4,15 4,14 PIO 0 2,83 2,82 2,83 2,83 2,83 2,83 2,82 2,83 2,83 2,83 Servidores 26 Resultados – Leitura • Tamanho do bloco de leitura não influencia o desempenho de ambos os sistemas. PVFS2 com 8 nós 3 12 2,5 10 1 Thread 2 2 Threads 4 Threads 1,5 8 Threads 16 Threads 1 32 Threads 0,5 Velocidade (MB/s) Velocidade (MB/s) Ext3 1 Thread 8 2 Threads 4 Threads 6 8 Threads 16 Threads 4 32 Threads 2 0 0 1 4 16 64 256 1024 Tamanho do bloco de leitura (KB) 1 4 16 64 256 1024 Tamanho do bloco de leitura (KB) 27 Resultados – Leitura • Tamanho do arquivo não afeta desempenho do Ext3; • Porém afeta desempenho do PVFS2 para arquivos pequenos com mais de 1 thread. PVFS2 com 8 nós 12 2,5 10 4 16 threads Quantidade de Dados Lidos (MB) 1024 512 256 128 64 1024 512 256 128 64 32 16 8 0 4 0 2 2 32 32 threads 0,5 16 32 threads 4 threads 8 threads 8 16 threads 1 6 4 8 threads 2 threads 2 1,5 1 thread 8 1 1 thread 2 threads 4 threads 2 Velocidade (MB/s) 3 1 Velocidade (MB/s) Ext3 Quantidade de Dados Lidos (MB) 28 Resultados – Leitura • Aumentar a quantidade de servidores PVFS2 nos dá: – – – – – Maior velocidade agregada de transferência de dados; Maior quantidade de memória cache; Maior espaço de armazenamento disponibilizado; Suporte a uma quantidade crescente de clientes; Desempenho do PVFS2 superior ao Ext3. 350% 12 300% Ext3 8 PVFS 1 nó 6 PVFS 2 nós PVFS 4 nós 4 PVFS 8 nós Ganho sobre Ext3 Velocidade (MB/s) 10 250% PVFS 1 nó PVFS 2 nós 200% 150% PVFS 4 nós 100% PVFS 8 nós 50% 2 0% -50% 0 1 2 4 8 16 Quantidade de Threads 32 1 2 4 8 16 Quantidade de Threads 32 29 Resultados – Leitura • Sem acesso concorrente, PVFS2 com 2 ou mais servidores é mais rápido que Ext3. 1 thread 9 7 Ext3 6 PVFS 1 nó 5 PVFS 2 nós 4 PVFS 4 nós 3 PVFS 8 nós 2 1 1024 512 256 128 64 32 16 8 4 2 0 1 Velocidade (MB/s) 8 Quantidade de Dados Lidos (MB) 30 Resultados – Leitura • Ao aumentarmos a velocidade dos discos percebemos que: – Desempenho do Ext3 está diretamente ligado ao disco; – Desempenho do PVFS2 não aumenta proporcionalmente. 32 threads 12 10 10 Ext3 8 PVFs 1 nó 6 PVFS 2 nós PVFS 4 nós 4 PVFS 8 nós 2 0 0,00 2,00 4,00 6,00 Velocidade dos Discos (MB/s) 8,00 Velocidade Obtida (MB/s) Velocidade Obtida (MB/s) 1 thread 12 Ext3 8 PVFs 1 nó 6 PVFS 2 nós PVFS 4 nós 4 PVFS 8 nós 2 0 0,00 2,00 4,00 6,00 8,00 Velocidade dos Discos (MB/s) 31 Resultados – Escrita • • • • Tamanho do bloco de escrita não influencia no resultado; Tamanho do arquivo afeta desempenho do Ext3; PVFS2 não é afetado pelo cache por não possuí-lo; Forçar escrita usando flush não mudou resultado. Ext3 PVFS2 com 8 nós 12 25 10 6 Quantidade de Dados Escritos (MB) 1024 512 256 128 64 32 16 8 1024 512 256 128 64 32 16 0 8 0 4 2 2 5 4 4 2 32 threads 1 thread 2 threads 4 threads 8 threads 16 threads 32 threads 8 1 10 8 threads 16 threads Velocidade (MB/s) 15 1 thread 2 threads 4 threads 1 Velocidade (MB/s) 20 Quantidade de Dados Escritos (MB) 32 Resultados – Escrita • Ao aumentarmos a quantidade de servidores e a concorrência, escrita no PVFS2 e no Ext3 se comporta como a leitura. 350% 12 300% Ext3 8 PVFS 1 nó 6 PVFS 2 nós PVFS 4 nós 4 PVFS 8 nós Ganho sobre Ext3 Velocidade (MB/s) 10 250% PVFS 1 nó 200% PVFS 2 nós 150% PVFS 4 nós 100% PVFS 8 nós 50% 2 0% 0 -50% 1 2 4 8 16 Quantidade de Threads 32 1 2 4 8 16 32 Quantidade de Threads 33 Resultados – Escrita • Sem acesso concorrente, o PVFS2 com 2 ou mais servidores ganha do Ext3 também na escrita, para uma quantidade suficiente de dados. 20 18 14 Ext3 12 PVFS 1 nó 10 PVFS 2 nós 8 PVFS 4 nós 6 PVFS 8 nós 4 2 1024 512 256 128 64 32 16 8 4 2 0 1 Velocidade (MB/s) 16 Quantidade de Dados Escritos (MB) 34 Resultados – Escrita • Ao aumentarmos a velocidade dos discos, temos um resultado similar aos testes de leitura. 32 threads 12 10 10 Ext3 8 PVFs 1 nó 6 PVFS 2 nós PVFS 4 nós 4 PVFS 8 nós 2 0 0,00 2,00 4,00 6,00 Velocidade dos Discos (MB/s) 8,00 Velocidade Obtida (MB/s) Velocidade Obtida (MB/s) 1 thread 12 8 Ext3 PVFs 1 nó 6 PVFS 2 nós PVFS 4 nós PVFS 8 nós 4 2 0 0,00 2,00 4,00 6,00 8,00 Velocidade dos Discos (MB/s) 35 PVFS2 vs. Ext3 – Conclusões Para PVFS2, rede rápida é mais importante que discos rápidos Leitura com 32 threads 350% 300% 10 Ext3 8 PVFs 1 nó 6 PVFS 2 nós PVFS 4 nós 4 PVFS 8 nós Ganho sobre Ext3 Velocidade Obtida (MB/s) 12 250% PVFs 1 nó 200% PVFS 2 nós 150% PVFS 4 nós 100% PVFS 8 nós 50% 2 0 0,00 0% 2,00 4,00 6,00 Velocidade dos Discos (MB/s) 8,00 -50% 0,00 2,00 4,00 6,00 8,00 Velocidade dos Discos (MB/s) 36 PVFS2 vs. Ext3 – Conclusões PVFS2 não aproveita velocidade agregada de forma linear 32 threads 100% 80% PIO 0 PIO 1 60% PIO 2 PIO 3 40% 20% 0% Ext3 PVFs 1 nó PVFS 2 nós PVFS 4 nós PVFS 8 nós Aproveitamento da Banda dos Discos Aproveitamento da Banda dos Discos 1 thread 120% 120% 100% 80% PIO 0 PIO 1 60% PIO 2 PIO 3 40% 20% 0% Ext3 PVFs 1 nó PVFS 2 nós PVFS 4 nós PVFS 8 nós PIO 0 101% 88% 73% 55% 34% PIO 0 94% 91% 89% 78% 49% PIO 1 102% 82% 65% 48% 24% PIO 1 95% 87% 86% 63% 34% PIO 2 102% 72% 56% 36% 17% PIO 2 96% 78% 76% 44% 23% PIO 3 102% 71% 52% 33% 15% PIO 3 95% 75% 69% 40% 20% 37 PVFS2 vs. Ext3 – Conclusões PVFS2 utiliza somente 92% da banda da rede (média 11,5MB/s) • Se disco é 8% mais lento que a rede, PVFS2 e Ext3 “empatariam”. PVFS2 é mais rápido que Ext3 em rede Ethernet 1000Base-T? • Se discos possuem velocidade média de 28MB/s: – – – – – • Similar aos testes com modo PIO 0; PVFS2 com 8 servidores; 32 threads clientes; Aproveitamento do PVFS2 seria de ~49%; Resultado: 28 x 8 x 49% = 109MB/s. Se discos possuem velocidade média de 68MB/s: – – – – – Similar aos testes com modo PIO 3; Usando PVFS2 com 8 servidores; 32 threads clientes; Aproveitamento do PVFS2 seria de ~20%; Resultado: 68 x 8 x 20% = 109MB/s. 38 Trabalhos Futuros • Testes comparativos no acesso e manipulação de arquivos grandes entre PVFS2 e Ext3 em uma rede Gigabit; • Analisar, discutir e explicar os resultados encontrados; • Preparar um artigo com os resultados para o Simpósio Brasileiro de Redes de Computadores (SBRC) de 2006. 39 Obrigado a todos! Questões? 40