Algumas das respostas anteriores fornecem ideias gerais sobre o que está acontecendo, mas vamos descobrir como fazer algo a respeito. Eu sei que você vai pensar como esse pedante, mas vamos começar com o tipo do seu sistema de arquivos e discutir cada um deles como vimos no Linux. O fato de sua pergunta estar marcada com o Linux é importante porque outros sistemas de arquivos * nix suportam muitos outros tipos. Não sou especialista nesses sistemas de arquivos individuais, mas posso entender rapidamente artigos detalhados o suficiente para atingir as partes importantes.
ext2 / ext3 / ext4
Oliver Diedrich escreveu um artigo intitulado " Ajustando o sistema de arquivos Linux " que faz alguns pontos muito importantes. Primeiro, esses sistemas de arquivos colocam os inodes em uma área reservada do disco que permite que eles sejam armazenados em cache e acessados rapidamente. O tamanho deste espaço é fixo no momento em que o sistema de arquivos é criado. Isso significa que, para aumentá-lo, você terá que a) espelhar os arquivos em outro sistema de arquivos de tamanho adequado e ter um período de comutação ou b) fazer backup do sistema de arquivos, recriá-lo corretamente e restaurar os arquivos.
Para descobrir como você está se comportando em um determinado sistema de arquivos, digamos / dev / sda1, use o comando debuge2fs -h
e procure por estas linhas sobre inodes. Meu sistema de arquivos tem cerca de 2,4% dos meus inodes em uso em um sistema de arquivos de 226GB com 100Gb em uso (disco raiz do Ubuntu).
Inode count: 15032320
Block count: 60113214
Reserved block count: 3005660
Free blocks: 32794380
Free inodes: 14658480
Outros disseram que quando os inodes se foram, eles se foram. E eles não estão brincando. Eu encontrei uma ferramenta chamada ext2resize que acabaria por oferecer esse recurso, mas o autor parece ter conseguido um trabalho do dia interessante que leva muito do seu tempo. Consulte as Perguntas frequentes . Não prenda a respiração por ext2 / 3/4 para suportar esse tipo de crescimento, já que a maioria dos membros do kernel e da comunidade de sistemas de arquivos acreditam que o trabalho realmente interessante está nos sistemas de arquivos de disco em estado sólido e em sistemas de arquivos em cluster. O material ext2 / 3/4 é antigo, mesmo que ext4 seja razoavelmente novo.
Outra observação interessante é que você pode tentar otimizar diretórios contendo muitos arquivos. Dado que você acha que vai ficar sem inodes, você provavelmente tem algumas listas de diretórios muito longas. tune2fs -O dir_index /dev/sda1
ativa a indexação b-tree em vez do modelo padrão de lista vinculada. Veja a man page de tune2fs ou O post de Steve no debian-administration.org .
Se você quiser refazer o sistema de arquivos com mais inodes, você terá que usar a opção mke2fs -N ___
para mke2fs (veja a página man e use debuge2fs
para o número computado padrão. Opcionalmente, você pode alterar o relação inode-para-blocos quando você faz o sistema de arquivos com a opção mke2fs -i ___
para mke2fs.Meu Ubuntu 10,04 distribuição vem com uma taxa padrão de 16384 ou, se eu ler isso corretamente, um, inodes de 256 bytes para cada 16384 blocos de dados (a 4KB cada) Sistemas de arquivos para leitores de notícias obtêm uma razão padrão de 4096 para 1, que é quatro vezes mais inodes.
Outros sistemas de arquivos
Os últimos três anos viram uma explosão de popularidade nos sistemas de arquivos. Muitos estão disponíveis no Linux, embora o popular ZFS esteja disponível apenas no Solaris e no FreeBSD da Sun. No Linux, você pode considerar explorar a Btrfs , o ReiserFS 3, < a href="http://oss.sgi.com/projects/xfs/" title="Página XFS da SGI"> XFS ou JFS . Existem também sistemas de arquivos comerciais que levam sua disponibilidade e escalabilidade para o coração, mas existem muitos, você terá que olhe aqui na Wikipedia.
Conclusões
Torne sua faixa do inode grande o suficiente no dia 1 para manipular sua contagem de arquivos ou mover para um sistema de arquivos que possa manipular a carga.