DevSecOps

2 ago, 2013

Sistema de arquivos com espaço, mas sem espaço! Como pode?

Publicidade

Esse pequeno artigo vem alertar aos colegas administradores linux quanto ao uso inconsciente do File System (Sistema de Arquivos), no que se refere aos inodes. Mas afinal, o que é um inode? Na Wikipedia temos a seguinte definição para esse conceito: “Em computação, um inode (index node) é uma estrutura de dados encontrados em muitos sistemas de arquivos Unix. Cada inode armazena as informações sobre um objeto do sistema de arquivos, exceto o conteúdo de dados e nome do arquivo”. Ou seja, ele guarda endereçamentos, informações sobre seus arquivos como permissões, etc.

Tudo bem, então, como fazemos para visualizar esses inodes, se isso for possível?

O comando “ls -i” (com o parâmetro -i) nos mostra o endereço serial de um arquivo listado. Vamos ver um exemplo:

Cenário

[code] # touch arq{1..5}
# ls -i arq*

50302 prd1 50303 prd2 50304 prd3 50305 prd4 50306 prd5 [/code]

Acabo de criar 5 arquivos comuns e vazios e em seguida, listamos seus endereços seriais, ou seja, seus respectivos inodes.

Também é possível analisar (e altamente recomendado) a quantidade de inodes disponível para uso em um File System. Por quê? A resposta não é tão simples, mas precisamos de um nível considerável de abstração. Vamos lá…

Imagine uma partição /dados montada sobre /dev/sda9 com aproximados 10 GB livres para gravação de dados e imagine que nessa mesma partição eu tenha uma quantidade de inodes = 10.000 (valor fictício). Ok, teoricamente, eu me preocuparia apenas com o espaço em disco disponível, os meus 10 GB, porém, eu posso gravar muitos arquivos nesse File System de forma a ocupar todos os inodes disponíveis e não conseguir gravar mais nada, mesmo tendo espaço em disco disponível. Como isso é possível? Acabamos de criar um cenário que nos facilita a resposta para essa pergunta… imagine que seus arquivos possuam em média 100 KB cada; com arquivos desse tamanho, você ocuparia mais inodes do que espaço em GB disponíveis no File System e ao estourar os endereços seriais, você poderia ter por exemplo, mais de 50% de espaço livre em GB mas com os 10.000 inodes ocupados e assim, não conseguiria gravar mais nenhum dado.

Como verificar o espaço em disco e a quantidade de inodes nos File Systems?

Aplique o seguinte comando:

# df -hi

O que será exibido é a estatística do uso de inodes em KB e %. Agora, verifique o espaço em GB:

# df -h

Com esses comandos, você já tem uma ideia da mais nova preocupação que deve ter com seu servidor de arquivos e agora, pode repensar um novo disco com opções de formatação mais específicas (sim, é possível mudar a utilização dos inodes na criação do disco).

Outra dica legal seria automatizar o monitoramento do uso dos inodes e do espaço em disco com uma ferramenta chamada Zabbix; com ela, você programa um alerta, mensagem de texto, dentre outras, sempre que o disco estiver estourando a quantidade de inodes e/ou espaço em disco.

Espero ter colaborado para a rotina da administração de servidores linux dos colegas leitores.

Artigo enviado por Paulo Roberto Deolindo Junior, Coordenador de Treinamentos da Treinatux Interativa – contato@treinatux.com.br