Ext4: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
m Foram revertidas as edições de 189.31.102.182 para a última revisão de Zoldyick, de 21h25min de 2 de abril de 2015 (UTC)
m -vandalismo. +correções automáticas (v0.38/3.1.35)
Linha 1:
{{Info/Sistema de Arquivos
| nome = ext4 miojãoEXT4
| nome_completo = Fourth extended file system
| desenvolvedor = Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, [[Theodore Ts'o]], Eric Sandeen, Sam Naghshineh, outros
Linha 26:
| SO = Baseados em [[Linux (núcleo)|Linux]]
}}
 
O '''Ext4''' é um [[sistema de ficheiros|sistema de arquivos]] do [[Linux (núcleo)|Linux]] desenvolvido para ser o sucessor do [[Ext3]] a partir de 2006.
 
== História ==
Em 28 de junho de 2006, Theodore Y. "Ted" Ts'o propôs <ref>[http://lkml.indiana.edu/hypermail/linux/kernel/0606.3/2205.html]</ref> a bifurcação (''fork'') do desenvolvimento do Ext3. Esse passo foi necessário para atender às discussões em torno da evolução do Ext3. Mingming Cao, dentre outros, citou a limitação desse sistema de arquivos por causa do uso de variáveis de 32 bits e indicou que já havia esforços para aumentar o tamanho daquelas variáveis para 48 bits<ref>[http://lkml.indiana.edu/hypermail/linux/kernel/0606.1/0268.html]</ref>. O Ext4 foi incluído (marcado como "em desenvolvimento") no Linux 2.6.19<ref name="núcleo">http://www.kernel.org/pub/linux/kernel/v2.6/</ref>. Em 11 de Outubro de 2008, os patches que marcam o ext4 como códigos estáveis foram mesclados em repositórios de código de fonte do Linux 2.6.28, que denota o fim da fase de desenvolvimento e recomenda a adoção do ext4.
 
Mathur ''et al'' [2007], no "Ottawa Linux Symposium" de 2007, descreveram as principais características a serem implementadas no Ext4, e mostraram a razão de não desenvolverem um sistema de arquivos inteiramente novo pela compatibilidade com o Ext3, por causa de sua base já instalada.
Linha 36 ⟶ 35:
O Ext3 suporta sistemas de arquivos com tamanho menor que 16 TiB, usando blocos de 4 KiB (2<sup>12</sup> bytes). Esse limite é definido por uma variável de 32 bits no superbloco, o valor máximo suportado exato é de (2<sup>32</sup>-1) * 2<sup>12</sup> bytes. O tamanho de arquivo é limitado por uma variável de 32 bits no nó-i, um contador de setores, daí a limitação em ~2 TiB ((2<sup>32</sup> - 1) * 512 bytes). [MATHUR ''et al'', 2007]
 
A primeira providência para aumentar aqueles valores foram:
(i) aumentar o contador de blocos no superbloco para 64 bits, isso permitiria um sistema de arquivos com ~64 ZiB (~2<sup>76</sup> bytes = ~2<sup>64</sup> * 2<sup>12</sup> bytes).
(ii) alterar a contagem de setores para blocos no nó-i, permitindo arquivos com até ~16 TiB ((2<sup>32</sup>-1) * 2<sup>12</sup> bytes).
 
Entretanto, o limite para o tamanho do volume é determinado pela alocação de espaço, que no Ext4 é definido por extensões, que usam 48 bits [MATHUR ''et al'', 2007], o limite para o volume é de ~1 EiB ((</sup>2<sup>48</sup>-1) * 2<sup>12</sup> bytes).
 
A partir do Linux 2.6.25<ref name="núcleo" />, em 2008, foram adicionados 16 bits ao contador de blocos do arquivo, no nó-i. Assim um arquivo no Ext4 tem um limite atual de ~1 EiB, o mesmo do volume.
 
== Funcionalidades ==
As novas funcionalidades propostas são: alocação tardia (''delayed allocation''); [[marca temporal|marcas temporais]] com maior resolução (nanossegundos)<ref>''[http://www.uwsg.iu.edu/hypermail/linux/kernel/0606.3/2205.html Proposal and plan for ext2/3 future development work]''</ref>; verificação de integridade do ''journal'' (''journal checksums''); suporte para tamanhos maiores de volumes e arquivos <ref>''[http://www.uwsg.iu.edu/hypermail/linux/kernel/0606.1/0268.html Extents and 48bit ext3]''</ref>.
mais extensões são introduzidas,compatibilidade com versões anteriores, pré alocação, mais rápido sistema de arquivo de verificação, alocador multibloco, melhor timestamps.
 
Deixa de existir um limite de sub-diretórios no ext4<ref>''[http://kernelnewbies.org/Ext4#head-97cbed179e6bcc48e47e645e06b95205ea832a68 Ext4 @ kernelnewbies.org]''</ref>.
 
Linha 63:
'''Extensões'''
 
As extensões são introduzidas para substituir o tradicional bloco de mapeamento de esquema usado por arquivos ext2/3.Uma extensão é um conjunto de blocos contíguos físico, melhorando o desempenho de muitos arquivos e redução de fragmentação. Uma única extensão em ext4 pode mapear até 128MB de espaço contíguo com um bloco de 4 KB de tamanho. Quando há mais de 4 extensões em um arquivo, o resto das extensões são indexadas em um three.
 
'''Compatibilidade com versões anteriores'''
 
O sistema de arquivos ext4 é compatível com o ext3 e ext2
Isto irá melhorar o desempenho já ligeiramente, porque alguns novos recursos do ext4 também pode ser usado com ext3 e ext2, tal como o novo algoritmo de alocação de blocos.
 
Linha 73:
 
O sistema de arquivos ext4 permite pré-alocação de espaço em disco para um arquivo.
 
Um novo fallocate () chamada de sistema foi adicionado ao Linux para uso de sistemas de arquivos, incluindo ext4 e XFS, que têm essa capacidade.
 
Linha 85 ⟶ 86:
'''Melhor timestamps'''
 
Ext4 também adiciona suporte para a data-criado timestamps. Mas, como Theodore Ts'o salienta, ao mesmo tempo que é fácil de adicionar um campo data de criação extra no inode (portanto, tecnicamente permitindo suporte para data criada timestamps em ext4), é mais difícil de modificar ou adicionar o necessário sistema de chamadas, como stat () (que provavelmente exigiria uma nova versão), e as várias bibliotecas que dependem deles (como glibc ). Estas alterações exigem a coordenação de vários projetos. Portanto, mesmo se ext4 desenvolvedores implementar o suporte inicial para a data de criação de carimbos, esse recurso não estará disponível para programas de usuário para agora.
 
== Desvantagens ==
'''
Alocação tardia e potencial perda de dados'''
 
Como as mudanças de alocação atrasada que os programadores têm contado com o ext3, o recurso representa algum risco adicional de perda de dados nos casos em que o sistema trava antes que todos os dados tenham sido gravados no disco. Devido a isto, o ext4, na versão 2.6.30 do Linux, detecta automaticamente esses casos e reverte para o comportamento antigo.
 
O cenário típico em que isso pode ocorrer é um programa que substitui o conteúdo de um arquivo sem forçar uma gravação para o disco com fsync. Existem duas maneiras comuns de substituir o conteúdo de um arquivo em sistemas Unix:
 
'''open ("file", O_TRUNC), write (fd, data); close (fd);'''
Neste caso, um arquivo existente é truncado no momento da abertura (devido a O_TRUNC flag), então os novos dados são gravados. Desde a gravação pode demorar algum tempo, há uma oportunidade de perder o conteúdo mesmo com ext3, mas geralmente muito pequena. No entanto, porque o ext4 pode atrasar a atribuição arquivo de dados por um longo tempo, essa oportunidade é muito maior.
 
'''open ("File.New"); write (fd, dados); close (fd); rename ("File.New", "arquivo");'''
Um novo arquivo temporário ("File.New") é criado, inicialmente, que contém o novo conteúdo. Em seguida, o novo arquivo é renomeado sobre o antigo. A troca de arquivos pela "chamada" renomear é garantido para ser atômica por POSIX normas - ou seja, tanto o antigo arquivo continua, ou é substituído por um novo. Como o padrão ext3 "ordenada" journalling garantias modo de arquivo de dados são gravados no disco antes de metadados, isto garante que a técnica seja a idade ou o conteúdo do arquivo novo irá persistir no disco ext4 de alocação atrasada quebra essa expectativa, porque o arquivo de escrever pode ser adiado por um longo tempo, e mudar o nome é normalmente realizada antes de conteúdo novo arquivo chegar ao disco.
 
Usando fsync com mais freqüência para reduzir o risco para o ext4 pode levar a sanções graves desempenho em ext3 montado com a data=ordered bandeira (o padrão na maioria das distribuições Linux. Em resposta, o ext4 no Linux 2.6.30 e versões mais recentes detecta a ocorrência destes casos comuns e força os arquivos a serem atribuídos de imediato. Por um pequeno custo de performance, isso fornece semântica semelhante ao ext3 modo ordenado e aumenta a chance que tanto a versão do arquivo vai sobreviver ao Os novos patches tornaram-se parte do Linux ''mainline'' 2.6.30.
 
== Referências ==
Atencao: Referencias nao mais disponiveis...
 
Linha 110 ⟶ 113:
MATHUR, Avantika, ''et al''. '''The new ext4 filesystem''': current status and future plans. Proceedings of the Linux Symposium—Ottawa, Canada. 2007. Disponível em <https://ols2006.108.redhat.com/2007/Reprints/mathur-Reprint.pdf>. Acesso em 02 out. 2007.
 
=={{ Ver também}} ==
* [[Ext2]]
* [[Ext3]]
Linha 119 ⟶ 122:
* [[Btrfs]]
 
{{referênciasReferências|Notas}}
 
=={{ Ligações externas}} ==
* {{en}} ''[http://fedoraproject.org/wiki/ext3-devel EXT3 Filesystem Extents/64bit Project]''
* {{en}} ''[http://www.ibm.com/developerworks/linux/library/l-ext4/?ca=dgr-lnxw01LinuxFSext4&S_TACT=105AGX59&S_CMP=GR Migrating to ext4]''
Linha 130 ⟶ 133:
* [http://www.guiadohardware.net/artigos/ext4/ Conhecendo o novo Ext4 @ guiadohardware.net]
 
{{esboço-informática}}
{{Portal Linux}}
 
{{esboço-informática}}
 
[[Categoria:Software de 2008]]