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
Download

Sistemas de Arquivos Paralelos