O que é um inode órfão? [fechadas]

16

Entendo o que é um inode, mas qual é a definição exata de um inode órfão? Eu realmente não entendo o que isso significa.

ATUALIZAR

Houve um tempo em que um servidor que eu estava gerenciando ficou sem inodes, mas quando eu fiz um df -h, isso me mostrou que o servidor tinha apenas 60% de espaço usado. Eu acho que isso é por causa de inodes órfãos. Como todos os inodes podem ser usados, mas ainda há "espaço" no servidor? Você pode resolver isso em suas respostas?

ninjacoder
fonte
11
Sua atualização é uma questão separada, realmente, relacionada à diferença entre a capacidade de armazenamento de um sistema de arquivos e o número de inodes que ele pode conter; você deve fazer isso como uma pergunta separada.
Stephen Kitt
A execução df -imostrará as informações correspondentes para os inodes.
Kusalananda
O espaço livre / usado em disco está apenas ligeiramente correlacionado com os inodes livres / usados. Um disco com muitos arquivos pequenos ficará sem inodes antes de ficar sem espaço.
Kusalananda

Respostas:

17

Um inode órfão é um inode que não está anexado a uma entrada de diretório no sistema de arquivos, o que significa que não pode ser acessado.

Os inodes órfãos podem aparecer por vários motivos:

  • arquivos temporários que são excluídos mas mantidos abertos (uma prática comum) ocupam inodes no sistema de arquivos; se o sistema reiniciar sem desligar corretamente, esses inodes permanecem e ficam órfãos
  • a corrupção do sistema de arquivos pode corromper um diretório sem afetar os inodes dos arquivos que o diretório contém; esses inodes ficam órfãos

fsckcria novas entradas de diretório para inodes órfãos em lost+found.

Stephen Kitt
fonte
Obrigado pela sua resposta @ stephen-kitt. Houve um tempo em que um servidor que eu estava gerenciando ficou sem inodes, mas quando eu fiz df -hisso, me mostrou que o servidor tinha apenas 60% de espaço usado. Eu acho que isso é por causa de inodes órfãos. Como todos os inodes podem ser usados, mas ainda há "espaço" no servidor?
ninjacoder
3

Um inode órfão é um arquivo que é "semi-excluído": não possui mais entrada de diretório, mas ainda está aberto em algum processo, portanto os dados ainda estão presentes no disco. Quando o último processo que tem esse arquivo aberto o fecha, o arquivo será totalmente excluído e o inode órfão desaparecerá.

Um inode órfão usa um inode e o espaço em disco para armazenar o arquivo, portanto ambos dfe df -iconte-o como usado. Portanto, se o disco for relatado como cheio, masdf mostrar algum espaço restante, isso não poderá estar relacionado a inodes órfãos. Os inodes órfãos são um dos motivos pelos quais o uso do sistema de arquivos relatado dfe o tamanho total do arquivo relatado por dupodem ser diferentes; consulte Por que existem tantas maneiras diferentes de medir o uso do disco? para mais detalhes sobre este tópico.

Muitos sistemas de arquivos reservaram um número fixo de inodes quando o sistema de arquivos foi criado, o que significa que você pode ter no máximo muitos arquivos no sistema de arquivos. O número de inodes é um compromisso entre o espaço usado pelos inodes e a capacidade de criar muitos arquivos. Se não houver mais espaço no sistema de arquivos, você não poderá aumentar os arquivos existentes ou criar novos arquivos (talvez ainda seja possível criar alguns arquivos vazios nos diretórios existentes, desde que apenas preencham blocos parcialmente usados ​​e não exigindo que um novo bloco seja alocado). Se não houver mais inode livre, você poderá aumentar os arquivos existentes, mas não poderá criar um novo arquivo.

O kernel relata o mesmo erro aos aplicativos, independentemente de o sistema de arquivos estar cheio devido à falta de espaço para dados ou à falta de inodes. Portanto, você pode obter um erro de "disco cheio", mesmo se houver algum espaço de dados restante, se a operação exigir um novo inode e a tabela de inodes estiver cheia. Corra df -ipara saber quantos inodes são usados ​​e quantos restam.

Gilles 'SO- parar de ser mau'
fonte
1
  • Um inode órfão é aquele que foi desvinculado, mas ainda está aberto em outro processo. Por exemplo, executando tail -f {file}em um shell seguido porrm {file} em outro. O sistema de arquivos mantém o controle deles para que possam ser limpos quando o processo for encerrado.

  • É perfeitamente normal sempre que houver uma desmontagem imunda. Eles são simplesmente arquivos que foram excluídos, mas ainda estavam abertos quando o fs foi remontado apenas para leitura. Eles não são a causa, mas apenas um sintoma.


Para problema de inode, execute esta consulta para obter a lista de quantos inodes estão sendo usados ​​em todos os diretórios

for i in `find . -type d `; do echo `ls -a $i | wc -l` $i; done | sort -n

Você pode consultar isso e isto para obter mais métodos para verificar.

Rahul
fonte
@ninjacoder você pode verificar a minha resposta atualizado para o seu problema inode
Rahul