close

Ramal 4

Ir para a navegação Ir para a pesquisa
ramal 4
desenvolvedor Mingming Cao, Dave Kleikamp, ​​Alex Tomas, Andrew Morton e outros
Nome completo Quarto sistema de arquivos estendido
Sistemas operacionais suportados Linux
Introdução 10 de outubro de 2006 ( Linux 2.6.19)
identificador de partição 0x83 ( MBR )
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
estruturas
conteúdo do diretório Mesa, Árvore
localização de arquivo bitmap (espaço livre no bitmap), tabela (metadados)
blocos ruins Tabela
Limites
Dimensão máxima do arquivo 16 TiB (usando blocos de 4k)
Número máximo de arquivos 4 bilhões (4x10⁹) (especificado no momento da criação do sistema de arquivos)
Tamanho máximo do nome do arquivo 256 bytes
Tamanho máximo do volume 1024 PiB = 1 EiB
Caracteres permitidos em nomes de arquivos Todos os bytes exceto NULL e '/'
Caracteristicas
datas gravadas modificar (mtime), modificar atributo (ctime), acessar (atime), excluir (dtime), criar (crtime)
Período 14 de dezembro de 1901 - 25 de abril de 2514
garfos Não
atributos extensions, noextents, mballoc, nomballoc, delloc, nodelalloc, data=journal, data=ordered, data=writeback, commit=nrsec, orlov, oldalloc, user_xattr, nouser_xattr, acl, noacl, bsddf, minixdf, bh, nobh, journal_dev
Permissões de acesso a arquivos POSIX
compressão transparente Não
criptografia transparente Sim, desde o kernel Linux 4.1 (junho de 2015)

ext4 ( quarto sistema de arquivos estendido ) é um sistema de arquivos de journaling , anunciado em 10 de outubro de 2006 por Andrew Morton , como um aprimoramento compatível para ext3 . Em 25 de dezembro de 2008 foi lançado o kernel Linux 2.6.28 , que já remove a tag "experimental" do código ext4.

As principais melhorias são:

  • Suporte de volume até 1024 PiB .
  • Adicionado suporte de extensão .
  • Menor uso da CPU.
  • Melhorias na velocidade de leitura e escrita.

Melhorias

Sistema de arquivos grandes

O sistema de arquivos ext4 é capaz de lidar com volumes muito grandes, até 1 exbibyte [ 1 ] e arquivos de até 16 TiB de tamanho .

Extensões

Extensões foram introduzidas para substituir o esquema de blocos tradicional usado pelos sistemas de arquivos ext2/3. Uma extensão é um conjunto de blocos físicos contíguos, melhorando o desempenho ao trabalhar com arquivos grandes e reduzindo a fragmentação . Uma única extensão em ext4 é capaz de mapear até 128 MiB de espaço contíguo com um tamanho de bloco igual a 4 KiB. [ 2 ]

Compatibilidade com versões anteriores

Qualquer sistema ext3 existente pode ser montado como ext4 sem a necessidade de alterações no formato do disco. Também é possível atualizar um sistema de arquivos ext3 para obter os benefícios do ext4 executando alguns comandos. Isso significa que você pode melhorar o desempenho, os limites de armazenamento e os recursos dos sistemas de arquivos ext3 sem reformatar e/ou reinstalar o sistema operacional . Se os benefícios do ext4 forem necessários em um sistema de produção, o sistema de arquivos poderá ser atualizado. O procedimento é seguro e não há risco para os dados (embora seja sempre recomendado fazer um backup das informações críticas). O Ext4 usará a nova estrutura de dados apenas para as novas informações. A estrutura antiga será preservada sem modificação e será possível lê-la e/ou modificá-la quando necessário. Isso significa que se você converter um sistema de arquivos para ext4, não poderá voltar para ext3 novamente. [ 3 ]

O uso de extensões é corrigido por padrão desde a versão 2.6.23 do kernel. Anteriormente, essa opção precisava ser habilitada explicitamente (por exemplo mount /dev/sda1 /mnt/point -t ext4dev -o extents).

Alocação persistente de espaço em disco

O sistema de arquivos ext4 permite a reserva de espaço em disco para um arquivo. Até agora, a metodologia consistia em preencher o arquivo no disco com zeros no momento de sua criação. Essa técnica não é mais necessária com ext4, pois uma nova chamada de sistema "preallocate()" foi adicionada ao kernel do Linux para uso por sistemas de arquivos que permitem essa função. O espaço reservado para esses arquivos será garantido e provavelmente será contíguo. Esse recurso possui aplicativos e bancos de dados de streaming úteis.

Alocação atrasada de espaço em disco

O Ext4 faz uso de uma técnica de aprimoramento de desempenho chamada Allocate-on-flush , também conhecida como alocação de memória atrasada . Consiste em retardar a reserva de blocos de memória até que a informação esteja prestes a ser gravada em disco, diferentemente de outros sistemas de arquivos, que reservam os blocos necessários antes dessa etapa. Isso melhora o desempenho e reduz a fragmentação , melhorando as decisões de alocação de memória com base no tamanho real do arquivo.

Limite de 32.000 subdiretórios excedidos

Em ext3 o nível de profundidade de subdiretório permitido era limitado a 32.000. Este limite foi aumentado para 64.000 em ext4, permitindo inclusive ultrapassar este limite (usando "dir_nlink"). Para permitir um desempenho contínuo, dada a possibilidade de diretórios muito maiores, o htree é habilitado por padrão no ext4. Esta função é implementada desde a versão 2.6.23. htree também está disponível em ext3 quando a função dir_index está habilitada.

Soma de verificação do diário

O Ext4 usa somas de verificação de log para melhorar a confiabilidade, já que o diário é um dos arquivos mais usados ​​no disco. Esse recurso tem um efeito colateral benéfico: permite evitar com segurança uma leitura/gravação de disco durante o processo de registro no diário, melhorando um pouco o desempenho. A técnica de soma de verificação de periódicos é inspirada em pesquisas da Universidade de Wisconsin sobre sistemas de arquivos IRON (Seção 6, sob o nome "soma de verificação de transação"). [ 4 ]

Desfragmentação online

Mesmo usando várias técnicas para evitar a fragmentação, um sistema de vida longa tende a se fragmentar com o tempo. O Ext4 possui uma ferramenta que permite desfragmentar arquivos individuais ou sistemas de arquivos inteiros sem desmontar o disco. [ 5 ]

Image
comparação entre ext3 e ext4.

Verificação mais rápida do sistema de arquivos

No ext4, os grupos de blocos não alocados e as seções da tabela de inodes são marcados como tal. Isso permite que o e2fsck ignore-os completamente em suas verificações e reduz muito o tempo necessário para verificar um sistema de arquivos do tamanho para o qual o ext4 é classificado. Esta função é implementada desde a versão 2.6.24 do kernel Linux.

Alocador multibloco

O Ext4 aloca vários blocos para um arquivo em uma única operação, o que reduz a fragmentação ao tentar escolher blocos contíguos no disco. O alocador multibloco está ativo quando 0_DIRECT é usado ou se a alocação atrasada estiver ativa. Isso permite que o arquivo tenha vários blocos "sujos" solicitados para gravação ao mesmo tempo, em oposição ao mecanismo de solicitação do kernel atual de enviar cada bloco ao sistema de arquivos separadamente para alocação.

Timestamps melhorados

À medida que os computadores em geral se tornam mais rápidos e o Linux se torna mais amplamente utilizado em aplicativos críticos, a granularidade dos carimbos de data e hora com base em segundos está se tornando insuficiente. Para resolver isso, ext4 terá timestamps medidos em nanossegundos. Este recurso está atualmente implementado no kernel versão 2.6.23. Além disso, 2 bits do timestamp estendido foram adicionados aos bits mais significativos do campo de segundos dos timestamps para atrasar o problema do ano 2038 em quase 500 anos .

Opções de montagem

Padrão

Opção Caracteristicas
data=ordenado Todos os dados são forçados a sair do sistema de arquivos principal antes de serem vinculados aos metadados do diário
commit=nrsec Você pode dizer ao ext3 para sincronizar todos os dados e metadados a cada "nrsec" segundos. O valor padrão é 5 segundos. Isso significa que, se houver uma falha de energia, no máximo 5 segundos de trabalho serão perdidos (o sistema de arquivos não será danificado graças ao journaling). Esse valor padrão (ou qualquer valor inferior) afetará o desempenho, mas é adequado para proteger seus dados. Quanto maior o número, melhor o desempenho do sistema. Defini-lo como 0 terá o mesmo efeito que o valor padrão.
1(*)> Habilite/desabilite o uso de barreiras no código jbd. Barrier= 0 desabilita, Barrier = 1 habilita. Ele também requer um IO que suporte barreiras, e se o jbd pegar um erro ao escrever em uma barreira, ele será desabilitado com um aviso...
orlov Esta opção habilita o novo sistema de alocação de blocos de disco rígido Orlov.
bsdf Faz o comando "df" funcionar como nos sistemas BSD.
data_err=ignorar Ele só exibe uma mensagem de erro se ocorreu um erro em um buffer de arquivo no modo "ordenado".
nogrpid/sysvgroups Dá aos objetos o mesmo ID de grupo que seu criador.
bh/nobh Ext3 mapeia as cabeças do buffer para as páginas de dados já
  • Informações de mapeamento de cache.
  • Link para páginas em transações para garantir a ordem.
    • A opção "bh" força o sistema a usar cabeças de buffer.
    • A opção "nobh" tenta evitar a ligação de cabeças de buffer (disponível apenas para o modo "writeback").
dellloc Adiar a escrita do bloco até que o tempo de escrita seja alcançado.

Não por padrão

Opção Caracteristicas
rio Permitir somente leitura
journal_checksum Arquivos de somas de verificação para melhorar sua confiabilidade.
journal_async_commit Adicione de forma assíncrona as somas de verificação dos arquivos.
diário=atualizar Atualize o diário do sistema de arquivos ext3 para o formato atual.
journal_dev=devnum Quando os valores mínimo e/ou máximo do diário do dispositivo externo mudam, esta opção permite que o usuário especifique o novo local do diário. O dispositivo "journal" é identificado por seus novos números mínimos e máximos codificados em "devnum".
sem carga Não carrega o diário ao montar a unidade.
dados=diário Todos os dados são inseridos no "diário" antes de começar a gravar no sistema de arquivos principal.
dados = write-back A ordem dos dados não é salva, os dados podem ser gravados no sistema de arquivos principal após seus metadados serem inseridos no diário.
oldalloc Esta opção desativa o sistema de alocação de blocos de disco rígido "Orlov".
user_xattr Habilite "Atributos de usuário estendidos". Você também deve ter a opção de atributos estendidos do kernel habilitada (CONFIG_EXT3_FS_XATTR).
nouser_xattr. Desative "Atributos de usuário estendidos".
acl Ativa o suporte a POSIX "Lista de controle de acesso". Você também precisará ter o suporte ACL habilitado no kernel (CONFIG_EXT3_FS_POSIX_ACL)
noacl Desativa o suporte a POSIX "Lista de controle de acesso".
reserva reserva de inode
reserva Sem reserva de inodes
minixdf Faz o "df" agir como nos sistemas Minix.
depuração As informações sobre programas de depuração são enviadas para o log do sistema (syslog).
erros=remontar-ro Quando um erro é encontrado, o computador monta o sistema como somente leitura.
erros=continuar Quando um erro é encontrado, o computador continua a funcionar.
erros=pânico Quando um erro é encontrado, o computador entra em estado de "pânico", parando o sistema.
data_err=abortar Aborta o diário se ocorrer um erro em um buffer de arquivo no modo classificado.
grpid/bsdgroups Dá aos objetos o mesmo ID de grupo que seu criador.
resgid=n O ID do grupo que os blocos reservados devem usar.
currículo=n O ID do usuário que os blocos reservados devem usar.
sb=n Use superblocos alternativos na posição "n".
contingente
sem cota
grquota
usrquota
listra=n Número de blocos do sistema de arquivos que o mballoc (alocador de vários blocos) tentará usar para dimensionamento e alinhamento. Para sistemas RAID 5 ou 6, deve ser o número de discos de dados.
max_batch_time=usec
min_batch_time=usec
journal_ioprio=prio A prioridade de E/S (de 0 a 7, onde 0 é a prioridade mais alta) que será usada pelas operações de entrada e saída fornecidas por "kjournald2" durante uma operação de upload. Por padrão é 3.

Referências

  1. ^ "Migrando para Ext4" . Arquivado a partir do original em 1 de dezembro de 2008 . Recuperado em 14 de dezembro de 2008 . 
  2. ^ "Visão geral do Ext4" . Recuperado em 15 de janeiro de 2008 .   ( link quebrado disponível no Internet Archive ; veja histórico , primeira e última versão ).
  3. Ext4 Howto
  4. Vijayan Prabhakaran, et al . Sistemas de arquivos IRON (PDF) . Departamento de CS, Universidade de Wisconsin. 
  5. http://kernelnewbies.org/Ext4#head-38e6ac2b5f58f10989d72386e6f9cc2ef7217fb0

Veja também