Um amigo meu que gosta de programar no ambiente Linux, mas não sabe muito sobre a administração do Linux, recentemente encontrou um problema em que seu SO (Ubuntu) estava relatando "falta de espaço em disco no volume XXX". Mas quando ele foi verificar o volume, ainda havia 700 GB. Depois de muito tempo perdido, ele conseguiu descobrir que estava sem inodes. (Ele estava armazenando muitas pequenas atualizações incrementais de um sistema de backup neste volume e gravando todos os seus inodes.)
Ele me perguntou por que o kernel do Linux relatou a mensagem de erro ("espaço insuficiente em disco") em vez de informar adequadamente ("falta de inodes"). Eu não sabia, então pensei em pedir ao StackExchange.
Alguém sabe por que isso acontece? e por que não foi corrigido depois de todos esses anos? (Lembro-me de um amigo diferente me falando sobre esse problema em 1995.)
fonte
ext4
aloca inodes no momento da criação do fs como ext2 / 3 e não pode ser modificado posteriormente.Suponho que seu amigo esteja usando um ext fs, porque é um dos poucos fs sensíveis que podem ficar sem inodes.
Parece que seu amigo mexeu com seu sistema de arquivos e o quebrou ou tem um volume ridiculamente grande de vários TB. Os inodes não são uma coisa de usar uma vez e jogar fora. Se ele realmente ficou sem inodes, significa que ele tem muitos arquivos e diretórios ridiculamente ... o que pode acontecer em um volume> 4 TB (palpite), onde "apenas" 700 GB são gratuitos. Para a família ext de fs, o número de inodes é determinado quando o fs é criado. Na
mkfs.ext4
página do manual:Para encurtar o restante desta resposta: Isso significa que
mkfs
é fornecido com essa proporção ou assumirá uma. Se seu amigo usa o fs de maneira diferente do que se supõe, a proporção escolhida pode estar errada para o caso de uso dele e ele receber esse erro ... preencher um único volume multi-TB com toneladas de arquivos pequenos pode contar como tal.Seu amigo usa algum ambiente de área de trabalho que implementa o conceito de "lixeira" para arquivos ou quaisquer outras formas de backup que possam criar grandes quantidades de arquivos? Talvez ele possa resolver seu problema simplesmente se livrando de arquivos desnecessários.
Lembro-me desse problema com o ext2 aproximadamente quando o kernel 2.4 era relativamente novo. Como regra geral, eu sempre uso o XFS para volumes muito grandes em comparação com o que é comum atualmente. Atualmente, eu diria que tudo entre 250 GB e 1 TB é comum para um único volume e podemos comprar HDs de 4 TB. Então, para tudo> 3TB, prefiro usar XFS do que ext. Apenas uma regra de ouro, mas não há inodes há muito tempo ...
fonte
tune2fs -l /dev/sda1
) e, por acaso, tenho uma proporção de 1 inode para cada quatro blocos e cada bloco tem 1k de tamanho. Quanto isso pode ser considerado "padrão", no entanto, eu não sei.