[MASOCH-L] Performance em ReiserFS

João Carlos Mendes Luis jonny at jonny.eng.br
Mon Jan 2 18:59:36 BRST 2006


Edson Noboru Yamada wrote:
> Oi, João,
>
> Nunca fiz testes de laboratório, mas té onde posso enxergar, por mais
> elaborado que seja um algoritmo de
> otimização de acesso pro RAID1, no máximo 2 discos serão lidos
> simultaneamente;
> no caso do RAID 5 ou RAID 0, naturalmente (sem otimização) todos
> os discos serão lidos. Isto não seria melhor?
>   
Depende do tipo de acesso.  Veja abaixo.
> Se a sua teoria está certa, qual seria a vantagem do RAID1+0  sobre o RAID1?
>   
Bem, para começar o RAID1 não aumenta o tamanho da área de dados e o 
RAID0 não dá redundancia, enquanto o RAID0+1 faz os dois.

Note que o desempenho não entrou nessa comparação.   ;-)
> Pra mim
> é justamente isso: em vez de ler 1 ou 2 discos, distribui-se a carga por
> todos os discos.
>   
A pergunta correta seria: Existe ganho de desempenho em um RAID0?  De 
que tipo?  Como fica esse ganho em comparação com JBOD?

Na prática, JBOD favorece acessos onde o Seek Time é mais importante, 
enquanto RAID0 favorece acessos onde a taxa de transferência é 
importante.  Se o seek time é grande, o ideal é dividir os seeks entre 
os discos.  Para isso, JBOD é melhor, permitindo que grupos diferentes 
de setores (altos, médios, baixos) sejam acessados em paralelo.  Se a 
taxa de transferência é mais importante, então o RAID0 é bom, pois 
mantém o seek time original, e consegue transferir N vezes mais setores 
por unidade de tempo.

Um benchmark que acesse um único arquivo vai achar que o RAID0 é melhor, 
por outro lado, um benchmark que acesse vários arquivos simultaneamente, 
em um file system que espalhe os arquivos ao longo do disco vai achar 
que o JBOD é melhor.  Um sistema operacional multi-tarefa deve se 
comportar melhor num sistema JBOD, mas não tenho dados reais medidos 
para corroborar esta afirmação.

O RAID1 se comporta para leitura como JBOD ou algo próximo de RAID0, de 
acordo com a implementação do algoritmo de leitura.  Num algoritmo 
ineficiente, o desempenho pode ser pior que RAID0, como se não houvesse 
RAID nenhum.

Da ultima vez que tive que tomar essa decisão, *não* optei por RAID0+1.  
Fiquei com JBOD + RAID1, ou melhor, geom_mirror + geom_concat:

# gmirror status
      Name    Status  Components
mirror/gm0  COMPLETE  da0
                      da2
mirror/gm1  COMPLETE  da1
                      da3
# gconcat status
      Name  Status  Components
concat/gc0      UP  mirror/gm0
                    mirror/gm1
# df -h
Filesystem             Size    Used   Avail Capacity  Mounted on
/dev/concat/gc0a       989M     58M    852M     6%    /
devfs                  1.0K    1.0K      0B   100%    /dev
/dev/concat/gc0d       4.8G    2.7G    1.7G    61%    /usr
/dev/concat/gc0e       264G    200G     43G    82%    /data
/dev/md0               496M     20K    496M     0%    /tmp


Essa opção inclusive tem mais uma vantagem: Os discos não precisam ser 
todos iguais, basta que sejam iguais 2 a 2.



Observação: Vale lembrar que eu entrei neste thread pedindo 
informações!  Eu me considero nenhum expert nisso, estou apenas 
apontando minhas conclusões a respeito do assunto.


More information about the masoch-l mailing list