Linux - Ajuda, estou ficando sem inodes!

16

Eu tenho um sistema de arquivos que possui muitos arquivos pequenos. Atualmente, cerca de 80% dos inodes são usados (verifiquei com df -i ), no entanto, apenas 60% do espaço em disco é usado. Como posso 'aumentar' o número de inodes? Se fosse apenas espaço em disco, sei que poderia aumentar o tamanho do disco (esse disco está no LVM). Se eu aumentar o tamanho do disco, isso me fará ter mais inodes?

Estou disposto a aumentar o sistema de arquivos em que este disco está, se isso ajudar.

    
por Rory 11.02.2010 / 11:58

6 respostas

14

man mke2fs

Você verá um -N para o número de inodes

Assim, você pode especificá-lo quando formatar uma nova partição. Não é tão útil agora, né?

tune2fs, que ajusta o sistema de arquivos, parece não ter como adicionar mais inodes.

Mas talvez ext3 ou 4 façam isso, e outra pessoa saiba ....?

Agora, você tem uma opção: backup, reformatar a partição e restaurar.

    
por 11.02.2010 / 12:03
15

Para responder a pergunta original, mesmo que seja provavelmente tardio para o questionador - sim, aumentar o EXT2 / 3 no LVM2 também aumentará o limite de inodes.

Só tinha uma partição de tamanho 1G com limite de 65k inodes. Depois

lvextend -L+1G /dev/vg/var
umount /var
resize2fs /dev/vg/var
mount /var

... meu limite de inodes agora é 128k.

    
por 31.07.2011 / 18:08
12

Se você estava sabendo que arquivos pequenos consumirão seu espaço em disco, você deve ter usado um FS com alocação dinâmica de inode, como ReiserFS ou qualquer FS moderno (XFS, JFS) em vez de EXT2 / 3/4 (que eu assumo você está usando, você não disse isso).

Uma migração do sistema de arquivos é provavelmente uma boa opção na sua situação.

    
por 14.02.2010 / 17:24
3

Como um paliativo, monte um novo sistema de arquivos, e cp / rm / ln-s alguns de sua hierarquia fs lá. Agora você tem alguns inodes extras! Você não pode copiar arquivos entre os dois fses, então cuidado com as coisas que precisam fazer isso, mas para muitos aplicativos isso pode ser transparente.

Depois, faça um novo fs, de acordo com o conselho de Paulo, e migre para isso.

    
por 11.02.2010 / 13:11
2

O Ext4 sofre o mesmo problema, se você criar uma partição pequena e tiver uma tonelada de arquivos pequenos, ficará sem inodes e, se tiver flex_bg em recursos, não poderá usar tune2fs para aumentar os inodes.

Pessoalmente, eu usaria o ext4 sobre qualquer versão do rieserfs, apenas faça o seguinte ao formatar:

mkfs.ext4 -I 512 /dev/foo
tune2fs -i0 -c0 -o journal_data_writeback /dev/foo

A formatação dessa maneira fornecerá 33160 inodes em uma partição de inicialização de 512 M.

Eu digo isso como alguém que usou reiserfs por anos, o suporte do kernel não é tão bom quanto ext *, e o sistema de arquivos se fragmenta com o tempo e fica lento.

    
por 12.02.2011 / 14:48
0

Ir para resiserfs ou qualquer outro fs sem limitação de inode. Especialmente em relação aos arquivos de log, provavelmente você poderia empacotar alguns pequenos arquivos não usados em um arquivo tar maior para liberar uma quantidade considerável de inodes =)

$ find /path -iname "pattern" | xargs tar rvf output_file.tar
    
por 08.11.2014 / 17:11