feature largefile na criação do sistema de arquivos

15

É útil usar o sinalizador -T largefile ao criar um sistema de arquivos para uma partição com arquivos grandes como vídeo e áudio em formato flac?

Eu testei a mesma partição com essa flag e sem ela, e usando tune2fs -l [partition] , eu verifiquei em "Filesystem features" que ambos têm "large_file" habilitado. Então, não é necessário usar -t flag largefile ?

    
por Marc 15.07.2012 / 13:08

2 respostas

23

O sinalizador -T largefile ajusta a quantidade de inodes alocados na criação do sistema de arquivos. Uma vez alocado, seu número não pode ser ajustado (pelo menos para ext2 / 3, não totalmente certo sobre ext4). O padrão é um inode para cada 16K de espaço em disco. -T largefile torna um inode para cada megabyte.

Cada arquivo requer um inode. Se você não tiver nenhum inodes, não poderá criar novos arquivos. Mas esses inodes alocados estaticamente também ocupam espaço. Você pode esperar que economize cerca de 1,5 gigabytes para cada 100 GB de disco definindo -T largefile , ao contrário do padrão. -T largefile4 (um inode por 4 MB) não tem um efeito tão dramático.

Se tiver certeza de que o tamanho médio dos arquivos armazenados no dispositivo será superior a 1 megabyte, por todos os meios, defina -T largefile . Estou feliz em usá-lo em minhas partições de armazenamento e acho que não é muito radical de uma configuração.

No entanto, se você descompactar um arquivo fonte de muitos arquivos (pense em centenas de milhares) nessa partição, você terá a chance de ficar sem inodes para essa partição. Há pouco que você pode fazer nessa situação, além de escolher outra partição para untar.

Você pode verificar quantos inodes você tem disponível em um sistema de arquivos ao vivo com o comando dumpe2fs :

# dumpe2fs /dev/hda5
[...]
Inode count:              98784
Block count:              1574362
Reserved block count:     78718
Free blocks:              395001
Free inodes:              34750

Aqui, ainda posso criar 34 mil arquivos.

Veja o que eu recebi depois de fazer mkfs.ext3 -T largefile -m 0 em uma partição de 100 GB:

Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/loop1              102369       188    102181   1% /mnt/largefile
/dev/loop2              100794       188    100606   1% /mnt/normal

A versão largefile tem 102 400 inodes, enquanto a normal criou 6 553 600 inodes e economizou 1,5 GB no processo.

Se você tiver uma boa idéia de quais arquivos de tamanho você colocará no sistema de arquivos, poderá ajustar a quantidade de inodes diretamente com a opção -i . Define os bytes por razão de nó. Você ganharia 75% da economia de espaço se usasse -i 65536 e ainda conseguisse criar mais de um milhão de arquivos. Eu geralmente calculo para manter pelo menos 100 000 inodes de reposição.

    
por 15.07.2012 / 18:13
4

Acho que você está misturando dois conceitos completamente diferentes e independentes.

O recurso large_file que você pode ver na saída de dumpe2fs significa que este sistema de arquivos pode conter arquivos maiores que 2 GiB, eu acho que é configurado automaticamente pelos kernels modernos. Não tem nada a ver com a opção -T de mke2fs .

    
por 16.07.2014 / 01:59