Espaço reservado para raiz em um sistema de arquivos - por quê?

96

Eu entendo que, por padrão, sistemas de arquivos recém-criados serão criados com 5% do espaço alocado para o root. Eu também sei que você pode alterar o espaço definido com:

tune2fs -m 1 /dev/sdXY

O que eu estou curioso, porém, é qual é o propósito real para este espaço reservado. Ela serve para algum propósito prático que merecesse mais de 5% de espaço em algumas circunstâncias?

O motivo pelo qual eu deparei com essa questão é que recentemente construímos um arquivador de 1TB, e não conseguimos entender por que um df -h nos deixou com 5% da nossa capacidade perdida.

    
por suitedupgeek 24.02.2011 / 12:03

4 respostas

92

Economizar espaço para processos importantes da raiz (e possíveis ações de resgate) é um dos motivos.

Mas há outro. O Ext3 é muito bom em evitar a fragmentação do sistema de arquivos, mas quando você fica acima de 95%, esse comportamento cai do precipício e, de repente, o desempenho do sistema de arquivos torna-se uma bagunça. Então, deixar 5% de reserva dá a você um buffer contra isso.

Ext4 deve ser melhor nisso, como explicado pelo desenvolvedor / guru do sistema de arquivos Linux Theodore Ts 'o :

If you set the reserved block count to zero, it won't affect performance much except if you run for long periods of time (with lots of file creates and deletes) while the filesystem is almost full (i.e., say above 95%), at which point you'll be subject to fragmentation problems. Ext4's multi-block allocator is much more fragmentation resistant, because it tries much harder to find contiguous blocks, so even if you don't enable the other ext4 features, you'll see better results simply mounting an ext3 filesystem using ext4 before the filesystem gets completely full.

If you are just using the filesystem for long-term archive, where files aren't changing very often (i.e., a huge mp3 or video store), it obviously won't matter.

    
por 24.02.2011 / 16:02
39

Se você permitir que outras pessoas façam logon no sistema, por meio do ssh, por exemplo, ter esses blocos de 5% reservados garante que os usuários externos não possam preencher o disco. Mesmo que você não permita que outras pessoas façam login no sistema, os blocos reservados impedem que programas não executados como root encham seu disco.

    
por 24.02.2011 / 12:20
19

Com os blocos reservados aos usuários e serviços que estão sendo executados como usuários específicos, em vez de executá-los como root, não é possível preencher um filesystsem e possivelmente quebrar outras coisas que precisam gravar no sistema de arquivos - embora os serviços executados como root ainda possam torná-lo completamente cheio de curso.

Ele também oferece algum espaço para trabalhar quando os usuários reclamam que o disco está cheio ou quando os serviços começam a falhar porque o sistema de arquivos está cheio. Por exemplo, você pode arquivar alguns arquivos em arquivos zip / gz / 7zip antes de removê-los (embora se o sistema de arquivos estivesse completamente cheio, é provável que você tenha algum outro sistema de arquivos disponível para criar o arquivo).

5% tem sido o padrão para um tempo longo , desde quando os discos eram bem menores (dezenas de megabytes, em vez de centenas de gigabytes), então 5% não eram muito. Felizmente, pode ser facilmente ajustado para uma porcentagem menor, como você diz, ou definido para um número específico de blocos se você usar a opção tune2fs -r em vez de -m . Em ambos os casos você pode dar um parâmetro de 0 para desativar a reserva completamente - eu não faria isso por / , /tmp , /var e assim por diante, mas você pode querer um sistema de arquivos que só atua como armazenamento do usuário (digamos, um compartilhamento de arquivos global) ou um que apenas mantém arquivos de tamanho fixo (como VMs de tamanho fixo) que só crescerão quando você criar um novo.

    
por 24.02.2011 / 15:47
19

O padrão de 5% é destinado a partições do sistema. Por exemplo, se o espaço em disco estiver cheio, os logs do sistema ( /var/log ) e a caixa de correio do root ( /var/mail/root ) ainda poderão receber informações importantes. Para uma partição de armazenamento de dados /home ou geral, não há necessidade de deixar espaço para o root. Para necessidades especiais, você pode alterar o usuário que recebe o espaço de emergência ( tune2fs -u 1234 ).

Há outro motivo para não permitir que um sistema de arquivos ext [234] fique cheio, o que é fragmentação .

    
por 24.02.2011 / 21:30