Estrutura certa, Notas de estudo de Informática

Estrutura certa, Notas de estudo de Informática

5 páginas
8Números de download
1000+Número de visitas
Descrição
Muitos usuários aceitam apenas as opções padrão e nem consideram os diferentes sistemas de arquivos durante a instalação. Se o seu objetivo é desempenho, saber o que cada um oferece é fundamental.
20 pontos
Pontos de download necessários para baixar
este documento
Baixar o documento
Pré-visualização3 páginas / 5
Esta é apenas uma pré-visualização
3 mostrados em 5 páginas
Esta é apenas uma pré-visualização
3 mostrados em 5 páginas
Esta é apenas uma pré-visualização
3 mostrados em 5 páginas
Esta é apenas uma pré-visualização
3 mostrados em 5 páginas
LM19_sistemas-arquivo.indd

Muitos usuários aceitam apenas as opções padrão e nem consideram os diferentes sistemas de arquivos durante a instalação. Se o seu objetivo é desempenho, saber o que cada um oferece é fundamental. por Marcel Hilzinger

Comparativo de sistemas de arquivos

Estrutura certa

N as distribuições Linux atuais, é possível selecionar um sistema de arquivos com apenas alguns cliques. Em alguns casos, nem há pos-

sibilidade de fazer essa escolha duran-

te a instalação. A maioria dos usuários

simplesmente adere ao padrão de sua

distribuição.

Para quem está de olho no desempe-

nho, vale a pena considerar as opções

de sistemas de arquivos antes da insta-

lação. Levando em conta os resultados

gerais dos testes realizados pela Linux

Magazine, o XFS (com kernel 2.6) é tão

rápido quanto o ReiserFS e o Ext3. Já a

próxima versão do Reiser trará ganhos

de velocidade enormes. Os desenvol-

vedores do Reiser4 estão procurando

garantir a maior fatia possível do bolo

dos sistemas de arquivos Linux, com

um novo design interno e recordes de

velocidade. No entanto, ainda há fa-

lhas básicas a serem eliminadas. Ou

seja, ele não está pronto para uso em

sistemas produtivos.

Padrões A maioria absoluta dos computadores

Linux de hoje usa ou o Ext3 [1] ou Rei-

serFS [2] como os sistemas de arquivos

principais, já que eles são as opções-

padrão na maioria das distribuições. O

ReiserFS e o Ext3 não são particularmen-

te rápidos nem possuem um conjunto

impressionante de recursos. Mas os res-

ponsáveis pelas distribuições costumam

turbinar seus sistemas de arquivos com

patches de otimização. Isso faz muita

diferença, em termos de desempenho.

Sob esse ângulo, acaba sendo bastante

difícil tirar conclusões universais sobre

esses sistemas de arquivos. O quadro 1

(“Tudo começou com o Ext2”) ajuda a

entender porque as distribuições usam

sempre Ext2 ou ReiserFS.

Eles são dois membros da família de

sistemas de arquivos com journaling.

Basicamente, journaling é uma técnica

de prevenção de perda de dados, em que

eles são gravados duas vezes: primei-

ro na área de journal, depois em seu

destino final. Assim é fácil ver porque

um sistema de arquivos com journaling

perde velocidade.

Por padrão, o Ext3 e o ReiserFS usam

um modo especial, em que o sistema

apenas grava os metadados (informações

sobre mudanças no sistema de arquivos)

na área de journal, em vez dos dados de

fato. Para montar uma partição Ext3 ou

ReiserFS desse modo, é preciso usar a

opção data=ordered. Ela é ativada por

padrão na maioria das distribuições. A

tabela 1 mostra mais informações sobre

outras opções de montagem.

Opções de montagem Se a integridade dos dados é a preo-

cupação principal e velocidade for um

item secundário, a opção de montagem

data=journal é recomendada. Ela dimi-

nui o desempenho de gravação do Ext3

em 50%. No caso de arquivos grandes,

a taxa de redução da velocidade fica em

20 % (veja a figura 1). Mas essa opção

não é recomendada para o diretório root,

www.linuxmagazine.com.br

maio 2006 edição 19 39

CapaSistema de Arquivos

apenas para partições de dados sepa-

radas. Por exemplo, o diretório /home

– situação em que essa recomendação

por ser feita sem ressalvas.

Já a opção data=writeback permite

a gravação na área de journal antes dos

dados chegarem ao destino final, o que

traz um ganho de performance de 10%.

Essa opção é útil para a partição root, em

que ocorrem muitas operações de escrita

e a perda de dados pode ser aceitável.

Obviamente, uma partição /home ou de

dados é recomendada nesse caso.

O Ext2 ainda possui excelente desem-

penho para sua longa idade. Em muitos

testes, o veterano é mais rápido que o Ext3

ou o ReiserFS. De novo, isso mostra que os

recursos de journaling do Ext3 reduzem

a performance, em relação ao Ext2.

Para partições sem dados críticos

(como um /tmp), o Ext2 é preferível ao

Ext3, se o tamanho for inferior a 1 GB.

Em todos os outros casos, o Ext2 não

é recomendado, já que a checagem no

sistema de arquivos pode demorar mais

que a restauração de um becape. O Ext2

ainda é o sistema padrão de partições

de boot separadas, já que ocupa menos

espaço (apenas o journal do ReiserFS,

por exemplo, precisa de 33MB).

Reiser4 e XFS Se o desempenho está no topo da lista

de requerimentos, a melhor escolha é

o Reiser4. Os benchmarks da Linux

Magazine confirmam a afirmação na

página da Namesys (empresa respon-

sável pelo sistema) de que o Reiser4 é

duas vezes mais rápido que o ReiserFS.

Esse sistema de arquivos venceu mais

avaliações que qualquer outro no que-

sito velocidade. Ele é três vezes mais

rápido que o segundo colocado, o XFS

[3], na tarefa de criar 50 mil arquivos.

Isso é uma evidência clara de quanto

trabalho seus desenvolvedores coloca-

ram na otimização do desempenho de

gravação. E o Reiser4 é, pelo menos,

de 10 a 20 vezes mais rápido que o ri-

val mais próximo em todas as outras

operações de gravação. É o sistema de

arquivos Linux mais rápido.

Já quanto ao uso dos recursos de pro-

cessamento, as coisas não são tão boas.

Por exemplo, na criação seqüencial de

50 mil arquivos, o sistema causou uma

carga na CPU de 26%. Todos os outros

ficaram entre 1% e 4%. Na média, o

Reiser4 causa cerca de 10% mais pro-

cessamento que os outros. Em alguns

casos, esse aumento passa de 50%. De

fato, o ReiserFS foi o único sistema a

exigir mais ciclos de CPU que o Reiser4,

em algumas categorias testadas. Se o

seu computador tem uma CPU lenta, é

melhor ficar com o Ext3 ou XFS. O Rei-

ser4 também não possui alguns recursos

básicos como cotas ou listas de controle

de acesso (ACLAccess Control List).

Já o XFS tem tudo o que é necessário

para ser o sistema de arquivos número

1. É usado em uma boa fatia dos siste-

mas produtivos e suporta cotas, ACLs e

atributos estensíveis. O XFS é o sistema

mais rápido depois do Reiser4, chegando

a bater o primeiro colocado em algumas

categorias. Ele é bom particularmente

ao lidar com grandes volumes de dados.

O desempenho foi excelente com arqui-

vos de 4 GB. Para quem pretende editar

vídeos, o XFS é a melhor opção.

Quadro 1:Tudo começou com o Ext2 Quem usa Linux há bastante tempo vai lembrar da época em que, prati- camente, todas as distribuições usavam o Ext2 como sistema de arquivos padrão. Ele foi o sistema de arquivos Linux mais popular por 8 anos.

A primeira versão do Linux usava o sistema de arquivos do Minix. Um grupo de programadores começou a trabalhar em um novo sistema de arquivos em 1992: o Extended Filesystem, ou ExtFS. Infelizmente, ele estava infestado de bugs e, um ano depois, Rémy Card lançou o Second Extended Filesystem (Ext2).

O Ext2 se desenvolveu como um sistema estável e estensível, embora tivesse uma desvantagem: como ele não tinha journaling, verificações intermináveis tinham que ser realizadas no caso de corrupção de arquivos e também em intervalos regulares, como precaução. Dependendo do tamanho do disco rígido, uma simples checagem levava muitas horas. Além disso, eram necessárias ferramentas proprietárias para aumentar ou encolher o sistema de arquivos “on the fly”, ou seja, sem precisar desmon- tá-los. Na virada do milênio, os discos rígidos estavam muito grandes e as checagens, muito lentas para o Ext2.

Prevendo esse problema, desenvolvedores do kernel já tinham lançado dois projetos para tentar resolver isso. Um era o Ext3 como um extensão

journaling do Ext2. A outra era um novo sistema de arquivos, do zero, com journaling nativo: o ReiserFS v3. Esse último venceu a corrida e se tornou o primeiro sistema de arquivos com journaling para Linux, em 1999.

A distribuição Suse, o principal patrocinador dessas iniciativas, estava extremamente interessada em redimensionamento “on the fly”. Ela foi a primeira a incluir o ReiserFS, como padrão, no Suse 6.4, lançado no início de 2000 (na verdade, o ReiserFS já estava disponível como um update da versão 6.3). Mas o ReiserFS ainda tinha alguns problemas. Por exemplo, não trabalhava tão bem com o sistema NFS.

Já o Ext3 foi lançado primeiro como o sistema de arquivos oficial do Red Hat 7.2, em 2001. A Red Hat optou pelo Ext3, já que ele se mostrava pronto para ser incluído oficialmente no kernel Linux (isso aconteceu na versão 2.2.15 do kernel, na série que antecedeu o ramo 2.4). O ReiserFS teve que esperar até o kernel 2.4.1 para a inclusão oficial. Mas a maioria das distribuições já usava esses dois sistemas como opção padrão, já que ambos tinham a reputação de serem bastante estáveis.

No mesmo ano (2001), dois sistemas de arquivos Unix foram portados para o Linux. O XFS, da Silicon Graphics, é um dos melhores sistemas para arquivos de 1 MB ou mais. Já o JFS, da IBM, falhou em se estabelecer e nem é mais parte oficial de muitas distribuições.

Capa

40

Sistemas de Arquivos

www.linuxmagazine.com.br

maio 2006 edição 19

Quem ganha? Na maioria dos casos, você não vai

se arrepender ao optar pelo Ext3 ou

ReiserFS. Mas há algumas situações

em que um é melhor que o outro. O

ReiserFS demora para montar parti-

ções. A diferença, em comparação

com o Ext3 ou XFS, é mínima para

partições de 5 GB ou 10 GB. Já com

uma de 80 GB, o Ext3 dará vários

segundos de vantagem no tempo de

boot. É por isso que o ReiserFS não é

recomendado para discos rígidos ex-

ternos. Ao espetar um HD de 200 GB

com um sistema de arquivos Reiser-

FS, por exemplo, será preciso esperar

mais de 10 segundos para o disco ser

montado. Com o Ext3, isso é feito em

três segundos.

Mas arquivos pequenos e processos

de formatação são grandes desafios

para o Ext3. Por exemplo, ele leva

cerca de cinco minutos para criar uma

partição de 200 GB. Quem costuma

reformatar partições sempre, deve op-

tar pelo ReiserFS ou XFS, que fazem a

mesma tarefa em poucos segundos.

Já para quem trabalha com muitos

arquivos, de aproximadamente 100

KB cada, o ReiserFS novamente é a

melhor opção, independente do que

a distribuição em questão sugerir. O

sistema de arquivos da Namesys é

muito mais rápido que o Ext3 ou XFS

com arquivos desse tamanho.

Evite também o Ext3 para diretórios

com muitos arquivos, já que esse sis-

tema de arquivos especifica o número

de inodes (estruturas de dados) du-

rante a formatação. Isso restringe o

número de arquivos que podem ser

armazenados na partição. O ReiserFS

e o XFS trabalham com alocação di-

nâmica de inodes. Isso elimina com-

pletamente o risco de ter espaço em

disco, mas nenhum inode livre.

O Ext3 e o XFS são preferíveis se

você usar o PC para gerenciar grandes

coleções de áudio ou vídeo. O XFS é

bem mais rápido para arquivos com

mais de um GigaByte em relação ao

Ext3 e o ReiserFS. O gerenciamento do

espaço requerido é outro fator impor-

tante. Devido a seu formato eficiente,

o ReiserFS armazena arquivos me-

nores em menos espaço que o Ext3

ou XFS. Por exemplo, os arquivos

fonte do kernel ocupam 250 MB no

ReiserFS, 252 MB no XFS e 260 MB no

Ext3. Como recomendação final, não

esqueça de otimizar o uso de seu dis-

co. A maioria dos HDs acessam mais

rapidamente os últimos cilindros do

que o começo do disco. Se esse for o

caso, é melhor colocar as partições

root e de dados no final do disco. ➟

Tabela 1: Opções de montagem Opção Função data=journal Essa opção, que primeiro copia toda informação para a área de journal antes de armazená-la no destino final, garante

segurança máxima dos dados. Contudo, a velocidade cai cerca de 50% tanto no Ext3 quanto no ReiserFS: operações de escrita levam o dobro do tempo.

data=ordered Essa é a opção padrão da maioria das distribuições. O sistema de arquivos primeiro grava os dados em seu destino final. Depois, cria a entrada journal para a operação realizada.

data=writeback Isso leva a um ganho de velocidade de 10% no Ext3 e cerca de 30% no ReiserFS, em relação à opção padrão. Permite que entradas journal sejam criadas antes da finalização da operação de escrita. No caso de falhas, os arquivos podem ser recuperados. Essa opção só está disponível para o Reiser no kernel 2.6.

data=notail Apenas para ReiserFS. Por padrão, o ReiserFS usa o espaço não usado em blocos para armazenar o excesso de dados de outros blocos. Isso permite um ganho de 10% a 20% no armazenamento, em comparação com uma partição de Ext3 de mesmo tamanho. Como isso diminui ligeiramente o desempenho, o recurso pode ser desabilitado com a opção data=notail. Mas o aumento do desempenho não chega a 5%.

Figura 1: Desempenho de escrita usando a ferramenta de benchmark IOzone. Em modo journaling, o Ext3 e o ReiserFS têm velocidades (baixas) semelhantes. Já os modos Writeback e Ordered aumentam o desempenho do Ext3 e do ReiserFS em 40% e 120%, respectivamente.

www.linuxmagazine.com.br

maio 2006 edição 19 41

Sistema de Arquivos Capa

Otimização Primeiro as boas notícias: a maio-

ria das distribuições implementam

diversas otimizações por padrão.

Contudo, há muitos parâmetros

do ReiserFS e do Ext3 que podem

aumentar ligeiramente o desempe-

nho. Sistemas de arquivos Linux

armazenam a data e hora do último

acesso a cada arquivo. É possível

desativar isso com o parâmetro de

montagem noatime. Essa opção

existe para o Ext3, ReiserFS e XFS.

Não há desvantagens em especificar

o noatime em computadores pes-

soais. Outra opção é o nodiratime,

que desativa o registro de data e

hora para diretórios.

Para testar essa opção na partição

/dev/hda6, que será montada em /

teste, use o seguinte comando:

mount -o noatime,nodiratime /dev/hda6 U

/teste

Para acrescentar essa opção de

modo permanente, edite seu arquivo

/etc/fstab, acrescentando as entra-

das noatime,nodiratime às opções

existentes na quarta coluna.

Em nossos testes, essa opção deu

um ganho ligeiro no desempenho

de gravação para o ReiserFS, em-

bora os resultados do teste tenham

variado bastante. Com o Suse Linux

10.0 OSS, sem essas opções, a cópia

dos fontes do kernel de uma partição

para outra levou 110 segundos. Com

noatime,nodiratime, o processo le-

vou 100 segundos.

De maneira interessante, o Ext3 foi

bem mais rápido nesse teste. Levou

apenas 70 segundos, com ou sem a

opção noatime. O XFS levou 80 segun-

dos para copiar esses 20 mil arquivos,

também independente dessas opções.

Repetimos esses testes com o Ubuntu

5.10, descobrindo que o Ext3 e o Rei-

serFS são ligeiramente mais rápidos

em comparação com o Suse.

Usar ReiserFS no diretório root

no Suse 10 faz o sistema todo ficar

mais lento. Após uma reinstalação

usando Ext3 no diretório root, có-

pias para a partição ReiserFS foram

mais rápidas, atingindo as mesmas

velocidades do Ubuntu.

Já a opção data=writeback é outro

assunto (veja a tabela 1). As diferenças

são facilmente mensuráveis, e o ga-

nho é de 10% com o Ext3 e mais de

30% com o ReiserFS. Contudo, essa

não é uma opção fácil de configurar

com Ext3 no diretório root (pelo me-

nos no Suse). Para otimizar o /dev/

hda7, por exemplo, é preciso rodar

o comando tune2fs /dev/hda7 -o

journal_data_writeback.

O recurso dir_index pode melho-

rar a velocidade de grandes partições

Ext3. Essa opção ativa uma técnica

especial que acelera a busca em gran-

des diretórios. Para otimizar uma par-

tição Ext3 dessa maneira, é preciso

digitar os comandos:

tune2fs -O dir_index /dev/hda7

fsck.ext3 -fD /dev/hda7

No caso de uma partição nova, a

checagem (fsck) não é necessária.

Apenas digite mkfs.ext3 -O dir_in-

dex /dev/hda7 (levando em conta

que a partição nova é a hda7).

Outra técnica para acelerar discos

é jogar a área de journal em um

segundo HD (de preferência, co-

nectado a outra controladora IDE).

Para fazer isso com o Ext3, especi-

fique -O journal_dev /dev/hdd1

ao criar a partição (assumindo que

hdd1 é a partição de journaling). No

ReiserFS, a opção é -j /dev/hdd1.

Um desenvolvedor do kernel recen-

temente descobriu um bug em que

o ReiserFS cai (crash) sob intenso

processamento. Para evitar esse erro,

é melhor obter a última versão do

ReiserFS antes de tentar usar um

journal externo. A opção para o XFS

é -l logdev=/dev/hdd1.

O ReiserFS ainda tem outras op-

ções de montagem que aumentam

a performance. Como muitas delas

são altamente experimentais, tal-

vez seja preferível saltar logo para

o Reiser4, caso queira mesmo se

aventurar. Obviamente, o Reiser4 é

parcialmente experimental, mas é

muito mais rápido. Em nosso teste

de cópia dos fontes do kernel, isso

pôde ser feito em 30 segundos.

O Suse 10 vem com pacotes Rei-

ser4. Se você planeja instalar o

novo sistema de arquivos Reiser,

primeiro instale os pacotes libaal

e reiser4progs, com o YaST. De-

pois, formate a partição alvo com o

comando mkfs.reiser4 /dev/hdxx.

Há um tutorial (em inglês) para a

instalação no Ubuntu na lista de

Tabela 2: Cópia dos arquivos-fonte do kernel Distribuição Sistema de arquivos Tempo

Ubuntu 5.10 Ext3 70s Ubuntu 5.10 ReiserFS 65s Suse 10.0 ReiserFS 100s Suse 10.0 Ext3 70s Suse 10.0 XFS 80s

Capa

42

Sistemas de Arquivos

www.linuxmagazine.com.br

maio 2006 edição 19

emails do Reiser4 [4]. O tutorial

oficial da Namesys pode ser con-

sultado aqui [5].

Reduza a marcha Se velocidade for uma consideração

secundária, sendo mais importante a

segurança dos dados, sempre é possí-

vel diminuir a velocidade do sistema

de arquivos. A opção data=journal

diz ao Ext3 e ao ReiserFS para gravar

os dados no journal primeiro e, só

depois, no destino final. Como isso

duplica o trabalho, o desempenho

será bem afetado. Mas a chance de

encontrar todos os dados após um

crash é muito maior do que com

as opções-padrão. Se uma máqui-

na costuma falhar com freqüência,

essa é uma boa opção para assegurar

a integridade dos dados. Para atin-

gir bom desempenho junto com o

data=journal, é possível usar um

segundo disco para o journaling.

Conclusão Afinar o desempenho de sistemas de

arquivos toma muito tempo, e os ganhos

freqüentemente são mínimos. Faz muito

mais sentido escolher o sistema de ar-

quivos certo para sua aplicação durante

a instalação, do que tentar otimizá-lo

depois. No caso do Suse 10, o Ext3 é

uma opção melhor: o sistema inicia mais

rapidamente e partições também são

montadas com mais velocidade. Mas,

no geral, Ext3 e ReiserFS são sistemas

bem equivalentes. O XFS é uma opção

útil para a edição de vídeo. Maníacos por

velocidade vão optar pelo Reiser4, mas

cuidado: instalar o Reiser4 no diretório

root traz conseqüências imprevisíveis.

Talvez seja melhor usar uma distribui-

ção que traga o Reiser4 como opção de

instalação, como o Underground Desktop

(leia mais na pág. 42). ■

So br

e o

au to

r

Com formação acadêmica de historiador, Marcel Hilzinger trabalha no escritório do Suse Linux de Budapeste desde 2001. Ele tra- duziu a documenta- ção oficial da distribuição para o húngaro, entre muitas outras tarefas...

Informações [1] Ext3: www.zipworld.com.au/

~akpm/linux/ext3/

[2] ReiserFS: www.namesys.com

[3] XFS: linux-xfs.sgi.com/projects/xfs/

[4] Reiser4 no Ubuntu: tinyurl.com/p96lr

[5] Instalação do Reiser4: www.namesys.com/install_v4.html

www.linuxmagazine.com.br

maio 2006 edição 19 43

Sistema de Arquivos Capa

Até o momento nenhum comentário
Esta é apenas uma pré-visualização
3 mostrados em 5 páginas