você está aqui: Home  → Arquivo de Mensagens

Complemento - Definição de Parâmetros para Alocação de Partições

Colaboração: Gustavo Chaves

Data de Publicação: 18 de Maio de 2001

Na mensagem de ontem, sobre alocação de partições, foram expostos alguns conceitos errôneamente, como a distinção entre inodes (index nodes) e blocos de dados.

Infelizmente estes erros me passaram despercebidos. Minhas desculpas a vocês.

O Gustavo me mandou uma mensagem bastante boa explicando melhor estes conceitos, que passo a reproduzir a seguir.


Creio que ao invés de inode você queira dizer "logical block" (nomenclatura do Solaris) ou "cluster" (nomenclatura para sistemas de arquivo FAT). No caso de sistemas de arquivos UNIX cada arquivo tem apenas um inode que é a estrutura que contém, entre outras, as informações sobre o tamanho do arquivo, usuário e grupo, datas e a lista de blocos (logical blocks) que contêm os dados do arquivo. Sua argumentação faz sentido se pensarmos no tamanho destes blocos e não no tamanho dos inodes que, em verdade, nem podem ter seu tamanho modificado.

Há um outro parâmetro que você pode passar para o mkfs (-i, no Solaris) ao criar o sistema de arquivos que se refere ao número de bytes por inode que deve ser reservado no sistema. Não é o tamanho do inode... Ao criar um sistema de arquivos numa partição de disco, parte do espaço é usado para a criação de inodes e o restante para a criação dos blocos. A conta a ser feita é a seguinte:

          (isz * in) + (bsz * bn) = psz, onde
  
          isz = tamanho do inode 
          in  = número de inodes
          bsz = tamanho do bloco
          bn  = número de blocos
          psz = tamanho da partição

O problema é decidir quantos inodes e quantos blocos criar na partição. O ideal é que o número de blocos por inode seja pouco maior que o tamanho médio dos seus arquivos. Se esta razão for muito pequena, você estará desperdiçando inodes. Se for muito grande, estará desperdiçando blocos.

Se você consegue estimar o tamanho médio dos arquivos (digamos, fsz), você pode descobrir a relação ideal entre o número de blocos e o de inodes, assim:

          bn/in = fsz/bsz, (arredondando para cima)

Chamando este número de bpi (blocos por inode), dá pra saber quantos inodes e blocos criar na partição:

          (isz * in) + (bsz * in * bpi) = psz
          in * (isz + bsz * bpi) = psz
          in = psz / (isz + bsz * bpi)
          e
          bn = (psz * bpi) / (isz + bsz * bpi)


Veja a relação completa dos artigos de Gustavo Chaves

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script