O que é um inode? Sua função e uso explicados
Os inodes são uma estrutura de gerenciamento para sistemas de arquivos em sistemas operacionais unixoide. Nesse contexto, os inodes são cabeçalhos de dados em listas de inodes ou outros conjuntos de dados semelhantes que contêm metadados sobre arquivos salvos. Esses metadados conterão informações como direitos de acesso, local de salvamento, grupos, IDs de usuário ou a hora em que as alterações foram feitas ou o arquivo foi acessado.
O que é um inode?
Inode é a abreviação de “nó de índice”. Ele é usado como uma forma de gerenciamento de arquivos que desempenhou um papel importante desde a introdução dos sistemas operacionais Unix e daqueles baseados nele, como Linux ou macOS. A principal função desempenhada pelos inodes em sistemas de arquivos é referenciar, gerenciar e localizar determinados arquivos no sistema usando números de inode exclusivos e imutáveis. Por ser uma estrutura de dados definida, os inodes descrevem e gerenciam arquivos específicos usando meta data. O tipo de sistema de arquivos determinará quais metadados serão usados.
Apesar de não conterem informações sobre o próprio nome do arquivo, os inodes geralmente incluem as seguintes informaçõ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 clustering, mas usam blocos de dados. Ao contrário dos sistemas DOS que usam tabelas FAT, os inodes são usados para gerenciar e fazer referência aos dados do diretório. Se os dados forem armazenados no disco rígido em blocos de dados definidos, isso pode fazer com que o arquivo exceda rapidamente a memória do bloco. O sistema então procura outro bloco disponí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 encontrados usando dados de referência 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 encontrado 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 contabilização interna tem a vantagem de permitir que os inodes sejam direcionados aos arquivos originais e aos backups sem ocupar mais memória.
Como os inodes são configurados de forma diferente dependendo do sistema, um arquivo pode exceder o tamanho dos inodes disponí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.
Como você define o escopo dos inodes desde o início, os disponíveis podem não ser suficientes para um grande número de arquivos em determinadas circunstâncias. Nesse caso, o sistema de arquivos precisará ser reestruturado com um número maior de inodes.
Quando você usa inodes?
Os inodes são usados para gerenciar e estruturar sistemas de arquivos e são usados tanto em sistemas Linux privados quanto em soluções de serviços gerenciados. Os usuários e as empresas que buscam soluções de nuvem para servidores com sistemas operacionais Unixoide podem acessar as estruturas de dados de inode. Como acontece com a maioria dos serviços em nuvem e dependendo do uso, você pode obter uma nuvem pública ou uma nuvem privada.
Quais sistemas de arquivos suportam inodes?
Todos os sistemas operacionais unixoide, como Linux ou MacOS , usam inodes. Entretanto, dependendo do sistema de arquivos suportado, a estrutura e a composição dos inodes podem mudar. É aqui que os sistemas ext2/ext3/ext4 na forma de listas ou tabelas de inodes são usados como cabeçalhos de dados descritivos. A lista de inodes é criada quando o sistema é configurado e não pode ser alterada posteriormente. 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 pertencentes 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 necessá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 encontrada 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 importantes
Como há um limite de inodes disponíveis dependendo do sistema de arquivos, você precisa saber como exibir os inodes usados ou as áreas ocupadas por inodes no sistema. Isso às vezes é necessário se não houver inodes suficientes disponí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:
Comando para obter uma visão geral do uso atual de inodes
Para ver os inodes que estão sendo usados atualmente no sistema, use este comando:
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:
Comando para exibir números de inodes específicos
Para exibir o número de inode específico de um arquivo, você pode usar este comando:
Comando para exibir todos os arquivos de um inode
Se você quiser saber quais arquivos (incluindo originais, cópias ou backups) são referenciados por um inode, use o seguinte:
Dicas se os inodes estiverem sobrecarregados
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 quantidades excessivamente pequenas de dados, como arquivos TMP, caches ou sessões temporárias. Em geral, o problema pode ser resolvido com a exclusão automática de todos os arquivos com mais de 14 dias. Para fazer isso, você pode executar um cron job com o seguinte comando:
O que acontece se eu tiver poucos inodes?
Se você não tiver inodes suficientes para outros arquivos, poderá começar a notar algumas das seguintes situações em determinadas circunstâncias:
- Os aplicativos travam
- Dados perdidos
- Reinicializações não planejadas
- Os processos travam e não reiniciam
- Os processos planejados não são iniciados automaticamente
Se a sua capacidade de inode estiver realmente esgotada, recomendamos que você crie mais capacidade livre. Como alternativa, você pode realizar o processo relativamente trabalhoso de reestruturar o sistema de arquivos e aumentar o número máximo de inodes.