De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
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)