Como calcular a quantidade adequada de tamanhos de inode / block para um sistema de arquivos linux

5

Eu tenho um sistema de arquivos antigo reiser que eu vou converter para Ext3. O problema que tenho é determinar os tamanhos adequados de bloco e de inode para essa partição.

A partição tem 44 GB de tamanho e tem que armazenar mais de 3.000.000 de arquivos de tamanhos entre 1 kb e 10kb, como posso descobrir a melhor relação de inodes e blocos?

O abaixo é algo que eu tentei, que parece OK, mas torna os arquivos de cópia incrivelmente lentos.

mkfs.ext3 \
 -t ext3 \
 -c \
 -c \
 -b 1024 \
 -i 4096 \
 -I 128 \
 -v \
 -j \
 -O sparse_super,filetype,has_journal\
  /dev/sdb1

Obrigado.

    
por Kurt Pfeifle 09.05.2010 / 00:21

2 respostas

2

Não existe uma resposta "certa" para uma questão tão limitada. Se você estiver configurando um computador ou laptop, faça:

mkfs.ext3 /dev/sda1

O programa pode escolher melhor do que um ser humano inexperiente. Se você for armazenar um site enorme, o ext3 pode exigir até 25% de inodes, devido ao grande número possível de pequenos arquivos individuais.

Mas você está realmente dizendo apenas o programa mkfs "até 25% inodes". A maioria das configurações de criação de sistemas de arquivos é usada em aplicativos especializados, como distribuição de RAID, onde a geometria do sistema de arquivos precisa ser ajustada ou será incrivelmente lenta.

Eu sei que as pessoas têm suas configurações de sistema de arquivos para animais de estimação. Ainda não encontrei ninguém que possa demonstrar a utilidade de sair dos valores padrão em uma partição de desktop ou laptop de 40 GB.

E ext3 não é o melhor sistema de arquivos para tudo! Eu uso três tipos diferentes de formato de partição no meu lappy, porque certas partições contêm muitos arquivos pequenos e individuais. Outros possuem um número muito menor de arquivos maiores (bom para o sistema ext3), como a partição / home.

/usr pode ter 500.000 arquivos individuais, fazendo com que ext3 klunky, mas reiserfs voe. A outra coisa é acls . Você deve informar mkfs.ext3 que você estará usando acls , se você for usá-los. acls são ajustes finos para permissões, geralmente não importantes em um único sistema de usuário. Mas se você tem um grupo de 20 usuários normais, e você quer controles de acesso diferentes para alguns deles, você deve usar acls .

Eu pessoalmente gosto do xfs para um sistema de arquivos de uso geral, embora não funcione com o SELinux. Mas é o sistema de arquivos mais sofisticado e eficiente. É usado em várias marcas de HPCs. Você pode google, se assim o desejar. ext3 inutilmente desperdiça 8% da partição. Isso é escandaloso.

Mas ext4 é melhor. Eu não vou cuspir uma linha de comando para você. Você deve determinar o uso da partição e projetar o sistema de arquivos de acordo. ext3 é confiável, mas também é um tanque. Isso não significa que você quer dirigir um em torno da cidade.

Espero que isso ajude um pouco.

    
por 11.12.2010 / 00:58
1

Você precisará de um inode para cada arquivo, o tamanho do inode definirá o número de blocos diretos que ele pode alcançar antes de exigir outro inode e blocos suficientes para manipular os arquivos.

Assim, no seu caso, o número mínimo de inodes será o 3.000.000+. Se você usar o valor padrão, receberá 12 blocos diretos. Então, com um tamanho de bloco de 1kB, você consegue o que precisa.

Obviamente, você pode reduzir o tamanho do inode e aumentar o tamanho do bloco para aumentar o número de inodes. Isso fará com que você tenha menos espaço disponível, mas mais arquivos no mesmo sistema de arquivos.

    
por 14.05.2010 / 10:37