Esquemas de particionamento e sistemas de arquivos

Este artigo traz uma abordagem teórica sobre esquemas de particionamento de disco e sistemas de arquivos no GNU/Linux. Ele trás a história e a teoria destes dois temas, mostrando, principalmente, vantagens e desvantagens de se usar várias partições para a instalação do GNU/Linux e benchmarks dos sistemas de arquivos mais utilizados neste sistema operacional.

[ Hits: 133.011 ]

Por: José Lopes em 21/07/2006 | Blog: https://lopes.id


Referências



[LSAG 2006] Wirzenius, L., Oja, J., Stafford, S. & Weeks A. (2006) "The Linux System Administrator's Guide" Version 0.9
<http://www.tldp.org/LDP/sag/html/index.html>, maio.

[Conectiva 2006] Conectiva S.A. (2006) "Guia do Servidor Conectiva Linux" Versão ano 2004
<http://www.conectiva.com/doc/livros/online/.../index.html>, maio.

[DISEFS 2006] Card, R., Theodore, T. & Tweedie, S. (2006) "Design and Implementation of the Second Extended Filesystem"
<http://web.mit.edu/tytso/www/linux/ext2intro.html&gt;, maio.

[Gordon & Haddad 2006] Gordon, S. & Haddad, I. (2006) "IBM's Journaled Filesystem"
<http://www.linuxjournal.com/article/6268>, maio.

[WikiNFS 2006] Wikipedia, a enciclopédia livre (2006) "Network File System"
<http://pt.wikipedia.org/wiki/Network_File_System>, maio.

[WikiISO 2006] Wikipedia, a enciclopédia livre (2006) "ISO 9660"
<http://pt.wikipedia.org/wiki/Iso9660>, maio.

[FSHowTo 2006] The Linux Documentation Project (2006) "Filesystems HowTo"
<http://www.tldp.org/HOWTO/Filesystems-HOWTO.html>, maio.

[PPDebian 2006] Projeto Debian (2006) "Programas de particionamento Debian"
<http://www.debian.org/releases/stable/i386/apbs05.html.pt>, maio.

[DebianPart 2006] Projeto Debian (2006) "Instalando Debian GNU/Linux 3.0 para Intel x86" Capítulo 6: "Particionamento para a Debian"
<http://www.debian.org/releases/3.0/i386/ch-partitioning.pt.html>, maio.

[Piszcz 2006] Piszcz, J. (2006) "Benchmarking Filesystems"
<http://linuxgazette.net/102/piszcz.html>, maio.

[Bauer & Bowden 2006] Bauer, B. & Bowden, T. "SuSE Linux - Guide for Geeks" Capítulo 2.1.4: "Understanding File Systems" Versão ano 2001
<http://www.serghei.net/docs/linux/admin/slgfg/part2/cha01/sec04.html>, maio.

[Dölle & Reitter 2006] Dölle, M. & Reitter, J. (2006) "Provão - Ext 2/3, JFS, Reiser e XFS, quem ganha essa?" Artigo da edição número dois da revista Linux Magazine, páginas 23-25, setembro de 2004
<http://www.linuxmagazine.com.br/issue/02/provao.pdf>, maio.

[LinMag 2006] Revista Linux Magazine (2006) "Entrevista com Theodore T'so" Artigo da edição número 12 da revista, páginas 8 e 9, setembro de 2005
<http://www.linuxmagazine.com.br/issue/12/LM12_08-09.pdf>, maio.

[Ivers 2006] Ivers, H. (2006) "Filesystems (Ext3, Reiser, XFS, JFS) Comparison on Debian Etch"
<http://www.debian-administration.org/articles/388>, maio.

[Piropo 2006] Piropo, B. (2006) "Particionando III"
<http://www.bpiropo.com.br/MC950828.htm>, maio.

[Wenzel 2006] Wenzel, F. (2006) "Informatiquês"
<http://www.flaviowenzel.hpg.ig.com.br/informatiques/b.html>, maio.

[TLIP 2006] The Linux Information Project (2006) "Superblock"
<http://www.bellevuelinux.org/superblock>, maio.

[GdH 2006] Guia do Hardware (2006) "Termos Técnicos GdH - Internal Fragmentation (Fragmentação Interna)"
<http://www.guiadohardware.net/.../internal-fragmentation-fragmentacao-interna>, junho.

Página anterior    

Páginas do artigo
   1. Introdução
   2. Particionamento
   3. Sistemas de arquivos
   4. Conclusão final
   5. Referências
Outros artigos deste autor

Configurando o Fortune

Permissões no Linux

Instalação e configuração do J2SE

Execução automática de comandos na inicialização do modo gráfico

Instalação e configuração do MySQL 4.0.26, Apache 2.0.54, PHP 5.0.4 e PHP-Nuke 7.8 no Slackware 10.1

Leitura recomendada

Automatizando a montagem de partições Windows (FAT e NTFS) no Linux

Trabalhando com init no Debian

Reparticionando ReiserFS via linha de comando

Permissões - referência rápida

Captive-NTFS com kernel 2.6

  
Comentários
[1] Comentário enviado por angeloshimabuko em 21/07/2006 - 18:10h

Muito bom o seu artigo, e bem estruturado. Peço apenas a sua compreensão para algumas observações que vou fazer.

2.1: num disco ATA (IDE) podem existir até 59 (e não 60) unidades (partições) lógicas. Assim, o número máximo de sistemas de arquivos instalado será de 62 (e não 63): 3 em partições primárias e 59 em unidades lógicas. O número não é da arquitetura (seja do padrão ATA ou da x86), mas uma limitação imposta pelo Linux. Sem entrar em muitos detalhes, depende da estrutura de números maiores e menores, cujo registro é mantido por Torben Mathiasen e cuja versão mais atual encontra-se em
<http://www.lanana.org/docs/device-list/index.html>. Do registro verifica-se também que o número de unidades lógicas num disco SCSI é de 11 (e não 12), possibilitando a instalação de 14 sistemas de arquivo (3 em partições primárias e 11 em unidades lógicas).

2.4: a definição de memória virtual não está correta. O espaço de troca no disco rígido é apenas um componente da memória virtual, e nem mesmo é necessário. O Linux (e os principais sistemas operacionais: Windows, FreeBSD, Solaris) usa (e depende de) a memória virtual, que tem 3 funções principais: (i) permitir a cada processo um endereçamento próprio (na arquitetura x86, endereços na faixa de zero a 4 GiB), origem do nome memória virtual; (ii) proteção (na arquitetura x86, num sistem híbrido de segmentação e paginação); (iii) possibilitar a utilização de mais memória do que a existente fisicamente (aqui entra o espaço de troca).

Em 2.4.2, o tamanho do espaço de troca está correto (2 GiB) para a arquitetura x86 (são 128 GiB para alpha e 3 TiB para Sparc64, p.ex.), mas a quantidade de espaços, atualmente, é de 32 (v. "man mkswap"). O valor de 8 é anterior ao kernel 2.4.10.

O esquema de particionamento (2.5) faz uma recomendação inadequada: usar um espaço de troca no final do disco rígido é muito ruim para o desempenho. Como exemplo, o meu disco principal (um ST380817AS, da Seagate), segundo o hdparm, pode ler 56 MiB/s (em média) em sda2 (nos primeiros 600 MiB) e apenas atinge 34 MiB/s em sda14 (últimos 7 GiB). Num hd (ATA ou SCSI), os setores são numerados de fora para dentro. Assim, obviamente, o desempenho será melhor nos setores iniciais.

3.5. Deve haver, sim, uma preocupação com fragmentação. Use a ferramenta filefrag para verificar. Principalmente nos sistemas Ext2-3 e Reiserfs (que usam alocação por blocos), o índice de fragmentação, principalmente de arquivos grandes (maiores que 100 KiB) pode ser muito alto (já monitorei um sistema de correio mal configurado, usando Reiserfs 3, onde alguns arquivos de caixa postal, com tamanhos de 2 MiB a 14 MiB tinham entre 100 e 500 fragmentos, com desempenho de disco muito ruim). O JFS e XFS usam alocação por extensões (extents) ordenadas em árvore, e fragmentam menos. Além disso, o XFS possui uma ferramenta para desfragmentar (xfs_fsr).

O SAG, de Wirzenius e outros, da sua referência, já foi muito bom, mas além de alguns equívocos de conceito (como o de memória virtual), está muito desatualizado e muitas partes (como a que informa sobre partições). As melhores fontes de informação ainda são: os fontes do kernel, as páginas manuais, livros mais específicos.

Referências:

[1] Carrier, Brian. File system forensic analysis. 2005. Addison Wesley Professional.

[2] Bovet, Danilo P., Cesati, Marco. Undestanding the Linux kernel.3.ed. 2006. O'Reilly.

[3] Gorman, Mel. Understanding the Linux virtual memory manager. 2004. Prentice Hall.

[2] Comentário enviado por Dotti em 21/07/2006 - 22:09h

Ótimo artigo, e excelente comentário.
Sempre quis ver informações sobre sistemas de arquivos e não tinha tido oportunidade ainda, obrigado.

[3] Comentário enviado por forkd em 24/07/2006 - 00:17h

Fala Angelo!

Bom, com relação às observações feitas, tudo o que foi exposto no artigo foi exposto por alguma das referências. Neste caso, o interessante é verificar qual referência trouxe a informação e tentar entrar em contato com o(s) autor(es), para um esclarecimento ou uma correção da parte deles. No mais, agradeço pelo comentário extremamente construtivo!

Abração!

[4] Comentário enviado por rasxr3 em 25/07/2006 - 20:00h

Caro amigo, obrigado pela solidariedade de nos trazer infromações tão valiosas quanto raras. Este foi, sem sombra de dúvidas o melhor artigo que já li no VOL. Porém, existe um ponto incorreto no artigo além daqueles já apontados pelo amigo angeloshimabuko na seguinte parte do texto.

"2.1. Definição e primitivas
(...)
Para solucionar este problema, as partições estendidas foram concebidas. Este tipo de partição funciona quase como uma partição primária. A primeira grande diferença entre elas, segundo [Piropo 2006], é o fato de que partições estendidas não podem ser utilizadas para se inicializar o computador, portanto não podem conter os arquivos de inicialização de um sistema operacional.
(...)"

Na realidade, o problema é que o artigo citado data de agosto de 2005 (mais precisamente do dia 28). De lá pra cá alguns conceitos mudaram. Lembrando que o escritor em questão tem conhecimento de causa principalmente em Windows e OS2. O erro em questão é que existe sim a possibilidade de se iniciar um sistema GNU/Linux a partir de uma partição extendida. O mesmo não pode ser dito do Windows que precisa de uma partição primária para a instalação do ssitema. No aritgo citado ainda existem algumas informações desatualizadas como o fato de o ssitema operacional não conseguir utilizar as outras partições primárias, somente a utilizada no boot, o que é uma inverdade até para o próprio Windows.

Como disse, o erro parte da fonte e não do autor, e a esse cabe novamente elogiar pelo belo trabalho e pelas valiosas informações.

[5] Comentário enviado por forkd em 22/08/2006 - 01:41h

Poxa galera, fico muito feliz com o nível dos comentários. Isso é muito bom, não só pra mim, como pra todos aqueles que venham a ler o artigo! Seria legal se todas as discussões do VOL tivessem este nível!

Valew galera!

[6] Comentário enviado por elton.linux em 17/07/2007 - 15:46h

Realmente,

muito bom o nível de todo o tópico e comentários.

A única coisa desagradável foi esse assunto ter lembrado aulas de sistemas operacionais, cuja matéria quase peguei dependência semestre passado.


Estou instalando meu debian lenny com jfs.


Valeu
Abraço


[7] Comentário enviado por lucianomarques1 em 24/07/2007 - 16:42h

Gostei muito do seu artigo, gostaria de uma ajuda sua se fosse possível.

Reinstalei o Ubuntu 7.04 no meu micro no Domingo, criei a partiçãi hda1 (ext3), hda2 (reiserfs esta apenas para armazenar minhas músicas e outros) e hda3 (swap). Achei muito estranho o fato do Ubuntu não estar montando automáticamente minha partição hda2. Então postei uma pergunta mas não recebi uma resposta muito clara à respeito, segue abaixo o link da pergunta:

http://www.vivaolinux.com.br/perguntas/verPergunta.php?codigo=64465

Qualquer coisa, meu e-mail é lucianomarques1@msn.com

[ ]'s e desde já agradeço

Luciano - Barra do Piraí - RJ.

[8] Comentário enviado por forkd em 24/07/2007 - 19:33h

Fala Luciano!
Provavelmente não há a entrada para montagem desta partição no arquivo /etc/fstab. Verifique isto. Caso não tenha, a entrada seria uma linha como:

/dev/hda2 /mnt/musics ext3 defaults 1 2

Note que a segunda coluna (/mnt/musics) deve ser substituída pelo ponto de montagem da partição e a coluna ext3 deve ser substituída pelo seu sistema de aquivos.
Caso haja uma entrada para a partição hda2, envie o seu arquivo /etc/fstab pra mim, para que eu possa analisar melhor. :)

Só um detalhe: aqui não é lugar de postar dúvidas. Quando for assim, publique a sua pergunta e mande um email para alguém com a dúvida e o link da mesma.
Só uma questão de organização... ;)

Abraço!

[9] Comentário enviado por Teixeira em 02/07/2008 - 15:35h

Muito bom o artigo, e bastante abrangente.

As eventuais discrepâncias não são da parte do autor, conforme já comentado, e sim das fontes em decorrência de mudança de conceitos.

( Este artigo passa a fazer parte dos meus Favoritos ).

E por falar em conceitos, aproveito para chamar à atenção o fato de que
as pessoas sempre disseram estar formatando os HDS.

Isso é falso, pois a formatação se dá a nivel de VOLUME, e não a nível de DRIVE.

Dessa forma, o conceito de DRIVE C: somente é verdadeiro quando o HD tem um volume (=partição) único.
Isso é mera coincidência.

O certo seria dizer o VOLUME C: e não o DRIVE C:
O sistema operacional porém sempre tratou do assunto com o nome de VOLUME, mas sempre aceitamos essa história de drive, e esse conceito foi ficando em nossa mente.
Dá para entender, mas é uma falso entendimento.

A estrutura determinada pelo Linux ajuda a compreender melhor:

O drive de HD é representado geralmente por hda;
Cada partição Linux será hda1, hda2, etc.
Isso corresponde no Windows ao C:, D:, etc., sendo que nesse caso o drive de CD será a última letra disponível.

No Linux o drive de CD tem outra denominação (geralmente hdc) que não faz parte daquela mesma sequência.


[10] Comentário enviado por marcoaw em 10/02/2012 - 10:52h

Muito bom este artigo !!!

Parabéns tambem aos comentários acima !!!

Uma aula de Sistemas de Arquivos !!

Abraços a todos


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts