Os inodes são uma estrutura de ge­ren­ci­a­mento para sistemas de arquivos em sistemas ope­ra­ci­o­nais unixoide. Nesse contexto, os inodes são ca­be­ça­lhos de dados em listas de inodes ou outros conjuntos de dados se­me­lhan­tes que contêm metadados sobre arquivos salvos. Esses metadados conterão in­for­ma­ções como direitos de acesso, local de sal­va­mento, grupos, IDs de usuário ou a hora em que as al­te­ra­ções foram feitas ou o arquivo foi acessado.

O que é um inode?

Inode é a abre­vi­a­ção de “nó de índice”. Ele é usado como uma forma de ge­ren­ci­a­mento de arquivos que de­sem­pe­nhou um papel im­por­tante desde a in­tro­du­ção dos sistemas ope­ra­ci­o­nais Unix e daqueles baseados nele, como Linux ou macOS. A principal função de­sem­pe­nhada pelos inodes em sistemas de arquivos é re­fe­ren­ciar, gerenciar e localizar de­ter­mi­na­dos arquivos no sistema usando números de inode ex­clu­si­vos e imutáveis. Por ser uma estrutura de dados definida, os inodes descrevem e gerenciam arquivos es­pe­cí­fi­cos usando meta data. O tipo de sistema de arquivos de­ter­mi­nará quais metadados serão usados.

Apesar de não conterem in­for­ma­ções sobre o próprio nome do arquivo, os inodes ge­ral­mente incluem as seguintes in­for­ma­ções sobre arquivos e blocos de arquivos:

  • Tipo e direitos de acesso
  • Número de hardlinks
  • ID do usuário (UID)
  • ID do grupo (GID) ou GUI
  • Tamanho do arquivo em bytes
  • Data da última alteração (mtime)
  • Data da última alteração de status (ctime)
  • Data do último acesso (atime)
  • Endereço dos blocos de dados
  • Endereço do bloco de indireção
  • Número de links
  • Número da versão

Como funcionam os inodes?

Os sistemas Unix não gerenciam os setores da partição do disco usando clus­te­ring, mas usam blocos de dados. Ao contrário dos sistemas DOS que usam tabelas FAT, os inodes são usados para gerenciar e fazer re­fe­rên­cia aos dados do diretório. Se os dados forem ar­ma­ze­na­dos no disco rígido em blocos de dados definidos, isso pode fazer com que o arquivo exceda ra­pi­da­mente a memória do bloco. O sistema então procura outro bloco dis­po­ní­vel para salvar o restante do arquivo. É nesse ponto que os inodes entram em ação.

Os inodes garantem que os dados salvos no sistema possam ser en­con­tra­dos usando dados de re­fe­rên­cia e de diretório, bem como os inodes e o número de inode exclusivo. Uma grande vantagem aqui é que eles não dependem do nome do arquivo. Se um arquivo for copiado e renomeado, ele ainda poderá ser en­con­trado novamente usando o mesmo número de inode do arquivo original. Esse é o caso dos hardlinks, que são criados por usuários com o comando Linux in command. Essa forma de con­ta­bi­li­za­ção interna tem a vantagem de permitir que os inodes sejam di­re­ci­o­na­dos aos arquivos originais e aos backups sem ocupar mais memória.

Como os inodes são con­fi­gu­ra­dos de forma diferente de­pen­dendo do sistema, um arquivo pode exceder o tamanho dos inodes dis­po­ní­veis. Nesse caso, o inode original refere-se a outro inode, às vezes chamado de bloco de indireção, que contém o restante dos metadados.

Nota

Como você define o escopo dos inodes desde o início, os dis­po­ní­veis podem não ser su­fi­ci­en­tes para um grande número de arquivos em de­ter­mi­na­das cir­cuns­tân­cias. Nesse caso, o sistema de arquivos precisará ser re­es­tru­tu­rado com um número maior de inodes.

Quando você usa inodes?

Os inodes são usados para gerenciar e es­tru­tu­rar sistemas de arquivos e são usados tanto em sistemas Linux privados quanto em soluções de serviços ge­ren­ci­a­dos. Os usuários e as empresas que buscam soluções de nuvem para ser­vi­do­res com sistemas ope­ra­ci­o­nais Unixoide podem acessar as es­tru­tu­ras de dados de inode. Como acontece com a maioria dos serviços em nuvem e de­pen­dendo do uso, você pode obter uma nuvem pública ou uma nuvem privada.

Quais sistemas de arquivos suportam inodes?

Todos os sistemas ope­ra­ci­o­nais unixoide, como Linux ou MacOS , usam inodes. En­tre­tanto, de­pen­dendo do sistema de arquivos suportado, a estrutura e a com­po­si­ção dos inodes podem mudar. É aqui que os sistemas ext2/ext3/ext4 na forma de listas ou tabelas de inodes são usados como ca­be­ça­lhos de dados des­cri­ti­vos. A lista de inodes é criada quando o sistema é con­fi­gu­rado e não pode ser alterada pos­te­ri­or­mente. Além disso, os inodes ext4 com 256 bytes ocupam o disco rígido e não podem ser usados de nenhuma outra forma. Nesse sistema de dados, um inode descreve, em cada caso, um arquivo ou um diretório no sistema usando os metadados per­ten­cen­tes a eles.

Além disso, existem sistemas de arquivos mais complexos, como xfs ou btrfs , nos quais os inodes são criados primeiro quando são ne­ces­sá­rios para localizar arquivos. Nesse caso, não são criadas listas ou tabelas contendo inodes. Outra diferença na forma como eles funcionam pode ser en­con­trada nos inodes de disco e nos inodes usados para processar a memória do Linux (nos inodes do núcleo).

Visão geral dos comandos de inode im­por­tan­tes

Como há um limite de inodes dis­po­ní­veis de­pen­dendo do sistema de arquivos, você precisa saber como exibir os inodes usados ou as áreas ocupadas por inodes no sistema. Isso às vezes é ne­ces­sá­rio se não houver inodes su­fi­ci­en­tes dis­po­ní­veis no sistema para outros arquivos.

Comando para mostrar as áreas usadas no sistema de arquivos

Se quiser exibir quais áreas estão sendo usadas por inodes no sistema de arquivos, use o seguinte comando:

~ find /home /tmp -xdev -printf ´%h \n´ | sort | uniq -c | sort -k 1 -nr | head -n 20
shell

Comando para obter uma visão geral do uso atual de inodes

Para ver os inodes que estão sendo usados atu­al­mente no sistema, use este comando:

df -ih
shell

Para obter uma visão geral do uso de inodes, incluindo qual sistema de arquivos, o número total de inodes, o uso atual e quais inodes estão sendo usados, digite este comando:

df -i
shell

Comando para exibir números de inodes es­pe­cí­fi­cos

Para exibir o número de inode es­pe­cí­fico de um arquivo, você pode usar este comando:

ls -i
shell

Comando para exibir todos os arquivos de um inode

Se você quiser saber quais arquivos (incluindo originais, cópias ou backups) são re­fe­ren­ci­a­dos por um inode, use o seguinte:

-inum
shell

Dicas se os inodes estiverem so­bre­car­re­ga­dos

Uma carga alta nos inodes nem sempre significa que sua memória está acabando. Às vezes, o aumento do uso de inodes pode ser explicado por quan­ti­da­des ex­ces­si­va­mente pequenas de dados, como arquivos TMP, caches ou sessões tem­po­rá­rias. Em geral, o problema pode ser resolvido com a exclusão au­to­má­tica de todos os arquivos com mais de 14 dias. Para fazer isso, você pode executar um cron job com o seguinte comando:

03 *** /usr/bin/find /path/to/files/* -type f – mtime +14 -delete > /dev/null 2>&1
shell

O que acontece se eu tiver poucos inodes?

Se você não tiver inodes su­fi­ci­en­tes para outros arquivos, poderá começar a notar algumas das seguintes situações em de­ter­mi­na­das cir­cuns­tân­cias:

  • Os apli­ca­ti­vos travam
  • Dados perdidos
  • Rei­ni­ci­a­li­za­ções não pla­ne­ja­das
  • Os processos travam e não reiniciam
  • Os processos pla­ne­ja­dos não são iniciados au­to­ma­ti­ca­mente

Se a sua ca­pa­ci­dade de inode estiver realmente esgotada, re­co­men­da­mos que você crie mais ca­pa­ci­dade livre. Como al­ter­na­tiva, você pode realizar o processo re­la­ti­va­mente tra­ba­lhoso de re­es­tru­tu­rar o sistema de arquivos e aumentar o número máximo de inodes.

Ir para o menu principal