Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Black Circus
Por hwarang
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Tunando sistemas de arquivos para GNU/Linux
Linux user
eabreu
31/07/2012
O artigo tem o propósito principal de mostrar como "tunar" os sistemas de arquivos mais usados atualmente no GNU/Linux, deixando-os mais rápidos.
Por: Edson
[ Hits: 18344 ]
Conceito: 10.0   5 voto(s)5 voto(s)5 voto(s)5 voto(s)5 voto(s) + quero dar nota ao artigo

Tunando o sistema de arquivos ReiserFS

Serão abordadas duas formas de tunar o sistema de arquivos para um melhor desempenho e para torná-lo mais robusto.

Uma das formas que vou utilizar é o journal externo, ou seja, o journal do sistema de arquivos ReiserFS vai estar em outra partição. Porém, você poderá também colocá-lo em uma partição de outro disco.

E a segunda forma vai ser com o journal interno, ou seja, na partição onde está armazenado o sistema.

Para aplicar o journal externo, particione o disco conforme sua necessidade. Contudo, usarei para explicar o seguinte particionamento do disco para instalar o S.O.:
  • Partição: /dev/sda1 - Diretório root "/";
  • Partição: /dev/sda5 - Swap;
  • Partição: /dev/sda6 - Partição usada para armazenar o journal externo da partição /dev/sda1.

NOTA: Este sistema de particionamento é apenas um exemplo para fins didáticos,não é obrigatório. De forma que, não é preciso usar o journal externo na partição onde ficar root "/", então, você pode particionar da forma que melhor atende às suas necessidades, adicionando até mais partições se for necessário.

Não vou abordar como particionar usando o fdisk e nem o GParted, pois existem muitos materiais que abordam o uso dessas ferramentas.

Tunando o ReiserFS usando journal externo

Antes de começar a parte prática, tenha em mãos um LiveCD do Ubuntu, Linux Mint e ou Parted Magic, para aplicar as alterações. Caso não tenha no LiveCD (ou no sistema que está usando para particionar e aplicar o sistema de arquivos) suporte a ReiserFS, então instale o pacote "reiserfsprogs".

Supondo que você já particionou o disco que armazenará o S.O., é hora de aplicar o sistema de arquivos ReiserFS. Mas antes, desmonte as partições que usará no procedimento de aplicação de F.S.

1. Aplique o sistemas de arquivos em "/dev/sda1" com journal externo. O journal da partição "/dev/sda1" ficará no dispositivo "/dev/sda6", que será a partição raiz e que abrigará toda a estrutura de diretórios.

# mkreiserfs -j /dev/sda6 /dev/sda1

No comando anterior, não especifiquei o tamanho do journal na partição, então, o tamanho assumido por padrão, é 8193 blocos. Caso queira colocar um tamanho de journal acima do tamanho padrão, use junto ao comando mkreiserfs a opção "-s", ou "--journal-size".

Sabendo que o tamanho máximo do journal é de 32749 para partições com blocos de 4 kbytes.

Então, com a opção de tamanho ficaria assim:

# mkreiserfs -s 8193 -t 1024 -j /dev/sda6 /dev/sda1

Onde "-s" especifica o tamanho do journal, e "-t" especifica o máximo de blocos que podem ser transferidos para o journal de uma vez. 1024 é o máximo, não consegui fazer com valor superior, e o valor deve ser menor do que metade do tamanho do journal.

Após aplicar o sistema de arquivos, veja como fica a particionamento no GParted na imagem abaixo:
2. Instalação do S.O. Debian GNU/Linux 6.0.5

NOTA: Não tratarei a instalação por completo, apenas partes importantes para finalizar a mesma.

2.1. Na primeira tela de instalação, escolha a opção "Advanced Options" e em seguida "Graphical Expert Install". Depois carregue os módulos do sistema de arquivos ReiserFS:
2.2. Em particionamento do disco, escolha a opção "Manual" e deixe a partição Raiz conforme mostrado na imagem abaixo, ou seja, deixe marcado para usar o sistema de arquivos ReiserFS e adicione o ponto de montagem como root "/", mas marque para não formatar:
Ao final, o particionamento ficará assim, depois aplique as alterações feitas:
Após a instalação do S.O com journal externo, você terá um sistema ReiserFS com mais velocidade, porém, em um desktop que é usado para acesso à Internet e/ou tarefas básicas, não nota-se diferença a princípio. Ou seja, só repara-se diferença quando está fazendo operações em massa, aí sim notará diferença.

Agora, edite e acrescente algumas opções de montagem para alterar o comportamento do ReiserFS no arquivo "/etc/fstab":

# vim /etc/fstab

/dev/sda1     /     reiserfs    notail,rw,data=writeback,relatim e    0    1

* notail: Por padrão, esta opção já veio ativada após a instalação, mas caso não esteja habilitada, coloque a mesma no fstab. Esta opção muda o comportamento do sistema de arquivos ReiserFS, fazendo com que o mesmo ganhe um pouco de desempenho.

Explicando bem o que esta opção notail faz:

Toda informação que é gravada no disco, é armazenada em blocos de dados, cada bloco possui um espaço para alocar informações que é determinado durante a aplicação do sistema de arquivos.

Desta forma, se um arquivo possuir 17 kbytes de tamanho e for armazenado em um sistema de arquivos cujo tamanho do bloco é 4 kbytes, o arquivo iria ocupar cinco blocos de 4 kbytes. Assim, o último bloco ficaria com 3 kbytes de espaço sobrando sem poder serem usados.

Mas, com o recurso "tail packing", este espaço restante livre mencionado na explicação anterior, pode ser preenchido com os restos de dados de outros arquivos.

Isto pode causar fragmentação, mas como o sistema de arquivos está com a opção "notail" habilitada, a fragmentação é praticamente nula, e a velocidade de acesso aos dados torna-se rápida, já que os "restos" de dados não serão armazenados em blocos com espaços que estão sobrando. Mas em compensação, haverá perda de espaço.

* data=writeback: Esta opção faz com que o sistema de arquivos ReiserFS atue no modo de operação writeback, gravando no journal apenas os metadados a cada ação nos arquivos, sem forçar a gravação dos metadados no sistema de arquivos após a gravação no journal. Isto garante maior desempenho mas poderá perder dados com maior facilidade.

Uma outra forma de melhorar ainda mais o desempenho, porém perdendo algumas informações (como data de acesso a arquivos e diretórios), seria adicionar no "/etc/fstab":

/dev/sda1     /     reiserfs    notail,rw,data=writeback,noatim e,nodiratime    0    1


As outras opções já foram abordadas na página anterior.

Lembre-se que, adicionando a opção de montagem 'data=writeback', o risco de perder dados é maior, porém, como o journal está externo já existe um ganho de desempenho.

Podemos adicionar, ou retirar, algumas opções para mudar o comportamento do sistema de arquivos, fazendo o mesmo ficar mais consistente e/ou continuar rápido, mas mantendo um bom nível de consistência.

Vejam só como ficaria as opções de montagem no "/etc/fstab", deixando o sistema de arquivo num misto de consistência e velocidade com journal externo:

/dev/sda1     /     reiserfs    notail,rw,relatime,barrier=flush& nbsp;   0    1


Ou, deixa manter os dados com o máximo de segurança sem importar-se com a velocidade. Veja o exemplo abaixo adicionado no "/etc/fstab":

/dev/sda1     /     reiserfs    notail,rw,sync,barrier=flush  ;   0    1


Após aplicar as alterações, notará que vai ficar lento, principalmente em atividades de gravação e transferência de dados.

É importante deixar bem claro que, caso o dispositivo que contém o journal externo do F.S. do sistema chegue ao fim de sua vida útil, ou seja danificado. O seu sistema não poderá mais ser acessado enquanto não houver um novo journal externo.

Para resolver isso, execute os comandos a seguir com o sistema de arquivo do sistema desmontado:

# reiserfstune -f --no-journal-available --journal-new-device /dev/sdb2 /dev/sda1

No comando acima, estou supondo que o novo dispositivo que conterá o journal do sistema é "/dev/sdb2", e o dispositivo que contém o sistema é "/dev/sda1".

As opções:
  • journal-new-device: indica a nova localização do journal do F.S. do sistema.
  • no-journal-available: indica que o dispositivo "/dev/sda1", ou seja, o dispositivo que contém o sistema, não tem journal.

Você pode ainda mudar o tamanho do journal com a opção "-s", junto ao comando reiserfstune.

Mas tenha em mente que foi criado um novo journal e conteúdo, do antigo foi perdido, de maneira que se antigo log contém alguma informação para ser recuperada, a mesma foi perdida com a criação do novo journal.

Tunando o ReiserFS usando journal interno

Para tunar o sistema de arquivos com journal interno, o procedimento é mais fácil, pois não precisa fazer alterações especificas antes e durante a instalação do S.O., basta apenas manipular as informações dentro o "/etc/fstab", pois assim é mais fácil.

As opções de montagem já usadas anteriormente podem ser usadas também com journal interno. E estarei usando o mesmo esquema de particionamento já visto com journal externo.

Por exemplo, para um maior desempenho mesmo com o journal interno, poderíamos fazer o ReiserFS trabalhar bem rápido, adicionando as seguintes opções no "/etc/fstab":

/dev/sda1     /     reiserfs    notail,rw,data=writeback,relatim e    0    1


Ou, deixar o ReiserFS com mais ganho de desempenho, adicionando as seguintes linhas no "/etc/fstab":

/dev/sda1     /     reiserfs    notail,rw,data=writeback,noatim e,nodiratime    0    1


Ou, tunar o ReiserFS deixando-o mais robusto, porém perdendo velocidade, para manter os dados de sua estrutura:

/dev/sda1     /     reiserfs    notail,rw,sync,barrier=flush  ;   0    1


Lembre-se que todas estas personalizações tem que ser utilizadas para bons resultados junto às características positivas do ReiserFS.

Exemplo: O ReiserFS trabalha melhor com arquivos pequenos.

<< Página anterior Próxima página >>




Páginas do artigo

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por albfneto em 31/07/2012 - 10:51h:

Excelente artigo, e existem poucos sôbre o assunto.
Favoritado.


[2] Comentário enviado por danniel-lara em 31/07/2012 - 11:54h:

Parabéns pelo Artigo
ficou muito bom mesmo
é isso ai


[3] Comentário enviado por madtrek em 31/07/2012 - 12:01h:

"tunando" ?!?!?

Pelo amor de deus, não cometa assassinato da língua Portuguesa !!!

Ajustando !!!!

Nada contra usar anglicismos quando não existe uma palavra em Português equivalente, mas neste caso a palavra existe !!!!!

Fábio Rabelo


[4] Comentário enviado por eabreu em 31/07/2012 - 12:53h:

O termo tunar é originário da palavra estrangeira tunning que significa “ajustar” como foi dito pelo colega madtrek na sua critica.

Apesar dessa palavra ainda não está em dicionário esse termo é muito usado, quando se personaliza um carro, moto, computador e etc. e acredito que o mesmo será adicionado em futuro. por isso usei tal palavra.

No mais obrigado pelos comentários.


[5] Comentário enviado por alefesampaio em 31/07/2012 - 18:33h:

Isso mesmo Abreu acho que toda critica devem ser direcionada no sentido do artigo quanto ao embasamento filosófico tais como: domínio do tema, conteúdo,

Teu artigo estar muito bom parabéns.


Abraço.


[6] Comentário enviado por galactus51 em 31/07/2012 - 21:17h:

Olá Edson. Parabéns pelo artigo, Gostei que pelo menos você colocou o link dos meus três artigos sobre sistemas de arquivos ( ext4, XFS e JFS) nas referências!


[7] Comentário enviado por eabreu em 31/07/2012 - 21:42h:

Olá amigo galactus51.

Seus três trabalhos foram usados como algumas das referências para conclusão do artigo. pois contém um bom conteúdo e bem claro. Sobre os textos das suas publicações, alguns trechos (por estarem bem explicados) me servirão de inspiração para desenvolver e explicar alguns assuntos, mas não fiz cópias do seu trabalho.

Obrigado alefesampio e galactus51 pelos comentários.


[8] Comentário enviado por galactus51 em 01/08/2012 - 00:10h:

Grande Edson! Sei que não fez cópia do meu trabalho, como você mesmo disse, te ajudaram a explicar as coisas melhor. É que muitas pessoas tem o hábito de fazer artigos e não colocar as fontes!


[9] Comentário enviado por Listeiro 037 em 01/08/2012 - 09:17h:

Olá.

Na explicação do ReiserFS: há como calcular quanto deve ser deixado para a partição de journaling?

2GB não é muito? Até tendo em vista hibernação um valor desses é contestado para swap, sendo aqui o caso muito diferente.


[10] Comentário enviado por eabreu em 01/08/2012 - 09:21h:

Tranquilo galactus51 !

E quanto ao seu trabalho servir. tenha em mente que sempre o conhecimento postado em qualquer site vai ajudar as pessoas que precisam do conteúdo.

Abraço e bem vindo ao VOL!


[11] Comentário enviado por eabreu em 01/08/2012 - 09:57h:

Bom dia amigo Listeiro_037.

O calculo é o seguinte em sistemas de arquivos que tem em seus blocos o tamanho de 4kbytes o padrão é 8193 blocos reservados. então ficaria:

4*8193/1024 = 32 megabytes para o journal, pois são blocos de 4 kilobytes de tamanho vezes a quantidade de blocos por padrão dividido por 1024Kbytes que é 1megabyte.

Como no máximo o comando pode atribuir 32749 blocos de espaço para o journal em blocos de tamanho 4 kbytes o tamanho total e máximo vai ficar em torno de 126 megabytes.

Nunca calculei usando o tamanho de bloco diferente e sempre usei o tamanho padrão (4096) pelo comando mkreiserfs, mas caso altere o tamanho do bloco para o tamanho máximo que é de 8kbytes creio que não chegue nem a 1Giga de espaço reservado para armazenamento do journal.

Quanto aos 2G depende do sistema de armazenamento que usa.


[12] Comentário enviado por marcrock em 01/08/2012 - 10:00h:

Muito bom !!! Eu sempre uso ReiserFS ou Ext4 no meu desktop. O ReiserFS lida bem com arquivos pequenos e é confiável.


[13] Comentário enviado por chimico em 10/08/2012 - 22:23h:

@eabreu
Parabéns pelo belo artigo, eu apliquei a otimização no ext4 usando a distro Toorox (baseada em gentoo). Vou testar no Siduction.
Ficou bala, eu sempre uso uma partição para o sistema e outra para o /home. Criei uma partição de 128 MB para cada journaling e ao invés de usar o comando

mke2fs -O journal_dev /dev/sdb1 -b 4096 -L journal-ext-sda1 105500

usei somente

mke2fs -O journal_dev /dev/sdb1 -b 4096 -L journal-ext-sda1

porque o primeiro dava erro, algo como "sistema de arquivos aparentemente maior que a partição suporta"

A máquina em questão é um athlon-xp 2000+ com 1G de Ram. Curiosamente já usava partições JFS com jornal externo, mas no meu hardware não ficou leve ou estável.


[14] Comentário enviado por Listeiro 037 em 30/01/2013 - 16:34h:

Olá. Depois do artigo ainda tive estas dúvidas, mas ainda não cheguei a alguma conclusão.

Gostaria de saber até quando um arquivo seria considerado "pequeno" e qual seria o melhor sistema de arquivos para criar uma partição /tmp (ou /var/tmp, /var/log) separada.


[15] Comentário enviado por eabreu em 30/01/2013 - 17:29h:

Para diretórios como: /tmp, /var/tmp e /var/log que normalmente se armazena arquivos pequenos (é raro ter arquivos grandes), seria um sistema de arquivos como o ext3/4 ou reiserfs. de preferência pelo ext3 ou ext4, pois num futuro próximo ou distante poderá migrar os sistemas de arquivos exts (3 ou 4) para o btrfs (que promete ser bem completo).

Na minha opnião se o diretório trabalha com muitos arquivos com mais de 50 megabytes não usária o sistema de arquivos ext3/4 ou reiserfs e sim o xfs. Mas para fins de estudo e aprofudamento de conhecimento faça benchmarks. Caso queira fazer alguns testes de desempenho use a ferramenta Phoronix Test Suite.


[16] Comentário enviado por elton.linux em 21/04/2013 - 01:50h:

Boa noite a todos,

dúvida ridícula, o que é considerado arquivo pequeno e arquivo grande?
Uma música em mp3 é pequeno?
... qual parâmetro para essa medição

abraço



Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.