O que não precisa de desfragmentação? Linux ou o ext2 ext3 FS?

32

Por que você não precisa desfragmentar um sistema Linux? Porque está usando o sistema de arquivos ext2 / ext3 ou porque é Linux?

Isso é relevante, pois eu tenho um sistema de inicialização dupla (W7 / Ubuntu) e uma partição comum (NTFS) que pode ser acessada pelos dois sistemas. Se eu estiver usando esta partição com o Linux, ela será fragmentada?

Outra questão são os contêineres Truecrypt. Eu também os acesso com Linux e Windows, e eles são FAT32. Eles ficam fragmentados pelo Linux operando neles?

xyz
fonte
2
As outras respostas são boas, mas deixam de fora um pouco importante: Todos os sistemas de arquivos: ext2 / 3/4 e NTFS fragmentarão bastante os arquivos quando houver pouco espaço em disco. Se você deseja impedir a fragmentação, não permita que o uso do sistema de arquivos exceda 90%.
Zan Lynx
1
Se você usa o ext4, ficará surpreso ao ver quanta fragmentação você pode ter ao executar e4defrag -v .em uma árvore de diretórios, especialmente se ela contém, por exemplo, arquivos baixados com um cliente de torrent (embora alguns usem fallocate/ posix_fallocate).
Rbrito 16/05
Embora a questão esteja sujeita a opinião pessoal, acho que se baseia mais em fatos reais.
Julie Pelletier

Respostas:

27

Aqui está um artigo sobre How To Geek sobre como o ext2 / ext3 aloca arquivos no disco. E eles também têm um artigo perguntando " Você realmente precisa desfragmentar ?"


Por que o FAT se fragmenta:

"Quando você salva um arquivo em um sistema de arquivos FAT, [o arquivo é salvo] o mais próximo possível do início do disco. Quando você salva um segundo arquivo, [o arquivo é salvo] logo após o primeiro arquivo - e assim Quando os arquivos originais aumentam de tamanho, eles sempre ficam fragmentados. Não há espaço nas proximidades para eles crescerem. "
-Como Fazer Geek

E wikipedia tem mais informações sobre a fragmentação do FAT .

Sobre como EXT2,3,4 aloca arquivos:

"sistemas de arquivos ext2, ext3 e ext4 [...] alocam arquivos de uma maneira mais inteligente. Em vez de colocar vários arquivos próximos um do outro no disco rígido, os sistemas de arquivos Linux espalham arquivos diferentes por todo o disco, deixando uma grande quantidade de espaço livre entre eles ".
-Como Fazer Geek

(E mais informações sobre desfragmentação no ext3, da wikipedia )

"Os modernos sistemas de arquivos Linux mantêm a fragmentação no mínimo, mantendo todos os blocos em um arquivo juntos, mesmo que não possam ser armazenados em setores consecutivos. Alguns sistemas de arquivos, como ext3, alocam efetivamente o bloco livre mais próximo de outro blocos em um arquivo. Portanto, não é necessário se preocupar com a fragmentação em um sistema Linux ".
- TLDP

dougBTV
fonte
4
Ótima resposta! Mas você deve colocar um pouco mais de conteúdo. A idéia é que qualquer resposta no StackExchange deve ser suficiente por si só. Se os links de suas perguntas forem quebrados, sua resposta não será de nenhuma ajuda, portanto, você deve dar uma explicação suficiente em sua postagem e fornecer os links para uma leitura mais aprofundada.
Lgeorget #
1
Obrigado @lgeorget - Eu desenvolvi a resposta com algumas citações de direção, para que sempre haja algum conteúdo para ler sobre o "porquê". Agradeço sua opinião / crítica construtiva !!
DougBTV
"Quando você salva um arquivo em um sistema de arquivos FAT, ele salva". Não faz sentido. O que é isso"? FAT é um formato de sistema de arquivos. Ele descreve onde você pode salvar, mas não o limita a um único local. De fato, o sistema operacional decide. Mas existem muitos sistemas operacionais diferentes que podem gravar no FAT, e cada um toma sua própria decisão.
MSalters
@MSalters - concordou. Vou editar a seção citada para omitir essa imprecisão.
DougBTV 13/05
A vaga está apenas oculta agora. A declaração ainda é bastante absoluta (onde "FAT" salva), enquanto toda a especificação FAT não diz isso. De fato, o link da Wikipedia que você cita diretamente o contradiz: diz especificamente que o Windows escolhe o local para o segundo arquivo, não diretamente após o primeiro arquivo. ( "seleccionando grandes áreas contíguas de antecedência")
MSalters
23

A fragmentação é sempre uma preocupação, independentemente do sistema de arquivos. O Ext3 / Ext2, no entanto, minimizou o problema a ponto de a maioria dos administradores simplesmente operar como se não fosse uma preocupação. Isso é minimizado pelo uso de um planejador de E / S competente e pelo sistema de arquivos deixando espaço à direita após cada arquivo para acomodar o crescimento. Além disso, fragmentos adicionais são armazenados mais próximos, mesmo quando há fragmentação, os efeitos são severamente silenciados. A mudança do Ext4 para extensões também teve como objetivo ajudar a mitigar a fragmentação ainda mais.

Ainda existe fragmentação, o ext2 tinha uma ferramenta de desfragmentação offline, o ext4 está obtendo um online e o btrfs (apenas porque está relacionado à pergunta) já possui um desfragmentador online. Se você estiver no ext3, sua única opção real é converter para ext4 (via tune2fs) ou tentar ver quanta sorte você tem com as ferramentas de espaço do usuário, comoshake .

Dependendo do tipo de E / S pelo qual seu sistema de arquivos está passando, ainda pode ser uma preocupação, mesmo no nível silencioso, e é por isso que as ferramentas online foram consideradas úteis para começar.

Para a pergunta sobre o FAT32, a fragmentação não ocorre quando você apenas opera em um arquivo, acontece quando você escreve no arquivo. Para responder sua pergunta diretamente, a fragmentação é um aspecto do design do sistema de arquivos; portanto, o sistema de arquivos FAT32 tem potencial para fragmentação sempre que você escrever algo nele.

Bratchley
fonte
"Isso é minimizado pelo uso do agendador de E / S competente". Há algo não muito certo com essa frase.
Faheem Mitha 28/03
Obrigado por capturar isso. É meio ruim revisar meu idioma sem corrigir nenhum problema causado pela revisão com a gramática geral da frase do parágrafo.
Bratchley
Esta é uma boa resposta. Eu adicionaria algo sobre o CoW (cópia na gravação). Ele tem uma estreita relação com se o fs é fragmentado.
Martin Sugioarto
4

Respondendo às suas perguntas, uma por uma:

Por que você não precisa desfragmentar um sistema Linux? Porque está usando o sistema de arquivos ext2 / ext3 ou porque é Linux?

Como o ext2 / 3/4 tem uma abordagem diferente sobre os arquivos e pastas, eles quase não são fragmentados. Outros já responderam e você pode ler mais detalhes aqui

Isso é relevante, porque você tem um sistema de inicialização dupla (W7 / Ubuntu) e uma partição comum (NTFS) que pode ser acessada pelos dois sistemas. Se eu estiver usando esta partição com o Linux, ela será fragmentada?

Sim, pode ficar fragmentado. Não importa se o Windows ou Linux ou qualquer outra coisa está acessando, é como cada sistema de arquivos lida com o tamanho do arquivo, como armazena todos esses blocos, se deixa espaços vazios entre cada arquivo ...

Outra questão são os contêineres Truecrypt. Eu também os acesso com Linux e Windows, e eles são FAT32. Eles ficam fragmentados pelo Linux operando neles?

Os contêineres Truecrypt são um arquivo, para todos os assuntos práticos. Ao criar um contêiner usando TrueCrypt, você está criando um arquivo do tamanho que escolher. Para o seu sistema operacional, é como qualquer outro arquivo. Se você fizer cópias, etc., talvez as cópias possam acabar sendo salvas fragmentadas.

Mas lembre-se de que nunca é bom ter várias cópias do mesmo contêiner; isso pode ajudar a reduzir a segurança dele. Sempre faça um novo recipiente.

Quando você salva, exclui, copia, move, etc, arquivos dentro do contêiner, os sistemas operacionais não sabem disso, é o mesmo que abrir, editar e salvar qualquer outro arquivo, sem alterar seu tamanho.

E se você estiver preocupado com a segurança do truecrypt sobre a fragmentação, faça uma pesquisa sobre o uso do truecrypt com SSDs: como o SSD tenta aumentar o desgaste de toda a memória nele, você pode ter o mesmo efeito de copiar o contêiner.

woliveirajr
fonte
3

No final, tudo se resume aos drivers do sistema de arquivos no sistema operacional.

Os sistemas de arquivos ext2 e FAT são os dois métodos para registrar quais blocos no disco pertencem a qual arquivo. Quando nem todos os blocos de um arquivo são contíguos, o arquivo é chamado fragmentado. Mas, como deveria ser óbvio, a fragmentação é causada pela estratégia de alocação de bloco ao gravar um arquivo, não pela maneira como você registra esses blocos.

O que faz a diferença é a distância que os drivers do sistema de arquivos podem ter. Se o driver souber que há mais 10 blocos para escrever, ele poderá selecionar uma área livre contígua e evitar fragmentação futura. Isso depende da arquitetura do driver, que é específica do sistema operacional. Mas a mesma pesquisa de espaço livre exata pode ser feita no FAT e ext2.

De fato, ext2 e FAT não são tão diferentes quanto você imagina. Eu escrevi a parte ext2 de um gerenciador de inicialização em cima do código FAT existente, e isso exigiu menos de 100 linhas extras de código.

MSalters
fonte