ext3

Origem: Wikipédia, a enciclopédia livre.


ext3
Desenvolvedor Stephen Tweedie
Nome completo Third extended file system
Lançamento novembro de 2001 (Linux 2.4.15)
Identificador da partição 0x83 (MBR)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
Estruturas
Conteúdos de diretório Tabela, hashed B-tree com dir_index ativado
Alocação de arquivos Mapa de bytes (espaço livre), tabela (metadados)
Blocos ruins Tabela
Limites
Tamanho Máximo de arquivo 16 GiB – 2 TiB
Número máximo de arquivos Variável, especificado no momento da criação[1]
Tamanho máximo do nome de arquivo 254 bytes
Tamanho máximo do volume 2 TiB – 32 TiB
Caracteres permitidos em nomes Todos bytes exceto NULL ('\0') e '/'
Recursos
Datas salvas modificação(mtime), modificação de atributos (ctime), acesso (atime)
Faixa de datas 14 de dezembro de 1901 - 18 de janeiro de 2038
Resolução de datas 1s
Bifurcações Não
Atributos No-atime, append-only, synchronous-write, no-dump, h-tree (directory), immutable, journal, secure-delete, top (directory), allow-undelete
Permissões de sistema de arquivos Permissões Unix, ACLs e atributos de segurança variáveis (Linux 2.6 e posteriores)
Compressão transparente Não
Criptografia transparente Não (fornecido no nível de dispositivo em bloco)
Armazenamento de caso único Não
Sistemas operativos suportados Baseados em Linux, BSD, Windows (através de um IFS)
Portal das Tecnologias de informação

ext3 (third extended filesystem, em português terceiro sistema de arquivos estendido) é um sistema de arquivos de journaling que normalmente é utilizado pelo núcleo do Linux. Costumava ser o sistema de arquivos padrão para muitas distribuições populares do Linux. Stephen Tweedie revelou pela primeira vez que estava trabalhando na extensão do ext2 no Journaling the Linux ext2fs Filesystem em um artigo de 1998 e, posteriormente, em uma publicação na lista de discussão do kernel em fevereiro de 1999. O sistema de arquivos foi fundido com o kernel Linux em novembro de 2001 a partir da versão 2.4.15.[2][3][4] Sua principal vantagem sobre o ext2 é o registro (journal), o que melhora a confiabilidade e elimina a necessidade de verificar o sistema de arquivos após um desligamento não limpo. Seu sucessor é o ext4.[5]

Journaling[editar | editar código-fonte]

A principal diferença entre o Ext2 e o Ext3 é a implementação do journaling, que consiste em um registro (log ou journal) de transações cuja finalidade é recuperar o sistema em caso de desligamento não programado.

Há três níveis de journaling disponíveis na implementação do Ext3:

  • Journal: os metadados e os dados (conteúdo) dos arquivos são escritos no journal antes de serem de fato escritos no sistema de arquivos principal. Isso aumenta a confiabilidade do sistema, porém com uma perda de desempenho, devido à necessidade dos dados serem escritos duas vezes no disco.
  • Writeback: os metadados são escritos no journal mas não o conteúdo dos arquivos. Essa opção permite um melhor desempenho em relação ao modo journal, porém introduz o risco de escrita fora de ordem onde, por exemplo, arquivos que são apensados durante um crash podem ter adicionados a eles trechos de lixo na próxima montagem.
  • Ordered: é como o writeback, mas força que a escrita do conteúdo dos arquivos seja feita após a marcação de seus metadados como escritos no journal. Esse é considerado um meio-termo aceitável entre confiabilidade e performance, sendo, portanto, o nível padrão.


Embora o seu desempenho (velocidade) seja menos atrativo que o de outros sistemas de arquivos (como ReiserFS e XFS), ele tem a importante vantagem de permitir que seja feita a atualização direta a partir de um sistema com ext2, sem a necessidade de realizar um backup e restaurar posteriormente os dados, bem como o menor consumo de processamento [1].

Enquanto em alguns contextos a falta de funções de sistemas de arquivos "modernos", como alocação dinâmica de inodes e estruturas de dados em árvore, poderia ser considerada uma desvantagem, em termos de "recuperabilidade" isso dá ao ext3 uma significante vantagem sobre sistemas de arquivos que as possuem. Os metadados do sistema de arquivos estão todos em locais fixos e bem conhecidos, e há certa redundância inerente à estrutura de dados, que permite que sistemas ext2 e ext3 sejam recuperáveis no caso de uma corrupção de dados significante, em que sistemas de arquivos em árvore não seriam recuperáveis.

Desvantagens[editar | editar código-fonte]

Funcionalidade[editar | editar código-fonte]

A estrutura da partição ext3 é semelhante à da ext2, pelo que a migração de um formato para o outro é simples. A adição do journaling é feita em um arquivo chamado .journal que fica oculto pelo código ext3 na partição (desta forma ele não poderá ser apagado, o que comprometeria o funcionamento do sistema). A estrutura idêntica da partição ext3 com a ext2 torna mais fácil a manutenção do sistema, já que todas as ferramentas para recuperação ext2 funcionarão sem problemas, sendo mesmo possível montar uma partição ext3 como se fosse ext2.

Como o ext3 visa uma grande compatibilidade com o ext2, muitas das estruturas on-disk são similares àquelas da ext2. Por causa disso, o ext3 não possui muitas das funções mais recentes como alocação dinâmica de inodes e tamanhos de blocos variáveis (fragmentos ou caudas).

Os sistemas de arquivos ext3 não podem ser checados enquanto são montados para escrita. Um dump do sistema de arquivos feito enquanto ele está sendo montado para leitura e escrita pode resultar em dados corrompidos dentro do arquivo de dump.

Desfragmentação[editar | editar código-fonte]

Não há uma ferramenta online de desfragmentação funcional em nível de sistema de arquivos. Um desfragmentador offline da ext2, e2defrag, existe mas requer que um sistema ext3 seja revertido previamente ao ext2. Mas, dependendo das funcionalidades ativadas no sistema de arquivos, o e2defrag pode destruir dados; ele não sabe lidar com muitas das novas funcionalidades do ext3.[6]

Recuperação (Undeletion)[editar | editar código-fonte]

Diferentemente do ext2, o ext3 zera os ponteiros de blocos nos inodes de arquivos apagados. Ele faz isso para simplificar o acesso de leitura e escrita quando o journal está sendo utilizado após uma montagem "suja". Isso, no entanto, previne efetivamente que os arquivos sejam recuperados. O único recurso do usuário é fazer um "grep" no disco rígido para buscar por dados que sejam sinalizadores de início/fim de arquivo. Isso provê uma remoção de arquivos um pouco mais segura que em sistemas ext2, o que pode ser tanto uma vantagem quanto uma desvantagem.

Compressão[editar | editar código-fonte]

Suporte a compressão transparente de dados (disponível como um patch extra-oficial para ext2) não está disponível no ext3.

O ext3 tem um tamanho máximo para arquivos e para o sistema de arquivos inteiro. Esses limites dependem do tamanho de bloco do sistema de arquivos; a tabela abaixo resume esses limites:[7]

Tamanho do bloco Tamanho máx. arquivo Tamanho máx. fs
1 KiB 16 GiB 2 TiB
2 KiB 256 GiB 8 TiB
4 KiB 2 TiB 16 TiB
8 KiB 2 TiB 32 TiB

O tamanho de bloco de 8 KiB está apenas disponível para arquiteturas (como a alpha) que permitem paginação de 8 KiB.

Ext4[editar | editar código-fonte]

Ver artigo principal: ext4

Uma versão aprimorada do sistema de arquivos foi lançada em 10 de Outubro de 2006 com o nome de ext4. Ela inclui várias novas funcionalidades.

Ver também[editar | editar código-fonte]

Notas[editar | editar código-fonte]

  1. O número máximo de inodes (e portanto o número máximo de arquivos e diretórios) é escolhido quando o sistema de arquivos é criado. Se V é o tamanho do volume em bytes, então o número padrão de inodes é dado por V/213 (ou o número de blocos, dependendo de qual for menor), e o mínimo por V/223. O padrão foi considerado suficiente para a maioria dos usos. O número máximo de subdiretórios em um diretório é fixado em 32000.
  2. Stephen C. Tweedie (maio de 1998). «Journaling the Linux ext2fs Filesystem» (PDF). Proceedings of the 4th Annual LinuxExpo, Durham, NC. Consultado em 23 de junho de 2007 
  3. Stephen C. Tweedie (17 de fevereiro de 1999). «Re: fsync on large files». Linux kernel mailing list 
  4. Rob Radez (23 de novembro de 2001). «2.4.15-final». Linux kernel mailing list 
  5. https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/ch-ext4.html
  6. Andreas Dilger. «Post to the ext3-users mailing list». ext3-users mailing list post 
  7. Matthew Wilcox. «Documentation/filesystems/ext2.txt». Linux kernel source documentation. Consultado em 28 de janeiro de 2007. Arquivado do original em 24 de agosto de 2007 

Referências[editar | editar código-fonte]

  1. MINGMING CAO et al. State of the art: where we are with the Ext3 filesystem. Proceedings of Ottawa Linux Symposium. 2005, v. 1, pp. 69–96. Disponível em <http://www.linuxsymposium.org/2005>. Acesso em 28 dez. 2008.
  2. TS'O, Theodore Y.; TWEEDIE, Stephen. Planned extensions to the Linux Ext2/Ext3 filesystem. Proceedings of Usenix 2002 Annual Technical Conference. 2002. pp. 235–244. Disponível em <http://e2fsprogs.sourceforge.net/extensions-ext23/extensions-ext23.pdf>. Acesso em 24 maio 2009.

Ligações externas[editar | editar código-fonte]